From 14c6729b63bd5cc697a6749f275895210956323c Mon Sep 17 00:00:00 2001 From: Kelvin Kok Date: Tue, 20 Jun 2023 18:11:11 +0800 Subject: [PATCH 01/30] fixes #81 - shortened file names and updated file path for main.py and unit tests for all affected algos --- examples/README.md | 30 ++++---- ..._testing.sav => sample_bc_credit_data.sav} | Bin ...sav => sample_bc_pipeline_credit_data.sav} | Bin ... sample_bc_pipeline_credit_ytest_data.sav} | Bin ....sav => sample_mc_pipeline_toxic_data.sav} | Bin ...> sample_mc_pipeline_toxic_ytest_data.sav} | Bin ...n_testing.sav => sample_mc_toxic_data.sav} | Bin ...sting.sav => sample_reg_donation_data.sav} | Bin ...sting.sav => sample_reg_pipeline_data.sav} | Bin ...sav => sample_reg_pipeline_ytest_data.sav} | Bin ...dit_sklearn_linear.LogisticRegression.sav} | Bin ...xic_sklearn_linear.LogisticRegression.sav} | Bin ...ion_sklearn_linear.LogisticRegression.sav} | Bin .../bc_tabular_credit}/creditCustomClass.py | 0 ...ple_bc_credit_sklearn_linear.Pipeline.sav} | Bin ...mple_mc_toxic_sklearn_linear.Pipeline.sav} | Bin .../mc_tabular_toxic}/toxicCustomClass.py | 0 ..._reg_donation_sklearn_linear.Pipeline.sav} | Bin .../accumulated_local_effect/__main__.py | 56 ++++++--------- ..._testing.sav => sample_bc_credit_data.sav} | Bin ...sav => sample_bc_pipeline_credit_data.sav} | Bin ... sample_bc_pipeline_credit_ytest_data.sav} | Bin ....sav => sample_mc_pipeline_toxic_data.sav} | Bin ...> sample_mc_pipeline_toxic_ytest_data.sav} | Bin ...n_testing.sav => sample_mc_toxic_data.sav} | Bin ...dit_sklearn_linear.LogisticRegression.sav} | Bin ...xic_sklearn_linear.LogisticRegression.sav} | Bin .../bc_tabular_credit}/creditCustomClass.py | 0 ...ple_bc_credit_sklearn_linear.Pipeline.sav} | Bin ...mple_mc_toxic_sklearn_linear.Pipeline.sav} | Bin .../mc_tabular_toxic}/toxicCustomClass.py | 0 .../unit_tests/test_algo.py | 16 ++--- .../__main__.py | 35 ++++------ ..._testing.sav => sample_bc_credit_data.sav} | Bin ...sav => sample_bc_pipeline_credit_data.sav} | Bin ... sample_bc_pipeline_credit_ytest_data.sav} | Bin ....sav => sample_mc_pipeline_toxic_data.sav} | Bin ...> sample_mc_pipeline_toxic_ytest_data.sav} | Bin ...n_testing.sav => sample_mc_toxic_data.sav} | Bin ...dit_sklearn_linear.LogisticRegression.sav} | Bin ...xic_sklearn_linear.LogisticRegression.sav} | Bin .../bc_tabular_credit}/creditCustomClass.py | 0 ...ple_bc_credit_sklearn_linear.Pipeline.sav} | Bin ...mple_mc_toxic_sklearn_linear.Pipeline.sav} | Bin .../mc_tabular_toxic}/toxicCustomClass.py | 0 .../unit_tests/test_algo.py | 16 ++--- .../__main__.py | 33 +++++---- ...sting.sav => sample_reg_donation_data.sav} | Bin ...sting.sav => sample_reg_pipeline_data.sav} | Bin ...sav => sample_reg_pipeline_ytest_data.sav} | Bin ...ion_sklearn_linear.LogisticRegression.sav} | Bin ..._reg_donation_sklearn_linear.Pipeline.sav} | Bin .../unit_tests/test_algo.py | 17 ++--- .../algorithms/blur_corruptions/__main__.py | 4 +- .../partial_dependence_plot/__main__.py | 38 ++++------ ..._testing.sav => sample_bc_credit_data.sav} | Bin ...sav => sample_bc_pipeline_credit_data.sav} | Bin ... sample_bc_pipeline_credit_ytest_data.sav} | Bin ....sav => sample_mc_pipeline_toxic_data.sav} | Bin ...> sample_mc_pipeline_toxic_ytest_data.sav} | Bin ...n_testing.sav => sample_mc_toxic_data.sav} | Bin ...dit_sklearn_linear.LogisticRegression.sav} | Bin ...xic_sklearn_linear.LogisticRegression.sav} | Bin .../bc_tabular_credit}/creditCustomClass.py | 0 ...ple_bc_credit_sklearn_linear.Pipeline.sav} | Bin ...mple_mc_toxic_sklearn_linear.Pipeline.sav} | Bin .../mc_tabular_toxic}/toxicCustomClass.py | 12 ++-- .../unit_tests/test_algo.py | 16 ++--- .../algorithms/robustness_toolbox/__main__.py | 31 +++----- ..._testing.sav => sample_bc_credit_data.sav} | Bin ...sav => sample_bc_pipeline_credit_data.sav} | Bin ... sample_bc_pipeline_credit_ytest_data.sav} | Bin ....sav => sample_mc_pipeline_toxic_data.sav} | Bin ...> sample_mc_pipeline_toxic_ytest_data.sav} | Bin ...n_testing.sav => sample_mc_toxic_data.sav} | Bin ...sting.sav => sample_reg_donation_data.sav} | Bin ...sting.sav => sample_reg_pipeline_data.sav} | Bin ...sav => sample_reg_pipeline_ytest_data.sav} | Bin ...dit_sklearn_linear.LogisticRegression.sav} | Bin ...xic_sklearn_linear.LogisticRegression.sav} | Bin ...ion_sklearn_linear.LogisticRegression.sav} | Bin .../bc_tabular_credit}/creditCustomClass.py | 12 ++-- ...ple_bc_credit_sklearn_linear.Pipeline.sav} | Bin ...mple_mc_toxic_sklearn_linear.Pipeline.sav} | Bin .../mc_tabular_toxic}/toxicCustomClass.py | 12 ++-- ..._reg_donation_sklearn_linear.Pipeline.sav} | Bin .../unit_tests/test_algo.py | 4 +- .../widgets/images/adv_samples/0.png | Bin 2645 -> 2651 bytes .../algorithms/shap_toolbox/__main__.py | 66 ++++++------------ ..._testing.sav => sample_bc_credit_data.sav} | Bin ...sav => sample_bc_pipeline_credit_data.sav} | Bin ... sample_bc_pipeline_credit_ytest_data.sav} | Bin ....sav => sample_mc_pipeline_toxic_data.sav} | Bin ...> sample_mc_pipeline_toxic_ytest_data.sav} | Bin ...n_testing.sav => sample_mc_toxic_data.sav} | Bin ...sting.sav => sample_reg_donation_data.sav} | Bin ...sting.sav => sample_reg_pipeline_data.sav} | Bin ...sav => sample_reg_pipeline_ytest_data.sav} | Bin ...dit_sklearn_linear.LogisticRegression.sav} | Bin ...xic_sklearn_linear.LogisticRegression.sav} | Bin ...ion_sklearn_linear.LogisticRegression.sav} | Bin .../bc_tabular_credit}/creditCustomClass.py | 12 ++-- ...ple_bc_credit_sklearn_linear.Pipeline.sav} | Bin ...mple_mc_toxic_sklearn_linear.Pipeline.sav} | Bin .../mc_tabular_toxic}/toxicCustomClass.py | 12 ++-- ..._reg_donation_sklearn_linear.Pipeline.sav} | Bin .../unit_tests/test_algo.py | 19 ++--- .../src/pandasdata/__main__.py | 3 +- .../tests/test_pipeline_manager.py | 9 ++- 109 files changed, 180 insertions(+), 273 deletions(-) rename examples/data/{pickle_pandas_mock_binary_classification_credit_risk_testing.sav => sample_bc_credit_data.sav} (100%) rename examples/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav => sample_bc_pipeline_credit_data.sav} (100%) rename examples/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav => sample_bc_pipeline_credit_ytest_data.sav} (100%) rename examples/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav => sample_mc_pipeline_toxic_data.sav} (100%) rename examples/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav => sample_mc_pipeline_toxic_ytest_data.sav} (100%) rename examples/data/{pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav => sample_mc_toxic_data.sav} (100%) rename examples/data/{pickle_pandas_mock_regression_donation_testing.sav => sample_reg_donation_data.sav} (100%) rename examples/data/{pickle_pandas_mock_regression_pipeline_testing.sav => sample_reg_pipeline_data.sav} (100%) rename examples/data/{pickle_pandas_mock_regression_pipeline_ytest.sav => sample_reg_pipeline_ytest_data.sav} (100%) rename examples/model/{binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav => sample_bc_credit_sklearn_linear.LogisticRegression.sav} (100%) rename examples/model/{multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav => sample_mc_toxic_sklearn_linear.LogisticRegression.sav} (100%) rename examples/model/{regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav => sample_reg_donation_sklearn_linear.LogisticRegression.sav} (100%) rename {stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan => examples/pipeline/bc_tabular_credit}/creditCustomClass.py (100%) rename examples/pipeline/{binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav => bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav} (100%) rename examples/pipeline/{multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav => mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav} (100%) rename {stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification => examples/pipeline/mc_tabular_toxic}/toxicCustomClass.py (100%) rename examples/pipeline/regression_tabular_donation/{regression_pipeline_donation_sklearn.pipeline.Pipeline.sav => sample_reg_donation_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_credit_risk_testing.sav => sample_bc_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav => sample_bc_pipeline_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav => sample_bc_pipeline_credit_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav => sample_mc_pipeline_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav => sample_mc_pipeline_toxic_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav => sample_mc_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/{binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav => sample_bc_credit_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/{multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav => sample_mc_toxic_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/{aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan => aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/bc_tabular_credit}/creditCustomClass.py (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/{binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav => bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/{multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav => mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/{aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification => aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/mc_tabular_toxic}/toxicCustomClass.py (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_credit_risk_testing.sav => sample_bc_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav => sample_bc_pipeline_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav => sample_bc_pipeline_credit_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav => sample_mc_pipeline_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav => sample_mc_pipeline_toxic_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav => sample_mc_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/{binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav => sample_bc_credit_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/{multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav => sample_mc_toxic_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/{aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan => aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/bc_tabular_credit}/creditCustomClass.py (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/{binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav => bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/{multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav => mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/{aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification => aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/mc_tabular_toxic}/toxicCustomClass.py (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/{pickle_pandas_mock_regression_donation_testing.sav => sample_reg_donation_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/{pickle_pandas_mock_regression_pipeline_testing.sav => sample_reg_pipeline_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/{pickle_pandas_mock_regression_pipeline_ytest.sav => sample_reg_pipeline_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/model/{regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav => sample_reg_donation_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/{regression_pipeline_donation_sklearn.pipeline.Pipeline.sav => sample_reg_donation_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_credit_risk_testing.sav => sample_bc_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav => sample_bc_pipeline_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav => sample_bc_pipeline_credit_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav => sample_mc_pipeline_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav => sample_mc_pipeline_toxic_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav => sample_mc_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/{binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav => sample_bc_credit_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/{multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav => sample_mc_toxic_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/{aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan => aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/bc_tabular_credit}/creditCustomClass.py (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/{binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav => bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/{multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav => mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/{aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification => aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/mc_tabular_toxic}/toxicCustomClass.py (75%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_credit_risk_testing.sav => sample_bc_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav => sample_bc_pipeline_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav => sample_bc_pipeline_credit_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav => sample_mc_pipeline_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav => sample_mc_pipeline_toxic_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav => sample_mc_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_regression_donation_testing.sav => sample_reg_donation_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_regression_pipeline_testing.sav => sample_reg_pipeline_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_regression_pipeline_ytest.sav => sample_reg_pipeline_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/{binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav => sample_bc_credit_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/{multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav => sample_mc_toxic_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/{regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav => sample_reg_donation_sklearn_linear.LogisticRegression.sav} (100%) rename {examples/pipeline/binary_classification_tabular_credit_loan => stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/bc_tabular_credit}/creditCustomClass.py (75%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/{binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav => bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/{multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav => mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav} (100%) rename {examples/pipeline/multiclass_classification_tabular_toxic_classification => stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/mc_tabular_toxic}/toxicCustomClass.py (75%) rename stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/regression_tabular_donation/{regression_pipeline_donation_sklearn.pipeline.Pipeline.sav => sample_reg_donation_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_credit_risk_testing.sav => sample_bc_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav => sample_bc_pipeline_credit_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav => sample_bc_pipeline_credit_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav => sample_mc_pipeline_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav => sample_mc_pipeline_toxic_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav => sample_mc_toxic_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_regression_donation_testing.sav => sample_reg_donation_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_regression_pipeline_testing.sav => sample_reg_pipeline_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/data/{pickle_pandas_mock_regression_pipeline_ytest.sav => sample_reg_pipeline_ytest_data.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/model/{binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav => sample_bc_credit_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/model/{multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav => sample_mc_toxic_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/model/{regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav => sample_reg_donation_sklearn_linear.LogisticRegression.sav} (100%) rename stock-plugins/{aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan => aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/bc_tabular_credit}/creditCustomClass.py (75%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/{binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav => bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/{multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav => mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav} (100%) rename stock-plugins/{aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification => aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/mc_tabular_toxic}/toxicCustomClass.py (75%) rename stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/regression_tabular_donation/{regression_pipeline_donation_sklearn.pipeline.Pipeline.sav => sample_reg_donation_sklearn_linear.Pipeline.sav} (100%) diff --git a/examples/README.md b/examples/README.md index e3cb38981..9843e8f79 100644 --- a/examples/README.md +++ b/examples/README.md @@ -20,9 +20,9 @@ Output Classes: | | File | | ----------- | ----------- | -| AI Model | binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav | -| Test Dataset | pickle_pandas_mock_binary_classification_credit_risk_testing.sav | -| Ground Truth File | pickle_pandas_mock_binary_classification_credit_risk_testing.sav | +| AI Model | sample_bc_credit_sklearn_linear.LogisticRegression.sav | +| Test Dataset | sample_bc_credit_data.sav | +| Ground Truth File | sample_bc_credit_data.sav | | Ground Truth | default | | Sensitive Feature | gender, race | @@ -31,8 +31,8 @@ Output Classes: | | File | | ----------- | ----------- | | AI Model | binary_classification_tabular_credit_loan | -| Test Dataset | pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav | -| Ground Truth File | pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav | +| Test Dataset | sample_bc_pipeline_credit_data.sav | +| Ground Truth File | sample_bc_pipeline_credit_ytest_data.sav | | Ground Truth | default | | Sensitive Feature | gender, race | @@ -50,9 +50,9 @@ Output Classes: | | File | | ----------- | ----------- | -| AI Model | multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav | -| Test Dataset | pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav | -| Ground Truth File | pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav | +| AI Model | sample_mc_toxic_sklearn_linear.LogisticRegression.sav | +| Test Dataset | sample_mc_toxic_data.sav | +| Ground Truth File | sample_mc_toxic_data.sav | | Ground Truth | toxic | | Sensitive Feature | gender, race | @@ -61,8 +61,8 @@ Output Classes: | | File | | ----------- | ----------- | | AI Model | multiclass_classification_tabular_toxic_classification | -| Test Dataset | pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav | -| Ground Truth File | pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav | +| Test Dataset | sample_mc_pipeline_toxic_data.sav | +| Ground Truth File | sample_mc_pipeline_toxic_ytest_data.sav | | Ground Truth | toxic | | Sensitive Feature | gender, race | @@ -76,9 +76,9 @@ Output: | | File | | ----------- | ----------- | -| AI Model | regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav | -| Test Dataset | pickle_pandas_mock_regression_donation_testing.sav | -| Ground Truth File | pickle_pandas_mock_regression_donation_testing.sav | +| AI Model | sample_reg_donation_sklearn_linear.LogisticRegression.sav | +| Test Dataset | sample_reg_donation_data.sav | +| Ground Truth File | sample_reg_donation_data.sav | | Ground Truth | donation | | Sensitive Feature | gender, race | @@ -87,8 +87,8 @@ Output: | | File | | ----------- | ----------- | | AI Model | regression_tabular_donation | -| Test Dataset | pickle_pandas_mock_regression_pipeline_testing.sav | -| Ground Truth File | pickle_pandas_mock_regression_pipeline_ytest.sav | +| Test Dataset | sample_reg_pipeline_data.sav | +| Ground Truth File | sample_reg_pipeline_ytest_data.sav | | Ground Truth | donation | | Sensitive Feature | gender, race | diff --git a/examples/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav b/examples/data/sample_bc_credit_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav rename to examples/data/sample_bc_credit_data.sav diff --git a/examples/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav b/examples/data/sample_bc_pipeline_credit_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav rename to examples/data/sample_bc_pipeline_credit_data.sav diff --git a/examples/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav b/examples/data/sample_bc_pipeline_credit_ytest_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav rename to examples/data/sample_bc_pipeline_credit_ytest_data.sav diff --git a/examples/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav b/examples/data/sample_mc_pipeline_toxic_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav rename to examples/data/sample_mc_pipeline_toxic_data.sav diff --git a/examples/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav b/examples/data/sample_mc_pipeline_toxic_ytest_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav rename to examples/data/sample_mc_pipeline_toxic_ytest_data.sav diff --git a/examples/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav b/examples/data/sample_mc_toxic_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav rename to examples/data/sample_mc_toxic_data.sav diff --git a/examples/data/pickle_pandas_mock_regression_donation_testing.sav b/examples/data/sample_reg_donation_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_regression_donation_testing.sav rename to examples/data/sample_reg_donation_data.sav diff --git a/examples/data/pickle_pandas_mock_regression_pipeline_testing.sav b/examples/data/sample_reg_pipeline_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_regression_pipeline_testing.sav rename to examples/data/sample_reg_pipeline_data.sav diff --git a/examples/data/pickle_pandas_mock_regression_pipeline_ytest.sav b/examples/data/sample_reg_pipeline_ytest_data.sav similarity index 100% rename from examples/data/pickle_pandas_mock_regression_pipeline_ytest.sav rename to examples/data/sample_reg_pipeline_ytest_data.sav diff --git a/examples/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav b/examples/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav similarity index 100% rename from examples/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav rename to examples/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav diff --git a/examples/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav b/examples/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav similarity index 100% rename from examples/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav rename to examples/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav diff --git a/examples/model/regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav b/examples/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav similarity index 100% rename from examples/model/regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav rename to examples/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py b/examples/pipeline/bc_tabular_credit/creditCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py rename to examples/pipeline/bc_tabular_credit/creditCustomClass.py diff --git a/examples/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav b/examples/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav similarity index 100% rename from examples/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav rename to examples/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav diff --git a/examples/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav b/examples/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav similarity index 100% rename from examples/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav rename to examples/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py b/examples/pipeline/mc_tabular_toxic/toxicCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py rename to examples/pipeline/mc_tabular_toxic/toxicCustomClass.py diff --git a/examples/pipeline/regression_tabular_donation/regression_pipeline_donation_sklearn.pipeline.Pipeline.sav b/examples/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav similarity index 100% rename from examples/pipeline/regression_tabular_donation/regression_pipeline_donation_sklearn.pipeline.Pipeline.sav rename to examples/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/__main__.py b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/__main__.py index 95e96a994..b0e9fc692 100644 --- a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/__main__.py +++ b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/__main__.py @@ -2,51 +2,39 @@ from tests.plugin_test import PluginTest if __name__ == "__main__": - # Binary Classification Non-Pipeline - data_path = "tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav" - model_path = ( - "tests/user_defined_files/model/" - "binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav" - ) - ground_truth_path = ( - "tests/user_defined_files/data/" - "pickle_pandas_mock_binary_classification_credit_risk_testing.sav" - ) - ground_truth = "default" - run_pipeline = False - model_type = ModelType.CLASSIFICATION + # # Binary Classification Non-Pipeline + # data_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" + # model_path = "tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav" + # ground_truth_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" + # ground_truth = "default" + # run_pipeline = False + # model_type = ModelType.CLASSIFICATION # # Multiclass Classification Non-Pipeline - # data_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav") - # model_path = ("tests/user_defined_files/model/""multiclass_classification_mock_toxic_" - # "classification_sklearn.linear_model._logistic.LogisticRegression.sav") - # ground_truth_path = ( - # "tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav" - # ) + # data_path = "tests/user_defined_files/data/sample_mc_toxic_data.sav" + # model_path = "tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav" + # ground_truth_path = "tests/user_defined_files/data/sample_mc_toxic_data.sav" # ground_truth = "toxic" # run_pipeline = False # model_type = ModelType.CLASSIFICATION # # Tabular Binary Classification Pipeline - # data_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav") - # model_path = "tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan" - # ground_truth_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav") + # data_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav" + # model_path = "tests/user_defined_files/pipeline/bc_tabular_credit" + # ground_truth_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav" # ground_truth = "default" # run_pipeline = True # model_type = ModelType.CLASSIFICATION - # # Multiclass Classification Pipeline - # data_path = ("tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_" - # "classification_testing.sav") - # model_path = "tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification" - # ground_truth_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav") - # ground_truth = "toxic" - # run_pipeline = True - # model_type = ModelType.CLASSIFICATION + # Multiclass Classification Pipeline + data_path = "tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav" + model_path = "tests/user_defined_files/pipeline/mc_tabular_toxic" + ground_truth_path = ( + "tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav" + ) + ground_truth = "toxic" + run_pipeline = True + model_type = ModelType.CLASSIFICATION core_modules_path = "" diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_bc_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_bc_credit_data.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_mc_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/data/sample_mc_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py rename to stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/unit_tests/test_algo.py b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/unit_tests/test_algo.py index 1a4760dd0..9bd0c3e2e 100644 --- a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/unit_tests/test_algo.py +++ b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/tests/user_defined_files/unit_tests/test_algo.py @@ -15,19 +15,15 @@ def test_discover_plugin(): - PluginManager.discover(str(Path().absolute() / "../../../test-engine-core-modules")) + PluginManager.discover( + str(Path().absolute() / "../../../../test-engine-core-modules") + ) # Variables for testing -valid_data_path = "tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav" -valid_model_path = ( - "tests/user_defined_files/model/" - "binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav" -) -valid_ground_truth_path = ( - "tests/user_defined_files/data/" - "pickle_pandas_mock_binary_classification_credit_risk_testing.sav" -) +valid_data_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" +valid_model_path = "tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav" +valid_ground_truth_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" test_string = "data_str" test_int = 1 diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/__main__.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/__main__.py index ab554d29c..0cbc5c927 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/__main__.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/__main__.py @@ -3,47 +3,36 @@ if __name__ == "__main__": # Binary Classification Non-Pipeline - data_path = "tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav" - model_path = ( - "tests/user_defined_files/model/" - "binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav" - ) - ground_truth_path = "tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav" + data_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" + model_path = "tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav" + ground_truth_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" ground_truth = "default" sensitive_feature = ["gender"] run_pipeline = False model_type = ModelType.CLASSIFICATION # # Multiclass Classification Non-Pipeline - # data_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav") - # model_path = ("tests/user_defined_files/model/multiclass_classification_mock_toxic_" - # "classification_sklearn.linear_model._logistic.LogisticRegression.sav") - # ground_truth_path = ( - # "tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav" - # ) + # data_path = "tests/user_defined_files/data/sample_mc_toxic_data.sav" + # model_path = "tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav" + # ground_truth_path = "tests/user_defined_files/data/sample_mc_toxic_data.sav" # ground_truth = "toxic" # sensitive_feature = ["gender"] # run_pipeline = False # model_type = ModelType.CLASSIFICATION # # Tabular Binary Classification Pipeline - # data_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav") - # model_path = "tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan" - # ground_truth_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav") + # data_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav" + # model_path = "tests/user_defined_files/pipeline/bc_tabular_credit" + # ground_truth_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav" # ground_truth = "default" # sensitive_feature = ["gender"] # run_pipeline = True # model_type = ModelType.CLASSIFICATION # # Multiclass Classification Pipeline - # data_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav") - # model_path = "tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification" - # ground_truth_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav") + # data_path = "tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav" + # model_path = "tests/user_defined_files/pipeline/mc_tabular_toxic" + # ground_truth_path = "tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav" # ground_truth = "toxic" # sensitive_feature = ["gender"] # run_pipeline = True diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_bc_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_bc_credit_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_mc_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/data/sample_mc_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/unit_tests/test_algo.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/unit_tests/test_algo.py index 9fa94815c..f653f5933 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/unit_tests/test_algo.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tests/user_defined_files/unit_tests/test_algo.py @@ -15,19 +15,15 @@ def test_discover_plugin(): - PluginManager.discover(str(Path().absolute() / "../../../test-engine-core-modules")) + PluginManager.discover( + str(Path().absolute() / "../../../../test-engine-core-modules") + ) # Variables for testing -valid_data_path = "tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav" -valid_model_path = ( - "tests/user_defined_files/model/" - "binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav" -) -valid_ground_truth_path = ( - "tests/user_defined_files/data/" - "pickle_pandas_mock_binary_classification_credit_risk_testing.sav" -) +valid_data_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" +valid_model_path = "tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav" +valid_ground_truth_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" test_string = "data_str" test_int = 1 diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py index 2cae62969..1718a6531 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py @@ -2,32 +2,31 @@ from tests.plugin_test import PluginTest if __name__ == "__main__": - # Regression Non-Pipeline - data_path = "tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav" - model_path = ( - "tests/user_defined_files/model/" - "regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav" + # # Regression Non-Pipeline + # data_path = "tests/user_defined_files/data/sample_reg_donation_data.sav" + # model_path = "tests/user_defined_files/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav" + # ground_truth_path = "tests/user_defined_files/data/sample_reg_donation_data.sav" + # ground_truth = "donation" + # sensitive_feature = ["gender"] + # run_pipeline = False + # model_type = ModelType.REGRESSION + + # Regression Binary Classification Pipeline + data_path = "tests/user_defined_files/data/sample_reg_pipeline_data.sav" + model_path = "tests/user_defined_files/pipeline/regression_tabular_donation" + ground_truth_path = ( + "tests/user_defined_files/data/sample_reg_pipeline_ytest_data.sav" ) - ground_truth_path = "tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav" ground_truth = "donation" sensitive_feature = ["gender"] - run_pipeline = False + run_pipeline = True model_type = ModelType.REGRESSION - # # Regression Binary Classification Pipeline - # data_path = "tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_testing.sav" - # model_path = "tests/user_defined_files/pipeline/regression_tabular_donation" - # ground_truth_path = "tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_ytest.sav" - # ground_truth = "donation" - # sensitive_feature = ["gender"] - # run_pipeline = True - # model_type = ModelType.REGRESSION - core_modules_path = "" plugin_argument_values = { "sensitive_feature": sensitive_feature, } - + # ===================================================================================== # NOTE: Do not modify the code below # ===================================================================================== diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/sample_reg_donation_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/sample_reg_donation_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_testing.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/sample_reg_pipeline_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_testing.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/sample_reg_pipeline_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_ytest.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/sample_reg_pipeline_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_ytest.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/data/sample_reg_pipeline_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/model/regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/model/regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/regression_pipeline_donation_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/regression_pipeline_donation_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/unit_tests/test_algo.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/unit_tests/test_algo.py index ee9c89eac..94437c68c 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/unit_tests/test_algo.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/unit_tests/test_algo.py @@ -15,20 +15,15 @@ def test_discover_plugin(): - PluginManager.discover(str(Path().absolute() / "../../../test-engine-core-modules")) + PluginManager.discover( + str(Path().absolute() / "../../../../test-engine-core-modules") + ) # Variables for testing -valid_data_path = ( - "tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav" -) -valid_model_path = ( - "tests/user_defined_files/model/" - "regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav" -) -valid_ground_truth_path = ( - "tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav" -) +valid_data_path = "tests/user_defined_files/data/sample_reg_donation_data.sav" +valid_model_path = "tests/user_defined_files/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav" +valid_ground_truth_path = "tests/user_defined_files/data/sample_reg_donation_data.sav" test_string = "data_str" test_int = 1 diff --git a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/__main__.py b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/__main__.py index 3db63f35c..5a1625f90 100644 --- a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/__main__.py +++ b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/__main__.py @@ -5,9 +5,7 @@ # Image Pipeline data_path = "tests/user_defined_files/data/raw_fashion_image_10" model_path = "tests/user_defined_files/pipeline/multiclass_classification_image_mnist_fashion" - ground_truth_path = ( - "tests/user_defined_files/data/pickle_pandas_fashion_mnist_annotated_labels_10.sav" - ) + ground_truth_path = "tests/user_defined_files/data/pickle_pandas_fashion_mnist_annotated_labels_10.sav" ground_truth = "label" run_pipeline = True model_type = ModelType.CLASSIFICATION diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/__main__.py b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/__main__.py index 95e96a994..af731c824 100644 --- a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/__main__.py +++ b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/__main__.py @@ -3,47 +3,33 @@ if __name__ == "__main__": # Binary Classification Non-Pipeline - data_path = "tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav" - model_path = ( - "tests/user_defined_files/model/" - "binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav" - ) - ground_truth_path = ( - "tests/user_defined_files/data/" - "pickle_pandas_mock_binary_classification_credit_risk_testing.sav" - ) + data_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" + model_path = "tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav" + ground_truth_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" ground_truth = "default" run_pipeline = False model_type = ModelType.CLASSIFICATION # # Multiclass Classification Non-Pipeline - # data_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav") - # model_path = ("tests/user_defined_files/model/""multiclass_classification_mock_toxic_" - # "classification_sklearn.linear_model._logistic.LogisticRegression.sav") - # ground_truth_path = ( - # "tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav" - # ) + # data_path = "tests/user_defined_files/data/sample_mc_toxic_data.sav" + # model_path = "tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav" + # ground_truth_path = "tests/user_defined_files/data/sample_mc_toxic_data.sav" # ground_truth = "toxic" # run_pipeline = False # model_type = ModelType.CLASSIFICATION # # Tabular Binary Classification Pipeline - # data_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav") - # model_path = "tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan" - # ground_truth_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav") + # data_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav" + # model_path = "tests/user_defined_files/pipeline/bc_tabular_credit" + # ground_truth_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav" # ground_truth = "default" # run_pipeline = True # model_type = ModelType.CLASSIFICATION # # Multiclass Classification Pipeline - # data_path = ("tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_" - # "classification_testing.sav") - # model_path = "tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification" - # ground_truth_path = ("tests/user_defined_files/data/" - # "pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav") + # data_path = "tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav" + # model_path = "tests/user_defined_files/pipeline/mc_tabular_toxic" + # ground_truth_path = "tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav" # ground_truth = "toxic" # run_pipeline = True # model_type = ModelType.CLASSIFICATION diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_bc_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_bc_credit_data.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_mc_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/data/sample_mc_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py similarity index 75% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py rename to stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py index f7238ec85..35130ab96 100644 --- a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py +++ b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py @@ -1,17 +1,17 @@ from sklearn.preprocessing import LabelEncoder -class featureEngineeringStage(): + +class featureEngineeringStage: def __init__(self, columns, selection): self.columns = columns self.selection = selection - + def transform(self, X, y=None): - """Transform columns of X using LabelEncoder. - """ + """Transform columns of X using LabelEncoder.""" output = X.copy() for col in self.columns: output[col] = LabelEncoder().fit_transform(output[col]) return output[self.selection] - + def fit(self, X, y=None): - return self \ No newline at end of file + return self diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/unit_tests/test_algo.py b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/unit_tests/test_algo.py index 4ea6cb65d..25f01d1ff 100644 --- a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/unit_tests/test_algo.py +++ b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/tests/user_defined_files/unit_tests/test_algo.py @@ -18,19 +18,15 @@ def test_discover_plugin(): - PluginManager.discover(str(Path().absolute() / "../../../test-engine-core-modules")) + PluginManager.discover( + str(Path().absolute() / "../../../../test-engine-core-modules") + ) # Variables for testing -valid_data_path = "tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav" -valid_model_path = ( - "tests/user_defined_files/model/" - "binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav" -) -valid_ground_truth_path = ( - "tests/user_defined_files/data/" - "pickle_pandas_mock_binary_classification_credit_risk_testing.sav" -) +valid_data_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" +valid_model_path = "tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav" +valid_ground_truth_path = "tests/user_defined_files/data/sample_bc_credit_data.sav" test_string = "data_str" test_int = 1 diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/__main__.py b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/__main__.py index 8ad3a88a9..e58acf488 100644 --- a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/__main__.py +++ b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/__main__.py @@ -3,31 +3,20 @@ if __name__ == "__main__": # # Tabular Binary Classification Pipeline - # data_path = ( - # "tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav" - # ) - # model_path = ( - # "tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan" - # ) - # ground_truth_path = ( - # "tests/user_defined_files/data/" - # "pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav" - # ) + # data_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav" + # model_path = "tests/user_defined_files/pipeline/bc_tabular_credit" + # ground_truth_path = "tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav" # ground_truth = "default" # run_pipeline = True # model_type = ModelType.CLASSIFICATION - # # Regression Non-Pipeline - # data_path = "tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav" - # model_path = ("tests/user_defined_files/model/" - # "regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav") - # ground_truth_path = ( - # "tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav" - # ) - # ground_truth = "donation" - # run_pipeline = False - # model_type = ModelType.REGRESSION + # Regression Non-Pipeline + data_path = "tests/user_defined_files/data/sample_reg_donation_data.sav" + model_path = "tests/user_defined_files/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav" + ground_truth_path = "tests/user_defined_files/data/sample_reg_donation_data.sav" + ground_truth = "donation" + run_pipeline = False + model_type = ModelType.REGRESSION # Image Pipeline data_path = "tests/user_defined_files/data/raw_fashion_image_10" diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_bc_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_bc_credit_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_testing.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_bc_pipeline_credit_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_binary_classification_pipeline_credit_risk_ytest.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_bc_pipeline_credit_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_mc_pipeline_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_pipeline_toxic_classification_ytest.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_mc_pipeline_toxic_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_mc_toxic_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_multiclass_classification_toxic_classification_testing.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_mc_toxic_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_reg_donation_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_regression_donation_testing.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_reg_donation_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_testing.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_reg_pipeline_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_testing.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_reg_pipeline_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_ytest.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_reg_pipeline_ytest_data.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/pickle_pandas_mock_regression_pipeline_ytest.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/data/sample_reg_pipeline_ytest_data.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/binary_classification_mock_credit_risk_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/sample_bc_credit_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/multiclass_classification_mock_toxic_classification_sklearn.linear_model._logistic.LogisticRegression.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/sample_mc_toxic_sklearn_linear.LogisticRegression.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/regression_mock_donation_sklearn.linear_model._base.LinearRegression.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/model/sample_reg_donation_sklearn_linear.LogisticRegression.sav diff --git a/examples/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py similarity index 75% rename from examples/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py index f7238ec85..35130ab96 100644 --- a/examples/pipeline/binary_classification_tabular_credit_loan/creditCustomClass.py +++ b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/bc_tabular_credit/creditCustomClass.py @@ -1,17 +1,17 @@ from sklearn.preprocessing import LabelEncoder -class featureEngineeringStage(): + +class featureEngineeringStage: def __init__(self, columns, selection): self.columns = columns self.selection = selection - + def transform(self, X, y=None): - """Transform columns of X using LabelEncoder. - """ + """Transform columns of X using LabelEncoder.""" output = X.copy() for col in self.columns: output[col] = LabelEncoder().fit_transform(output[col]) return output[self.selection] - + def fit(self, X, y=None): - return self \ No newline at end of file + return self diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/binary_classification_tabular_credit_loan/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/bc_tabular_credit/sample_bc_credit_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/multiclass_classification_tabular_toxic_classification/multiclass_classification_pipeline_toxic_classification_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/mc_tabular_toxic/sample_mc_toxic_sklearn_linear.Pipeline.sav diff --git a/examples/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py similarity index 75% rename from examples/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py index f7238ec85..35130ab96 100644 --- a/examples/pipeline/multiclass_classification_tabular_toxic_classification/toxicCustomClass.py +++ b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/mc_tabular_toxic/toxicCustomClass.py @@ -1,17 +1,17 @@ from sklearn.preprocessing import LabelEncoder -class featureEngineeringStage(): + +class featureEngineeringStage: def __init__(self, columns, selection): self.columns = columns self.selection = selection - + def transform(self, X, y=None): - """Transform columns of X using LabelEncoder. - """ + """Transform columns of X using LabelEncoder.""" output = X.copy() for col in self.columns: output[col] = LabelEncoder().fit_transform(output[col]) return output[self.selection] - + def fit(self, X, y=None): - return self \ No newline at end of file + return self diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/regression_tabular_donation/regression_pipeline_donation_sklearn.pipeline.Pipeline.sav b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/regression_tabular_donation/regression_pipeline_donation_sklearn.pipeline.Pipeline.sav rename to stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/unit_tests/test_algo.py b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/unit_tests/test_algo.py index aa3d90073..1a36e036e 100644 --- a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/unit_tests/test_algo.py +++ b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/tests/user_defined_files/unit_tests/test_algo.py @@ -18,7 +18,9 @@ def test_discover_plugin(): - PluginManager.discover(str(Path().absolute() / "../../../test-engine-core-modules")) + PluginManager.discover( + str(Path().absolute() / "../../../../test-engine-core-modules") + ) # Variables for testing diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/widgets/images/adv_samples/0.png b/stock-plugins/aiverify.stock.robustness-toolbox/widgets/images/adv_samples/0.png index 3a0a3b399cb9148201b6b3948aca4b0156549036..38fc6214db1ca137ce1ee1d7215a3ac960cf35db 100644 GIT binary patch delta 2642 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 A*8l(j delta 2636 zcmV-S3bXaw6x9@vB!3)9L_t(|oXuU^mh319mHhuda~@Jrgw4%ldJPZNxgek-Y)q<} z#zQ;?4d*PrYT20Kbs~}?JhmbcAq$zo^{F)LK+tU-<663RO9twQ5_Hnn%3#0YkA=(w z$MmI*^;ODjDS8rWxx9uR&A%z{ITZOFL!Najub6$%w=29$Q-7}bQzFq5z9p3`vrN8& zGqV|YcBBX~&yj17-_5?`oO|0N!1XNXMZRlI4j8;@VXEGnGUw3%-Ho21p)ok@cRncX zfwN{;I^y#nWloTsZUfz!-+ zMx}-X54(C$(|?BDpH1sagemBFr5>h&deFIstD#}>M+0@^ivk*UtnlUjKIV+Fy!86Ioe381gdq0Kcen%5ICx~J23A+lcMk9 zR6^fiFvHb_7sj*xsQW$gA~5YdHA%2_iOgUfluR%EbAN{4P#jcWaX0^lX`P8nJ!=L> zv3v0lXk<1rO69*&D^7mRPw_Z|3Z6C<$ko^xHyzIN%ISkR6@(XYD-A-gOQ%;c>tObd zCLC@pm|N*Uxcf0jR2cW`7%kWKX%it2*@c(4u}wXe!>u%<>2jE|c*?6(JYNcMq!V#l zg^Fwk8-L>L@p@L_3*_yT?z=+j;&iI_YhbgCwm*(dvIQF0xCjUhc39?xD+v>8@*&%| zsLYm5d;WPJo+va}%h$}8zx$z_w_jB>DMwdMiQUk(7rsemHvnQcYk-hofp`~ZkwaF0Z`ixX~&>mV?WV| z_Sbe>2_d~xby{8&UDihM_jHV*K>>DcS1cMJ&?YjiqTDb&)#0mQit^A$Bx9CT+)#u^ zFaVFFS!{K9Kwk_^BEx^zp)3sJE$lw)*6YHqPRX)21dHr3vd8yY!jw*-74W($?<*tK z#D5VF4r!Df(2|^`z7=D)_@+LA>+nj;T9pmTr6h99g8t z7n1=*MJwRG#m0dk1kx1rdp_MU<5OJ&ute%L5E@fJB)C;Aq>2qv*uLt`px;l^OP;={ zy~<5VOpa=rbjN_zJ+tVITZ7AMCfbT`;eXOAFnGgri38&$k7r3O`(XD1S#HGTIt43f zmU2*N6`{Yl@Mn*|7X9}qL%r0{+YRB)`wvs83^s((he9UH(AVo*+7n7~YV@3D=u3uKhIgT;mDx>RK{e!l4J0e`6- z(i9TAcC0*A-BqQ)NsYDMU@c`uNsgHPq`7of-BD@C+YA>2owZ4<9=&6AAxmB(n=~8u)iYh00>_1%-Jw=xEW_O6MN27%c30x9&(rCz3u@ zx3{4KgH^wORIEozi+hZNgdlV zw1o$)fdKMWOi=*<%=f?!JBv-3%%8owbl7C|I7vwH+zZya)vXf-$G^f<${+>ZVpDZmR`uNr98<{vO zk+o-uhOExOmxCO9U7$~Z#Q8{VDWbZqL-TEAyOQr^vY#pX;puSj4U_@%Vnn2yYFG+J~|gK9E7g?%%W(1Z4yU2$IC(`)re= zY*5s=0)VzCjIdR@=aVkyphRV@d69fE1UP;`X8|8TT6dBNUCdRhHFN_^r6j6&{B-?z z7Q?#(S*{;w6n~Qk34gs$5)e@>-k+;_z0w%R?=0`lo&YcRRX40|<1MT1S!mxJJfN+R zS;!e>2nU<-4OK!zy?{HXGV84X6rrwUKgF-0LBXh(t_C$Bv{4qxoS37}dG_1SdO}G( zGCWM8=0uSQ3k>X(V)sk3HOou42_w$%&6?TA$t}KM$ zW5dD=@kl`(IFvwxoluFg|2#@l+*6%+{~czBlgld2;3;lZ)n;*u@%*&fHS6suJK-3Tf7 ze&XD)uLo?OQhCj!u+;Ss@Jz(4U-b=Cr<2}~=hsU63qRs;g=Q_%a;-C;4r+orcf}G=;74Yi$+B?&l2dx0Ah{J!B6{q1Gf Date: Tue, 20 Jun 2023 22:39:59 +0800 Subject: [PATCH 02/30] removed dir for fmtr to further shorten path --- .../pyproject.toml | 1 - .../tox.ini | 26 ++++++++++++++++++ .../__main__.py | 2 +- .../regressionCustomClass.py | 0 ...e_reg_donation_sklearn_linear.Pipeline.sav | Bin 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/{regression_tabular_donation => }/regressionCustomClass.py (100%) rename stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/{regression_tabular_donation => }/sample_reg_donation_sklearn_linear.Pipeline.sav (100%) diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml index 487d14ee5..0d370aa7a 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml @@ -4,7 +4,6 @@ version = "0.9.0" description = "" authors = ["AI Verify"] readme = "README.md" -packages = [{include = "fairness_metrics_toolbox_for_classification"}] [tool.poetry.dependencies] python = "^3.10" diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini new file mode 100644 index 000000000..0003cfe15 --- /dev/null +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini @@ -0,0 +1,26 @@ +[tox] +requires = + tox>=4 +env_list = py310,py31 + +[testenv] +allowlist_externals = + bash + find +description = run unit tests +deps = + -rrequirements.txt + pytest-mock + pytest-html + pytest-json + pytest-cov + coverage + flake8 + flake8-html + anybadge + pytest>=7 +commands = + pip install ../../../../test-engine-core/dist/test_engine_core-0.9.0.tar.gz + find ../../../../test-engine-core-modules -type f -name 'requirements.txt' -exec pip install -r "{}" \; + bash ci/run-test.sh -m + diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py index 1718a6531..a93bae8cf 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py @@ -13,7 +13,7 @@ # Regression Binary Classification Pipeline data_path = "tests/user_defined_files/data/sample_reg_pipeline_data.sav" - model_path = "tests/user_defined_files/pipeline/regression_tabular_donation" + model_path = "tests/user_defined_files/pipeline" ground_truth_path = ( "tests/user_defined_files/data/sample_reg_pipeline_ytest_data.sav" ) diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/regressionCustomClass.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regressionCustomClass.py similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/regressionCustomClass.py rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regressionCustomClass.py diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/sample_reg_donation_sklearn_linear.Pipeline.sav similarity index 100% rename from stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/regression_tabular_donation/sample_reg_donation_sklearn_linear.Pipeline.sav rename to stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/tests/user_defined_files/pipeline/sample_reg_donation_sklearn_linear.Pipeline.sav From d35d3b885c0b991d718ab57e43f12141d80c1f18 Mon Sep 17 00:00:00 2001 From: Kelvin Kok Date: Tue, 20 Jun 2023 22:50:15 +0800 Subject: [PATCH 03/30] removed untested tox file and reverted pyproject for fmtc --- .../pyproject.toml | 1 + .../tox.ini | 26 ------------------- 2 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml index 0d370aa7a..487d14ee5 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/pyproject.toml @@ -4,6 +4,7 @@ version = "0.9.0" description = "" authors = ["AI Verify"] readme = "README.md" +packages = [{include = "fairness_metrics_toolbox_for_classification"}] [tool.poetry.dependencies] python = "^3.10" diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini deleted file mode 100644 index 0003cfe15..000000000 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/tox.ini +++ /dev/null @@ -1,26 +0,0 @@ -[tox] -requires = - tox>=4 -env_list = py310,py31 - -[testenv] -allowlist_externals = - bash - find -description = run unit tests -deps = - -rrequirements.txt - pytest-mock - pytest-html - pytest-json - pytest-cov - coverage - flake8 - flake8-html - anybadge - pytest>=7 -commands = - pip install ../../../../test-engine-core/dist/test_engine_core-0.9.0.tar.gz - find ../../../../test-engine-core-modules -type f -name 'requirements.txt' -exec pip install -r "{}" \; - bash ci/run-test.sh -m - From 818efbc0680e52102f73ff120eb41f5087290c9f Mon Sep 17 00:00:00 2001 From: Philip-Tan <133188611+Philip-Tan@users.noreply.github.com> Date: Wed, 28 Jun 2023 10:48:38 +0800 Subject: [PATCH 04/30] Update pull_request_template.md Added DCO --- .github/pull_request_template.md | 44 +++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a140bb11a..e8e3c33f9 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -36,6 +36,7 @@ Please check all the boxes that apply to this pull request using "x": - [ ] I have squashed or reorganized my commits into logical units. - [ ] I have added any necessary dependencies or packages to the project's build configuration. - [ ] I have performed a self-review of my own code. +- [ ] I have read, understood and agree to the Developer Certificate of Origin below, which this project utilises. ## Screenshots (if applicable) @@ -43,4 +44,45 @@ Please check all the boxes that apply to this pull request using "x": ## Additional Notes -[Add any additional information or context that might be relevant to reviewers.] \ No newline at end of file +[Add any additional information or context that might be relevant to reviewers.] + +
+ Developer Certificate of Origin + + ``` +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + ``` +
From deafd8b07693f251ad9402c549173ffb40738f05 Mon Sep 17 00:00:00 2001 From: Norman Chia Date: Mon, 10 Jul 2023 12:36:21 +0800 Subject: [PATCH 05/30] fix typo in one of the process check --- .../inputs/config_reproducibility.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock-plugins/aiverify.stock.process-checklist/inputs/config_reproducibility.ts b/stock-plugins/aiverify.stock.process-checklist/inputs/config_reproducibility.ts index 69e34fe36..6d767aa1f 100644 --- a/stock-plugins/aiverify.stock.process-checklist/inputs/config_reproducibility.ts +++ b/stock-plugins/aiverify.stock.process-checklist/inputs/config_reproducibility.ts @@ -85,7 +85,7 @@ export const config = { "pid": "3.7.1", "process": "Version control model artefacts by associating each artefact with the version of code, dependencies, and parameters used in training", "metric": "Internal documentation", - "processChecks": "Documentary evidence of version control model artefacts.

Each artefact includes:
- version of codef
- dependencies; and
- parameters used in training" + "processChecks": "Documentary evidence of version control model artefacts.

Each artefact includes:
- version of code
- dependencies; and
- parameters used in training" } ] }, From 82e754135dc3de868ad936566f75bb6301e345d9 Mon Sep 17 00:00:00 2001 From: Philip-Tan <133188611+Philip-Tan@users.noreply.github.com> Date: Mon, 10 Jul 2023 13:44:24 +0800 Subject: [PATCH 06/30] Create config.yml created a config.yml for the issue templates so that blank issue templates will not show up, only feature request and bug fix --- .github/ISSUE_TEMPLATE/config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..3ba13e0ce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false From 60ab5d8702e6de93ab7ea059672573be8f29b1ef Mon Sep 17 00:00:00 2001 From: Philip-Tan <133188611+Philip-Tan@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:06:06 +0800 Subject: [PATCH 07/30] chore/update config.yml added contact_links to github discussion board and foundation website contact page --- .github/ISSUE_TEMPLATE/config.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 3ba13e0ce..8de031b10 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1 +1,8 @@ blank_issues_enabled: false +contact_links: + - name: AI Verify Foundation Contact Page + url: https://aiverifyfoundation.sg/contact-us/?utm_source=Github&utm_medium=referral&utm_campaign=20230607_Queries_from_GitHub + about: Please direct your queries here. + - name: GitHub Discussion Board + url: https://github.com/IMDA-BTG/aiverify/discussions + about: Please ask and answer questions here. From a39bf7694da3826a8b526332198d155a09138421 Mon Sep 17 00:00:00 2001 From: Leong Peck Yoke Date: Wed, 12 Jul 2023 10:47:43 +0800 Subject: [PATCH 08/30] fix order of widgets for classification report --- .../dist/aiverify.stock.reports-0.9.1.zip | Bin 83734 -> 83735 bytes ...-report-for-classification-model.data.json | 387 ++++++++---------- 2 files changed, 178 insertions(+), 209 deletions(-) diff --git a/stock-plugins/aiverify.stock.reports/dist/aiverify.stock.reports-0.9.1.zip b/stock-plugins/aiverify.stock.reports/dist/aiverify.stock.reports-0.9.1.zip index 1ff494f850ef94b382ccaf59f6c9094bafb5de80..a7e25ada61a6939ed68bf8a9c86e456de53e1c28 100644 GIT binary patch delta 4686 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 delta 4674 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 Date: Wed, 12 Jul 2023 21:06:16 +0800 Subject: [PATCH 09/30] chore/update config.yml updated the about for GitHub Discussion Board --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8de031b10..aa7a1b4c4 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,4 +5,4 @@ contact_links: about: Please direct your queries here. - name: GitHub Discussion Board url: https://github.com/IMDA-BTG/aiverify/discussions - about: Please ask and answer questions here. + about: Please share ideas and ask/answer questions publicly here. From 9f3f906fc406c110b9d7baf5c6e22416a990db7b Mon Sep 17 00:00:00 2001 From: Norman Chia Date: Thu, 13 Jul 2023 17:04:43 +0800 Subject: [PATCH 10/30] fix/add fixed zip file --- ...aiverify.stock.process_checklist-0.9.1.zip | Bin 74542 -> 74541 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/stock-plugins/aiverify.stock.process-checklist/dist/aiverify.stock.process_checklist-0.9.1.zip b/stock-plugins/aiverify.stock.process-checklist/dist/aiverify.stock.process_checklist-0.9.1.zip index baa0e96283d027952da3d6944e15450e115ac3fd..4cfe9177ed730a5ce160671a6086b76fe92ede29 100644 GIT binary patch delta 6825 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 From 0582b456bb60bffbc99ad2390a7e2ddf2fc6d444 Mon Sep 17 00:00:00 2001 From: Kelvin Kok Date: Fri, 14 Jul 2023 18:10:31 +0800 Subject: [PATCH 11/30] removed empty line flagged from linting --- .../fairness_metrics_toolbox_for_regression/__main__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py index 2cae62969..113eee97c 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/__main__.py @@ -27,7 +27,6 @@ plugin_argument_values = { "sensitive_feature": sensitive_feature, } - # ===================================================================================== # NOTE: Do not modify the code below # ===================================================================================== From f15cc496a8396accb2ee0128987bfd7ae353d76f Mon Sep 17 00:00:00 2001 From: Kelvin Kok Date: Fri, 14 Jul 2023 18:13:17 +0800 Subject: [PATCH 12/30] modified flake8 file to ignore additional user-added files and tests --- .flake8 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.flake8 b/.flake8 index 51d5a5cea..1bb9d5ef7 100644 --- a/.flake8 +++ b/.flake8 @@ -1,3 +1,4 @@ [flake8] max-line-length = 120 -extend-ignore = E203 \ No newline at end of file +extend-ignore = E203 +exclude = *.tox, tests, utils \ No newline at end of file From 43c19c257edaa4946e03da84cab9ff4c517ae505 Mon Sep 17 00:00:00 2001 From: imda-kwokwk Date: Mon, 17 Jul 2023 14:42:28 +0800 Subject: [PATCH 13/30] fix(pre-merge check): fix dependencies badge createBadges.py - the dependencies badge displays "error" when 1 vulnerability is found. This is due to the pattern matching text only cater to "vulnerabilities" instead of "vulnerability" --- .../algorithms/accumulated_local_effect/ci/createBadges.py | 2 +- .../ci/createBadges.py | 2 +- .../fairness_metrics_toolbox_for_regression/ci/createBadges.py | 2 +- .../algorithms/blur_corruptions/ci/createBadges.py | 2 +- .../algorithms/digital_corruptions/ci/createBadges.py | 2 +- .../algorithms/environment_corruptions/ci/createBadges.py | 2 +- .../algorithms/general_corruptions/ci/createBadges.py | 2 +- .../algorithms/partial_dependence_plot/ci/createBadges.py | 2 +- .../algorithms/robustness_toolbox/ci/createBadges.py | 2 +- .../algorithms/shap_toolbox/ci/createBadges.py | 2 +- test-engine-app/ci/createBadges.py | 2 +- test-engine-core-modules/ci/createBadges.py | 2 +- test-engine-core/ci/createBadges.py | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/ci/createBadges.py b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/ci/createBadges.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/ci/createBadges.py b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/ci/createBadges.py b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/digital_corruptions/ci/createBadges.py b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/digital_corruptions/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/digital_corruptions/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/digital_corruptions/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/environment_corruptions/ci/createBadges.py b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/environment_corruptions/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/environment_corruptions/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/environment_corruptions/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/general_corruptions/ci/createBadges.py b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/general_corruptions/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/general_corruptions/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/general_corruptions/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/ci/createBadges.py b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/ci/createBadges.py b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/ci/createBadges.py b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/ci/createBadges.py index 93ead6b3d..b0082c862 100644 --- a/stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/ci/createBadges.py +++ b/stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox/ci/createBadges.py @@ -71,7 +71,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/test-engine-app/ci/createBadges.py b/test-engine-app/ci/createBadges.py index 9cf83142e..8796f22c8 100644 --- a/test-engine-app/ci/createBadges.py +++ b/test-engine-app/ci/createBadges.py @@ -76,7 +76,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/test-engine-core-modules/ci/createBadges.py b/test-engine-core-modules/ci/createBadges.py index 9cf83142e..8796f22c8 100644 --- a/test-engine-core-modules/ci/createBadges.py +++ b/test-engine-core-modules/ci/createBadges.py @@ -76,7 +76,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) diff --git a/test-engine-core/ci/createBadges.py b/test-engine-core/ci/createBadges.py index 9cf83142e..8796f22c8 100644 --- a/test-engine-core/ci/createBadges.py +++ b/test-engine-core/ci/createBadges.py @@ -76,7 +76,7 @@ def create_badges() -> None: if content.find("No known vulnerabilities found") != -1: numVul = "0" else: - pattern = r"Found (\d+) known vulnerabilities in" + pattern = r"Found (\d+) known vulnerabilit" match = re.search(pattern, content) if match: numVul = match.group(1) From 3d792a41a8620ad5aac420a3a7aa1ade3ef896a9 Mon Sep 17 00:00:00 2001 From: Kelvin Kok Date: Mon, 17 Jul 2023 23:25:22 +0800 Subject: [PATCH 14/30] fixed filename issues for core unit test --- ...=> sample_bc_credit_sklearn_linear.Pipeline.sav} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename test-engine-core/tests/pipeline/{binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav => sample_bc_credit_sklearn_linear.Pipeline.sav} (100%) diff --git a/test-engine-core/tests/pipeline/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav b/test-engine-core/tests/pipeline/sample_bc_credit_sklearn_linear.Pipeline.sav similarity index 100% rename from test-engine-core/tests/pipeline/binary_classification_pipeline_credit_risk_sklearn.pipeline.Pipeline.sav rename to test-engine-core/tests/pipeline/sample_bc_credit_sklearn_linear.Pipeline.sav From d68743682b790e7dc15b4c9109075b385111a956 Mon Sep 17 00:00:00 2001 From: Norman Chia Date: Tue, 18 Jul 2023 17:59:20 +0800 Subject: [PATCH 15/30] fix/issue-template-type --- .github/ISSUE_TEMPLATE/bug_report.md | 34 ---------- .github/ISSUE_TEMPLATE/bug_report.yml | 74 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 19 ------ .github/ISSUE_TEMPLATE/feature_request.yml | 48 ++++++++++++++ 4 files changed, 122 insertions(+), 53 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 998499598..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,34 +0,0 @@ -## Bug Report - -**Description:** -Provide a clear and concise description of the bug you encountered. - -**Expected Behavior:** -Explain what you expected to happen when performing the steps above. - -**Actual Behavior:** -Describe what actually happened instead of the expected behavior. - -**Steps to Reproduce:** -List the steps to reproduce the bug. Be as specific as possible. - -**Environment:** -- Operating System and Version: -- AI Verify Version: -- Any other relevant information (e.g. version of related package dependencies installed): - -Did you build using source code or from docker file? If from source code, please provide the below information: -- Python Version: -- Node Version: -- Redis Version: -- Mongo Version: -- Screen Resolution: - -**Screenshots/Code Snippets:** -If applicable, include screenshots or code snippets that demonstrate the issue. - -**Additional Context:** -Add any additional context about the problem here. - -**Possible Solution (Optional):** -If you have any ideas or suggestions for a possible solution, you can include them here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..3c2a2ade6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,74 @@ +name: Bug Report +description: File a bug/issue +title: "[BUG] " +labels: ["bug-report", "needs-triage"] +body: +- type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for the bug you encountered. + options: + - label: I have searched the existing issues + required: true +- type: textarea + attributes: + label: Description + description: Provide a clear and concise description of the bug you encountered. + validations: + required: false +- type: textarea + attributes: + label: Current Behavior + description: A concise description of what you're experiencing. + validations: + required: false +- type: textarea + attributes: + label: Expected Behavior + description: A concise description of what you expected to happen. + validations: + required: false +- type: textarea + attributes: + label: Steps To Reproduce + description: List the steps to reproduce the behavior. Be as specific as possible + validations: + required: false +- type: textarea + attributes: + label: Environment + value: | + - Operating System and Version: + - AI Verify Version: + - Any other relevant information (e.g. version of related package dependencies installed): + + Did you build using source code or from docker file? If from source code, please provide the below information: + - Python Version: + - Node Version: + - Redis Version: + - Mongo Version: + - Screen Resolution: + render: markdown + validations: + required: false +- type: textarea + attributes: + label: Screenshots/ Code snippets + description: | + Include screenshots or code snippets that demonstrate the issue. + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. + validations: + required: false +- type: textarea + attributes: + label: Additional Context + description: Add any additional context about the problem here. + validations: + required: false +- type: textarea + attributes: + label: Possible Solution (Optional) + description: If you have any ideas or suggestions for a possible solution, you can include them here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 4ed593846..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,19 +0,0 @@ -## Feature Request - -**Description:** -Provide a clear and concise description of the feature you would like to request. - -**Is your feature request related to a problem/limitation? Please describe:** -Explain any problems or limitations you are currently facing that this feature could help address. - -**Describe the solution you'd like:** -Provide a detailed description of the feature you would like to see implemented. - -**Alternatives (Optional):** -If applicable, describe any alternative solutions or features you have considered. - -**Additional Context (Optional):** -Add any additional context or information about the feature request here. - -**Related Issues/PRs (Optional):** -If there are any related issues or pull requests, you can mention them here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 000000000..e6394ea84 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,48 @@ +name: Feature Request +description: Suggest an idea for AI Verify +title: "[FEATURE] <title>" +labels: ["feature-request", "needs-triage"] +body: +- type: checkboxes + attributes: + label: Is there an existing issue for this? + description: Please search to see if an issue already exists for this feature. + options: + - label: I have searched the existing issues + required: true +- type: textarea + attributes: + label: Description + description: Provide a clear and concise description of the feature you would like to request. + validations: + required: false +- type: textarea + attributes: + label: Is your feature request related to a problem/limitation? + description: Explain any problems or limitations you are currently facing that this feature could help address. + validations: + required: false +- type: textarea + attributes: + label: Describe the solution you'd like + description: Provide a detailed description of the feature you would like to see implemented. + validations: + required: false +- type: textarea + attributes: + label: Alternatives + description: If applicable, describe any alternative solutions or features you have considered. + validations: + required: false +- type: textarea + attributes: + label: Additional Context + description: Add any additional context or information about the feature request here. + validations: + required: false +- type: textarea + attributes: + label: Related Issues/PRs + description: If there are any related issues or pull requests, you can mention them here. + validations: + required: false From a67311df59b0a828aae88dfb0a47c18b1c395857 Mon Sep 17 00:00:00 2001 From: normanchia-imda <132418893+normanchia-imda@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:47:07 +0800 Subject: [PATCH 16/30] fix/change label tag --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 3c2a2ade6..baa4cd66e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,7 @@ name: Bug Report description: File a bug/issue title: "[BUG] <title>" -labels: ["bug-report", "needs-triage"] +labels: ["bug", "needs-triage"] body: - type: checkboxes attributes: From 0d30553425651b1d042a1acb5a2ded52a0574628 Mon Sep 17 00:00:00 2001 From: normanchia-imda <132418893+normanchia-imda@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:50:36 +0800 Subject: [PATCH 17/30] fix/change label tag --- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index e6394ea84..4ed02a04b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,7 @@ name: Feature Request description: Suggest an idea for AI Verify title: "[FEATURE] <title>" -labels: ["feature-request", "needs-triage"] +labels: ["feature", "needs-triage"] body: - type: checkboxes attributes: From beb80f4c0e5e4aa3d202abf5d79299c7400cd329 Mon Sep 17 00:00:00 2001 From: imda-kwokwk <129362214+imda-kwokwk@users.noreply.github.com> Date: Fri, 21 Jul 2023 15:59:08 +0800 Subject: [PATCH 18/30] fix(codeql) - remove docs and gh-pages branch from push event trigger Remove docs and gh-pages branches from push event trigger as these are documentation, not code changes --- .github/workflows/codeql.yml | 82 ++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..6879db92b --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,82 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "main" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "main" ] + schedule: + - cron: '21 10 * * 5' + +jobs: + analyze: + name: Analyze + # Runner size impacts CodeQL analysis time. To learn more, please see: + # - https://gh.io/recommended-hardware-resources-for-running-codeql + # - https://gh.io/supported-runners-and-hardware-resources + # - https://gh.io/using-larger-runners + # Consider using larger runners for possible analysis time improvements. + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript', 'python' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ] + # Use only 'java' to analyze code written in Java, Kotlin or both + # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" From 4fc73bcabb45f385ca9a0d2c8e2cbfec87e394f5 Mon Sep 17 00:00:00 2001 From: imda-kwokwk <kwok_weng_kong@imda.gov.sg> Date: Fri, 21 Jul 2023 22:05:56 +0800 Subject: [PATCH 19/30] feat(setup-aiverify): upgrade to python3.11 for Dockerfile and dev-script. - upgrade to python3.11 - optimize build time - create aiverify user for docker image, decoupled from user account running the docker image. --- setup-aiverify/aiverify-dev/dev-reset.sh | 33 ++++ .../aiverify-dev/setup-aiverify-dev.sh | 153 ++++++---------- setup-aiverify/aiverify-user/Dockerfile | 172 ++++++++++-------- setup-aiverify/aiverify-user/Dockerfile-WSL | 163 ----------------- setup-aiverify/aiverify-user/docker-build.sh | 2 +- .../aiverify-user/docker-compose.yml | 15 +- setup-aiverify/aiverify-user/docker-pull.sh | 9 + setup-aiverify/aiverify-user/docker-reset.sh | 32 +++- setup-aiverify/aiverify-user/docker-start.sh | 35 +--- setup-aiverify/aiverify-user/docker-stop.sh | 4 +- 10 files changed, 233 insertions(+), 385 deletions(-) create mode 100644 setup-aiverify/aiverify-dev/dev-reset.sh delete mode 100644 setup-aiverify/aiverify-user/Dockerfile-WSL create mode 100644 setup-aiverify/aiverify-user/docker-pull.sh diff --git a/setup-aiverify/aiverify-dev/dev-reset.sh b/setup-aiverify/aiverify-dev/dev-reset.sh new file mode 100644 index 000000000..94f55776d --- /dev/null +++ b/setup-aiverify/aiverify-dev/dev-reset.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +while true; do + echo "WARNING! This will delete all datasets, models, 3rd party plugins, templates and projects" + read -p "Are your sure you want to proceed? [y/n] " yn + case $yn in + [Yy]* ) read -p "Please enter 'reset' to confirm: " userInput; + if [[ "$userInput" == "reset" ]]; then + break; + else + echo "Reset aborted"; + exit; + fi;; + [Nn]* ) echo "Reset aborted"; + exit;; + * ) echo "Please answer yes or no.";; + esac +done + +echo "Resetting aiverify developer environment..." + +echo "Cleanup database..." +mongosh aiverify --quiet --eval "db.dropDatabase()" + +echo "Cleanup redis cache..." +redis-cli flushall + +echo "Delete datasets, models and logs..." +rm -f aiverify/uploads/data/* +rm -f aiverify/uploads/model/* +rm -f aiverify/test-engine-app/logs/* + +echo "aiverify developer reset completed" diff --git a/setup-aiverify/aiverify-dev/setup-aiverify-dev.sh b/setup-aiverify/aiverify-dev/setup-aiverify-dev.sh index ce3deb1eb..350d61aa0 100644 --- a/setup-aiverify/aiverify-dev/setup-aiverify-dev.sh +++ b/setup-aiverify/aiverify-dev/setup-aiverify-dev.sh @@ -1,5 +1,7 @@ #!/bin/bash +# Script to setup the aiverify developer environment + # Check if Node.js is installed if ! which node >/dev/null 2>&1; then echo "Node.js is not installed. Please install nodejs, aiverify requires Node.js v18.x." @@ -20,30 +22,19 @@ then fi # Check if Python3 is installed -required_py_ver="Python 3.10" +required_py_ver="Python 3.11" if ! which python3 &>/dev/null; then echo "Python3 is not installed. Please install Python3, aiverify requires $required_py_ver.x." exit 1 fi -# Check Python version - must be 3.10.x (for now) +# Check Python version - must be 3.11.x py_ver=$(python3 --version 2>&1) if [[ $py_ver != $required_py_ver* ]]; then echo "aiverify requires $required_py_ver.x, please install $required_py_ver.x." + exit 1 fi -#py_req_ver="3.10" -#py_cur_ver=$(python3 --version | cut -d' ' -f2) -#py_cur_ver_maj=${py_cur_ver%.*} -#if (( $(echo "$py_cur_ver_maj $py_req_ver" | awk '{print ($1 < $2)}' ))) -#then -# echo "aiverfiy requires Python3 $py_req_ver.x, please install Python3 $py_req_ver.x" -# exit 1 -#elif (( $(echo "$py_cur_ver_maj $py_req_ver" | awk '{print ($1 != $2)}' ))) -#then -# echo "aiverify is tested on Python3 $py_req_ver.x, you may encounter issues with other Python3 versions" -#fi - echo "This script requires sudo permission" sudo -v @@ -51,13 +42,29 @@ sudo -v # x86_64, i686, arm, or aarch64 machine_arch=$(uname -m) -# Script to setup the aiverify developer environment - sudo apt update +########### Chromium ############# + +if [[ "$machine_arch" == "aarch64" ]]; then + echo "arm64 architecture detected" + echo "====================== Installing Chromium =========================" + # Install chromium for arm64 based machines, as Puppeteer installs + # chrome/chromium which is for amd64 + sudo snap install chromium + sudo ln -s /usr/bin/chromium /usr/bin/chromium-browser + +else + # amd64, install libs needed by puppeteer/chromium + sudo apt install -y libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 \ + libxi-dev libxtst-dev libnss3 libcups2 libxss1 libxrandr2 \ + libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 \ + libgtk-3-0 libgbm1 +fi + ############ redis ############ -echo "========================== Install redis =============================" +echo "========================== Installing redis =============================" if ! redis-server --version &>/dev/null; then echo "Installing redis-server" sudo apt install -y redis-server @@ -72,20 +79,21 @@ sudo systemctl restart redis-server.service ############ mongodb ############ -echo "========================= Install mongodb ============================" +echo "========================= Installing mongodb ============================" if mongod --version &>/dev/null; then while true; do - read -p "Mongodb detected, have you created the db and user required by aiverify? y/n " yn + echo + read -p "Mongodb detected, have you created the db and user required by aiverify? [y/n] " yn case $yn in [Yy]* ) break;; - [Nn]* ) echo "aiverify dev setup aborted, please create the required db and user as instructed in the developer guide"; + [Nn]* ) echo "aiverify developer setup aborted, please create the required db and user as instructed in the developer guide"; exit;; * ) echo "Please answer yes or no.";; esac done else - echo "Installing mongodb" + echo "Installing mongodb..." wget -nc https://www.mongodb.org/static/pgp/server-6.0.asc cat server-6.0.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/mongodb.gpg >/dev/null sudo sh -c 'echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" >> /etc/apt/sources.list.d/mongo.list' @@ -114,57 +122,15 @@ else EOF fi -if [[ "$machine_arch" == "aarch64" ]]; then - echo "arm64 architecture detected" - echo "====================== Installing Chromium =========================" - # Install chromium for arm64 based machines, as Puppeteer installs Chrome which is only - # available in amd64 - - sudo apt install debian-archive-keyring - - umask 22 - - echo "deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable main -deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable main - -deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian-security/ stable-security main -deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian-security/ stable-security main - -deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable-updates main -deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable-updates main" | sudo tee /etc/apt/sources.list.d/debian-stable.list - - echo "Explanation: Allow installing chromium from the debian repo. -Package: chromium* -Pin: origin "*.debian.org" -Pin-Priority: 100 - -Explanation: Avoid other packages from the debian repo. -Package: * -Pin: origin "*.debian.org" -Pin-Priority: 1" | sudo tee /etc/apt/preferences.d/debian-chromium - - sudo apt update - - sudo apt install chromium -y - - sudo ln -s /usr/bin/chromium /usr/bin/chromium-browser -else - # Install libs needed by puppeteer/chromium - sudo apt install -y libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 \ - libxi-dev libxtst-dev libnss3 libcups2 libxss1 libxrandr2 \ - libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 \ - libgtk-3-0 libgbm1 -fi - # For shap-toolbox plugin -sudo apt install -y gcc g++ python3-dev +sudo apt install -y gcc g++ python3.11-dev echo "====================== Cloning aiverify repo =========================" sudo apt install -y git -sudo apt-get install unzip +sudo apt install unzip -sudo apt install -y python3.10-venv +sudo apt install -y python3.11-venv git clone https://github.com/imda-btg/aiverify.git --branch=v0.9.x cd aiverify @@ -179,13 +145,6 @@ npm install npm run build cd .. -# Install dependencies - portal -cd ai-verify-portal -cp .env.development .env.local -npm install -sudo npm link ../ai-verify-shared-library -cd .. - # Install dependencies - apigw cd ai-verify-apigw cp .env.development .env @@ -197,20 +156,41 @@ else fi cd .. -# Install stock plugins (non-algos) -unzip -o stock-plugins/aiverify.stock.decorators/dist/aiverify.stock.decorators-*.zip -d ai-verify-portal/plugins/stock.decorators -unzip -o stock-plugins/aiverify.stock.process-checklist/dist/aiverify.stock.process_checklist-*.zip -d ai-verify-portal/plugins/stock.process-checklist -unzip -o stock-plugins/aiverify.stock.reports/dist/aiverify.stock.reports-*.zip -d ai-verify-portal/plugins/stock.reports +# Install dependencies - portal +cd ai-verify-portal +cp .env.development .env.local +npm install +sudo npm link ../ai-verify-shared-library +npm run build +cd .. + +echo "===================== Installing stock plugins =====================" + +# Unzip stock plugin bundles into the plugins folder +cd stock-plugins +for plugin_dir in *; do \ + echo "Unpacking stock plugin $plugin_dir"; \ + unzip -o $plugin_dir/dist/*.zip -d ../ai-verify-portal/plugins/$plugin_dir; \ +done +cd .. ############ Python ############ +echo "====================== Installing py dependencies ======================" echo "Enabling virtualenv venv" python3 -m venv venv source venv/bin/activate -echo "====================== Installing py dependencies ======================" +cd test-engine-app +pip install -r requirements.txt +cd ../test-engine-core +pip install -r requirements.txt +cd ../test-engine-core-modules +pip install -r requirements.txt +cd ../stock-plugins find ./ -type f -name 'requirements.txt' -exec pip install -r "{}" \; -pip3 install ./test-engine-core/dist/test_engine_core-*.tar.gz +cd .. +pip install ./test-engine-core/dist/test_engine_core-*.tar.gz wdir=$(pwd) cd test-engine-app @@ -222,21 +202,6 @@ REDIS_SERVER_PORT=6379 API_SERVER_PORT=8080" > .env cd .. -# Install stock plugins (algos) -echo "Install stock plugins (algos)" -unzip -o stock-plugins/aiverify.stock.accumulated-local-effect/dist/*.zip -d ai-verify-portal/plugins/stock.accumulated-local-effect -unzip -o stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/dist/*.zip -d ai-verify-portal/plugins/stock.fairness-metrics-toolbox-for-classification -unzip -o stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/dist/*.zip -d ai-verify-portal/plugins/stock.fairness-metrics-toolbox-for-regression -unzip -o stock-plugins/aiverify.stock.image-corruption-toolbox/dist/*.zip -d ai-verify-portal/plugins/stock.image-corruption-toolbox -unzip -o stock-plugins/aiverify.stock.partial-dependence-plot/dist/*.zip -d ai-verify-portal/plugins/stock.partial-dependence-plot -unzip -o stock-plugins/aiverify.stock.robustness-toolbox/dist/*.zip -d ai-verify-portal/plugins/stock.robustness-toolbox -unzip -o stock-plugins/aiverify.stock.shap-toolbox/dist/*.zip -d ai-verify-portal/plugins/stock.shap-toolbox - -echo "Run portal build" -cd ai-verify-portal -npm run build -cd .. - echo "====================== Creating aiverify services =======================" echo "[Unit] diff --git a/setup-aiverify/aiverify-user/Dockerfile b/setup-aiverify/aiverify-user/Dockerfile index bc52162d3..a5eca452b 100644 --- a/setup-aiverify/aiverify-user/Dockerfile +++ b/setup-aiverify/aiverify-user/Dockerfile @@ -1,22 +1,28 @@ -# Build the ai-verify combined docker image +# Build the aiverify docker image -########################################################### -# Build stage for Node repos -########################################################### -FROM ubuntu:22.04 AS final +FROM ubuntu:22.04 -ARG USER=appuser -ARG UID -ARG GID +################### Install libraries ###################### -# Install node v19.x +ENV TZ=Asia/Singapore +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# Install node v18.x RUN apt-get update && apt-get install -y curl -RUN curl -sL https://deb.nodesource.com/setup_19.x | bash - +RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - RUN apt-get update && apt-get install -y nodejs -# Install Chromium +# Install python 3.11, virtualenv +RUN apt-get update +RUN apt install software-properties-common -y +RUN add-apt-repository ppa:deadsnakes/ppa +RUN apt-get install -y python3.11 python3.11-venv + +################### Install chromium ###################### -RUN apt install debian-archive-keyring +# Install Chromium (for puppeteer) separately to cater for arm64 and amd64, +# as puppeteer installs Chrome/Chromium for amd64 only +RUN apt-get install debian-archive-keyring RUN umask 22 @@ -37,115 +43,127 @@ Package: *\n \ Pin: origin *.debian.org\n \ Pin-Priority: 1' | tee /etc/apt/preferences.d/debian-chromium -RUN apt update +RUN apt-get update -RUN apt install chromium -y +RUN apt-get install chromium -y RUN ln -s /usr/bin/chromium /usr/bin/chromium-browser -# For shap-toolbox plugin -RUN apt install -y gcc g++ python3-dev - -RUN groupadd -g $GID $USER || true - -RUN useradd -u $UID -g $GID -ms /bin/bash $USER +# For shap-toolbox stock plugin +RUN apt-get install -y gcc g++ python3.11-dev # Install Git -RUN apt update && apt install -y git +RUN apt-get install -y git RUN apt-get install unzip -# Clone aiverify repo +################### Create aiverify user ###################### + +ARG USER=aiverify +RUN groupadd -g 10000 $USER +RUN useradd -u 10000 -g 10000 -ms /bin/bash $USER + +################### Clone aiverify repo ###################### + +ARG BRANCH_TAG=v0.9.x +RUN echo "BRANCH_TAG=$BRANCH_TAG" WORKDIR /app -RUN git clone https://github.com/imda-btg/aiverify.git --branch=v0.9.x +RUN git clone https://github.com/imda-btg/aiverify.git --branch=$BRANCH_TAG aiverify WORKDIR /app/aiverify -RUN mkdir -p ai-verify-portal/plugins +# Create plugins, file upload and logs folders +RUN mkdir -p ./ai-verify-portal/plugins +RUN mkdir -p ./uploads/data +RUN mkdir -p ./uploads/model +RUN mkdir -p ./test-engine-app/logs -## Plugin files have to go into portal plugins folder before portal build (i.e. nextjs build) +RUN chown -R 10000:10000 /app/aiverify -RUN unzip stock-plugins/aiverify.stock.decorators/dist/*.zip -d ./ai-verify-portal/plugins/aiverify.stock.decorators -RUN unzip stock-plugins/aiverify.stock.process-checklist/dist/*.zip -d ./ai-verify-portal/plugins/aiverify.stock.process-checklist -RUN unzip stock-plugins/aiverify.stock.reports/dist/*.zip -d ./ai-verify-portal/plugins/aiverify.stock.reports +################### Node ###################### # Install dependencies for shared-library WORKDIR /app/aiverify/ai-verify-shared-library RUN npm install && npm run build WORKDIR /app/aiverify/ai-verify-portal -RUN echo 'NEXT_PUBLIC_SERVER_URL=http://localhost:3000\n \ -NEXT_PUBLIC_WEBSOCKET_URL=ws://localhost:4000/graphql\n \ -SERVER_URL=http://localhost:3000\n \ -WEBSOCKET_URL=ws://localhost:4000/graphql\n \ -APIGW_URL=http://localhost:4000\n \ -MONGODB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n \ -REDIS_URI=redis://redis:6379\n \ -TEST_ENGINE_URL=http://test-engine:8080' | tee .env.local + +# Create env file for portal +# Change localhost of the following urls (via --build-arg) to hostname of +# the machine running aiverify if you want to access from a remote browser +ARG PORTAL_URL=http://localhost +ARG WS_URL=ws://localhost +RUN echo "PORTAL_URL=$PORTAL_URL WS_URL=$WS_URL" +RUN echo "NEXT_PUBLIC_SERVER_URL=${PORTAL_URL}:3000\n\ +NEXT_PUBLIC_WEBSOCKET_URL=${WS_URL}:4000/graphql\n\ +SERVER_URL=http://localhost:3000\n\ +WEBSOCKET_URL=ws://localhost:4000/graphql\n\ +APIGW_URL=http://localhost:4000\n\ +MONGODB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n\ +REDIS_URI=redis://redis:6379\n\ +TEST_ENGINE_URL=http://test-engine:8080" | tee .env.local RUN rm .env.development -# Install dependencies for portal +# Install dependencies for portal, and build portal (nextjs build) RUN npm install RUN npm link ../ai-verify-shared-library +RUN npm run build -# Build portal in the final stage after all stock plugins are copied to plugins folder. - -# Install dependencies for apigw +# Create env file for apigw WORKDIR /app/aiverify/ai-verify-apigw -RUN echo 'MONGODB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n \ -DB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n \ -REDIS_HOST=redis\n \ -REDIS_PORT=6379\n \ +RUN echo 'MONGODB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n\ +DB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n\ +REDIS_HOST=redis\n\ +REDIS_PORT=6379\n\ WEB_REPORT_URL=http://localhost:3000/reportStatus/printview' | tee .env + +# Install dependencies for apigw +# Skip Chrome/chromium install during puppeteer install, since chromium +# already installed above ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 1 RUN npm install ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium -############### Python ################# +############## Stock plugins ################# -# Install Python3.10 -RUN apt update -RUN apt install -y python3.10 -RUN python3 --version +# Unzip stock plugin bundles into the plugins folder +WORKDIR /app/aiverify/stock-plugins +RUN for plugin_dir in *; do \ + echo "Unzipping plugin $plugin_dir"; \ + unzip $plugin_dir/dist/*.zip -d ../ai-verify-portal/plugins/$plugin_dir; \ + done -# Install virtualenv -RUN apt install -y python3.11-venv +RUN chown -R 10000:10000 /app/aiverify/stock-plugins -# Install dependencies into virtualenv -RUN python3 -m venv /opt/venv -ENV PATH="/opt/venv/bin:$PATH" +############### Python ################# +# Install dependencies into virtualenv WORKDIR /app/aiverify -RUN find ./ -type f -name 'requirements.txt' -exec pip install -r "{}" \; +RUN python3 -m venv venv +ENV PATH="/app/aiverify/venv/bin:$PATH" +# Install dependencies +WORKDIR /app/aiverify/test-engine-app +RUN pip install -r requirements.txt +WORKDIR /app/aiverify/test-engine-core +RUN pip install -r requirements.txt +WORKDIR /app/aiverify/test-engine-core-modules +RUN pip install -r requirements.txt +WORKDIR /app/aiverify/stock-plugins +RUN find ./ -type f -name 'requirements.txt' -exec pip install -r "{}" \; +WORKDIR /app/aiverify RUN pip install ./test-engine-core/dist/test_engine_core-*.tar.gz # Create env file for test-engine-app WORKDIR /app/aiverify/test-engine-app -RUN echo 'CORE_MODULES_FOLDER="../test-engine-core-modules"\n \ -VALIDATION_SCHEMAS_FOLDER="./test_engine_app/validation_schemas/"\n \ -REDIS_CONSUMER_GROUP="MyGroup"\n \ -REDIS_SERVER_HOSTNAME="redis"\n \ -REDIS_SERVER_PORT=6379\n \ +RUN echo 'CORE_MODULES_FOLDER="../test-engine-core-modules"\n\ +VALIDATION_SCHEMAS_FOLDER="./test_engine_app/validation_schemas/"\n\ +REDIS_CONSUMER_GROUP="MyGroup"\n\ +REDIS_SERVER_HOSTNAME="redis"\n\ +REDIS_SERVER_PORT=6379\n\ API_SERVER_PORT=8080' | tee .env -# Unzip stock plugins (algos) into portal plugins folder -WORKDIR /app/aiverify -RUN unzip ./stock-plugins/aiverify.stock.accumulated-local-effect/dist/*.zip -d ./ai-verify-portal/plugins/accumulated-local-effect -RUN unzip ./stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/dist/*.zip -d ./ai-verify-portal/plugins/fairness-metrics-toolbox-for-classification -RUN unzip ./stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/dist/*.zip -d ./ai-verify-portal/plugins/fairness-metrics-toolbox-for-regression -RUN unzip ./stock-plugins/aiverify.stock.image-corruption-toolbox/dist/*.zip -d ./ai-verify-portal/plugins/image-corruption-toolbox -RUN unzip ./stock-plugins/aiverify.stock.partial-dependence-plot/dist/*.zip -d ./ai-verify-portal/plugins/partial-dependence-plot -RUN unzip ./stock-plugins/aiverify.stock.robustness-toolbox/dist/*.zip -d ./ai-verify-portal/plugins/robustness-toolbox -RUN unzip ./stock-plugins/aiverify.stock.shap-toolbox/dist/*.zip -d ./ai-verify-portal/plugins/shap-toolbox - -# All stock plugins are installed into portal plugins foler, now build portal (nextjs build) -WORKDIR /app/aiverify/ai-verify-portal -RUN npm run build - -RUN chown -R $UID:$GID /app/aiverify - -# Run containers with non-admin user +# Run containers with non-root user USER $USER WORKDIR /app diff --git a/setup-aiverify/aiverify-user/Dockerfile-WSL b/setup-aiverify/aiverify-user/Dockerfile-WSL deleted file mode 100644 index 7e9ac97c4..000000000 --- a/setup-aiverify/aiverify-user/Dockerfile-WSL +++ /dev/null @@ -1,163 +0,0 @@ -# Build the ai-verify combined docker image - -########################################################### -# Build stage for Node repos -########################################################### -FROM ubuntu:22.04 AS final - -ARG USER=appuser -ARG UID -ARG GID - -# Install node v19.x -RUN apt-get update && apt-get install -y curl -RUN curl -sL https://deb.nodesource.com/setup_19.x | bash - -RUN apt-get update && apt-get install -y nodejs - -# Install python 3.10 - -RUN apt update -RUN apt install -y python3.10 -RUN python3 --version - -# Install virtualenv -RUN apt install -y python3.10-venv - -# Install Chromium - -RUN apt install debian-archive-keyring - -RUN umask 22 - -RUN echo 'deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable main\n \ -deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable main\n \ -\n \ -deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian-security/ stable-security main\n \ -deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian-security/ stable-security main\n \ -\n \ -deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable-updates main\n \ -deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian stable-updates main' | tee /etc/apt/sources.list.d/debian-stable.list - -RUN echo 'Package: chromium*\n \ -Pin: origin *.debian.org\n \ -Pin-Priority: 100\n \ -\n \ -Package: *\n \ -Pin: origin *.debian.org\n \ -Pin-Priority: 1' | tee /etc/apt/preferences.d/debian-chromium - -RUN apt update - -RUN apt install chromium -y - -# RUN ln -s /usr/bin/chromium /usr/bin/chromium-browser - -# Install libs needed by puppeter/chromium -RUN apt install -y chromium libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 \ - libxi-dev libxtst-dev libnss3 libcups2 libxss1 libxrandr2 \ - libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 \ - libgtk-3-0 libgbm1 - -RUN groupadd -g $GID $USER -RUN useradd -u $UID -g $GID -ms /bin/bash $USER - -# Install Git -RUN apt update && apt install -y git - -RUN apt-get install unzip - -ARG ACCESS_TOKEN - -# Clone aiverify monorepo -WORKDIR /app -RUN git clone https://oauth2:${ACCESS_TOKEN}@github.com/imda-btg/aiverify.git --branch=main - -WORKDIR /app/aiverify - -RUN mkdir -p ai-verify-portal/plugins - -## Widget files have to go into portal plugins folder before nextjs build -## Widget files are unzipped into subfolder whose name must match its plugin gid - -RUN unzip stock-plugins/aiverify.stock.decorators/dist/*.zip -d ./ai-verify-portal/plugins/aiverify.stock.decorators -RUN unzip stock-plugins/aiverify.stock.process-checklist/dist/*.zip -d ./ai-verify-portal/plugins/aiverify.stock.process-checklist -RUN unzip stock-plugins/aiverify.stock.reports/dist/*.zip -d ./ai-verify-portal/plugins/aiverify.stock.reports - -# Install dependencies for shared-library -WORKDIR /app/aiverify/ai-verify-shared-library -RUN npm install && npm run build - -WORKDIR /app/aiverify/ai-verify-portal -RUN echo 'NEXT_PUBLIC_SERVER_URL=http://localhost:3000\n \ -NEXT_PUBLIC_WEBSOCKET_URL=ws://localhost:4000/graphql\n \ -SERVER_URL=http://localhost:3000\n \ -WEBSOCKET_URL=ws://localhost:4000/graphql\n \ -APIGW_URL=http://localhost:4000\n \ -MONGODB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n \ -REDIS_URI=redis://redis:6379' | tee .env.local -RUN rm .env.development - -# Install dependencies for portal -RUN npm install -RUN npm link ../ai-verify-shared-library - -# run portal build in the final stage with all the stock plugins copied to plugins folder. -#RUN npm run build - -# Install dependencies for apigw -WORKDIR /app/aiverify/ai-verify-apigw -RUN echo 'MONGODB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n \ -DB_URI=mongodb://aiverify:aiverify@db:27017/aiverify\n \ -REDIS_HOST=redis\n \ -REDIS_PORT=6379\n \ -WEB_REPORT_URL=http://localhost:3000/reportStatus/printview' | tee .env -# ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true -RUN npm install -RUN npm install puppeteer -RUN node node_modules/puppeteer/install.js - -############### Python ################# - -# Install dependencies into virtualenv -RUN python3 -m venv /opt/venv -ENV PATH="/opt/venv/bin:$PATH" - -WORKDIR /app/aiverify -RUN find ./ -type f -name 'requirements.txt' -exec pip install -r "{}" \; - -RUN pip install ./test-engine-core/dist/test_engine_core-*.tar.gz - -# Create env file for test-engine-app -WORKDIR /app/aiverify/test-engine-app -RUN echo 'CORE_MODULES_FOLDER="../test-engine-core-modules"\n \ -VALIDATION_SCHEMAS_FOLDER="./test_engine_app/validation_schemas/"\n \ -REDIS_CONSUMER_GROUP="MyGroup"\n \ -REDIS_SERVER_HOSTNAME="redis"\n \ -REDIS_SERVER_PORT=6379\n \ -API_SERVER_PORT=8080' | tee .env -WORKDIR /app/aiverify -RUN unzip ./stock-plugins/aiverify.stock.accumulated-local-effect/dist/*.zip -d ./ai-verify-portal/plugins/accumulated-local-effect -RUN unzip ./stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/dist/*.zip -d ./ai-verify-portal/plugins/fairness-metrics-toolbox-for-classification -RUN unzip ./stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/dist/*.zip -d ./ai-verify-portal/plugins/fairness-metrics-toolbox-for-regression -RUN unzip ./stock-plugins/aiverify.stock.image-corruption-toolbox/dist/*.zip -d ./ai-verify-portal/plugins/image-corruption-toolbox -RUN unzip ./stock-plugins/aiverify.stock.partial-dependence-plot/dist/*.zip -d ./ai-verify-portal/plugins/partial-dependence-plot -RUN unzip ./stock-plugins/aiverify.stock.robustness-toolbox/dist/*.zip -d ./ai-verify-portal/plugins/robustness-toolbox -RUN unzip ./stock-plugins/aiverify.stock.shap-toolbox/dist/*.zip -d ./ai-verify-portal/plugins/shap-toolbox - -# Build portal (nextjs build) -WORKDIR /app/aiverify/ai-verify-portal - -RUN npm run build - -RUN chown -R $UID:$GID /app/aiverify - -USER $USER - -# Install puppeteer again to ensure needed modules go into the user's cache dir -WORKDIR /app/aiverify/ai-verify-apigw - -#RUN PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm install puppeteer -RUN npm install puppeteer -RUN node node_modules/puppeteer/install.js - -WORKDIR /app \ No newline at end of file diff --git a/setup-aiverify/aiverify-user/docker-build.sh b/setup-aiverify/aiverify-user/docker-build.sh index 9f11be390..91aa17b52 100755 --- a/setup-aiverify/aiverify-user/docker-build.sh +++ b/setup-aiverify/aiverify-user/docker-build.sh @@ -1,4 +1,4 @@ #!/bin/bash -docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) ${@:1} -t aiverify:0.9 . +docker build ${@:1} -t aiverify:0.9 . diff --git a/setup-aiverify/aiverify-user/docker-compose.yml b/setup-aiverify/aiverify-user/docker-compose.yml index 0b0741d01..2f0cc10a2 100644 --- a/setup-aiverify/aiverify-user/docker-compose.yml +++ b/setup-aiverify/aiverify-user/docker-compose.yml @@ -38,9 +38,9 @@ services: command: python3 -m test_engine_app volumes: - plugins-volume:/app/aiverify/ai-verify-portal/plugins - - ~/logs/test-engine:/app/aiverify/test-engine-app/logs - - ~/uploads/data:/app/aiverify/uploads/data - - ~/uploads/model:/app/aiverify/uploads/model + - logs-volume:/app/aiverify/test-engine-app/logs + - uploads-data-volume:/app/aiverify/uploads/data + - uploads-model-volume:/app/aiverify/uploads/model networks: - app-network @@ -57,9 +57,9 @@ services: command: bash -c "cd ../ai-verify-apigw && node app.mjs & cd ../ai-verify-portal && npm run start" volumes: - plugins-volume:/app/aiverify/ai-verify-portal/plugins - - ~/logs/test-engine:/app/aiverify/test-engine-app/logs - - ~/uploads/data:/app/aiverify/uploads/data - - ~/uploads/model:/app/aiverify/uploads/model + - logs-volume:/app/aiverify/test-engine-app/logs + - uploads-data-volume:/app/aiverify/uploads/data + - uploads-model-volume:/app/aiverify/uploads/model networks: - app-network @@ -69,3 +69,6 @@ networks: volumes: plugins-volume: + logs-volume: + uploads-data-volume: + uploads-model-volume: diff --git a/setup-aiverify/aiverify-user/docker-pull.sh b/setup-aiverify/aiverify-user/docker-pull.sh new file mode 100644 index 000000000..ecbadc2a2 --- /dev/null +++ b/setup-aiverify/aiverify-user/docker-pull.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Pull aiverify image from Github Container Registry (ghcr) to local registry +docker pull ghcr.io/imda-btg/aiverify:0.9 +if [[ ! $(docker images -q aiverify:0.9) = "" ]]; then + docker rmi aiverify:0.9 +fi +docker tag ghcr.io/imda-btg/aiverify:0.9 aiverify:0.9 +docker rmi ghcr.io/imda-btg/aiverify:0.9 diff --git a/setup-aiverify/aiverify-user/docker-reset.sh b/setup-aiverify/aiverify-user/docker-reset.sh index c9d25fe92..b94d79580 100755 --- a/setup-aiverify/aiverify-user/docker-reset.sh +++ b/setup-aiverify/aiverify-user/docker-reset.sh @@ -2,17 +2,29 @@ export CUR_UID=$(id -u) export CUR_GID=$(id -g) -echo "uid=$CUR_UID gid=$CUR_GID" -echo "Resetting container environment..." -echo "This script requires sudo permission" -sudo -v -sudo rm -rf ~/data -sudo rm -rf ~/uploads -sudo rm -rf ~/logs +while true; do + echo "WARNING! This will delete all datasets, models, 3rd party plugins, templates and projects" + read -p "Are your sure you want to proceed? [y/n] " yn + case $yn in + [Yy]* ) read -p "Please enter 'reset' to confirm: " userInput; + if [[ "$userInput" == "reset" ]]; then + break; + else + echo "Reset aborted"; + exit; + fi;; + [Nn]* ) echo "Reset aborted"; + exit;; + * ) echo "Please answer yes or no.";; + esac +done + +echo "Resetting aiverify container environment..." +rm -rf ~/data +rm -rf ~/logs mkdir -p ~/data/db -mkdir -p ~/uploads/data -mkdir -p ~/uploads/model mkdir -p ~/logs/db -mkdir -p ~/logs/test-engine docker-compose down --volumes + +echo "aiverify container environment reset completed" \ No newline at end of file diff --git a/setup-aiverify/aiverify-user/docker-start.sh b/setup-aiverify/aiverify-user/docker-start.sh index 1771ff32b..a79539b2a 100755 --- a/setup-aiverify/aiverify-user/docker-start.sh +++ b/setup-aiverify/aiverify-user/docker-start.sh @@ -1,40 +1,11 @@ #!/bin/bash +# User for mongo service export CUR_UID=$(id -u) export CUR_GID=$(id -g) -echo "uid=$CUR_UID gid=$CUR_GID" - -i=$(($#-1)) -while [ $i -ge 0 ]; -do - if [ ${BASH_ARGV[$i]} == "--reset" ]; then - RESET="--reset" - elif [ ${BASH_ARGV[$i]} == "--detach" ]; then - DETACH="--detach" - elif [ ${BASH_ARGV[$i]} == "--logfile" ]; then - echo ${BASH_ARGV[$i]} - i=$((i-1)) - LOGFILE=">> ${BASH_ARGV[$i]}" - fi - echo ${BASH_ARGV[$i]} - i=$((i-1)) -done - -if [ "$RESET" == "--reset" ]; then - echo "Cleaning up volumes" - sudo rm -rf ~/data - sudo rm -rf ~/uploads - sudo rm -rf ~/logs - docker-compose down --volumes -fi [ ! -d "~/data/db" ] && mkdir -p ~/data/db -[ ! -d "~/uploads/data" ] && mkdir -p ~/uploads/data -[ ! -d "~/uploads/model" ] && mkdir -p ~/uploads/model [ ! -d "~/logs/db" ] && mkdir -p ~/logs/db -[ ! -d "~/logs/test-engine" ] && mkdir -p ~/logs/test-engine - -echo "Starting containers..." -docker-compose up $DETACH - +echo "Starting aiverify containers..." +docker-compose up ${@:1} diff --git a/setup-aiverify/aiverify-user/docker-stop.sh b/setup-aiverify/aiverify-user/docker-stop.sh index fe1a09ca4..f51e5e975 100755 --- a/setup-aiverify/aiverify-user/docker-stop.sh +++ b/setup-aiverify/aiverify-user/docker-stop.sh @@ -2,7 +2,7 @@ export CUR_UID=$(id -u) export CUR_GID=$(id -g) -echo "uid=$CUR_UID gid=$CUR_GID" -echo "Stopping containers..." + +echo "Stopping aiverify containers..." docker-compose stop From d90466b074379ad6db167072b39034f7845e67a8 Mon Sep 17 00:00:00 2001 From: Lionel Teo <93119265+imda-lionelteo@users.noreply.github.com> Date: Sat, 22 Jul 2023 01:50:14 +0000 Subject: [PATCH 20/30] Modified code to process message in a seperate process initially instead of processing algorithm instance at a later time. Added a new enum to allow control through the multiprocess queue. --- .../test_engine_app/enums/process_status.py | 10 + .../test_engine_app/processing/task.py | 130 +++++-- .../processing/task_processing.py | 332 ++++++++---------- 3 files changed, 268 insertions(+), 204 deletions(-) create mode 100644 test-engine-app/test_engine_app/enums/process_status.py mode change 100755 => 100644 test-engine-app/test_engine_app/processing/task.py diff --git a/test-engine-app/test_engine_app/enums/process_status.py b/test-engine-app/test_engine_app/enums/process_status.py new file mode 100644 index 000000000..0fd6217e6 --- /dev/null +++ b/test-engine-app/test_engine_app/enums/process_status.py @@ -0,0 +1,10 @@ +from enum import Enum, auto + + +class ProcessStatus(Enum): + """ + The ProcessStatus enum class specifies the different process status + """ + + UPDATE = auto() + COMPLETE = auto() diff --git a/test-engine-app/test_engine_app/processing/task.py b/test-engine-app/test_engine_app/processing/task.py old mode 100755 new mode 100644 index 911cb1911..c2624f340 --- a/test-engine-app/test_engine_app/processing/task.py +++ b/test-engine-app/test_engine_app/processing/task.py @@ -1,7 +1,11 @@ import logging +import queue +from multiprocessing import Lock from typing import Callable, Dict, Tuple, Union +import pathos from test_engine_app.app_logger import AppLogger +from test_engine_app.enums.process_status import ProcessStatus from test_engine_app.enums.task_type import TaskType from test_engine_app.interfaces.iworkerfunction import IWorkerFunction from test_engine_app.processing.plugin_controller import PluginController @@ -18,6 +22,8 @@ class Task(IWorkerFunction): regardless of the principle and configuration """ + lock: Lock = Lock() + def __init__( self, message_id: str, @@ -43,13 +49,15 @@ def __init__( # Callback method self._task_update_callback: Union[Callable, None] = task_update_cb + # Timeout + self._mp_queue_timeout = 0.2 # 200 ms + self._mp_join_timeout = 5.0 # 5 seconds + # Task + self._to_stop: bool = False self._logger: AppLogger = AppLogger() self._task_arguments: TaskArgument = TaskArgument(validation_schemas_folder) self._task_results = TaskResult(self._logger) - self._task_processing = TaskProcessing( - self._logger, self._send_task_update, self._task_results - ) def cancel(self) -> None: """ @@ -60,7 +68,34 @@ def cancel(self) -> None: logging.INFO, "The system has received notification to cancel task", ) - self._task_processing.stop() + + # Check and terminate the process if running + running_process = self._get_task_process() + if running_process: + # Process is running. + # Terminate it if unable to join + AppLogger.add_to_log( + self._logger, logging.INFO, "Attempting to join running process" + ) + running_process.join(timeout=self._mp_join_timeout) + if running_process.is_alive(): + AppLogger.add_to_log( + self._logger, + logging.INFO, + "Attempt to join process failed. Terminating process.", + ) + running_process.terminate() + + # Set flag to stop + self._to_stop = True + + # Set the task to cancelled + self._task_results.set_cancelled() + else: + # Unable to terminate + AppLogger.add_to_log( + self._logger, logging.INFO, "There are no running task" + ) def cleanup(self) -> None: """ @@ -122,32 +157,51 @@ def process(self) -> Tuple[bool, str]: # Validate the task arguments is_success, error_messages = self._task_arguments.parse(self._message_arguments) if is_success: - # Setup stream logger and route the logs to task logger self._logger.generate_stream_logger(self._task_arguments.id) - PluginController.set_logger(self._logger) - AppLogger.add_to_log( - self._logger, - logging.INFO, - f"The task validation is successful: {self._task_arguments.id}", - ) - AppLogger.add_to_log( - self._logger, - logging.INFO, - f"Working on task: " - f"message_id {self._message_id}, " - f"message_args {self._message_arguments}, " - f"task_type: {self._task_type}", - ) - # Process the incoming task - if self._task_type is TaskType.PENDING: - is_success, error_messages = self._task_processing.process_pending_task( - self._task_arguments - ) - else: - is_success, error_messages = self._task_processing.process_new_task( - self._task_arguments + # Run the task processing instance in a Process and will return results when completed. + # If there is a process termination required, will terminate the process. + # Create a new queue for the process to place the results + with pathos.helpers.mp.Manager() as manager: + results_queue = manager.Queue() + + # Create the Process + new_process = pathos.helpers.mp.Process( + target=TaskProcessing.run_task_processing_in_process, + args=( + self._logger, + self._task_arguments, + self._message_id, + self._message_arguments, + self._task_type, + results_queue, + ), ) + + # Set the process before starting + self._set_task_process(new_process) + new_process.start() + + # Get updates while process is running + while self._to_stop is False: + try: + process_status, payload = results_queue.get( + timeout=self._mp_queue_timeout + ) + if process_status is ProcessStatus.UPDATE: + # Handle update task results + self._task_results = payload + self._send_task_update() + else: + # Handle process complete + is_success, self._task_results, error_messages = payload + break + + except queue.Empty: + continue + + # Join the process + new_process.join() else: # Check if id is not None, we can set HSET with error messages if not is_empty_string(self._task_arguments.id): @@ -195,6 +249,28 @@ def process(self) -> Tuple[bool, str]: return is_success, error_messages + def _get_task_process(self) -> Union[pathos.helpers.mp.Process, None]: + """ + A helper method to return the running task process + + Returns: + Union[pathos.helpers.mp.Process, None]: An task process or None + """ + with Task.lock: + return self._task_process + + def _set_task_process( + self, task_process: Union[pathos.helpers.mp.Process, None] + ) -> None: + """ + A helper method to set the task process + + Args: + task_process (Union[pathos.helpers.mp.Process, None]): task process or None + """ + with Task.lock: + self._task_process = task_process + def _send_task_update(self) -> None: """ A helper method to trigger task update for current task diff --git a/test-engine-app/test_engine_app/processing/task_processing.py b/test-engine-app/test_engine_app/processing/task_processing.py index 28d3477f6..f5677171a 100644 --- a/test-engine-app/test_engine_app/processing/task_processing.py +++ b/test-engine-app/test_engine_app/processing/task_processing.py @@ -1,10 +1,16 @@ import copy import logging -import queue -from multiprocessing import Lock -from typing import Callable, Dict, Tuple, Union +from typing import Dict, Tuple, Union import pathos +from test_engine_app.app_logger import AppLogger +from test_engine_app.enums.process_status import ProcessStatus +from test_engine_app.enums.task_status import TaskStatus +from test_engine_app.enums.task_type import TaskType +from test_engine_app.processing.plugin_controller import PluginController +from test_engine_app.processing.stream_processing import StreamProcessing +from test_engine_app.processing.task_argument import TaskArgument +from test_engine_app.processing.task_result import TaskResult from test_engine_core.interfaces.ialgorithm import IAlgorithm from test_engine_core.interfaces.idata import IData from test_engine_core.interfaces.imodel import IModel @@ -14,99 +20,83 @@ from test_engine_core.utils.json_utils import remove_numpy_formats, validate_json from test_engine_core.utils.validate_checks import is_empty_string -from test_engine_app.app_logger import AppLogger -from test_engine_app.enums.task_status import TaskStatus -from test_engine_app.processing.stream_processing import StreamProcessing -from test_engine_app.processing.task_argument import TaskArgument -from test_engine_app.processing.task_result import TaskResult - class TaskProcessing: - """ - TaskProcessing class focuses on how to process pending and new tasks. - """ - - lock: Lock = Lock() - - def __init__( - self, logger: AppLogger, task_update_cb: Callable, task_result: TaskResult - ): - self._logger: AppLogger = logger - self._algorithm_process: Union[pathos.helpers.mp.Process, None] = None - self._to_stop: bool = False - self._task_update_callback: Callable = task_update_cb - self._task_result: TaskResult = task_result - - def _get_algorithm_process(self) -> Union[pathos.helpers.mp.Process, None]: - """ - A helper method to return the running algorithm process - - Returns: - Union[pathos.helpers.mp.Process, None]: An algorithm process or None - """ - with TaskProcessing.lock: - return self._algorithm_process - - def _set_algorithm_process( - self, algorithm_process: Union[pathos.helpers.mp.Process, None] - ) -> None: - """ - A helper method to set the algorithm process - - Args: - algorithm_process (Union[pathos.helpers.mp.Process, None]): Algorithm process or None - """ - with TaskProcessing.lock: - self._algorithm_process = algorithm_process + _to_stop: bool = False + _logger: Union[AppLogger, None] = None + _message_id: str = "" + _message_arguments: str = "" + _result_queue: Union[pathos.helpers.mp.Queue, None] = None + _task_argument: Union[TaskArgument, None] = None + _task_result: Union[TaskResult, None] = None + _task_type: Union[TaskType, None] = None @staticmethod - def run_algorithm_in_process( - algorithm_instance: IAlgorithm, results: pathos.helpers.mp.Queue + def run_task_processing_in_process( + logger: AppLogger, + task_argument: TaskArgument, + message_id: str, + message_arguments: str, + task_type: TaskType, + result_queue: pathos.helpers.mp.Queue, ) -> None: """ - A method that runs in a process to generate the results from the specific algorithm. - The results will be placed in the queue and returned. + A method that runs in a process to generate the results from the task argument + The updates and results will be placed in the queue and returned. Args: - algorithm_instance (IAlgorithm): The algorithm instance - results (pathos.helpers.mp.Queue): The multiprocessing queue to store results and return to the caller + logger (AppLogger): The reference logger + task_argument (TaskArgument): The task arguments + message_id (str): The redis message id + message_arguments (str): The redis message arguments + task_type (TaskType): The task type + result_queue (pathos.helpers.mp.Queue): The multiprocessing queue to store results and return to the caller """ - try: - # Generate the results using plugin and set task results - # Put the results in the queue - algorithm_instance.generate() - results.put((True, algorithm_instance.get_results())) - - except Exception as exception: - # Catch all error and Update the exception message in the queue - results.put((False, str(exception))) + # Store the values + TaskProcessing._logger = logger + TaskProcessing._task_argument = task_argument + TaskProcessing._message_id = message_id + TaskProcessing._message_arguments = message_arguments + TaskProcessing._task_type = task_type + TaskProcessing._task_result = TaskResult(TaskProcessing._logger) + TaskProcessing._result_queue = result_queue + TaskProcessing._to_stop = False + + PluginController.set_logger(TaskProcessing._logger) + AppLogger.add_to_log( + TaskProcessing._logger, + logging.INFO, + f"The task validation is successful: {TaskProcessing._task_argument.id}", + ) + AppLogger.add_to_log( + TaskProcessing._logger, + logging.INFO, + f"Working on task: " + f"message_id {TaskProcessing._message_id}, " + f"message_args {TaskProcessing._message_arguments}, " + f"task_type: {TaskProcessing._task_type}", + ) - def stop(self) -> None: - """ - A method to stop all processing - """ - AppLogger.add_to_log(self._logger, logging.INFO, "Stopping task processing") - self._to_stop = True - - # Check and terminate the process if running - running_process = self._get_algorithm_process() - if running_process: - # Process is running. Terminate it - running_process.terminate() + # Process the incoming task + if TaskProcessing._task_type is TaskType.PENDING: + is_success, error_messages = TaskProcessing.process_pending_task() else: - # Unable to terminate - AppLogger.add_to_log( - self._logger, logging.INFO, "There are no running task" + is_success, error_messages = TaskProcessing.process_new_task() + + # Attach the result in the result queue + TaskProcessing._result_queue.put( + ( + ProcessStatus.COMPLETE, + (is_success, TaskProcessing._task_result, error_messages), ) + ) - def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: + @staticmethod + def process_new_task() -> Tuple[bool, str]: """ A method to process on new tasks It will run the task and set the respective task response - Args: - task_argument (TaskArgument): Contains the arguments for this task - Returns: Tuple[bool, str]: Returns bool on whether it is successful and indicate the error messages if failure """ @@ -116,9 +106,13 @@ def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: try: # Set current task as Running and send update - self._task_result.set_status(TaskStatus.RUNNING) - AppLogger.add_to_log(self._logger, logging.INFO, "Sending task update") - self._task_update_callback() + TaskProcessing._task_result.set_status(TaskStatus.RUNNING) + AppLogger.add_to_log( + TaskProcessing._logger, logging.INFO, "Sending task update" + ) + TaskProcessing._result_queue.put( + (ProcessStatus.UPDATE, TaskProcessing._task_result) + ) # Load instances ( @@ -128,7 +122,7 @@ def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: _, algorithm_serializer_instance, load_error_messages, - ) = self._load_instances(task_argument) + ) = TaskProcessing._load_instances(TaskProcessing._task_argument) if not ( is_load_success and data_serializer_instance[0] @@ -141,65 +135,42 @@ def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: model_instance = model_serializer_instance[0] algorithm_instance = algorithm_serializer_instance[0] - # Run the algorithm instance in a Process and will return results when completed. - # If there is a process termination required, will terminate the process. - # Create a new queue for the process to place the results - with pathos.helpers.mp.Manager() as manager: - results_queue = manager.Queue() + # Generate and get the output from the algorithm process + algorithm_instance.generate() - # Create the Process - new_process = pathos.helpers.mp.Process( - target=TaskProcessing.run_algorithm_in_process, - args=(algorithm_instance, results_queue), - ) + process_output = algorithm_instance.get_results() + if not process_output: + # Exception while processing algorithm + raise RuntimeError(process_output) - # Set the process before starting - self._set_algorithm_process(new_process) - new_process.start() - new_process.join() - - # Retrieve the result from the queue - try: - results = results_queue.get(timeout=1) - except queue.Empty: - if self._to_stop: - raise RuntimeError("The user cancelled the task") - else: - raise RuntimeError("The algorithm has generated no results") - - # Get the output from the algorithm process - is_processing_success, process_output = results - if not is_processing_success: - # Exception while processing algorithm - raise RuntimeError(process_output) - - # Get the task results and convert to json friendly and validate against the output schema + # Get the task results and convert to json friendly and validate against the output schema + AppLogger.add_to_log( + TaskProcessing._logger, + logging.INFO, + f"The raw task results: {process_output}", + ) + task_results = remove_numpy_formats(process_output) + ( + is_validation_success, + validation_error_messages, + ) = TaskProcessing._validate_task_results( + task_results, + TaskProcessing._task_argument.algorithm_plugin_information.get_algorithm_output_schema(), + ) + + if is_validation_success: + TaskProcessing._task_result.set_results(task_results) + is_success = True + error_messages = "" + else: + # Validation failed AppLogger.add_to_log( - self._logger, - logging.INFO, - f"The raw task results: {process_output}", - ) - task_results = remove_numpy_formats(process_output) - ( - is_validation_success, - validation_error_messages, - ) = self._validate_task_results( - task_results, - task_argument.algorithm_plugin_information.get_algorithm_output_schema(), + TaskProcessing._logger, + logging.ERROR, + f"Failed output schema validation: " + f"Task Results: {task_results}", ) - if is_validation_success: - self._task_result.set_results(task_results) - is_success = True - error_messages = "" - else: - # Validation failed - AppLogger.add_to_log( - self._logger, - logging.ERROR, - f"Failed output schema validation: " - f"Task Results: {task_results}", - ) - raise RuntimeError(validation_error_messages) + raise RuntimeError(validation_error_messages) except Exception as exception: is_success = False @@ -208,7 +179,7 @@ def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: finally: if is_success: # Set current task as success - self._task_result.set_success() + TaskProcessing._task_result.set_success() else: if is_empty_string(error_messages): @@ -216,12 +187,12 @@ def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: # Set the error and logs messages AppLogger.add_to_log( - self._logger, + TaskProcessing._logger, logging.WARNING, f"The task terminated: {error_messages}", ) AppLogger.add_error_to_log( - self._logger, + TaskProcessing._logger, "SYS", "CSYSx00146", f"Task Terminated: {error_messages}", @@ -229,11 +200,8 @@ def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: "task_processing.py", ) - # Set current task as failure / cancelled - if self._to_stop: - self._task_result.set_cancelled() - else: - self._task_result.set_failure() + # Set current task as failed + TaskProcessing._task_result.set_failure() # Perform clean up for model instance if model_instance: @@ -241,36 +209,36 @@ def process_new_task(self, task_argument: TaskArgument) -> Tuple[bool, str]: return is_success, error_messages - def process_pending_task(self, task_arguments: TaskArgument) -> Tuple[bool, str]: + @staticmethod + def process_pending_task() -> Tuple[bool, str]: """ A method to process on pending tasks It will write error logs and set the respective task response to set in hset - Args: - task_arguments (TaskArgument): Contains the pending task arguments - Returns: Tuple[bool, str]: Returns True and no error messages """ # Set the error and logs messages AppLogger.add_to_log( - self._logger, logging.INFO, f"The task terminated: {task_arguments.id}" + TaskProcessing._logger, + logging.INFO, + f"The task terminated: {TaskProcessing._task_argument.id}", ) AppLogger.add_error_to_log( - self._logger, + TaskProcessing._logger, "SYS", "CSYSx00146", - f"Task Terminated: {task_arguments.id}", + f"Task Terminated: {TaskProcessing._task_argument.id}", "Warning", "task_processing.py", ) - # Set current task as failure - self._task_result.set_failure() + TaskProcessing._task_result.set_failure() return True, "" + @staticmethod def _load_instances( - self, task_argument: TaskArgument + task_argument: TaskArgument, ) -> Tuple[ bool, Tuple[Union[IData, None], Union[ISerializer, None]], @@ -295,24 +263,27 @@ def _load_instances( If it is not successful, it will return the error messages. """ # Identify if the model is a pipeline - if StreamProcessing.detect_pipeline(self._logger, task_argument.model): + if StreamProcessing.detect_pipeline( + TaskProcessing._logger, task_argument.model + ): AppLogger.add_to_log( - self._logger, + TaskProcessing._logger, logging.INFO, "Found the pipeline model. Loading pipeline instances", ) - return self._load_pipeline_instances(task_argument) + return TaskProcessing._load_pipeline_instances(task_argument) else: AppLogger.add_to_log( - self._logger, + TaskProcessing._logger, logging.INFO, "Unable to find pipeline model. Loading non-pipeline instances", ) - return self._load_non_pipeline_instances(task_argument) + return TaskProcessing._load_non_pipeline_instances(task_argument) + @staticmethod def _load_non_pipeline_instances( - self, task_argument: TaskArgument + task_argument: TaskArgument, ) -> Tuple[ bool, Tuple[Union[IData, None], Union[ISerializer, None]], @@ -359,7 +330,7 @@ def _load_non_pipeline_instances( is_load_data_success, data_serializer_instance, load_data_error_message, - ) = StreamProcessing.load_data(self._logger, task_argument.data) + ) = StreamProcessing.load_data(TaskProcessing._logger, task_argument.data) if not is_load_data_success: is_success = is_load_data_success raise RuntimeError(load_data_error_message) @@ -380,7 +351,7 @@ def _load_non_pipeline_instances( model_serializer_instance, load_model_error_message, ) = StreamProcessing.load_model( - self._logger, + TaskProcessing._logger, task_argument.mode, task_argument.model, task_argument.api_schema, @@ -400,7 +371,7 @@ def _load_non_pipeline_instances( ground_truth_serializer_instance, load_ground_truth_error_message, ) = StreamProcessing.load_ground_truth( - self._logger, task_argument.ground_truth_dataset + TaskProcessing._logger, task_argument.ground_truth_dataset ) if not is_load_ground_truth_success: is_success = is_load_ground_truth_success @@ -427,7 +398,7 @@ def _load_non_pipeline_instances( algorithm_serializer_instance, load_algorithm_error_message, ) = StreamProcessing.load_algorithm( - self._logger, + TaskProcessing._logger, task_argument.algorithm_id, task_argument.algorithm_arguments, data_serializer_instance, @@ -435,7 +406,7 @@ def _load_non_pipeline_instances( task_argument.ground_truth, model_serializer_instance, task_argument.model_type, - self._update_task_progress, + TaskProcessing._update_task_progress, ) if not is_load_algorithm_success: is_success = is_load_algorithm_success @@ -454,8 +425,9 @@ def _load_non_pipeline_instances( error_message, ) + @staticmethod def _load_pipeline_instances( - self, task_argument: TaskArgument + task_argument: TaskArgument, ) -> Tuple[ bool, Tuple[Union[IData, None], Union[ISerializer, None]], @@ -501,7 +473,7 @@ def _load_pipeline_instances( is_load_data_success, data_serializer_instance, load_data_error_message, - ) = StreamProcessing.load_data(self._logger, task_argument.data) + ) = StreamProcessing.load_data(TaskProcessing._logger, task_argument.data) if not is_load_data_success: is_success = is_load_data_success raise RuntimeError(load_data_error_message) @@ -511,7 +483,9 @@ def _load_pipeline_instances( is_load_model_success, model_serializer_instance, load_model_error_message, - ) = StreamProcessing.load_pipeline(self._logger, task_argument.model) + ) = StreamProcessing.load_pipeline( + TaskProcessing._logger, task_argument.model + ) if not is_load_model_success: is_success = is_load_model_success raise RuntimeError(load_model_error_message) @@ -540,7 +514,7 @@ def _load_pipeline_instances( ground_truth_serializer_instance, load_ground_truth_error_message, ) = StreamProcessing.load_ground_truth( - self._logger, task_argument.ground_truth_dataset + TaskProcessing._logger, task_argument.ground_truth_dataset ) if not is_load_ground_truth_success: is_success = is_load_ground_truth_success @@ -567,7 +541,7 @@ def _load_pipeline_instances( algorithm_serializer_instance, load_algorithm_error_message, ) = StreamProcessing.load_algorithm( - self._logger, + TaskProcessing._logger, task_argument.algorithm_id, task_argument.algorithm_arguments, data_serializer_instance, @@ -575,7 +549,7 @@ def _load_pipeline_instances( task_argument.ground_truth, model_serializer_instance, task_argument.model_type, - self._update_task_progress, + TaskProcessing._update_task_progress, initial_data_serializer_instance[0], initial_model_serializer_instance[0], ) @@ -596,7 +570,8 @@ def _load_pipeline_instances( error_message, ) - def _update_task_progress(self, completion_progress: int) -> None: + @staticmethod + def _update_task_progress(completion_progress: int) -> None: """ A helper method to update the new task progress and send task update @@ -604,11 +579,14 @@ def _update_task_progress(self, completion_progress: int) -> None: completion_progress (int): Current progress completion """ # Set the task completion progress - self._task_result.set_progress(completion_progress) - self._task_update_callback() + TaskProcessing._task_result.set_progress(completion_progress) + TaskProcessing._result_queue.put( + (ProcessStatus.UPDATE, TaskProcessing._task_result) + ) + @staticmethod def _validate_task_results( - self, task_result: Dict, algorithm_output_schema: Dict + task_result: Dict, algorithm_output_schema: Dict ) -> Tuple[bool, str]: """ A helper method to validate task results according to output schema From c19950794d55248d3d877a847c1d8722231c0386 Mon Sep 17 00:00:00 2001 From: Leong Peck Yoke <Leong_Peck_Yoke@imda.gov.sg> Date: Wed, 26 Jul 2023 13:43:15 +0800 Subject: [PATCH 21/30] update mongoose, puppeteer and monodb-memory-server to fix dependabots alerts --- ai-verify-apigw/package-lock.json | 5635 ++++++++++++++++------------- ai-verify-apigw/package.json | 6 +- 2 files changed, 3025 insertions(+), 2616 deletions(-) diff --git a/ai-verify-apigw/package-lock.json b/ai-verify-apigw/package-lock.json index 3572ff60b..49aa786d7 100644 --- a/ai-verify-apigw/package-lock.json +++ b/ai-verify-apigw/package-lock.json @@ -27,10 +27,10 @@ "jsonschema": "^1.4.1", "lodash": "^4.17.21", "moment": "^2.29.4", - "mongoose": "^6.8.2", + "mongoose": "^6.11.4", "multer": "^1.4.5-lts.1", "node-cache": "^5.1.2", - "puppeteer": "^20.7.1", + "puppeteer": "^20.9.0", "redis": "^4.5.1", "ws": "^8.11.0" }, @@ -46,7 +46,7 @@ "jest-html-reporter": "^3.7.1", "jest-json-reporter": "^1.2.2", "mock-fs": "^5.2.0", - "mongodb-memory-server": "^8.12.1", + "mongodb-memory-server": "^8.13.0", "supertest": "^6.3.3", "ts-jest": "^29.1.0" } @@ -290,10 +290,27 @@ "node": ">=14" } }, + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "optional": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "optional": true + }, "node_modules/@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", "optional": true, "dependencies": { "tslib": "^1.11.1" @@ -306,16 +323,16 @@ "optional": true }, "node_modules/@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", "optional": true, "dependencies": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-locate-window": "^3.0.0", "@aws-sdk/util-utf8-browser": "^3.0.0", "tslib": "^1.11.1" @@ -328,13 +345,13 @@ "optional": true }, "node_modules/@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", "optional": true, "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", "tslib": "^1.11.1" } }, @@ -345,9 +362,9 @@ "optional": true }, "node_modules/@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", "optional": true, "dependencies": { "tslib": "^1.11.1" @@ -360,12 +377,12 @@ "optional": true }, "node_modules/@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", "optional": true, "dependencies": { - "@aws-sdk/types": "^3.110.0", + "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-utf8-browser": "^3.0.0", "tslib": "^1.11.1" } @@ -376,1543 +393,1582 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "optional": true }, - "node_modules/@aws-sdk/abort-controller": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz", - "integrity": "sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.241.0.tgz", - "integrity": "sha512-9X/MwcnSwWfB0ijggFjyBWa4gtlUAyI39eBaVSE0AxMcgLlHKedEK6w5F1RrtvWqb7KyJDsyAysVecU4E9zQQQ==", + "version": "3.377.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.377.0.tgz", + "integrity": "sha512-wpr1NIx18GrrwiiYZ4aF/FSMpBGXOg4FBtloohA5sAAXmIDjY8yYsfuyI9YF5HIrYnc5ZL3a9NQXgva0ahepdQ==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.241.0", - "@aws-sdk/config-resolver": "3.234.0", - "@aws-sdk/credential-provider-node": "3.241.0", - "@aws-sdk/fetch-http-handler": "3.226.0", - "@aws-sdk/hash-node": "3.226.0", - "@aws-sdk/invalid-dependency": "3.226.0", - "@aws-sdk/middleware-content-length": "3.226.0", - "@aws-sdk/middleware-endpoint": "3.226.0", - "@aws-sdk/middleware-host-header": "3.226.0", - "@aws-sdk/middleware-logger": "3.226.0", - "@aws-sdk/middleware-recursion-detection": "3.226.0", - "@aws-sdk/middleware-retry": "3.235.0", - "@aws-sdk/middleware-serde": "3.226.0", - "@aws-sdk/middleware-signing": "3.226.0", - "@aws-sdk/middleware-stack": "3.226.0", - "@aws-sdk/middleware-user-agent": "3.226.0", - "@aws-sdk/node-config-provider": "3.226.0", - "@aws-sdk/node-http-handler": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/smithy-client": "3.234.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/url-parser": "3.226.0", - "@aws-sdk/util-base64": "3.208.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.234.0", - "@aws-sdk/util-defaults-mode-node": "3.234.0", - "@aws-sdk/util-endpoints": "3.241.0", - "@aws-sdk/util-retry": "3.229.0", - "@aws-sdk/util-user-agent-browser": "3.226.0", - "@aws-sdk/util-user-agent-node": "3.226.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", - "tslib": "^2.3.1" + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.377.0", + "@aws-sdk/credential-provider-node": "3.370.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/client-sso": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.241.0.tgz", - "integrity": "sha512-Jm4HR+RYAqKMEYZvvWaq0NYUKKonyInOeubObXH4BLXZpmUBSdYCSjjLdNJY3jkQoxbDVPVMIurVNh5zT5SMRw==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.370.0.tgz", + "integrity": "sha512-0Ty1iHuzNxMQtN7nahgkZr4Wcu1XvqGfrQniiGdKKif9jG/4elxsQPiydRuQpFqN6b+bg7wPP7crFP1uTxx2KQ==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.234.0", - "@aws-sdk/fetch-http-handler": "3.226.0", - "@aws-sdk/hash-node": "3.226.0", - "@aws-sdk/invalid-dependency": "3.226.0", - "@aws-sdk/middleware-content-length": "3.226.0", - "@aws-sdk/middleware-endpoint": "3.226.0", - "@aws-sdk/middleware-host-header": "3.226.0", - "@aws-sdk/middleware-logger": "3.226.0", - "@aws-sdk/middleware-recursion-detection": "3.226.0", - "@aws-sdk/middleware-retry": "3.235.0", - "@aws-sdk/middleware-serde": "3.226.0", - "@aws-sdk/middleware-stack": "3.226.0", - "@aws-sdk/middleware-user-agent": "3.226.0", - "@aws-sdk/node-config-provider": "3.226.0", - "@aws-sdk/node-http-handler": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/smithy-client": "3.234.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/url-parser": "3.226.0", - "@aws-sdk/util-base64": "3.208.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.234.0", - "@aws-sdk/util-defaults-mode-node": "3.234.0", - "@aws-sdk/util-endpoints": "3.241.0", - "@aws-sdk/util-retry": "3.229.0", - "@aws-sdk/util-user-agent-browser": "3.226.0", - "@aws-sdk/util-user-agent-node": "3.226.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", - "tslib": "^2.3.1" + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.241.0.tgz", - "integrity": "sha512-/Ml2QBGpGfUEeBrPzBZhSTBkHuXFD2EAZEIHGCBH4tKaURDI6/FoGI8P1Rl4BzoFt+II/Cr91Eox6YT9EwChsQ==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.370.0.tgz", + "integrity": "sha512-jAYOO74lmVXylQylqkPrjLzxvUnMKw476JCUTvCO6Q8nv3LzCWd76Ihgv/m9Q4M2Tbqi1iP2roVK5bstsXzEjA==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.234.0", - "@aws-sdk/fetch-http-handler": "3.226.0", - "@aws-sdk/hash-node": "3.226.0", - "@aws-sdk/invalid-dependency": "3.226.0", - "@aws-sdk/middleware-content-length": "3.226.0", - "@aws-sdk/middleware-endpoint": "3.226.0", - "@aws-sdk/middleware-host-header": "3.226.0", - "@aws-sdk/middleware-logger": "3.226.0", - "@aws-sdk/middleware-recursion-detection": "3.226.0", - "@aws-sdk/middleware-retry": "3.235.0", - "@aws-sdk/middleware-serde": "3.226.0", - "@aws-sdk/middleware-stack": "3.226.0", - "@aws-sdk/middleware-user-agent": "3.226.0", - "@aws-sdk/node-config-provider": "3.226.0", - "@aws-sdk/node-http-handler": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/smithy-client": "3.234.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/url-parser": "3.226.0", - "@aws-sdk/util-base64": "3.208.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.234.0", - "@aws-sdk/util-defaults-mode-node": "3.234.0", - "@aws-sdk/util-endpoints": "3.241.0", - "@aws-sdk/util-retry": "3.229.0", - "@aws-sdk/util-user-agent-browser": "3.226.0", - "@aws-sdk/util-user-agent-node": "3.226.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", - "tslib": "^2.3.1" + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/client-sso-oidc/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/client-sso/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/client-sts": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.241.0.tgz", - "integrity": "sha512-vmlG8cJzRf8skCtTJbA2wBvD2c3NQ5gZryzJvTKDS06KzBzcEpnjlLseuTekcnOiRNekbFUX5hRu5Zj3N2ReLg==", + "version": "3.377.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.377.0.tgz", + "integrity": "sha512-K/yTHxVtTIwU42qCxbv78eT74j+GZMCcQ5TUd2fwxEWeq8HcIWcTIhujv7F6UtdrQHrou20wZ/+jMQtVKfkXXQ==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.234.0", - "@aws-sdk/credential-provider-node": "3.241.0", - "@aws-sdk/fetch-http-handler": "3.226.0", - "@aws-sdk/hash-node": "3.226.0", - "@aws-sdk/invalid-dependency": "3.226.0", - "@aws-sdk/middleware-content-length": "3.226.0", - "@aws-sdk/middleware-endpoint": "3.226.0", - "@aws-sdk/middleware-host-header": "3.226.0", - "@aws-sdk/middleware-logger": "3.226.0", - "@aws-sdk/middleware-recursion-detection": "3.226.0", - "@aws-sdk/middleware-retry": "3.235.0", - "@aws-sdk/middleware-sdk-sts": "3.226.0", - "@aws-sdk/middleware-serde": "3.226.0", - "@aws-sdk/middleware-signing": "3.226.0", - "@aws-sdk/middleware-stack": "3.226.0", - "@aws-sdk/middleware-user-agent": "3.226.0", - "@aws-sdk/node-config-provider": "3.226.0", - "@aws-sdk/node-http-handler": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/smithy-client": "3.234.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/url-parser": "3.226.0", - "@aws-sdk/util-base64": "3.208.0", - "@aws-sdk/util-body-length-browser": "3.188.0", - "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.234.0", - "@aws-sdk/util-defaults-mode-node": "3.234.0", - "@aws-sdk/util-endpoints": "3.241.0", - "@aws-sdk/util-retry": "3.229.0", - "@aws-sdk/util-user-agent-browser": "3.226.0", - "@aws-sdk/util-user-agent-node": "3.226.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", - "fast-xml-parser": "4.0.11", - "tslib": "^2.3.1" + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.370.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-sdk-sts": "3.370.0", + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/config-resolver": { - "version": "3.234.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.234.0.tgz", - "integrity": "sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A==", - "optional": true, - "dependencies": { - "@aws-sdk/signature-v4": "3.226.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.226.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } + "node_modules/@aws-sdk/client-sts/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.241.0.tgz", - "integrity": "sha512-e2hlXWG9DH93uVe2wHIUrUOrgZTLzCV3gBd10D3/usSzS4FvVVU7OmidnRPYCLLnt3EvnL5b4REOedO1q8hv8g==", + "version": "3.377.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.377.0.tgz", + "integrity": "sha512-tF52N78Xw4RJUyyx7UdnBgTHDMimmuHXk6gx3bT3ycmeDxFpJeMXSEIkemk/qbeChNqeAWPprqZiSAq7t/ssuQ==", "optional": true, "dependencies": { - "@aws-sdk/client-cognito-identity": "3.241.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/client-cognito-identity": "3.377.0", + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz", - "integrity": "sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.370.0.tgz", + "integrity": "sha512-raR3yP/4GGbKFRPP5hUBNkEmTnzxI9mEc2vJAJrcv4G4J4i/UP6ELiLInQ5eO2/VcV/CeKGZA3t7d1tsJ+jhCg==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz", - "integrity": "sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q==", - "optional": true, - "dependencies": { - "@aws-sdk/node-config-provider": "3.226.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/url-parser": "3.226.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } + "node_modules/@aws-sdk/credential-provider-env/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.241.0.tgz", - "integrity": "sha512-CI+mu6h74Kzmscw35TvNkc/wYHsHPGAwP7humSHoWw53H9mVw21Ggft/dT1iFQQZWQ8BNXkzuXlNo1IlqwMgOA==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.370.0.tgz", + "integrity": "sha512-eJyapFKa4NrC9RfTgxlXnXfS9InG/QMEUPPVL+VhG7YS6nKqetC1digOYgivnEeu+XSKE0DJ7uZuXujN2Y7VAQ==", "optional": true, "dependencies": { - "@aws-sdk/credential-provider-env": "3.226.0", - "@aws-sdk/credential-provider-imds": "3.226.0", - "@aws-sdk/credential-provider-process": "3.226.0", - "@aws-sdk/credential-provider-sso": "3.241.0", - "@aws-sdk/credential-provider-web-identity": "3.226.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/shared-ini-file-loader": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/credential-provider-env": "3.370.0", + "@aws-sdk/credential-provider-process": "3.370.0", + "@aws-sdk/credential-provider-sso": "3.370.0", + "@aws-sdk/credential-provider-web-identity": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/credential-provider-imds": "^1.0.1", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.241.0.tgz", - "integrity": "sha512-08zPQcD5o9brQmzEipWHeHgU85aQcEF8MWLfpeyjO6e1/l7ysQ35NsS+PYtv77nLpGCx/X+ZuW/KXWoRrbw77w==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.370.0.tgz", + "integrity": "sha512-gkFiotBFKE4Fcn8CzQnMeab9TAR06FEAD02T4ZRYW1xGrBJOowmje9dKqdwQFHSPgnWAP+8HoTA8iwbhTLvjNA==", "optional": true, "dependencies": { - "@aws-sdk/credential-provider-env": "3.226.0", - "@aws-sdk/credential-provider-imds": "3.226.0", - "@aws-sdk/credential-provider-ini": "3.241.0", - "@aws-sdk/credential-provider-process": "3.226.0", - "@aws-sdk/credential-provider-sso": "3.241.0", - "@aws-sdk/credential-provider-web-identity": "3.226.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/shared-ini-file-loader": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/credential-provider-env": "3.370.0", + "@aws-sdk/credential-provider-ini": "3.370.0", + "@aws-sdk/credential-provider-process": "3.370.0", + "@aws-sdk/credential-provider-sso": "3.370.0", + "@aws-sdk/credential-provider-web-identity": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/credential-provider-imds": "^1.0.1", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz", - "integrity": "sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.370.0.tgz", + "integrity": "sha512-0BKFFZmUO779Xdw3u7wWnoWhYA4zygxJbgGVSyjkOGBvdkbPSTTcdwT1KFkaQy2kOXYeZPl+usVVRXs+ph4ejg==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/shared-ini-file-loader": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.241.0.tgz", - "integrity": "sha512-6Bjd6eEIrVomRTrPrM4dlxusQm+KMJ9hLYKECCpFkwDKIK+pTgZNLRtQdalHyzwneHJPdimrm8cOv1kUQ8hPoA==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.370.0.tgz", + "integrity": "sha512-PFroYm5hcPSfC/jkZnCI34QFL3I7WVKveVk6/F3fud/cnP8hp6YjA9NiTNbqdFSzsyoiN/+e5fZgNKih8vVPTA==", "optional": true, "dependencies": { - "@aws-sdk/client-sso": "3.241.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/shared-ini-file-loader": "3.226.0", - "@aws-sdk/token-providers": "3.241.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/client-sso": "3.370.0", + "@aws-sdk/token-providers": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz", - "integrity": "sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw==", + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.370.0.tgz", + "integrity": "sha512-CFaBMLRudwhjv1sDzybNV93IaT85IwS+L8Wq6VRMa0mro1q9rrWsIZO811eF+k0NEPfgU1dLH+8Vc2qhw4SARQ==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, "node_modules/@aws-sdk/credential-providers": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.241.0.tgz", - "integrity": "sha512-J3Q45t1o35OhUI6gWks7rmosPT+mFWXiaHl2LST509Ovjwx6SFs2PvbGP6n7xqUzxyq5Rk6FzZBwB8ItuAa6Qw==", + "version": "3.377.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.377.0.tgz", + "integrity": "sha512-dO5//5dqiDbK+Zvu7Zn4AghEe4L3ElY2LXPFdCJCY5s7KkztbkfeQ11TCkhHdPh+CEF8f5Ef7sdT7GIOpuWQ5g==", "optional": true, "dependencies": { - "@aws-sdk/client-cognito-identity": "3.241.0", - "@aws-sdk/client-sso": "3.241.0", - "@aws-sdk/client-sts": "3.241.0", - "@aws-sdk/credential-provider-cognito-identity": "3.241.0", - "@aws-sdk/credential-provider-env": "3.226.0", - "@aws-sdk/credential-provider-imds": "3.226.0", - "@aws-sdk/credential-provider-ini": "3.241.0", - "@aws-sdk/credential-provider-node": "3.241.0", - "@aws-sdk/credential-provider-process": "3.226.0", - "@aws-sdk/credential-provider-sso": "3.241.0", - "@aws-sdk/credential-provider-web-identity": "3.226.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/shared-ini-file-loader": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/client-cognito-identity": "3.377.0", + "@aws-sdk/client-sso": "3.370.0", + "@aws-sdk/client-sts": "3.377.0", + "@aws-sdk/credential-provider-cognito-identity": "3.377.0", + "@aws-sdk/credential-provider-env": "3.370.0", + "@aws-sdk/credential-provider-ini": "3.370.0", + "@aws-sdk/credential-provider-node": "3.370.0", + "@aws-sdk/credential-provider-process": "3.370.0", + "@aws-sdk/credential-provider-sso": "3.370.0", + "@aws-sdk/credential-provider-web-identity": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/credential-provider-imds": "^1.0.1", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz", - "integrity": "sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg==", - "optional": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/querystring-builder": "3.226.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/util-base64": "3.208.0", - "tslib": "^2.3.1" - } + "node_modules/@aws-sdk/credential-providers/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@aws-sdk/hash-node": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz", - "integrity": "sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw==", + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.370.0.tgz", + "integrity": "sha512-CPXOm/TnOFC7KyXcJglICC7OiA7Kj6mT3ChvEijr56TFOueNHvJdV4aNIFEQy0vGHOWtY12qOWLNto/wYR1BAQ==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "@aws-sdk/util-buffer-from": "3.208.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz", - "integrity": "sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" - } + "node_modules/@aws-sdk/middleware-host-header/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.201.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", - "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.370.0.tgz", + "integrity": "sha512-cQMq9SaZ/ORmTJPCT6VzMML7OxFdQzNkhMAgKpTDl+tdPWynlHF29E5xGoSzROnThHlQPCjogU0NZ8AxI0SWPA==", "optional": true, "dependencies": { - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz", - "integrity": "sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA==", + "node_modules/@aws-sdk/middleware-logger/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.370.0.tgz", + "integrity": "sha512-L7ZF/w0lAAY/GK1khT8VdoU0XB7nWHk51rl/ecAg64J70dHnMOAg8n+5FZ9fBu/xH1FwUlHOkwlodJOgzLJjtg==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-endpoint": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz", - "integrity": "sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg==", + "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.370.0.tgz", + "integrity": "sha512-ykbsoVy0AJtVbuhAlTAMcaz/tCE3pT8nAp0L7CQQxSoanRCvOux7au0KwMIQVhxgnYid4dWVF6d00SkqU5MXRA==", "optional": true, "dependencies": { - "@aws-sdk/middleware-serde": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/signature-v4": "3.226.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/url-parser": "3.226.0", - "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz", - "integrity": "sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA==", + "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.370.0.tgz", + "integrity": "sha512-Dwr/RTCWOXdm394wCwICGT2VNOTMRe4IGPsBRJAsM24pm+EEqQzSS3Xu/U/zF4exuxqpMta4wec4QpSarPNTxA==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/protocol-http": "^1.1.0", + "@smithy/signature-v4": "^1.0.1", + "@smithy/types": "^1.1.0", + "@smithy/util-middleware": "^1.0.1", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz", - "integrity": "sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA==", + "node_modules/@aws-sdk/middleware-signing/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.370.0.tgz", + "integrity": "sha512-2+3SB6MtMAq1+gVXhw0Y3ONXuljorh6ijnxgTpv+uQnBW5jHCUiAS8WDYiDEm7i9euJPbvJfM8WUrSMDMU6Cog==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz", - "integrity": "sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA==", + "node_modules/@aws-sdk/middleware-user-agent/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.370.0.tgz", + "integrity": "sha512-EyR2ZYr+lJeRiZU2/eLR+mlYU9RXLQvNyGFSAekJKgN13Rpq/h0syzXVFLP/RSod/oZenh/fhVZ2HwlZxuGBtQ==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/client-sso-oidc": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-retry": { - "version": "3.235.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.235.0.tgz", - "integrity": "sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg==", + "node_modules/@aws-sdk/token-providers/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/types": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.370.0.tgz", + "integrity": "sha512-8PGMKklSkRKjunFhzM2y5Jm0H2TBu7YRNISdYzXLUHKSP9zlMEYagseKVdmox0zKHf1LXVNuSlUV2b6SRrieCQ==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/service-error-classification": "3.229.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/util-middleware": "3.226.0", - "@aws-sdk/util-retry": "3.229.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-retry/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } + "node_modules/@aws-sdk/types/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz", - "integrity": "sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg==", + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.370.0.tgz", + "integrity": "sha512-5ltVAnM79nRlywwzZN5i8Jp4tk245OCGkKwwXbnDU+gq7zT3CIOsct1wNZvmpfZEPGt/bv7/NyRcjP+7XNsX/g==", "optional": true, "dependencies": { - "@aws-sdk/middleware-signing": "3.226.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/signature-v4": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-serde": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz", - "integrity": "sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA==", + "node_modules/@aws-sdk/util-endpoints/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.310.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz", + "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz", - "integrity": "sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew==", + "node_modules/@aws-sdk/util-locate-window/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.370.0.tgz", + "integrity": "sha512-028LxYZMQ0DANKhW+AKFQslkScZUeYlPmSphrCIXgdIItRZh6ZJHGzE7J/jDsEntZOrZJsjI4z0zZ5W2idj04w==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/signature-v4": "3.226.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/util-middleware": "3.226.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" } }, - "node_modules/@aws-sdk/middleware-stack": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz", - "integrity": "sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==", + "node_modules/@aws-sdk/util-user-agent-browser/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.370.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.370.0.tgz", + "integrity": "sha512-33vxZUp8vxTT/DGYIR3PivQm07sSRGWI+4fCv63Rt7Q++fO24E0kQtmVAlikRY810I10poD6rwILVtITtFSzkg==", "optional": true, "dependencies": { - "tslib": "^2.3.1" + "@aws-sdk/types": "3.370.0", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz", - "integrity": "sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ==", + "node_modules/@aws-sdk/util-user-agent-node/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/node-config-provider": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz", - "integrity": "sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w==", - "optional": true, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dependencies": { - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/shared-ini-file-loader": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/highlight": "^7.18.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/node-http-handler": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz", - "integrity": "sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA==", - "optional": true, - "dependencies": { - "@aws-sdk/abort-controller": "3.226.0", - "@aws-sdk/protocol-http": "3.226.0", - "@aws-sdk/querystring-builder": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" - }, + "node_modules/@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/property-provider": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz", - "integrity": "sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg==", - "optional": true, + "node_modules/@babel/core": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", + "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.3", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.3", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.3", + "@babel/types": "^7.21.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@aws-sdk/protocol-http": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz", - "integrity": "sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg==", - "optional": true, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "ms": "2.1.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@aws-sdk/querystring-builder": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz", - "integrity": "sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.226.0", - "@aws-sdk/util-uri-escape": "3.201.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "node_modules/@aws-sdk/querystring-parser": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz", - "integrity": "sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==", - "optional": true, + "node_modules/@babel/generator": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", + "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/types": "^7.21.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/service-error-classification": { - "version": "3.229.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz", - "integrity": "sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg==", - "optional": true, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, "engines": { - "node": ">=14.0.0" + "node": ">=6.0.0" } }, - "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz", - "integrity": "sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA==", - "optional": true, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/types": "^7.18.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/signature-v4": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz", - "integrity": "sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==", - "optional": true, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, "dependencies": { - "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/types": "3.226.0", - "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.226.0", - "@aws-sdk/util-uri-escape": "3.201.0", - "tslib": "^2.3.1" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/smithy-client": { - "version": "3.234.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz", - "integrity": "sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ==", - "optional": true, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "dev": true, "dependencies": { - "@aws-sdk/middleware-stack": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.241.0.tgz", - "integrity": "sha512-79okvuOS7V559OIL/RalIPG98wzmWxeFOChFnbEjn2pKOyGQ6FJRwLPYZaVRtNdAtnkBNgRpmFq9dX843QxhtQ==", - "optional": true, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { - "@aws-sdk/client-sso-oidc": "3.241.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/shared-ini-file-loader": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/types": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", - "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", - "optional": true, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "dev": true, "dependencies": { - "tslib": "^2.3.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/url-parser": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz", - "integrity": "sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg==", - "optional": true, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, "dependencies": { - "@aws-sdk/querystring-parser": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "node_modules/@aws-sdk/util-base64": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", - "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", - "optional": true, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { - "@aws-sdk/util-buffer-from": "3.208.0", - "tslib": "^2.3.1" + "ms": "2.1.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@aws-sdk/util-body-length-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", - "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", - "optional": true, - "dependencies": { - "tslib": "^2.3.1" - } + "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "node_modules/@aws-sdk/util-body-length-node": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", - "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", - "optional": true, - "dependencies": { - "tslib": "^2.3.1" - }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", - "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", - "optional": true, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, "dependencies": { - "@aws-sdk/is-array-buffer": "3.201.0", - "tslib": "^2.3.1" + "@babel/types": "^7.18.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-config-provider": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", - "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", - "optional": true, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, "dependencies": { - "tslib": "^2.3.1" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.234.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.234.0.tgz", - "integrity": "sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw==", - "optional": true, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, "dependencies": { - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/types": "3.226.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" + "@babel/types": "^7.18.6" }, "engines": { - "node": ">= 10.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.234.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.234.0.tgz", - "integrity": "sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w==", - "optional": true, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "dev": true, "dependencies": { - "@aws-sdk/config-resolver": "3.234.0", - "@aws-sdk/credential-provider-imds": "3.226.0", - "@aws-sdk/node-config-provider": "3.226.0", - "@aws-sdk/property-provider": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/types": "^7.21.0" }, "engines": { - "node": ">= 10.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-endpoints": { - "version": "3.241.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.241.0.tgz", - "integrity": "sha512-jVf8bKrN22Ey0xLmj75sL7EUvm5HFpuOMkXsZkuXycKhCwLBcEUWlvtJYtRjOU1zScPQv9GMJd2QXQglp34iOQ==", - "optional": true, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/types": "^7.18.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.201.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", - "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", - "optional": true, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, "dependencies": { - "tslib": "^2.3.1" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", - "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", - "optional": true, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, "dependencies": { - "tslib": "^2.3.1" + "@babel/types": "^7.18.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-middleware": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz", - "integrity": "sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==", - "optional": true, - "dependencies": { - "tslib": "^2.3.1" - }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-retry": { - "version": "3.229.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz", - "integrity": "sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw==", - "optional": true, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, "dependencies": { - "@aws-sdk/service-error-classification": "3.229.0", - "tslib": "^2.3.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { - "node": ">= 14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/util-uri-escape": { - "version": "3.201.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", - "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", - "optional": true, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, "dependencies": { - "tslib": "^2.3.1" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz", - "integrity": "sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA==", - "optional": true, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.226.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.226.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz", - "integrity": "sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A==", - "optional": true, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, "dependencies": { - "@aws-sdk/node-config-provider": "3.226.0", - "@aws-sdk/types": "3.226.0", - "tslib": "^2.3.1" + "@babel/types": "^7.20.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.188.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", - "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", - "optional": true, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, "dependencies": { - "tslib": "^2.3.1" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", - "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", - "optional": true, - "dependencies": { - "@aws-sdk/util-buffer-from": "3.208.0", - "tslib": "^2.3.1" - }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dependencies": { - "@babel/highlight": "^7.18.6" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/core": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", - "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", - "dev": true, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dependencies": { - "@babel/types": "^7.21.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "node_modules/@babel/parser": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", + "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { "node": ">=6.0.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", - "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", - "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { - "node": ">=6.0" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-hoist-variables": { + "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "dependencies": { - "@babel/types": "^7.21.0" + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-imports": { + "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-optimise-call-expression": { + "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">=6.9.0" + "node": ">=4" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "node_modules/@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, "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/helper-plugin-utils": "^7.8.3" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1921,111 +1977,85 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -2034,14 +2064,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -2050,17 +2079,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -2069,14 +2094,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -2085,15 +2109,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, "dependencies": { + "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-remap-async-to-generator": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2102,13 +2126,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { + "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { @@ -2118,16 +2141,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { + "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -2136,65 +2156,83 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2203,37 +2241,46 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@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==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2242,36 +2289,43 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dev": true, "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { @@ -2281,100 +2335,33 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -2383,13 +2370,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2398,30 +2386,29 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2430,13 +2417,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { + "node_modules/@babel/plugin-transform-object-super": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2445,10 +2433,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -2460,21 +2448,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2483,14 +2463,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -2499,13 +2479,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2514,13 +2494,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { + "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { @@ -2530,13 +2509,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -2545,13 +2525,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { + "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { @@ -2561,13 +2540,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2576,14 +2555,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { + "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { @@ -2593,13 +2570,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", + "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -2608,13 +2588,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2623,14 +2603,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2639,33 +2619,87 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "node_modules/@babel/preset-env": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@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-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.0", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -2674,433 +2708,317 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@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" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "node_modules/@babel/preset-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz", + "integrity": "sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-typescript": "^7.21.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { + "node_modules/@babel/traverse": { "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", + "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.3", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.3", + "@babel/types": "^7.21.3", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "ms": "2.1.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "node_modules/@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "ms": "2.1.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", - "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "node_modules/@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dev": true, + "node_modules/@graphql-tools/load-files": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/load-files/-/load-files-6.6.1.tgz", + "integrity": "sha512-nd4GOjdD68bdJkHfRepILb0gGwF63mJI7uD4oJuuf2Kzeq8LorKa6WfyxUhdMuLmZhnx10zdAlWPfwv1NOAL4Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" + "globby": "11.1.0", + "tslib": "^2.4.0", + "unixify": "1.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, + "node_modules/@graphql-tools/merge": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.0.tgz", + "integrity": "sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@babel/preset-env": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", - "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", - "dev": true, + "node_modules/@graphql-tools/schema": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.17.tgz", + "integrity": "sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng==", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@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-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" + "@graphql-tools/merge": "8.4.0", + "@graphql-tools/utils": "9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "1.0.12" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, + "node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", "dependencies": { - "@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" + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@babel/preset-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz", - "integrity": "sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-typescript": "^7.21.3" - }, - "engines": { - "node": ">=6.9.0" - }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.10.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { + "node_modules/@humanwhocodes/config-array/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", @@ -3117,373 +3035,151 @@ } } }, - "node_modules/@babel/traverse/node_modules/ms": { + "node_modules/@humanwhocodes/config-array/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, "engines": { - "node": ">=6.9.0" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "optional": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=8" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8" } }, - "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@eslint/eslintrc/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@graphql-tools/load-files": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/load-files/-/load-files-6.6.1.tgz", - "integrity": "sha512-nd4GOjdD68bdJkHfRepILb0gGwF63mJI7uD4oJuuf2Kzeq8LorKa6WfyxUhdMuLmZhnx10zdAlWPfwv1NOAL4Q==", - "dependencies": { - "globby": "11.1.0", - "tslib": "^2.4.0", - "unixify": "1.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/merge": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.0.tgz", - "integrity": "sha512-3XYCWe0d3I4F1azNj1CdShlbHfTIfiDgj00R9uvFH8tHKh7i1IWN3F7QQYovcHKhayaR6zPok3YYMESYQcBoaA==", - "dependencies": { - "@graphql-tools/utils": "9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "9.0.17", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.17.tgz", - "integrity": "sha512-HVLq0ecbkuXhJlpZ50IHP5nlISqH2GbNgjBJhhRzHeXhfwlUOT4ISXGquWTmuq61K0xSaO0aCjMpxe4QYbKTng==", - "dependencies": { - "@graphql-tools/merge": "8.4.0", - "@graphql-tools/utils": "9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "optional": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "node": ">=7.0.0" } }, "node_modules/@jest/console/node_modules/color-name": { @@ -3776,573 +3472,1323 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@josephg/resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", + "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@puppeteer/browsers": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz", + "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.0", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@redis/bloom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.1.0.tgz", + "integrity": "sha512-9QovlxmpRtvxVbN0UBcv8WfdSMudNZZTFqCsnBszcQXqaZb/TVe30ScgGEO7u1EAIacTPAo7/oCYjYAxiHLanQ==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/client": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.4.2.tgz", + "integrity": "sha512-oUdEjE0I7JS5AyaAjkD3aOXn9NhO7XKyPyXEyrgFDu++VrVBHUPnV6dgEya9TcMuj5nIJRuCzCm8ZP+c9zCHPw==", + "dependencies": { + "cluster-key-slot": "1.1.1", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/graph": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.0.tgz", + "integrity": "sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.4.tgz", + "integrity": "sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.0.tgz", + "integrity": "sha512-NyFZEVnxIJEybpy+YskjgOJRNsfTYqaPbK/Buv6W2kmFNaRk85JiqjJZA5QkRmWvGbyQYwoO5QfDi2wHskKrQQ==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.4.tgz", + "integrity": "sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "type-detect": "4.0.8" } }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/@smithy/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-5imgGUlZL4dW4YWdMYAKLmal9ny/tlenM81QZY7xYyb76z9Z/QOg7oM5Ak9HQl8QfFTlGVWwcMXl+54jroRgEQ==", + "optional": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/@smithy/abort-controller/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/config-resolver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-1.1.0.tgz", + "integrity": "sha512-7WD9eZHp46BxAjNGHJLmxhhyeiNWkBdVStd7SUJPUZqQGeIO/REtIrcIfKUfdiHTQ9jyu2SYoqvzqqaFc6987w==", + "optional": true, "dependencies": { - "has-flag": "^4.0.0" + "@smithy/types": "^1.2.0", + "@smithy/util-config-provider": "^1.1.0", + "@smithy/util-middleware": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "node_modules/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "dev": true, + "node_modules/@smithy/config-resolver/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-1.1.0.tgz", + "integrity": "sha512-kUMOdEu3RP6ozH0Ga8OeMP8gSkBsK1UqZZKyPLFnpZHrtZuHSSt7M7gsHYB/bYQBZAo3o7qrGmRty3BubYtYxQ==", + "optional": true, "dependencies": { - "@sinclair/typebox": "^0.25.16" + "@smithy/node-config-provider": "^1.1.0", + "@smithy/property-provider": "^1.2.0", + "@smithy/types": "^1.2.0", + "@smithy/url-parser": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", - "dev": true, + "node_modules/@smithy/credential-provider-imds/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/eventstream-codec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-1.1.0.tgz", + "integrity": "sha512-3tEbUb8t8an226jKB6V/Q2XU/J53lCwCzULuBPEaF4JjSh+FlCMp7TmogE/Aij5J9DwlsZ4VAD/IRDuQ/0ZtMw==", + "optional": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^1.2.0", + "@smithy/util-hex-encoding": "^1.1.0", + "tslib": "^2.5.0" } }, - "node_modules/@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", - "dev": true, + "node_modules/@smithy/eventstream-codec/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-1.1.0.tgz", + "integrity": "sha512-N22C9R44u5WGlcY+Wuv8EXmCAq62wWwriRAuoczMEwAIjPbvHSthyPSLqI4S7kAST1j6niWg8kwpeJ3ReAv3xg==", + "optional": true, "dependencies": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@smithy/protocol-http": "^1.2.0", + "@smithy/querystring-builder": "^1.1.0", + "@smithy/types": "^1.2.0", + "@smithy/util-base64": "^1.1.0", + "tslib": "^2.5.0" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", - "dev": true, + "node_modules/@smithy/fetch-http-handler/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/hash-node": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-1.1.0.tgz", + "integrity": "sha512-yiNKDGMzrQjnpnbLfkYKo+HwIxmBAsv0AI++QIJwvhfkLpUTBylelkv6oo78/YqZZS6h+bGfl0gILJsKE2wAKQ==", + "optional": true, "dependencies": { - "@jest/test-result": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "slash": "^3.0.0" + "@smithy/types": "^1.2.0", + "@smithy/util-buffer-from": "^1.1.0", + "@smithy/util-utf8": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", - "dev": true, + "node_modules/@smithy/hash-node/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/invalid-dependency": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-1.1.0.tgz", + "integrity": "sha512-h2rXn68ClTwzPXYzEUNkz+0B/A0Hz8YdFNTiEwlxkwzkETGKMxmsrQGFXwYm3jd736R5vkXcClXz1ddKrsaBEQ==", + "optional": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/invalid-dependency/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/is-array-buffer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-1.1.0.tgz", + "integrity": "sha512-twpQ/n+3OWZJ7Z+xu43MJErmhB/WO/mMTnqR6PwWQShvSJ/emx5d1N59LQZk6ZpTAeuRWrc+eHhkzTp9NFjNRQ==", + "optional": true, + "dependencies": { + "tslib": "^2.5.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/@smithy/is-array-buffer/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/middleware-content-length": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-1.1.0.tgz", + "integrity": "sha512-iNxwhZ7Xc5+LjeDElEOi/Nh8fFsc9Dw9+5w7h7/GLFIU0RgAwBJuJtcP1vNTOwzW4B3hG+gRu8sQLqA9OEaTwA==", + "optional": true, "dependencies": { - "color-convert": "^2.0.1" + "@smithy/protocol-http": "^1.2.0", + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=14.0.0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/@smithy/middleware-content-length/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-1.1.0.tgz", + "integrity": "sha512-PvpazNjVpxX2ICrzoFYCpFnjB39DKCpZds8lRpAB3p6HGrx6QHBaNvOzVhJGBf0jcAbfCdc5/W0n9z8VWaSSww==", + "optional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@smithy/middleware-serde": "^1.1.0", + "@smithy/types": "^1.2.0", + "@smithy/url-parser": "^1.1.0", + "@smithy/util-middleware": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=14.0.0" } }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/@smithy/middleware-endpoint/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/middleware-retry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-1.1.0.tgz", + "integrity": "sha512-lINKYxIvT+W20YFOtHBKeGm7npuJg0/YCoShttU7fVpsmU+a2rdb9zrJn1MHqWfUL6DhTAWGa0tH2O7l4XrDcw==", + "optional": true, "dependencies": { - "color-name": "~1.1.4" + "@smithy/protocol-http": "^1.2.0", + "@smithy/service-error-classification": "^1.1.0", + "@smithy/types": "^1.2.0", + "@smithy/util-middleware": "^1.1.0", + "@smithy/util-retry": "^1.1.0", + "tslib": "^2.5.0", + "uuid": "^8.3.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/@smithy/middleware-retry/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/@smithy/middleware-retry/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/@smithy/middleware-serde": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-1.1.0.tgz", + "integrity": "sha512-RiBMxhxuO9VTjHsjJvhzViyceoLhU6gtrnJGpAXY43wE49IstXIGEQz8MT50/hOq5EumX16FCpup0r5DVyfqNQ==", + "optional": true, "dependencies": { - "has-flag": "^4.0.0" + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", - "dev": true, + "node_modules/@smithy/middleware-serde/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/middleware-stack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-1.1.0.tgz", + "integrity": "sha512-XynYiIvXNea2BbLcppvpNK0zu8o2woJqgnmxqYTn4FWagH/Hr2QIk8LOsUz7BIJ4tooFhmx8urHKCdlPbbPDCA==", + "optional": true, "dependencies": { - "@jest/schemas": "^29.4.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "tslib": "^2.5.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/@smithy/middleware-stack/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/node-config-provider": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-1.1.0.tgz", + "integrity": "sha512-2G4TlzUnmTrUY26VKTonQqydwb+gtM/mcl+TqDP8CnWtJKVL8ElPpKgLGScP04bPIRY9x2/10lDdoaRXDqPuCw==", + "optional": true, "dependencies": { - "color-convert": "^2.0.1" + "@smithy/property-provider": "^1.2.0", + "@smithy/shared-ini-file-loader": "^1.1.0", + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=14.0.0" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/@smithy/node-config-provider/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/node-http-handler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-1.1.0.tgz", + "integrity": "sha512-d3kRriEgaIiGXLziAM8bjnaLn1fthCJeTLZIwEIpzQqe6yPX0a+yQoLCTyjb2fvdLwkMoG4p7THIIB5cj5lkbg==", + "optional": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@smithy/abort-controller": "^1.1.0", + "@smithy/protocol-http": "^1.2.0", + "@smithy/querystring-builder": "^1.1.0", + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=14.0.0" } }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/@smithy/node-http-handler/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/property-provider": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-1.2.0.tgz", + "integrity": "sha512-qlJd9gT751i4T0t/hJAyNGfESfi08Fek8QiLcysoKPgR05qHhG0OYhlaCJHhpXy4ECW0lHyjvFM1smrCLIXVfw==", + "optional": true, "dependencies": { - "color-name": "~1.1.4" + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/@smithy/property-provider/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "node_modules/@smithy/protocol-http": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", + "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", + "optional": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/@smithy/protocol-http/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/querystring-builder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-1.1.0.tgz", + "integrity": "sha512-gDEi4LxIGLbdfjrjiY45QNbuDmpkwh9DX4xzrR2AzjjXpxwGyfSpbJaYhXARw9p17VH0h9UewnNQXNwaQyYMDA==", + "optional": true, "dependencies": { - "has-flag": "^4.0.0" + "@smithy/types": "^1.2.0", + "@smithy/util-uri-escape": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" + "node_modules/@smithy/querystring-builder/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, + "node_modules/@smithy/querystring-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-1.1.0.tgz", + "integrity": "sha512-Lm/FZu2qW3XX+kZ4WPwr+7aAeHf1Lm84UjNkKyBu16XbmEV7ukfhXni2aIwS2rcVf8Yv5E7wchGGpOFldj9V4Q==", + "optional": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, + "node_modules/@smithy/querystring-parser/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/service-error-classification": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-1.1.0.tgz", + "integrity": "sha512-OCTEeJ1igatd5kFrS2VDlYbainNNpf7Lj1siFOxnRWqYOP9oNvC5HOJBd3t+Z8MbrmehBtuDJ2QqeBsfeiNkww==", + "optional": true, "engines": { - "node": ">=6.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-1.1.0.tgz", + "integrity": "sha512-S/v33zvCWzFyGZGlsEF0XsZtNNR281UhR7byk3nRfsgw5lGpg51rK/zjMgulM+h6NSuXaFILaYrw1I1v4kMcuA==", + "optional": true, + "dependencies": { + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=14.0.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "node_modules/@smithy/shared-ini-file-loader/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, + "node_modules/@smithy/signature-v4": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-1.1.0.tgz", + "integrity": "sha512-fDo3m7YqXBs7neciOePPd/X9LPm5QLlDMdIC4m1H6dgNLnXfLMFNIxEfPyohGA8VW9Wn4X8lygnPSGxDZSmp0Q==", + "optional": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@smithy/eventstream-codec": "^1.1.0", + "@smithy/is-array-buffer": "^1.1.0", + "@smithy/types": "^1.2.0", + "@smithy/util-hex-encoding": "^1.1.0", + "@smithy/util-middleware": "^1.1.0", + "@smithy/util-uri-escape": "^1.1.0", + "@smithy/util-utf8": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@smithy/signature-v4/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/smithy-client": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-1.1.0.tgz", + "integrity": "sha512-j32SGgVhv2G9nBTmel9u3OXux8KG20ssxuFakJrEeDug3kqbl1qrGzVLCe+Eib402UDtA0Sp1a4NZ2SEXDBxag==", + "optional": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@smithy/middleware-stack": "^1.1.0", + "@smithy/types": "^1.2.0", + "@smithy/util-stream": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">= 8" + "node": ">=14.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } + "node_modules/@smithy/smithy-client/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@smithy/types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", + "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", + "optional": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "tslib": "^2.5.0" }, "engines": { - "node": ">= 8" + "node": ">=14.0.0" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "node_modules/@smithy/types/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@protobufjs/eventemitter": { + "node_modules/@smithy/url-parser": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-1.1.0.tgz", + "integrity": "sha512-tpvi761kzboiLNGEWczuybMPCJh6WHB3cz9gWAG95mSyaKXmmX8ZcMxoV+irZfxDqLwZVJ22XTumu32S7Ow8aQ==", + "optional": true, + "dependencies": { + "@smithy/querystring-parser": "^1.1.0", + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + } }, - "node_modules/@protobufjs/fetch": { + "node_modules/@smithy/url-parser/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/util-base64": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-1.1.0.tgz", + "integrity": "sha512-FpYmDmVbOXAxqvoVCwqehUN0zXS+lN8V7VS9O7I8MKeVHdSTsZzlwiMEvGoyTNOXWn8luF4CTDYgNHnZViR30g==", + "optional": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@smithy/util-buffer-from": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "node_modules/@smithy/util-base64/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@protobufjs/inquire": { + "node_modules/@smithy/util-body-length-browser": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-1.1.0.tgz", + "integrity": "sha512-cep3ioRxzRZ2Jbp3Kly7gy6iNVefYXiT6ETt8W01RQr3uwi1YMkrbU1p3lMR4KhX/91Nrk6UOgX1RH+oIt48RQ==", + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + } }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "node_modules/@smithy/util-body-length-browser/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@protobufjs/pool": { + "node_modules/@smithy/util-body-length-node": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-1.1.0.tgz", + "integrity": "sha512-fRHRjkUuT5em4HZoshySXmB1n3HAU7IS232s+qU4TicexhyGJpXMK/2+c56ePOIa1FOK2tV1Q3J/7Mae35QVSw==", + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "node_modules/@smithy/util-body-length-node/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@puppeteer/browsers": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.1.tgz", - "integrity": "sha512-H43VosMzywHCcYcgv0GXXopvwnV21Ud9g2aXbPlQUJj1Xcz9V0wBwHeFz6saFhx/3VKisZfI1GEKEOhQCau7Vw==", + "node_modules/@smithy/util-buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-1.1.0.tgz", + "integrity": "sha512-9m6NXE0ww+ra5HKHCHig20T+FAwxBAm7DIdwc/767uGWbRcY720ybgPacQNB96JMOI7xVr/CDa3oMzKmW4a+kw==", + "optional": true, "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.2.1", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" + "@smithy/is-array-buffer": "^1.1.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=16.3.0" - }, - "peerDependencies": { - "typescript": ">= 4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=14.0.0" } }, - "node_modules/@puppeteer/browsers/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@smithy/util-buffer-from/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/util-config-provider": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-1.1.0.tgz", + "integrity": "sha512-rQ47YpNmF6Is4I9GiE3T3+0xQ+r7RKRKbmHYyGSbyep/0cSf9kteKcI0ssJTvveJ1K4QvwrxXj1tEFp/G2UqxQ==", + "optional": true, "dependencies": { - "ms": "2.1.2" + "tslib": "^2.5.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=14.0.0" } }, - "node_modules/@puppeteer/browsers/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "node_modules/@smithy/util-config-provider/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@redis/bloom": { + "node_modules/@smithy/util-defaults-mode-browser": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.1.0.tgz", - "integrity": "sha512-9QovlxmpRtvxVbN0UBcv8WfdSMudNZZTFqCsnBszcQXqaZb/TVe30ScgGEO7u1EAIacTPAo7/oCYjYAxiHLanQ==", - "peerDependencies": { - "@redis/client": "^1.0.0" - } - }, - "node_modules/@redis/client": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.4.2.tgz", - "integrity": "sha512-oUdEjE0I7JS5AyaAjkD3aOXn9NhO7XKyPyXEyrgFDu++VrVBHUPnV6dgEya9TcMuj5nIJRuCzCm8ZP+c9zCHPw==", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-1.1.0.tgz", + "integrity": "sha512-0bWhs1e412bfC5gwPCMe8Zbz0J8UoZ/meEQdo6MYj8Ne+c+QZ+KxVjx0a1dFYOclvM33SslL9dP0odn8kfblkg==", + "optional": true, "dependencies": { - "cluster-key-slot": "1.1.1", - "generic-pool": "3.9.0", - "yallist": "4.0.0" + "@smithy/property-provider": "^1.2.0", + "@smithy/types": "^1.2.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=14" + "node": ">= 10.0.0" } }, - "node_modules/@redis/graph": { + "node_modules/@smithy/util-defaults-mode-browser/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/util-defaults-mode-node": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.0.tgz", - "integrity": "sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==", - "peerDependencies": { - "@redis/client": "^1.0.0" + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-1.1.0.tgz", + "integrity": "sha512-440e25TUH2b+TeK5CwsjYFrI9ShVOgA31CoxCKiv4ncSK4ZM68XW5opYxQmzMbRWARGEMu2XEUeBmOgMU2RLsw==", + "optional": true, + "dependencies": { + "@smithy/config-resolver": "^1.1.0", + "@smithy/credential-provider-imds": "^1.1.0", + "@smithy/node-config-provider": "^1.1.0", + "@smithy/property-provider": "^1.2.0", + "@smithy/types": "^1.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" } }, - "node_modules/@redis/json": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.4.tgz", - "integrity": "sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw==", - "peerDependencies": { - "@redis/client": "^1.0.0" - } + "node_modules/@smithy/util-defaults-mode-node/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@redis/search": { + "node_modules/@smithy/util-hex-encoding": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.0.tgz", - "integrity": "sha512-NyFZEVnxIJEybpy+YskjgOJRNsfTYqaPbK/Buv6W2kmFNaRk85JiqjJZA5QkRmWvGbyQYwoO5QfDi2wHskKrQQ==", - "peerDependencies": { - "@redis/client": "^1.0.0" + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-1.1.0.tgz", + "integrity": "sha512-7UtIE9eH0u41zpB60Jzr0oNCQ3hMJUabMcKRUVjmyHTXiWDE4vjSqN6qlih7rCNeKGbioS7f/y2Jgym4QZcKFg==", + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@redis/time-series": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.4.tgz", - "integrity": "sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==", - "peerDependencies": { - "@redis/client": "^1.0.0" + "node_modules/@smithy/util-hex-encoding/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/util-middleware": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-1.1.0.tgz", + "integrity": "sha512-6hhckcBqVgjWAqLy2vqlPZ3rfxLDhFWEmM7oLh2POGvsi7j0tHkbN7w4DFhuBExVJAbJ/qqxqZdRY6Fu7/OezQ==", + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true + "node_modules/@smithy/util-middleware/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true }, - "node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, + "node_modules/@smithy/util-retry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-1.1.0.tgz", + "integrity": "sha512-ygQW5HBqYXpR3ua09UciS0sL7UGJzGiktrKkOuEJwARoUuzz40yaEGU6xd9Gs7KBmAaFC8gMfnghHtwZ2nyBCQ==", + "optional": true, "dependencies": { - "type-detect": "4.0.8" + "@smithy/service-error-classification": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", - "dev": true, + "node_modules/@smithy/util-retry/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/util-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-1.1.0.tgz", + "integrity": "sha512-w3lsdGsntaLQIrwDWJkIFKrFscgZXwU/oxsse09aSTNv5TckPhDeYea3LhsDrU5MGAG3vprhVZAKr33S45coVA==", + "optional": true, "dependencies": { - "@sinonjs/commons": "^2.0.0" + "@smithy/fetch-http-handler": "^1.1.0", + "@smithy/node-http-handler": "^1.1.0", + "@smithy/types": "^1.2.0", + "@smithy/util-base64": "^1.1.0", + "@smithy/util-buffer-from": "^1.1.0", + "@smithy/util-hex-encoding": "^1.1.0", + "@smithy/util-utf8": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", - "dev": true, + "node_modules/@smithy/util-stream/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/util-uri-escape": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-1.1.0.tgz", + "integrity": "sha512-/jL/V1xdVRt5XppwiaEU8Etp5WHZj609n0xMTuehmCqdoOFbId1M+aEeDWZsQ+8JbEB/BJ6ynY2SlYmOaKtt8w==", + "optional": true, "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, + "node_modules/@smithy/util-uri-escape/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@smithy/util-utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-1.1.0.tgz", + "integrity": "sha512-p/MYV+JmqmPyjdgyN2UxAeYDj9cBqCjp0C/NsTWnnjoZUVqoeZ6IrW915L9CAKWVECgv9lVQGc4u/yz26/bI1A==", + "optional": true, "dependencies": { - "type-detect": "4.0.8" + "@smithy/util-buffer-from": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true + "node_modules/@smithy/util-utf8/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "optional": true + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" }, "node_modules/@types/babel__core": { "version": "7.20.0", @@ -4938,6 +5384,7 @@ "version": "8.8.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -4954,14 +5401,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/adm-zip": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", @@ -5148,6 +5587,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" + }, "node_modules/babel-jest": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", @@ -5408,6 +5852,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -5519,9 +5964,9 @@ } }, "node_modules/bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", "dependencies": { "buffer": "^5.6.0" }, @@ -5674,15 +6119,10 @@ "binary-search": "^1.3.5" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, "node_modules/chromium-bidi": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.11.tgz", - "integrity": "sha512-p03ajLhlQ5gebw3cmbDBFmBc2wnJM5dnXS8Phu6mblGn/KQd76yOVL5VwE0VAisa7oazNfKGTaXlIZ8Q5Bb9OA==", + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", + "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", "dependencies": { "mitt": "3.0.0" }, @@ -5936,11 +6376,11 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz", - "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dependencies": { - "node-fetch": "^2.6.11" + "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { @@ -6020,7 +6460,8 @@ "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, "node_modules/deepmerge": { "version": "4.3.1", @@ -6032,14 +6473,13 @@ } }, "node_modules/degenerator": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-4.0.2.tgz", - "integrity": "sha512-HKwIFvZROUMfH3qI3gBpD61BYh7q3c3GXD5UGZzoVNJwVSYgZKvYl1fRMXc9ozoTxl/VZxKJ5v/bA+19tywFiw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.17" + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" }, "engines": { "node": ">= 14" @@ -6089,9 +6529,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1135028", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1135028.tgz", - "integrity": "sha512-jEcNGrh6lOXNRJvZb9RjeevtZGrgugPKSMJZxfyxWQnhlKawMPhMtk/dfC+Z/6xNXExlzTKlY5LzIAK/fRpQIw==" + "version": "0.0.1147663", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", + "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==" }, "node_modules/dezalgo": { "version": "1.0.4", @@ -6226,71 +6666,31 @@ } }, "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dependencies": { "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "estraverse": "^5.2.0", + "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=4.0" + "node": ">=6.0" }, "optionalDependencies": { "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "engines": { - "node": ">= 0.8.0" + "node": ">=4.0" } }, "node_modules/eslint": { @@ -6696,6 +7096,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, "engines": { "node": ">=4.0" } @@ -6863,6 +7264,11 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", + "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==" + }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -6887,7 +7293,8 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, "node_modules/fast-safe-stringify": { "version": "2.1.1", @@ -6896,19 +7303,25 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", - "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "optional": true, "dependencies": { "strnum": "^1.0.5" }, "bin": { "fxparser": "src/cli/cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" } }, "node_modules/fastq": { @@ -7072,7 +7485,8 @@ "node_modules/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==" + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true }, "node_modules/fs-extra": { "version": "8.1.0", @@ -9594,9 +10008,9 @@ "dev": true }, "node_modules/kareem": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.0.tgz", - "integrity": "sha512-rVBUGGwvqg130iwYu8k7lutHuDBFj1yGRdnlE44wEhxAmFBad1zcL66PdWC1raw3tIObY6XWhtv3VL04xQb/cg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", "engines": { "node": ">=12.0.0" } @@ -9955,11 +10369,11 @@ } }, "node_modules/mongodb": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.12.1.tgz", - "integrity": "sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.16.0.tgz", + "integrity": "sha512-0EB113Fsucaq1wsY0dOhi1fmZOwFtLOtteQkiqOXGklvWMnSH3g2QS53f0KTP+/6qOkuoXE2JksubSZNmxeI+g==", "dependencies": { - "bson": "^4.7.0", + "bson": "^4.7.2", "mongodb-connection-string-url": "^2.5.4", "socks": "^2.7.1" }, @@ -10012,23 +10426,23 @@ } }, "node_modules/mongodb-memory-server": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-8.12.1.tgz", - "integrity": "sha512-XjIaSsC45d6B106hbubEAFcik1iqKOpImCdIWokMJXFMN48MTbFEv36dRG95TbTXmyMVs1gKhCVE77dLozXdCQ==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-8.13.0.tgz", + "integrity": "sha512-CyrKMwEmRePn8iQ3LtWQiOJxlGK0eM+NNTq3Yg8m7gaywepFu24mF7s13q87Kfuq0WgBuCJQ4t6VcUZJ4m+KWQ==", "dev": true, "hasInstallScript": true, "dependencies": { - "mongodb-memory-server-core": "8.12.1", - "tslib": "^2.5.0" + "mongodb-memory-server-core": "8.13.0", + "tslib": "^2.5.3" }, "engines": { "node": ">=12.22.0" } }, "node_modules/mongodb-memory-server-core": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-8.12.1.tgz", - "integrity": "sha512-uHpwQCg/NWQOrleYmxOmBnuxYytFpw/t7t9zOoypo2ea0AmflTNfZB4aA7E3SPxjnmXKWmbBJbq8PHonGVwmYA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-8.13.0.tgz", + "integrity": "sha512-4NTOzYOlRUilwb8CxOKix/XbZmac4cLpmEU03eaHx90lgEp+ARZM2PQtIOEg3nhHo97r9THIEv6Gs4LECokp0Q==", "dev": true, "dependencies": { "async-mutex": "^0.3.2", @@ -10038,11 +10452,11 @@ "get-port": "^5.1.1", "https-proxy-agent": "^5.0.1", "md5-file": "^5.0.0", - "mongodb": "^4.13.0", + "mongodb": "^4.16.0", "new-find-package-json": "^2.0.0", - "semver": "^7.3.8", + "semver": "^7.5.1", "tar-stream": "^2.1.4", - "tslib": "^2.5.0", + "tslib": "^2.5.3", "uuid": "^9.0.0", "yauzl": "^2.10.0" }, @@ -10091,24 +10505,6 @@ "node": ">=10" } }, - "node_modules/mongodb-memory-server-core/node_modules/mongodb": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.14.0.tgz", - "integrity": "sha512-coGKkWXIBczZPr284tYKFLg+KbGPPLlSbdgfKAb6QqCFt5bo5VFZ50O3FFzsw4rnkqjwT6D8Qcoo9nshYKM7Mg==", - "dev": true, - "dependencies": { - "bson": "^4.7.0", - "mongodb-connection-string-url": "^2.5.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">=12.9.0" - }, - "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", - "saslprep": "^1.0.3" - } - }, "node_modules/mongodb-memory-server-core/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -10116,9 +10512,9 @@ "dev": true }, "node_modules/mongodb-memory-server-core/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -10131,25 +10527,25 @@ } }, "node_modules/mongodb-memory-server-core/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", "dev": true }, "node_modules/mongodb-memory-server/node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", "dev": true }, "node_modules/mongoose": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.2.tgz", - "integrity": "sha512-cIato5N2w/QuJkkh0w4nyf7ty7DqmmP/W8/6PFSM0DrzbxIMlr6VN15LBIceTSJIxbznNl2Mlbh9Rm4sokMw+A==", + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.11.4.tgz", + "integrity": "sha512-q9NaW9/BBYZofx80SqlR7uoSR09CS3g02y+KMj1lNLUxcFFsPshupY3WWisNFauYG9gyuDF4L/RgyIK3obSghg==", "dependencies": { - "bson": "^4.7.0", - "kareem": "2.5.0", - "mongodb": "4.12.1", + "bson": "^4.7.2", + "kareem": "2.5.1", + "mongodb": "4.16.0", "mpath": "0.9.0", "mquery": "4.0.3", "ms": "2.1.3", @@ -10350,9 +10746,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -10543,16 +10939,17 @@ } }, "node_modules/pac-proxy-agent": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-6.0.3.tgz", - "integrity": "sha512-5Hr1KgPDoc21Vn3rsXBirwwDnF/iac1jN/zkpsOYruyT+ZgsUhUOgVwq3v9+ukjZd/yGm/0nzO1fDfl7rkGoHQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.0.tgz", + "integrity": "sha512-t4tRAMx0uphnZrio0S0Jw9zg3oDbz1zVhQ/Vy18FjLfP1XOLNUEjaVxYCYRI6NS+BsMBXKIzV6cTLOkO9AtywA==", "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.0.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", - "pac-resolver": "^6.0.1", + "pac-resolver": "^7.0.0", "socks-proxy-agent": "^8.0.1" }, "engines": { @@ -10587,9 +10984,9 @@ } }, "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz", - "integrity": "sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz", + "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -10604,12 +11001,12 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/pac-resolver": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-6.0.1.tgz", - "integrity": "sha512-dg497MhVT7jZegPRuOScQ/z0aV/5WR0gTdRu1md+Irs9J9o+ls5jIuxjo1WfaTG+eQQkxyn5HMGvWK+w7EIBkQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", "dependencies": { - "degenerator": "^4.0.1", - "ip": "^1.1.5", + "degenerator": "^5.0.0", + "ip": "^1.1.8", "netmask": "^2.0.2" }, "engines": { @@ -10835,16 +11232,16 @@ } }, "node_modules/proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.2.1.tgz", - "integrity": "sha512-OIbBKlRAT+ycCm6wAYIzMwPejzRtjy8F3QiDX0eKOA3e4pe3U9F/IvzcHP42bmgQxVv97juG+J8/gx+JIeCX/Q==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", + "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "lru-cache": "^7.14.1", - "pac-proxy-agent": "^6.0.3", + "pac-proxy-agent": "^7.0.0", "proxy-from-env": "^1.1.0", "socks-proxy-agent": "^8.0.1" }, @@ -10880,9 +11277,9 @@ } }, "node_modules/proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz", - "integrity": "sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz", + "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -10919,29 +11316,29 @@ } }, "node_modules/puppeteer": { - "version": "20.7.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-20.7.1.tgz", - "integrity": "sha512-yIkba2PT6rkPw85gCAmbW6KO6VVFTdONnvQp8taeMZaOTUJ193nVajykD1jT3vFbjvwKz8te9nbBVb9ITQqbPA==", + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-20.9.0.tgz", + "integrity": "sha512-kAglT4VZ9fWEGg3oLc4/de+JcONuEJhlh3J6f5R1TLkrY/EHHIHxWXDOzXvaxQCtedmyVXBwg8M+P8YCO/wZjw==", "hasInstallScript": true, "dependencies": { - "@puppeteer/browsers": "1.4.1", + "@puppeteer/browsers": "1.4.6", "cosmiconfig": "8.2.0", - "puppeteer-core": "20.7.1" + "puppeteer-core": "20.9.0" }, "engines": { "node": ">=16.3.0" } }, "node_modules/puppeteer-core": { - "version": "20.7.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.7.1.tgz", - "integrity": "sha512-f45j9JxImFaYndQYsFA39CEDKwpn1nAF/Iw7urznatjhaslSB/RfHG7sC7iPpDbmP+CLpPEkHhqNxqpaUDdTLw==", + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz", + "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==", "dependencies": { - "@puppeteer/browsers": "1.4.1", - "chromium-bidi": "0.4.11", - "cross-fetch": "3.1.6", + "@puppeteer/browsers": "1.4.6", + "chromium-bidi": "0.4.16", + "cross-fetch": "4.0.0", "debug": "4.3.4", - "devtools-protocol": "0.0.1135028", + "devtools-protocol": "0.0.1147663", "ws": "8.13.0" }, "engines": { @@ -11026,6 +11423,11 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -11081,9 +11483,10 @@ } }, "node_modules/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==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11716,10 +12119,20 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", + "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -11931,20 +12344,30 @@ } }, "node_modules/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": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dependencies": { - "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tar-stream": "^3.1.5" + } + }, + "node_modules/tar-fs/node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -12366,21 +12789,6 @@ "node": ">= 0.8" } }, - "node_modules/vm2": { - "version": "3.9.19", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.19.tgz", - "integrity": "sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -12431,6 +12839,7 @@ "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, "engines": { "node": ">=0.10.0" } diff --git a/ai-verify-apigw/package.json b/ai-verify-apigw/package.json index de9344cb7..b79502373 100644 --- a/ai-verify-apigw/package.json +++ b/ai-verify-apigw/package.json @@ -31,10 +31,10 @@ "jsonschema": "^1.4.1", "lodash": "^4.17.21", "moment": "^2.29.4", - "mongoose": "^6.8.2", + "mongoose": "^6.11.4", "multer": "^1.4.5-lts.1", "node-cache": "^5.1.2", - "puppeteer": "^20.7.1", + "puppeteer": "^20.9.0", "redis": "^4.5.1", "ws": "^8.11.0" }, @@ -54,7 +54,7 @@ "jest-html-reporter": "^3.7.1", "jest-json-reporter": "^1.2.2", "mock-fs": "^5.2.0", - "mongodb-memory-server": "^8.12.1", + "mongodb-memory-server": "^8.13.0", "supertest": "^6.3.3", "ts-jest": "^29.1.0" }, From 6c3d016b1acaf3bee68c54a7a9e4cf0e8be8fa3d Mon Sep 17 00:00:00 2001 From: imda-kimeetok <129362897+kimeetok@users.noreply.github.com> Date: Wed, 26 Jul 2023 15:03:45 +0800 Subject: [PATCH 22/30] Create SECURITY.md --- SECURITY.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..32f89ebf6 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,44 @@ +# Security Policy + +## Supported Versions +​ +AI Verify is presently only supported for its current release version. Please make sure you are on the current version stated below. +​ +| Version | Supported | +| --- | --- | +| 0.9.x | :white_check_mark: | +​ +## Reporting a Vulnerability +​ +Security vulnerabilities are serious issues and will be considered carefully so as to safeguard the integrity and stability of AI Verify. +If you find a potential security vulnerability, please refrain from reporting security vulnerabilities through public platforms, +such as on GitHub issues, discussions, or pull requests. +Please instead raise it as a security vulnerability [here](https://github.com/IMDA-BTG/aiverify/security). +​ +Please include as much of the information listed below as you can to help us better understand and resolve the issue: +​ +- The type of issue (e.g., buffer overflow, SQL injection, or cross-site scripting) +- Full paths of source file(s) related to the manifestation of the issue +- The location of the affected source code (tag/branch/commit or direct URL) +- Any special configuration required to reproduce the issue +- Step-by-step instructions to reproduce the issue +- Proof-of-concept or exploit code (if possible) +- Impact of the issue, including how an attacker might exploit the issue +​ +This information will help us triage your report more quickly. +​ +The lead maintainer will acknowledge your report within the next working day. +After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, +and may ask for additional information or guidance. +If the issue is confirmed, we will release a patch as soon as possible depending on complexity. +Your efforts to ensure the continuity of the project are greatly appreciated. +​ +## Disclosure Policy +​ +When the security team receives a security bug report, they will assign it to a primary handler. +This person will coordinate the fix and release process, involving the following steps: +​ +- Confirm the problem and determine the affected versions. +- Audit code to find any potential similar problems. +- Prepare fixes for all releases still under maintenance. + From c63b22d569db687aeb480dd55be236db5a978092 Mon Sep 17 00:00:00 2001 From: imda-kimeetok <129362897+kimeetok@users.noreply.github.com> Date: Wed, 26 Jul 2023 21:53:29 +0800 Subject: [PATCH 23/30] Update SECURITY.md --- SECURITY.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index 32f89ebf6..be4dd875a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -13,7 +13,7 @@ AI Verify is presently only supported for its current release version. Please ma Security vulnerabilities are serious issues and will be considered carefully so as to safeguard the integrity and stability of AI Verify. If you find a potential security vulnerability, please refrain from reporting security vulnerabilities through public platforms, such as on GitHub issues, discussions, or pull requests. -Please instead raise it as a security vulnerability [here](https://github.com/IMDA-BTG/aiverify/security). +Please instead raise it as a security vulnerability [here](https://github.com/IMDA-BTG/aiverify/security/advisories/new). ​ Please include as much of the information listed below as you can to help us better understand and resolve the issue: ​ @@ -24,6 +24,7 @@ Please include as much of the information listed below as you can to help us bet - Step-by-step instructions to reproduce the issue - Proof-of-concept or exploit code (if possible) - Impact of the issue, including how an attacker might exploit the issue + ​ This information will help us triage your report more quickly. ​ From dcf2bf0d68ed7e766bd0bcd0ce47c0faabe4bbbb Mon Sep 17 00:00:00 2001 From: imda-kwokwk <kwok_weng_kong@imda.gov.sg> Date: Fri, 28 Jul 2023 22:07:46 +0800 Subject: [PATCH 24/30] feat(integration-tests): add integration test GHA to perform QA tests before merge to main. - build aiverify - run QA test suites --- .github/workflows/integration-tests.yml | 233 ++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 .github/workflows/integration-tests.yml diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml new file mode 100644 index 000000000..b479d7ab6 --- /dev/null +++ b/.github/workflows/integration-tests.yml @@ -0,0 +1,233 @@ +# Integration Tests +# Build aiverify and run QA test suites + +name: Integration Tests + +on: + # Runs when a pull request review is being submitted + pull_request_review: + types: [submitted] + branches: + - 'main' + - 'v0.*' + + # Run this workflow manually from Actions tab + workflow_dispatch: + inputs: + branch_to_test: + description: 'Branch or tag to run test' + required: true + default: 'main' + type: string + +# Allow one concurrent deployment +concurrency: + group: ${{ github.repository }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + + integration-tests: + # Run only when PR is approved + if: (github.event_name == 'pull_request_review' && github.event.review.state == 'approved') || github.event_name == 'workflow_dispatch' + + runs-on: ubuntu-latest + timeout-minutes: 40 + + steps: + + - name: Install redis + run: | + sudo apt update + sudo apt install redis-server + pattern='notify-keyspace-events ""' + replacement='notify-keyspace-events Kh' + sudo sed -i 's/'"$pattern"'/'"$replacement"'/g' "/etc/redis/redis.conf" + sudo systemctl restart redis-server + + - name: Install mongod + run: | + wget -nc https://www.mongodb.org/static/pgp/server-6.0.asc + cat server-6.0.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/mongodb.gpg >/dev/null + sudo sh -c 'echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" >> /etc/apt/sources.list.d/mongo.list' + sudo apt update + sudo apt install -y mongodb-org + + sudo systemctl start mongod + sleep 2 + mongosh << EOF + admin = db.getSiblingDB('admin') + admin.createUser({ + user: 'mongodb', + pwd: 'mongodb', + roles: [{ role: 'root', db: 'admin' }], + }); + + aiverify = db.getSiblingDB('aiverify') + aiverify.createUser({ + user: 'aiverify', + pwd: 'aiverify', + roles: [{ role: 'readWrite', db: 'aiverify' }], + }); + + aiverify.createCollection('test-collection'); + EOF + + - name: Install libraries + run: | + sudo apt-get update + + # amd64, install libs needed by puppeteer/chromium + sudo apt-get install -y libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 \ + libxi-dev libxtst-dev libnss3 libcups2 libxss1 libxrandr2 \ + libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 \ + libgtk-3-0 libgbm1 + + # For shap-toolbox plugin + sudo apt-get install -y gcc g++ python3-dev + + sudo apt-get install unzip + + - name: Checkout code (workflow_dispatch) + if: github.event_name == 'workflow_dispatch' + uses: actions/checkout@v3 + with: + ref: ${{ inputs.branch_to_test }} + + - name: Checkout code (pull_request_review) + if: github.event_name == 'pull_request_review' + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.ref }} + repository: ${{ github.event.pull_request.head.repo.full_name }} + + - name: Setup npm cache/install + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install node dependencies + run: | + cd ai-verify-shared-library + npm install + npm run build + + cd ../ai-verify-apigw + #cp .env.development .env + npm install + + cd ../ai-verify-portal + npm install + npm link ../ai-verify-shared-library + echo "NEXT_PUBLIC_SERVER_URL=http://127.0.0.1:3000 + NEXT_PUBLIC_WEBSOCKET_URL=ws://127.0.0.1:4000/graphql + SERVER_URL=http://127.0.0.1:3000 + WEBSOCKET_URL=ws://127.0.0.1:4000/graphql + APIGW_URL=http://127.0.0.1:4000 + MONGODB_URI=mongodb://aiverify:aiverify@127.0.0.1:27017/aiverify + REDIS_URI=redis://127.0.0.1:6379 + TEST_ENGINE_URL=http://127.0.0.1:8080" > .env.local + #cp .env.development .env.local + npm run build + + - name: Setup pip cache/install + uses: actions/setup-python@v4 + with: + python-version: '3.10' + cache: 'pip' + + - name: Install python dependencies + run: | + pip install test-engine-core/dist/test_engine_core-*.tar.gz + find ./ -type f -name 'requirements.txt' -exec pip install -r "{}" \; + + - name: Install stock plugins + run: | + mkdir -p ai-verify-portal/plugins + cd stock-plugins + for plugin_dir in *; do + echo "Unzipping plugin $plugin_dir"; + unzip $plugin_dir/dist/*.zip -d ../ai-verify-portal/plugins/$plugin_dir; + done + + - name: Run aiverify services + run: | + sudo systemctl restart mongod + sudo systemctl restart redis-server + wdir=$(pwd) + cd test-engine-app + echo "CORE_MODULES_FOLDER=\"$wdir/test-engine-core-modules\" + VALIDATION_SCHEMAS_FOLDER=\"$wdir/test-engine-app/test_engine_app/validation_schemas/\" + REDIS_CONSUMER_GROUP=\"MyGroup\" + REDIS_SERVER_HOSTNAME=\"127.0.0.1\" + REDIS_SERVER_PORT=6379 + API_SERVER_PORT=8080" > .env + python3 -m test_engine_app &>engine.log & + + cd ../ai-verify-apigw + echo "MONGODB_URI=\"mongodb://aiverify:aiverify@127.0.0.1:27017/aiverify\" + DB_URI=\"mongodb://aiverify:aiverify@127.0.0.1:27017/aiverify\" + WEB_REPORT_URL=\"http://127.0.0.1:3000/reportStatus/printview\" + REDIS_HOST=\"localhost\" + REDIS_PORT=6379" > .env + node app.mjs &> apigw.log & + + cd ../ai-verify-portal + npm run start &> portal.log & + + - name: Checkout smoke tests + uses: actions/checkout@v3 + with: + repository: IMDA-BTG/smoke-testing + token: ${{ secrets.CHECKOUT_TOKEN }} + ref: main + path: qa-test/smoke-testing + + - name: Checkout frontend tests + uses: actions/checkout@v3 + with: + repository: IMDA-BTG/frontend-testing + token: ${{ secrets.CHECKOUT_TOKEN }} + ref: main + path: qa-test/frontend-testing + + - name: Checkout backend tests + uses: actions/checkout@v3 + with: + repository: IMDA-BTG/backend-testing + token: ${{ secrets.CHECKOUT_TOKEN }} + ref: main + path: qa-test/backend-testing + + - name: Run smoke tests + if: ${{ ! cancelled() }} + run: | + cd qa-test/smoke-testing + npm install + npx playwright install + npx playwright test + + - name: Run frontend tests + if: ${{ ! cancelled() }} + run: | + cd qa-test/frontend-testing + npm install + npx playwright test + + - name: Run backend tests + if: ${{ ! cancelled() }} + run: | + cd qa-test/backend-testing + npm install + BASEDIR=${{ github.workspace }} npx playwright test + + - name: Show logs + if: ${{ ! cancelled() }} + run: | + echo "================= Start of test-engine log =================" + cat test-engine-app/engine.log + echo "================= Start of apigw log =================" + cat ai-verify-apigw/apigw.log + echo "================= Start of portal log =================" + cat ai-verify-portal/portal.log + From 706dff10e94ee48d3234072e171500673cc2bbb7 Mon Sep 17 00:00:00 2001 From: Kelvin Kok <kelvin_kok@imda.gov.sg> Date: Tue, 1 Aug 2023 13:22:06 +0800 Subject: [PATCH 25/30] added sklearn Extra Tree Regressor to list of supported models --- test-engine-core-modules/src/sklearnmodel/sklearnmodel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py b/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py index 3ae16bd96..081ed7b2f 100644 --- a/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py +++ b/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py @@ -29,6 +29,7 @@ class Plugin(IModel): "sklearn.ensemble._bagging.BaggingClassifier", "sklearn.linear_model._base.LinearRegression", "sklearn.ensemble._gb.GradientBoostingRegressor", + "sklearn.ensemble.ExtraTreesRegressor", ] _name: str = "sklearnmodel" _description: str = "sklearnmodel supports detecting sklearn models" From c3dafc4f7768938ee2396b9e00b65972a48f3aea Mon Sep 17 00:00:00 2001 From: Leong Peck Yoke <Leong_Peck_Yoke@imda.gov.sg> Date: Tue, 1 Aug 2023 13:28:16 +0800 Subject: [PATCH 26/30] fix issue where the numbering for hte process checklist criteria is wrong --- ...aiverify.stock.process_checklist-0.9.1.zip | Bin 74541 -> 74565 bytes .../widgets/processChecklist.mdx | 2 +- .../widgets/summary_compute.ts | 6 ++++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/stock-plugins/aiverify.stock.process-checklist/dist/aiverify.stock.process_checklist-0.9.1.zip b/stock-plugins/aiverify.stock.process-checklist/dist/aiverify.stock.process_checklist-0.9.1.zip index 4cfe9177ed730a5ce160671a6086b76fe92ede29..b4d158d919d31b13c36dd899ebbb33bceebfa73b 100644 GIT binary patch delta 7253 zcmZu#2{={V_rAwG&qJnrjhTncDxoNqghZ22spQijJ|$c?eI%5eIAlmt%FGoCl`>Q$ zA`OTJbEae{(|@0RRP_6w=h@FaXT9%Q>)mS)XP=v0%~Vy*#BH;gkx7U|Vq+u8-F$zU z`#mH6(_f4K&`Xd#2)q$xB(uRALrzb2cyn7wi5cEBi8&G$bvY`*$yJ?Vgiwa&C@*8? z#-H?LlXHB~qF{5972YH`z9zg*x_WX$%jcsh5JE%#eTy4VSKmem=$&$cBG8!AP#o&z zN2oJBvjC*{*F%pJ0TqNtpe^AMM(u@wchF}D?4r37K=s*A5XcN3g}}9QZV;fehSU)^ zEurE}5E=_tC46KeTcOW<<O>MAyttPDw4z=?fcbJI1nMr^6M!5Fg`%TqIRx^rSQ7w4 zY#sDyjIDq`47MP+FRldwkK=0~5OH+}!YF|Cqdf_kOj|q<M>IB378*(uyCE|zDIR~O zn<iVr*!1vgd_?t=Q#A=o!wqo;7;W$-BN1)v)_v%lm!1Hft#5B3faE)L2-s)bhX8-( zW&&`|numaEb`Asta!d%oJ{MLHwajaTfMmW40Z<D%`N1$c_+>jX1&~Oj6wsEVD+(1+ zj2;H5a)q9RK=dxreR@w3l_<J<X$t|ZEw_XgG_s-)_QCvdH-V^EGQmW2-KrKAZVgbI ztj?NyPnk$015~tb`L<)94Eg5jb4M(SIeQPM41N&hNGvLk+2wvF<Nc=T>lwRHLzmZK za;=5OmF8y;O4i6X7z~c5O_St5$1Cc*EMrdYwiEMucKCqbfh{6e12zkU7#u&1M%AsN zu5A9%|Gj{<L)5!E=N|vpl!I5jr2ca+V+t18y(`@E;QOd>b=IeG-VN%L-^qS)17zj< z2Ug1rh@AM>V2U$m;{3sS4=>K@?N5{bkueudb`U#E7qALu*~ho9*FNuhsmuYD?RCvz zLT9_hzYIQgDmr5=mwuv-{w|73h5h)7&pWqhQJMWH_1Z7?o2OiguK6$%R&$W&)oev4 zD!NPYK~v10WrmxkqPMeH{Metm|6bdv_*Y%ZpXo-2DLga#yX3ZoMQvRtP<L9Au6Em6 zAU<9-LgHe{^|Kqyp1jEob3Ib?T03XIdxTYX&5we<?Ku*A#fo&DnXe(jo)rSy7{3k8 z&5?a;sq*$b9?GZ6d|23{JCAD#>-xQ2Ic=*g`L$>B*=tDPnWVUZJq^N%if7dmxJDnY zaGrMdPdvw#od0}sBJfl%Z~tm7vyY9<$K&<bPOCn?KHgZp;p*kGPB$I7iVErZKDG-Y zft|IN!mMkG9bT)td6?yv8IzCtXMP~>WJ->z*Hkd2zR@{rd|}ykN54BB)LRLP7vleW zezC0PKvS1gsORodFT-0Qu|wS}6IY!4cSg}N@yN2#61(9^{;)Ws;6uHV5j))zEiGIO z>ocP^o|`M$6e8SLBE#TsRupC>x#2q6yCqA{C!F@&S~WsN)}Ws|c+c*`%^YJFuHHW? zJi@r!tZecwm7{IihdaM#wZ_n;BmL5u$~5lvXBfMSH@u{grB&*EE4ad)tG}!0RR)V6 zFl%%B=yl%hO=&*+{lQP|IzDy>lOp!b85-4+l_x?qb8RVA+s9YFzIb<Cu-Ai2Z#)d# z+fx+oHA~7-9uEmVs*tnt?l?GjC#rE>f>2c@Lw0er_$^)Puy<S1VDv>!58V@@14+%X z>nDm>8E4eO-xav-rWdib%v#!H&!;L&ur`vJBE$7>pH=a7JX~yMTg-gB?~D0~WuFuM zCXLp7E1s3zgT>glqsH3(TZ_N?SnF82>hIsAQMkj&Z1RBEw)8hW9hd7%OYd#0$}`ut zYE9~*u-8TYWTV<{P~Wz_d4HRVd#&wjckUxu<pC_QpHBr07v>4oW)_gcJ&!gV2$wLw z`ux;gb&GrN3yN2H);wsAEDl$l(w-9f-lqGoQ0HIYv}uD7myY^@7rRDw(^eyoc`Z)v zaW9FQwBeibYdhh#(ml_n+}PFO*_g<V-Nz2S3BG^jZQ=dERvPtd!W8v!lZUy{k@M}V z{L+W!rOXt1LmRza+<$KE?@AMI&ehISRyBDWu3gY*Kkm$Aa%lZ%?~Rfz>hHHkaoCL~ zlaD>fEiZj{0xgRr&&RUnJXtPm$Wv3{IwI@Yp&wXQ-(HQ1jtvPqc6_^Lf*z{8?((j# zPBGXd*+?=rJS9KGD$dT18TB}|^Kn7SI}ZIrR@&}-bNqANd{=1e#2eblN^7J~OSdMq zN>_?Gi~d`hprG^3?fzwlf=!>C28u3FNq=6q_^!><m;-k+^x>;AxF-fSfo&Y$@Sinz zzzsL^bpZriS{63k)Hl-*NO_wH0qb{$#6B4I-i(O#qBRmCPHn3QLqhu@=)(M=7y=JJ z=pa0bV8>jWs=+VIOd|0LMt4e6?>c%OYt`qQQ=8{#S;ohHBIavAcqihiFEsnfdk4)` ziwlc&PY74zkd0}voaylOZ{pli-4}{js7YO0MIKH*Q~4^O>IjY87<>MbRVRZ~<E?{d zyf5E!EX)$G$j!Lgb#AOx>e(>o^D5^TftLoJSm>v=tUA;ca+JT@vbp4oa1M22Jmu)! zaoyAq&FLLf-ETKlwA4p0h}b7a8kkSZwJ=?zANBfK5XI9*K|gaFQ8wLR;J5tHtZ7;E ziQ&-x%#d)qiT<|yU1=t-Sekw+oKUN$xJ5Dt){rfoK4~lV?A!R=tM&1$%!y?BEg?<$ zO1{BMB_0zc{`45hvfy%~_Mysq)RO0i!eW}DcWP4ocXeAl>0><YNPoG{SHqjr`KWN< zvz-s*yBL`$$U`@8Q!iTEowA!A7jGS2bD?_n-Y)Sr?cztHOwvzm*@Gm%vD#dHbKPRy z+XfzW-g45p>R8w7KB0QFfDm)GpcyCbpshc@1gqDNTaE828sx9np1kWFSiYl;ddl8M zz<bJJ<<vQyuiuiqM^*N}?K#ue<oH1AJ1eu4<(_3TH=bA77HG{VvQwUKUp7N$nzmQ| z`Yqgh^p5r0F2_EB*qB2r)BOg8BcAn6X={`l``?yf$mU=u{N{<aFx|KMw9H!1%*bi0 zORe6I=#;)=kDgeD8ZdOTU!RN*{=8P1>UH|*`o`BWo5F?V)!*uqJtp(RaytZsCCGMn zDU}WncY3g>E&He$$02(%C^fiC{DVQ(`h08dIC&*i{?@ohck)NfyE{TNT(6i0TekK! zH&~Vz|G3Sqsp(qUYZyJBVt$go!L9bbjj4NWgHlG=;eI=9c?l`S-qAS2fDHEBP8zjs zyNZQEW6JJ%z8vO%s=wx%9?Qr`G1@D9K<(~2)*T$DHK*w^Z7e0bXE|#&QjR0lh7Bo| zee|QWp%rVd2fy=h`DY}4_}qxH*Yuz~d!(<L)6T=nmgN;jW|X$@n~xX*57)b$44E^y z{m+D|UGT)?C+e;19-qw$J*d>*ptXOfw3m9MP2Gon*L~9#jos(<X(id)_DNk6?|cyw zdq90m&&R9Yc=&k&^MpHVOCm>|lY*7p@=Zl9Jv|;Qo|l79K9185YtH*`q)@uc;j8wl z5ydq_X4bv?ZrQ(SkGQj<E^himX6fFwPqXfp>uPj!<$bGpAi$cp@=kf+oMHLsLq%4j znS<25osl&e5n)%6bG<B8xsMXPXdV^wxArOCto<_PmnhE>BL9Y2T_XC<WZ)}1buI>d zdpUNoTBmNl9W6?quHAX+o4<=*5Nu>7YEu+0@#9EIW{lzm2fd2PouLW&Jo@`x?VU}3 zlFQ#;GxSK(X^XkX9nQU9C(dAu=h@YCF%ODgD>Z2FcJI*VQmosBIzQq2PV&iTS{YNB z>A^kYn?ufZzqF1h^G%Zc!Qxb!K4i7YHK$c>@*3-NuWVJ9lSm-@-K2tX6PuA|j3GZC zG{vSlj~Wkcv$eC~yr1L2McOHuU`sF97?8x|R^+nUr~8}N`}IDtertkh!)LyWhMc;i z!6RTrUB|_CkuiRSXd{*)c>I{{PXu}WsZ3LEV&m3(Gsj9vtqy?(o?3dt&u!Z;v2bb~ z@^jCki)&^Top{Ef6U;I=Z*Q7B>=rq}v?g`nlFi=u5%sprjax?ZY}=izzkF-SpPD~v zYy3~uc5|QXBUSGnrCP_N_ijt4cdT|;o!$F$YGb$&8r|ivwy|kjdV23`?~MPNsw2#k z9k@HH{I-5<mT#0fb3}PMWuB{W>(hZ3)IZxe{;6Wvb&nlv+79Kf1n+%Exke-~Q%OV& z)##ps`>tkB5!`osd%#wW^X2-ocyK<FId)(OoQnq$l<$KGW-Ntp+?efyoalk4(5H3) zoWOA(vB4I8+~+}6J&yoFA{}HPkyOwXeS%mA84;(e4@nX{t6^f3XBp8Y4925*Fw)4V z3Sp2MyA2Ib$K(jZ(Dy88NE%lp3^fyUXb6}DpAh)lD0hnZk_q@x3xUl)*CSH+>3$ZK z-F*f0U>8uN3VwfGX=u*$YN&f~T8uG`){f>)t6|Qph!8Yd&4@9j(J~P<e_91|W<W%t zHG4)3NkeO9v|wl<Ny|iSb`r^1oJ5lT6&L)bp+d7Or19jv8<P2kz=5BGi$tO<X3!FZ z&|)DObYO-HhH|-5MUexc4#<;8VvC7r?yL$--8PF0l9oeP%PI5PY(^M_7=M2hqbufc zU7P1t!mL&ueg#FmB+~U2f9awnX`=TuWtA7ZgRfr)hj(er8~I42BICat(2=<nP~Z8u zkh8|DB$7Ais>Bj~Yv$FUKF@hvLg>5_<Udxn@iF2ik@B?u?oZvk3S`XR6-hq~A~H#m zNK%U<#t0%BkRknFvg&1k>;NODwuG@4F~)PoBqMlD?0sWgkv~HhGY73or+`)U_t0T3 z2sEERjne#7u?9wj2iB@pO{|Oxg13PN%Jut7qq+G3rcTT-!Uc(4DmE{9ff5xkt95?U zz+lsK&Hy4YNg&h0zfAQaVAun;!V)Ixj|K%Oz~s1otd0R{IuHQN>UbvDZ++FX%Iv^b z9%NEq?2nl+B5R;y5F>Q-r($!Ah|ZsYAAuc7!=@RLO;8H*(!^E}gwh6~RxJ)i+d{)# zwg1#7p9#9wGA*RwVumS_gRy!hME&=|z&r_i^f@%=oB^6V!vzI304qq`&x~lpX9^4S zein)i0tB54WykiiAOzQwz`DZ;Od^5<%l?Ix5tvXUsuigbb7`R>UW~STgMj=F(6kqK z1Jhzf*1@7pKL4nU505J7sqPX=6f0r@i*dd^Y*`e58~{ymF@+`<g_=Yu<LRJybv7t| z3b!i4o<o1hcC3>F_$~)2G?(~4ybPGjVJ)GUpf59_k$_<b*m8@R*gPAe3n`jE`y5UK zs1h{gB@`QWWF?dl$qr?tT|pmRQO7F{9i6ymrXqlYEr`8jcExfa`fT{7)Bi501Z!kK zguvRUj79ll75?<W2rZHPf9DqMJO-HZf9As=2h83Uhc?D5!x;wCH=I0+;D461fVQLv z*j`S=6zaat2|cM-fu|A?5bV&gTyTbnb0ISDe<I9;3(=Os-xr_9WtA}yE|u}`p}WY1 zSir1WRlR<@00plY*dc#kY1jxCq9=_<anzM6Vgxm@0HdSwn*i5mGIkjx$M$j~6euu= z8%nv#jcCB<TJQ{NbvYHyPF29Tc^0ODBo8z{xq)`v5W}ttFPL2kbLUN97RCC7!3zWA z$Fc}>_bv2cx;UEiuK=bgNW3*LUS1gJMmm5Lv5SHT7kn41Z$Bc*irI=Hf?(zN^CGKZ zoKk{(`3@?bDTWOp$f7_}d@#_441mdFn&Jo#bU8+tnKFS{4a?#Ms|K$KWd~ny5vYU& z_<qt@ToLReA7TQhwAX~Ny$^sgKqD`v(Co8OnH(}^vg}t5ewdm$2bh<`958hSFa!0i z{KytqN>u?!Ta|}>;74Rot9(u@LJ;ABdgcV{z&#j5FhWaL@ihUkigC%Q^vc7RfQ~ny z=`YrU%?ltKpyVb0)-9&cw$srQbR}3{s4YnlY7r>}=H*zYAR+|k5}$vK+j1a73`{rh z&ij3(Vf;df45WM%O1QWYyteZ={(9SCTZIt#y2Ap6V8`Qx7B;*W;2F#zy>isHTqO3_ zT;Ual)}RVt6~auxT!Ha*GH<<22NFy{j-}K2gfN)S_#!@|crfcB(6$xOmQH8sN_2Il z8kU4lQ+(nfB2bBh2%;{%<WEL$0s!yU-&Y!qREJ8|k+E_Hgo}b#JK;8m?p_doKMRSZ z_nU_=83rt01Tlv~S}d18@CRTCXiN4R8vPYo|4I>a;ad>0Srm5Gs|lDDusl9Q2xj>& z6?4Q7V6VZjgVVt8D~(o;JrZ4*h&^`JTYLeO1Df=23NGc^Ypg;P5k_CW=Ehw37gE_Q zgQ@IWeqo%bNe&yFmN2KUL9}im2=fgTc*)U$7K=SvhOB~fb&d#f<t>`~mJGWAH<H9E z%YUbVuQ1RnyF|*`cYrC0MT#Oqkoi#j^W!PNu=sm{(E{FM{Njipn)zNT7A!{!KBA~H zdxJe-p9F2`TC2eL#1VBkn5N>eW43L$Kba^Z?!1Pdd*@2v2o7i@0nmP3X|zjNjyNI% zGd%5>wf6(ab<mb7|A7sOBP(EO<a|ELjsOB5=$_KAFyJ?hM#t7jAO@7Bf4h)K;!8+< z*cAyx8P@NS1cD!&*J0|Ch<vQ%!bZUlzAJ!r9=9688RXr?u^!*J|5w(^9&}BQJhq7f z&RF<_Tti9a9S2PQ|Is#vGi9-O3UNHgc%)#RH2TnweUjJ)DR7#@1N`}1`MUz`I8z=o zkzP2?C78c34hE?*L0h`MI0sPP0ktJZY!Et@3=_8CpbEBuyr5$*VU{06ks*2P8hN1z zd4zcuH>+XnV8Ovke7GqRk5?iUv?b>Pn&U9KdsyL5C3dXY<A{%v2&lx8;{lC-1Tf|P zR3eW8g;|cG^P^;JfU=-qhA>a#=H;;4aLlZwAzNt-LuA1GG#O)8Tl_JA*U<9thO%Ce zx)baS(%|>kl}2m&?Zt|{kOs>epPAlgGbQj>NCId}x0@faGKeai)fzG|>+Nwot0Z<v zW}$k4g#Fb78Zjx2mC7t=uOrOoCxKZBRu4vzmW5I7PoWQ{bn#^cdlW=i&;I~cQLGR= WL2?6OcK8X+Omc`EOA@}SN&g4TM9}^K delta 7452 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 Z4pjuqsXlPb_*xlZcsaz7C32c(_kRQ7y~_Xq diff --git a/stock-plugins/aiverify.stock.process-checklist/widgets/processChecklist.mdx b/stock-plugins/aiverify.stock.process-checklist/widgets/processChecklist.mdx index c9d64bbd0..a427b8c80 100644 --- a/stock-plugins/aiverify.stock.process-checklist/widgets/processChecklist.mdx +++ b/stock-plugins/aiverify.stock.process-checklist/widgets/processChecklist.mdx @@ -79,7 +79,7 @@ export const ProcessChecklist = ({ principle, props, }) => { {section.checklist.map((check, tcIndex) => ( <> {<div className="c-primary" style={styles.tcBox}> - <b>Criteria {config.index+1}.{tcIndex+1} - </b> + <b>Criteria {config.index+1}.{check.index+1} - </b> <span dangerouslySetInnerHTML={{ __html:check.testableCriteria }}></span> </div>} {check.processes.map(process => ( diff --git a/stock-plugins/aiverify.stock.process-checklist/widgets/summary_compute.ts b/stock-plugins/aiverify.stock.process-checklist/widgets/summary_compute.ts index 8a55dfc18..be670d48d 100644 --- a/stock-plugins/aiverify.stock.process-checklist/widgets/summary_compute.ts +++ b/stock-plugins/aiverify.stock.process-checklist/widgets/summary_compute.ts @@ -44,6 +44,12 @@ export const processChecklistConfigsByPrinciple = processChecklistCids.reduce((a // console.log("config", cid, config) config.index = index; config.cid = cid; + let count = 0; + for (const section of config.sections) { + for (const check of section.checklist) { + check.index = count++; + } + } acc[config.principle] = config; return acc; }, {}) From 0dc87e7db214fd6ab282b77a549ec5ff58fa252c Mon Sep 17 00:00:00 2001 From: Kelvin Kok <kelvin_kok@imda.gov.sg> Date: Tue, 1 Aug 2023 15:11:35 +0800 Subject: [PATCH 27/30] added sklearn Random Forest Regressor to list of supported models --- test-engine-core-modules/src/sklearnmodel/sklearnmodel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py b/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py index 081ed7b2f..f8891ad2b 100644 --- a/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py +++ b/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py @@ -30,6 +30,7 @@ class Plugin(IModel): "sklearn.linear_model._base.LinearRegression", "sklearn.ensemble._gb.GradientBoostingRegressor", "sklearn.ensemble.ExtraTreesRegressor", + "sklearn.ensemble._forest.RandomForestRegressor", ] _name: str = "sklearnmodel" _description: str = "sklearnmodel supports detecting sklearn models" From 31fdafc9d48054934468358d7f2a3b273f6c9a5a Mon Sep 17 00:00:00 2001 From: Leong Peck Yoke <Leong_Peck_Yoke@imda.gov.sg> Date: Tue, 1 Aug 2023 15:34:35 +0800 Subject: [PATCH 28/30] sanitize the projectId request parameters by ensuring that it's a valid mongodb objectid --- ai-verify-apigw/routes/report.mjs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ai-verify-apigw/routes/report.mjs b/ai-verify-apigw/routes/report.mjs index 6b25486f2..39a206fe6 100644 --- a/ai-verify-apigw/routes/report.mjs +++ b/ai-verify-apigw/routes/report.mjs @@ -4,6 +4,7 @@ import express from 'express'; const router = express.Router(); import fs from 'node:fs'; import path from 'node:path'; +import mongoose from 'mongoose'; import { REPORT_DIRNAME, getReportFilename } from '../lib/report.mjs'; @@ -36,12 +37,19 @@ router.get('/:projectId', function(req, res) { try { const projectId = req.params.projectId; + + // check projectId only consists of hexadecimal letters + if (!mongoose.Types.ObjectId.isValid(projectId)) { + console.log("not valid object ID") + return res.sendStatus(400).end(); + } + // console.log("get report", projectId) const filename = getReportFilename(projectId); const pdf_path = path.join(REPORT_DIRNAME, filename); if (!fs.existsSync(pdf_path)) { - return res.sendStatus(400); + return res.sendStatus(400).end(); } let file = fs.createReadStream(pdf_path); @@ -51,7 +59,7 @@ router.get('/:projectId', res.setHeader('Content-Disposition', 'inline'); file.pipe(res); } catch (e) { - res.sendStatus(500); + res.sendStatus(500).end(); } }); From b125f42f6178c2d74f09323e2911ffe30ac168c0 Mon Sep 17 00:00:00 2001 From: imda-kwokwk <129362214+imda-kwokwk@users.noreply.github.com> Date: Wed, 2 Aug 2023 15:32:29 +0800 Subject: [PATCH 29/30] Update codeql.yml fix codeql error: Code Scanning could not process the submitted SARIF file:CodeQL analyses from advanced configurations cannot be processed when the default setup is enabled --- .github/workflows/codeql.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 6879db92b..accd7ff3e 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -17,11 +17,12 @@ on: pull_request: # The branches below must be a subset of the branches above branches: [ "main" ] + # trigger every Friday at 10:05pm (14:05 UTC) schedule: - - cron: '21 10 * * 5' - + - cron: "5 14 * * 5" + jobs: - analyze: + analyze:y name: Analyze # Runner size impacts CodeQL analysis time. To learn more, please see: # - https://gh.io/recommended-hardware-resources-for-running-codeql From 416ce79244739747dd466a3a97dea946121c668e Mon Sep 17 00:00:00 2001 From: Benedict Lee <benedict_lee@imda.gov.sg> Date: Thu, 3 Aug 2023 01:21:44 +0800 Subject: [PATCH 30/30] fix(sklearnmodel.py): Fix Typo for Extra Trees Regressor Model in Supported Algorithms List --- test-engine-core-modules/src/sklearnmodel/sklearnmodel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py b/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py index f8891ad2b..924de08a8 100644 --- a/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py +++ b/test-engine-core-modules/src/sklearnmodel/sklearnmodel.py @@ -29,7 +29,7 @@ class Plugin(IModel): "sklearn.ensemble._bagging.BaggingClassifier", "sklearn.linear_model._base.LinearRegression", "sklearn.ensemble._gb.GradientBoostingRegressor", - "sklearn.ensemble.ExtraTreesRegressor", + "sklearn.ensemble._forest.ExtraTreesRegressor", "sklearn.ensemble._forest.RandomForestRegressor", ] _name: str = "sklearnmodel"