diff --git a/.license-header b/.license-header index 4086d0e39c..f9bcdeedeb 100644 --- a/.license-header +++ b/.license-header @@ -1,4 +1,4 @@ -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5432d672f2..2be358ca99 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -77,8 +77,9 @@ inform the community that you are working on it. Then, follow the steps below: ### Contribution workflow -1. Make your [own fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) of the repository - targeted by the issue. Clone it on your local machine, then go inside the directory. +1. Make your [own fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) + of the repository targeted by the issue. Clone it on your local machine, then go inside the + directory. 2. We are working with [Pipenv](https://github.com/pypa/pipenv) for our virtualenv. Create a local env and install development package by running `$ pipenv install --dev`, then @@ -129,12 +130,14 @@ issue or PR if you're still interested in working on it. ### Python Taipy's repositories follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) and -[PEP 484](https://www.python.org/dev/peps/pep-0484/) coding convention. Gui variables need to be `snake_case` to be correctly converted into the `camelCase`, used for typescript variables. +[PEP 484](https://www.python.org/dev/peps/pep-0484/) coding convention. Gui variables need to +be `snake_case` to be correctly converted into the `camelCase`, used for typescript variables. ### TypeScript Taipy's repositories use the [ESLint](https://eslint.org/) and -[TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) plugin to ensure a common set of rules. +[TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) plugin to ensure a +common set of rules. ### Git branches @@ -149,12 +152,12 @@ Where: - bug: bug fix. - review: change provoked by review comment not immediately taken care of. - refactor: refactor of a piece of code. - - doc: doc changes (complement or typo fixes…). + - doc: doc changes (complement or typo fixes...). - build: in relation with the build process. - `` is the processed issue identifier. The advantage of explicitly indicating the issue number is that inGitHub, a pull request page shows a direct link to the issue description. - `[IssueSummary]` is a short summary of the issue topic, not including spaces, using Camel case - or lower-case, dash-separated words. This summary, with its dash (‘-’) symbol prefix, is + or lower-case, dash-separated words. This summary, with its dash ('-') symbol prefix, is optional. ## Dependency management diff --git a/LICENSE b/LICENSE index ca413c9dd6..96ca40dd64 100644 --- a/LICENSE +++ b/LICENSE @@ -187,7 +187,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2021-2024 Avaiga Private Limited + Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index a9770fe265..b16833be6d 100644 --- a/README.md +++ b/README.md @@ -8,43 +8,43 @@
- GitHub License - GitHub Release
- Python version needed: 3.9 - +
- Explore the docs - Explore Gallery - Discord support

@@ -58,7 +58,7 @@ No more compromises on performance, customization, and scalability.
-
+
Go beyond existing libraries
@@ -179,7 +179,7 @@ The application filters a dataset of films based on the user's selected genre an Here is the full code for both the front end and back end of the application.

- + ```python import taipy as tp import pandas as pd @@ -262,7 +262,7 @@ Want to be part of the Taipy community? Check out our [**Code of Conduct**](http ## 🪪 License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/Alert.py b/doc/gui/examples/Alert.py index c2f901718a..3fc025dea3 100644 --- a/doc/gui/examples/Alert.py +++ b/doc/gui/examples/Alert.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/async_callback.py b/doc/gui/examples/async_callback.py index b6e5fd7f7a..772c583148 100644 --- a/doc/gui/examples/async_callback.py +++ b/doc/gui/examples/async_callback.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/binding_lov_is_enum/builder.py b/doc/gui/examples/binding_lov_is_enum/builder.py index 78a540ac9f..0f84734b9a 100644 --- a/doc/gui/examples/binding_lov_is_enum/builder.py +++ b/doc/gui/examples/binding_lov_is_enum/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/binding_lov_is_enum/markdown.py b/doc/gui/examples/binding_lov_is_enum/markdown.py index 5336ffd641..fd64589e0c 100644 --- a/doc/gui/examples/binding_lov_is_enum/markdown.py +++ b/doc/gui/examples/binding_lov_is_enum/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/dialog_labels/builder.py b/doc/gui/examples/blocks/dialog_labels/builder.py index 0c7c2983e2..4a0e6dc256 100644 --- a/doc/gui/examples/blocks/dialog_labels/builder.py +++ b/doc/gui/examples/blocks/dialog_labels/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/dialog_labels/markdown.py b/doc/gui/examples/blocks/dialog_labels/markdown.py index 5c1486ee99..fafbd7d202 100644 --- a/doc/gui/examples/blocks/dialog_labels/markdown.py +++ b/doc/gui/examples/blocks/dialog_labels/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/dialog_show_hide/builder.py b/doc/gui/examples/blocks/dialog_show_hide/builder.py index 74fdfe9efc..f02efc90a8 100644 --- a/doc/gui/examples/blocks/dialog_show_hide/builder.py +++ b/doc/gui/examples/blocks/dialog_show_hide/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/dialog_show_hide/markdown.py b/doc/gui/examples/blocks/dialog_show_hide/markdown.py index dad8bfbdd7..f40b93086b 100644 --- a/doc/gui/examples/blocks/dialog_show_hide/markdown.py +++ b/doc/gui/examples/blocks/dialog_show_hide/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/layout_fit/builder.py b/doc/gui/examples/blocks/layout_fit/builder.py index efa879b4c7..988d3c3d9f 100644 --- a/doc/gui/examples/blocks/layout_fit/builder.py +++ b/doc/gui/examples/blocks/layout_fit/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/layout_fit/markdown.py b/doc/gui/examples/blocks/layout_fit/markdown.py index 6235bd3399..e236e21f9e 100644 --- a/doc/gui/examples/blocks/layout_fit/markdown.py +++ b/doc/gui/examples/blocks/layout_fit/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_anchor/builder.py b/doc/gui/examples/blocks/pane_anchor/builder.py index ba29698d92..8ea8105320 100644 --- a/doc/gui/examples/blocks/pane_anchor/builder.py +++ b/doc/gui/examples/blocks/pane_anchor/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_anchor/markdown.py b/doc/gui/examples/blocks/pane_anchor/markdown.py index e9bb4147a7..5e80572926 100644 --- a/doc/gui/examples/blocks/pane_anchor/markdown.py +++ b/doc/gui/examples/blocks/pane_anchor/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_as_page/builder.py b/doc/gui/examples/blocks/pane_as_page/builder.py index 911283975b..07477e9c9b 100644 --- a/doc/gui/examples/blocks/pane_as_page/builder.py +++ b/doc/gui/examples/blocks/pane_as_page/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_as_page/markdown.py b/doc/gui/examples/blocks/pane_as_page/markdown.py index 2f85dfc123..24eeb30d6c 100644 --- a/doc/gui/examples/blocks/pane_as_page/markdown.py +++ b/doc/gui/examples/blocks/pane_as_page/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_persistent/builder.py b/doc/gui/examples/blocks/pane_persistent/builder.py index 4878ffb9e6..1037f87bb1 100644 --- a/doc/gui/examples/blocks/pane_persistent/builder.py +++ b/doc/gui/examples/blocks/pane_persistent/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_persistent/markdown.py b/doc/gui/examples/blocks/pane_persistent/markdown.py index d87708f1d1..11e11e3566 100644 --- a/doc/gui/examples/blocks/pane_persistent/markdown.py +++ b/doc/gui/examples/blocks/pane_persistent/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_simple/builder.py b/doc/gui/examples/blocks/pane_simple/builder.py index 3f466f7cb7..fd5c8efd92 100644 --- a/doc/gui/examples/blocks/pane_simple/builder.py +++ b/doc/gui/examples/blocks/pane_simple/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_simple/markdown.py b/doc/gui/examples/blocks/pane_simple/markdown.py index 1b58db1298..35e0bc6be4 100644 --- a/doc/gui/examples/blocks/pane_simple/markdown.py +++ b/doc/gui/examples/blocks/pane_simple/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_simple_lambda/builder.py b/doc/gui/examples/blocks/pane_simple_lambda/builder.py index e503040745..85a303d9de 100644 --- a/doc/gui/examples/blocks/pane_simple_lambda/builder.py +++ b/doc/gui/examples/blocks/pane_simple_lambda/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/blocks/pane_simple_lambda/markdown.py b/doc/gui/examples/blocks/pane_simple_lambda/markdown.py index b7ec17935a..62a96b002a 100644 --- a/doc/gui/examples/blocks/pane_simple_lambda/markdown.py +++ b/doc/gui/examples/blocks/pane_simple_lambda/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/broadcast.py b/doc/gui/examples/broadcast.py index bfc05460c9..06f0b90b8e 100644 --- a/doc/gui/examples/broadcast.py +++ b/doc/gui/examples/broadcast.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/broadcast_callback.py b/doc/gui/examples/broadcast_callback.py index d375d87808..49b531f855 100644 --- a/doc/gui/examples/broadcast_callback.py +++ b/doc/gui/examples/broadcast_callback.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/broadcast_change.py b/doc/gui/examples/broadcast_change.py index c62a71742b..9b76c69e4b 100644 --- a/doc/gui/examples/broadcast_change.py +++ b/doc/gui/examples/broadcast_change.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/builder_lambda_property.py b/doc/gui/examples/builder_lambda_property.py index 243868734b..a615cc9279 100644 --- a/doc/gui/examples/builder_lambda_property.py +++ b/doc/gui/examples/builder_lambda_property.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/advanced_annotations.py b/doc/gui/examples/charts/advanced_annotations.py index 47bda391ad..23a49720cd 100644 --- a/doc/gui/examples/charts/advanced_annotations.py +++ b/doc/gui/examples/charts/advanced_annotations.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/advanced_large_datasets.py b/doc/gui/examples/charts/advanced_large_datasets.py index ea4c140a4c..f54dfe0cff 100644 --- a/doc/gui/examples/charts/advanced_large_datasets.py +++ b/doc/gui/examples/charts/advanced_large_datasets.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/advanced_python_lib.py b/doc/gui/examples/charts/advanced_python_lib.py index e91804dc28..40a0a436d4 100644 --- a/doc/gui/examples/charts/advanced_python_lib.py +++ b/doc/gui/examples/charts/advanced_python_lib.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/advanced_selection.py b/doc/gui/examples/charts/advanced_selection.py index e6b09a0c0a..e287c34fe8 100644 --- a/doc/gui/examples/charts/advanced_selection.py +++ b/doc/gui/examples/charts/advanced_selection.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/advanced_shapes.py b/doc/gui/examples/charts/advanced_shapes.py index 85fe080377..b954ed0ebe 100644 --- a/doc/gui/examples/charts/advanced_shapes.py +++ b/doc/gui/examples/charts/advanced_shapes.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/advanced_unbalanced_datasets.py b/doc/gui/examples/charts/advanced_unbalanced_datasets.py index 65b835b58c..add31a0a94 100644 --- a/doc/gui/examples/charts/advanced_unbalanced_datasets.py +++ b/doc/gui/examples/charts/advanced_unbalanced_datasets.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/bar_facing.py b/doc/gui/examples/charts/bar_facing.py index 35bff0fa86..a11bf9f69b 100644 --- a/doc/gui/examples/charts/bar_facing.py +++ b/doc/gui/examples/charts/bar_facing.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/bar_multiple.py b/doc/gui/examples/charts/bar_multiple.py index 5dddf7a883..2c8d593c99 100644 --- a/doc/gui/examples/charts/bar_multiple.py +++ b/doc/gui/examples/charts/bar_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/bar_simple.py b/doc/gui/examples/charts/bar_simple.py index 1c59e653a6..a39888efb0 100644 --- a/doc/gui/examples/charts/bar_simple.py +++ b/doc/gui/examples/charts/bar_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/bar_stacked.py b/doc/gui/examples/charts/bar_stacked.py index 86e9e4772a..773a9548a0 100644 --- a/doc/gui/examples/charts/bar_stacked.py +++ b/doc/gui/examples/charts/bar_stacked.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/basics_multiple.py b/doc/gui/examples/charts/basics_multiple.py index 4613d25c5f..c3c42e4631 100644 --- a/doc/gui/examples/charts/basics_multiple.py +++ b/doc/gui/examples/charts/basics_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/basics_simple.py b/doc/gui/examples/charts/basics_simple.py index d1ee7c56d7..aaaf1d842c 100644 --- a/doc/gui/examples/charts/basics_simple.py +++ b/doc/gui/examples/charts/basics_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/basics_timeline.py b/doc/gui/examples/charts/basics_timeline.py index 42dfa0d357..005a24b234 100644 --- a/doc/gui/examples/charts/basics_timeline.py +++ b/doc/gui/examples/charts/basics_timeline.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/basics_title.py b/doc/gui/examples/charts/basics_title.py index 98b13b1289..af0f65be84 100644 --- a/doc/gui/examples/charts/basics_title.py +++ b/doc/gui/examples/charts/basics_title.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/basics_two_y_axis.py b/doc/gui/examples/charts/basics_two_y_axis.py index ca3badbf08..72041f15e9 100644 --- a/doc/gui/examples/charts/basics_two_y_axis.py +++ b/doc/gui/examples/charts/basics_two_y_axis.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/basics_xrange.py b/doc/gui/examples/charts/basics_xrange.py index fe41dec61a..abd02a712a 100644 --- a/doc/gui/examples/charts/basics_xrange.py +++ b/doc/gui/examples/charts/basics_xrange.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/bubble_hover.py b/doc/gui/examples/charts/bubble_hover.py index 978bcd04ca..7601b8b78a 100644 --- a/doc/gui/examples/charts/bubble_hover.py +++ b/doc/gui/examples/charts/bubble_hover.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/bubble_simple.py b/doc/gui/examples/charts/bubble_simple.py index 6fb4361f03..8f47471a79 100644 --- a/doc/gui/examples/charts/bubble_simple.py +++ b/doc/gui/examples/charts/bubble_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/bubble_symbols.py b/doc/gui/examples/charts/bubble_symbols.py index 00cbf4a80a..5a8ce665b1 100644 --- a/doc/gui/examples/charts/bubble_symbols.py +++ b/doc/gui/examples/charts/bubble_symbols.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/candlestick_simple.py b/doc/gui/examples/charts/candlestick_simple.py index 3cf61aecba..db5beef023 100644 --- a/doc/gui/examples/charts/candlestick_simple.py +++ b/doc/gui/examples/charts/candlestick_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/candlestick_styling.py b/doc/gui/examples/charts/candlestick_styling.py index fb9540d3d4..1ec98714cf 100644 --- a/doc/gui/examples/charts/candlestick_styling.py +++ b/doc/gui/examples/charts/candlestick_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/candlestick_timeseries.py b/doc/gui/examples/charts/candlestick_timeseries.py index 66b3d35f9a..5b48f5c37e 100644 --- a/doc/gui/examples/charts/candlestick_timeseries.py +++ b/doc/gui/examples/charts/candlestick_timeseries.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/continuous_error_multiple.py b/doc/gui/examples/charts/continuous_error_multiple.py index 0760b43cf8..168271edc8 100644 --- a/doc/gui/examples/charts/continuous_error_multiple.py +++ b/doc/gui/examples/charts/continuous_error_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/continuous_error_simple.py b/doc/gui/examples/charts/continuous_error_simple.py index 13e2fac17d..ec5b1741e2 100644 --- a/doc/gui/examples/charts/continuous_error_simple.py +++ b/doc/gui/examples/charts/continuous_error_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/error_bars_asymmetric.py b/doc/gui/examples/charts/error_bars_asymmetric.py index 005c4fb2c2..b02c67437d 100644 --- a/doc/gui/examples/charts/error_bars_asymmetric.py +++ b/doc/gui/examples/charts/error_bars_asymmetric.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/error_bars_simple.py b/doc/gui/examples/charts/error_bars_simple.py index c9c37f4d5e..681f426236 100644 --- a/doc/gui/examples/charts/error_bars_simple.py +++ b/doc/gui/examples/charts/error_bars_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/example_rebuild.py b/doc/gui/examples/charts/example_rebuild.py index 2002da144b..21a64acb43 100644 --- a/doc/gui/examples/charts/example_rebuild.py +++ b/doc/gui/examples/charts/example_rebuild.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/filled_area_normalized.py b/doc/gui/examples/charts/filled_area_normalized.py index b719bb9dc4..b400f4d0ed 100644 --- a/doc/gui/examples/charts/filled_area_normalized.py +++ b/doc/gui/examples/charts/filled_area_normalized.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/filled_area_overlay.py b/doc/gui/examples/charts/filled_area_overlay.py index a132a260cc..68661d7553 100644 --- a/doc/gui/examples/charts/filled_area_overlay.py +++ b/doc/gui/examples/charts/filled_area_overlay.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/filled_area_simple.py b/doc/gui/examples/charts/filled_area_simple.py index 2efd7c8ad9..2fd80d639a 100644 --- a/doc/gui/examples/charts/filled_area_simple.py +++ b/doc/gui/examples/charts/filled_area_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/filled_area_stacked.py b/doc/gui/examples/charts/filled_area_stacked.py index 9a84b2d6e2..0e21304c6b 100644 --- a/doc/gui/examples/charts/filled_area_stacked.py +++ b/doc/gui/examples/charts/filled_area_stacked.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/funnel_area.py b/doc/gui/examples/charts/funnel_area.py index b42591bfd1..26b8b6a124 100644 --- a/doc/gui/examples/charts/funnel_area.py +++ b/doc/gui/examples/charts/funnel_area.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/funnel_area_multiple.py b/doc/gui/examples/charts/funnel_area_multiple.py index fc18cb32cc..3a12cccb01 100644 --- a/doc/gui/examples/charts/funnel_area_multiple.py +++ b/doc/gui/examples/charts/funnel_area_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/funnel_multiple.py b/doc/gui/examples/charts/funnel_multiple.py index 9157ba6553..275d780989 100644 --- a/doc/gui/examples/charts/funnel_multiple.py +++ b/doc/gui/examples/charts/funnel_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/funnel_simple.py b/doc/gui/examples/charts/funnel_simple.py index 56d6ccdea8..c0d7cfa443 100644 --- a/doc/gui/examples/charts/funnel_simple.py +++ b/doc/gui/examples/charts/funnel_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/funnel_styling.py b/doc/gui/examples/charts/funnel_styling.py index 201b818e26..bfa33b42f5 100644 --- a/doc/gui/examples/charts/funnel_styling.py +++ b/doc/gui/examples/charts/funnel_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/gantt_simple.py b/doc/gui/examples/charts/gantt_simple.py index bdbfe923eb..6026757c63 100644 --- a/doc/gui/examples/charts/gantt_simple.py +++ b/doc/gui/examples/charts/gantt_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/heatmap_annotated.py b/doc/gui/examples/charts/heatmap_annotated.py index 63c43dd6b0..56545a72fc 100644 --- a/doc/gui/examples/charts/heatmap_annotated.py +++ b/doc/gui/examples/charts/heatmap_annotated.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/heatmap_colorscale.py b/doc/gui/examples/charts/heatmap_colorscale.py index f811bffc0d..f723609a84 100644 --- a/doc/gui/examples/charts/heatmap_colorscale.py +++ b/doc/gui/examples/charts/heatmap_colorscale.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/heatmap_drawing_on_top.py b/doc/gui/examples/charts/heatmap_drawing_on_top.py index 2bc4ac5299..d21d8dad9e 100644 --- a/doc/gui/examples/charts/heatmap_drawing_on_top.py +++ b/doc/gui/examples/charts/heatmap_drawing_on_top.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/heatmap_simple.py b/doc/gui/examples/charts/heatmap_simple.py index 0e257b0aff..9e072b5978 100644 --- a/doc/gui/examples/charts/heatmap_simple.py +++ b/doc/gui/examples/charts/heatmap_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/heatmap_unbalanced.py b/doc/gui/examples/charts/heatmap_unbalanced.py index 9672954168..ea34803559 100644 --- a/doc/gui/examples/charts/heatmap_unbalanced.py +++ b/doc/gui/examples/charts/heatmap_unbalanced.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/heatmap_unequal_cell_sizes.py b/doc/gui/examples/charts/heatmap_unequal_cell_sizes.py index e6cbe69cd5..d4fe853a32 100644 --- a/doc/gui/examples/charts/heatmap_unequal_cell_sizes.py +++ b/doc/gui/examples/charts/heatmap_unequal_cell_sizes.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_binning_function.py b/doc/gui/examples/charts/histogram_binning_function.py index be764ba749..0b03ea81ef 100644 --- a/doc/gui/examples/charts/histogram_binning_function.py +++ b/doc/gui/examples/charts/histogram_binning_function.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_cumulative.py b/doc/gui/examples/charts/histogram_cumulative.py index fa366a1570..e33022eb27 100644 --- a/doc/gui/examples/charts/histogram_cumulative.py +++ b/doc/gui/examples/charts/histogram_cumulative.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_horizontal.py b/doc/gui/examples/charts/histogram_horizontal.py index fdef32492e..dc581ff5f1 100644 --- a/doc/gui/examples/charts/histogram_horizontal.py +++ b/doc/gui/examples/charts/histogram_horizontal.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_nbins.py b/doc/gui/examples/charts/histogram_nbins.py index f4aef50a12..4068934fb3 100644 --- a/doc/gui/examples/charts/histogram_nbins.py +++ b/doc/gui/examples/charts/histogram_nbins.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_normalized.py b/doc/gui/examples/charts/histogram_normalized.py index 704134bc71..4b58c30f29 100644 --- a/doc/gui/examples/charts/histogram_normalized.py +++ b/doc/gui/examples/charts/histogram_normalized.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_overlay.py b/doc/gui/examples/charts/histogram_overlay.py index 4dce8177ba..2c10fe5368 100644 --- a/doc/gui/examples/charts/histogram_overlay.py +++ b/doc/gui/examples/charts/histogram_overlay.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_simple.py b/doc/gui/examples/charts/histogram_simple.py index bec444003e..1753c921c8 100644 --- a/doc/gui/examples/charts/histogram_simple.py +++ b/doc/gui/examples/charts/histogram_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/histogram_stacked.py b/doc/gui/examples/charts/histogram_stacked.py index f350ba3e0d..438a83b534 100644 --- a/doc/gui/examples/charts/histogram_stacked.py +++ b/doc/gui/examples/charts/histogram_stacked.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/line_style.py b/doc/gui/examples/charts/line_style.py index 2c442ec0a3..d8fb160e00 100644 --- a/doc/gui/examples/charts/line_style.py +++ b/doc/gui/examples/charts/line_style.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/line_texts.py b/doc/gui/examples/charts/line_texts.py index 20872039fe..ced0d812b5 100644 --- a/doc/gui/examples/charts/line_texts.py +++ b/doc/gui/examples/charts/line_texts.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/map_bubbles.py b/doc/gui/examples/charts/map_bubbles.py index 8506d66f61..cc1f75fa71 100644 --- a/doc/gui/examples/charts/map_bubbles.py +++ b/doc/gui/examples/charts/map_bubbles.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/map_lines.py b/doc/gui/examples/charts/map_lines.py index dcbbf1324f..bddc21fdcc 100644 --- a/doc/gui/examples/charts/map_lines.py +++ b/doc/gui/examples/charts/map_lines.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/map_simple.py b/doc/gui/examples/charts/map_simple.py index a05d70a514..6d96edab48 100644 --- a/doc/gui/examples/charts/map_simple.py +++ b/doc/gui/examples/charts/map_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/matplotlib/builder.py b/doc/gui/examples/charts/matplotlib/builder.py index ce232b6ddc..fc76976365 100644 --- a/doc/gui/examples/charts/matplotlib/builder.py +++ b/doc/gui/examples/charts/matplotlib/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/matplotlib/image.py b/doc/gui/examples/charts/matplotlib/image.py index 63aa977553..15ff229f45 100644 --- a/doc/gui/examples/charts/matplotlib/image.py +++ b/doc/gui/examples/charts/matplotlib/image.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/matplotlib/markdown.py b/doc/gui/examples/charts/matplotlib/markdown.py index 87d4253584..c2e4dbb283 100644 --- a/doc/gui/examples/charts/matplotlib/markdown.py +++ b/doc/gui/examples/charts/matplotlib/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/pie_multiple.py b/doc/gui/examples/charts/pie_multiple.py index 5c95100e3a..07c8651082 100644 --- a/doc/gui/examples/charts/pie_multiple.py +++ b/doc/gui/examples/charts/pie_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/pie_simple.py b/doc/gui/examples/charts/pie_simple.py index ce2e7146af..459a8b0ea5 100644 --- a/doc/gui/examples/charts/pie_simple.py +++ b/doc/gui/examples/charts/pie_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/pie_styling.py b/doc/gui/examples/charts/pie_styling.py index 88de500e1a..963d0124cf 100644 --- a/doc/gui/examples/charts/pie_styling.py +++ b/doc/gui/examples/charts/pie_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/polar_angular_axis.py b/doc/gui/examples/charts/polar_angular_axis.py index 83e2b48aff..6a31f8853e 100644 --- a/doc/gui/examples/charts/polar_angular_axis.py +++ b/doc/gui/examples/charts/polar_angular_axis.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/polar_area.py b/doc/gui/examples/charts/polar_area.py index c0e68f0dc6..d6d84955ad 100644 --- a/doc/gui/examples/charts/polar_area.py +++ b/doc/gui/examples/charts/polar_area.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/polar_multiple.py b/doc/gui/examples/charts/polar_multiple.py index c0f75bac5f..514c220010 100644 --- a/doc/gui/examples/charts/polar_multiple.py +++ b/doc/gui/examples/charts/polar_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/polar_sectors.py b/doc/gui/examples/charts/polar_sectors.py index c040bc3583..dcc493ad0c 100644 --- a/doc/gui/examples/charts/polar_sectors.py +++ b/doc/gui/examples/charts/polar_sectors.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/polar_simple.py b/doc/gui/examples/charts/polar_simple.py index 084ca05999..1681801799 100644 --- a/doc/gui/examples/charts/polar_simple.py +++ b/doc/gui/examples/charts/polar_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/polar_tick_texts.py b/doc/gui/examples/charts/polar_tick_texts.py index 78bec19691..aeda3e809f 100644 --- a/doc/gui/examples/charts/polar_tick_texts.py +++ b/doc/gui/examples/charts/polar_tick_texts.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/radar_multiple.py b/doc/gui/examples/charts/radar_multiple.py index 7d6524ec7d..5f999d3e50 100644 --- a/doc/gui/examples/charts/radar_multiple.py +++ b/doc/gui/examples/charts/radar_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/radar_simple.py b/doc/gui/examples/charts/radar_simple.py index 441cd3deda..393fdc8164 100644 --- a/doc/gui/examples/charts/radar_simple.py +++ b/doc/gui/examples/charts/radar_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/scatter_classification.py b/doc/gui/examples/charts/scatter_classification.py index 7f563c8421..47c101d8b2 100644 --- a/doc/gui/examples/charts/scatter_classification.py +++ b/doc/gui/examples/charts/scatter_classification.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/scatter_more_styling.py b/doc/gui/examples/charts/scatter_more_styling.py index daf0dd62b9..7932c6ad3d 100644 --- a/doc/gui/examples/charts/scatter_more_styling.py +++ b/doc/gui/examples/charts/scatter_more_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/scatter_regression.py b/doc/gui/examples/charts/scatter_regression.py index ebfca12c31..f9e97c7cd7 100644 --- a/doc/gui/examples/charts/scatter_regression.py +++ b/doc/gui/examples/charts/scatter_regression.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/scatter_styling.py b/doc/gui/examples/charts/scatter_styling.py index 1411123b28..03ea353970 100644 --- a/doc/gui/examples/charts/scatter_styling.py +++ b/doc/gui/examples/charts/scatter_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/treemap_hierarchical.py b/doc/gui/examples/charts/treemap_hierarchical.py index d231b618e6..dd0460a51e 100644 --- a/doc/gui/examples/charts/treemap_hierarchical.py +++ b/doc/gui/examples/charts/treemap_hierarchical.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/treemap_hierarchical_values.py b/doc/gui/examples/charts/treemap_hierarchical_values.py index b4d003bddb..805d9993c5 100644 --- a/doc/gui/examples/charts/treemap_hierarchical_values.py +++ b/doc/gui/examples/charts/treemap_hierarchical_values.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/treemap_simple.py b/doc/gui/examples/charts/treemap_simple.py index 345d7d2e11..72b869f99b 100644 --- a/doc/gui/examples/charts/treemap_simple.py +++ b/doc/gui/examples/charts/treemap_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/waterfall_period_levels.py b/doc/gui/examples/charts/waterfall_period_levels.py index a7aa7f61b7..ee0ad1992c 100644 --- a/doc/gui/examples/charts/waterfall_period_levels.py +++ b/doc/gui/examples/charts/waterfall_period_levels.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/waterfall_simple.py b/doc/gui/examples/charts/waterfall_simple.py index 7581d03d50..836de7b6ef 100644 --- a/doc/gui/examples/charts/waterfall_simple.py +++ b/doc/gui/examples/charts/waterfall_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/charts/waterfall_styling.py b/doc/gui/examples/charts/waterfall_styling.py index b83b83e777..4a11f7324a 100644 --- a/doc/gui/examples/charts/waterfall_styling.py +++ b/doc/gui/examples/charts/waterfall_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_action.py b/doc/gui/examples/controls/button_action.py index e2fc06b04d..93fdbbc234 100644 --- a/doc/gui/examples/controls/button_action.py +++ b/doc/gui/examples/controls/button_action.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_icon.py b/doc/gui/examples/controls/button_icon.py index d03d550782..3085a29a1a 100644 --- a/doc/gui/examples/controls/button_icon.py +++ b/doc/gui/examples/controls/button_icon.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_lambda.py b/doc/gui/examples/controls/button_lambda.py index acdcb228e7..5282701508 100644 --- a/doc/gui/examples/controls/button_lambda.py +++ b/doc/gui/examples/controls/button_lambda.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_simple.py b/doc/gui/examples/controls/button_simple.py index b57e0c5240..4f87ebafad 100644 --- a/doc/gui/examples/controls/button_simple.py +++ b/doc/gui/examples/controls/button_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_size.py b/doc/gui/examples/controls/button_size.py index 05d5af1592..373d1676f0 100644 --- a/doc/gui/examples/controls/button_size.py +++ b/doc/gui/examples/controls/button_size.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_stylekit.py b/doc/gui/examples/controls/button_stylekit.py index a30c919171..4fe17bf63b 100644 --- a/doc/gui/examples/controls/button_stylekit.py +++ b/doc/gui/examples/controls/button_stylekit.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_styling.py b/doc/gui/examples/controls/button_styling.py index c1282f7b0d..3a330718c8 100644 --- a/doc/gui/examples/controls/button_styling.py +++ b/doc/gui/examples/controls/button_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/button_variant.py b/doc/gui/examples/controls/button_variant.py index fe7d7cb38a..5a2c772273 100644 --- a/doc/gui/examples/controls/button_variant.py +++ b/doc/gui/examples/controls/button_variant.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/chat_calculator.py b/doc/gui/examples/controls/chat_calculator.py index 442b47530a..cecc53925a 100644 --- a/doc/gui/examples/controls/chat_calculator.py +++ b/doc/gui/examples/controls/chat_calculator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/chat_discuss.py b/doc/gui/examples/controls/chat_discuss.py index cd9775057c..1b74af8ebf 100644 --- a/doc/gui/examples/controls/chat_discuss.py +++ b/doc/gui/examples/controls/chat_discuss.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/chat_images.py b/doc/gui/examples/controls/chat_images.py index 2e7667c1de..f84ff166e9 100644 --- a/doc/gui/examples/controls/chat_images.py +++ b/doc/gui/examples/controls/chat_images.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/chat_messages.py b/doc/gui/examples/controls/chat_messages.py index ce4dc77db5..534bd0991a 100644 --- a/doc/gui/examples/controls/chat_messages.py +++ b/doc/gui/examples/controls/chat_messages.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/chat_streaming.py b/doc/gui/examples/controls/chat_streaming.py index 6faedc5438..dc9abf7bd8 100644 --- a/doc/gui/examples/controls/chat_streaming.py +++ b/doc/gui/examples/controls/chat_streaming.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_format.py b/doc/gui/examples/controls/date_format.py index 8da6900197..dd219bc267 100644 --- a/doc/gui/examples/controls/date_format.py +++ b/doc/gui/examples/controls/date_format.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_min_max.py b/doc/gui/examples/controls/date_min_max.py index 06aa5fb91e..096a57dea3 100644 --- a/doc/gui/examples/controls/date_min_max.py +++ b/doc/gui/examples/controls/date_min_max.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_not_editable.py b/doc/gui/examples/controls/date_not_editable.py index 4a46d635af..73e34df29d 100644 --- a/doc/gui/examples/controls/date_not_editable.py +++ b/doc/gui/examples/controls/date_not_editable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_range_labels.py b/doc/gui/examples/controls/date_range_labels.py index f14cc78076..e91e612888 100644 --- a/doc/gui/examples/controls/date_range_labels.py +++ b/doc/gui/examples/controls/date_range_labels.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_range_simple.py b/doc/gui/examples/controls/date_range_simple.py index d48d643732..12cdbfe4a6 100644 --- a/doc/gui/examples/controls/date_range_simple.py +++ b/doc/gui/examples/controls/date_range_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_range_styling.py b/doc/gui/examples/controls/date_range_styling.py index 97b74d4f64..79b3f77517 100644 --- a/doc/gui/examples/controls/date_range_styling.py +++ b/doc/gui/examples/controls/date_range_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_range_with_time.py b/doc/gui/examples/controls/date_range_with_time.py index 99d5f61a8d..1ddfee2b74 100644 --- a/doc/gui/examples/controls/date_range_with_time.py +++ b/doc/gui/examples/controls/date_range_with_time.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_range_with_time_analog_picker.py b/doc/gui/examples/controls/date_range_with_time_analog_picker.py index 01653bc786..7e452e4d93 100644 --- a/doc/gui/examples/controls/date_range_with_time_analog_picker.py +++ b/doc/gui/examples/controls/date_range_with_time_analog_picker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_simple.py b/doc/gui/examples/controls/date_simple.py index 640a56e03b..2048d42fd2 100644 --- a/doc/gui/examples/controls/date_simple.py +++ b/doc/gui/examples/controls/date_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_styling.py b/doc/gui/examples/controls/date_styling.py index 3d6041f043..57d7bb6568 100644 --- a/doc/gui/examples/controls/date_styling.py +++ b/doc/gui/examples/controls/date_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_with_time.py b/doc/gui/examples/controls/date_with_time.py index afda44e678..8fc449a848 100644 --- a/doc/gui/examples/controls/date_with_time.py +++ b/doc/gui/examples/controls/date_with_time.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/date_with_time_analog_picker.py b/doc/gui/examples/controls/date_with_time_analog_picker.py index b1e1fe30d0..1163cf4b03 100644 --- a/doc/gui/examples/controls/date_with_time_analog_picker.py +++ b/doc/gui/examples/controls/date_with_time_analog_picker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/file_download_dynamic.py b/doc/gui/examples/controls/file_download_dynamic.py index 39f450c256..a2a268a24b 100644 --- a/doc/gui/examples/controls/file_download_dynamic.py +++ b/doc/gui/examples/controls/file_download_dynamic.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/file_download_dynamic_temp_file.py b/doc/gui/examples/controls/file_download_dynamic_temp_file.py index 3042d940c9..fb029700fb 100644 --- a/doc/gui/examples/controls/file_download_dynamic_temp_file.py +++ b/doc/gui/examples/controls/file_download_dynamic_temp_file.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/file_selector_image.py b/doc/gui/examples/controls/file_selector_image.py index 85d4b8bd8b..6a2b5477e0 100644 --- a/doc/gui/examples/controls/file_selector_image.py +++ b/doc/gui/examples/controls/file_selector_image.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/file_selector_simple.py b/doc/gui/examples/controls/file_selector_simple.py index 753dcf951d..69b0551d5c 100644 --- a/doc/gui/examples/controls/file_selector_simple.py +++ b/doc/gui/examples/controls/file_selector_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/input_active.py b/doc/gui/examples/controls/input_active.py index 2962c29477..0ea195f4ca 100644 --- a/doc/gui/examples/controls/input_active.py +++ b/doc/gui/examples/controls/input_active.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/input_change_delay_on_change.py b/doc/gui/examples/controls/input_change_delay_on_change.py index 265ae6f00a..9f05c29b30 100644 --- a/doc/gui/examples/controls/input_change_delay_on_change.py +++ b/doc/gui/examples/controls/input_change_delay_on_change.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/input_line_shown.py b/doc/gui/examples/controls/input_line_shown.py index 5b726d9ad0..1db5e27758 100644 --- a/doc/gui/examples/controls/input_line_shown.py +++ b/doc/gui/examples/controls/input_line_shown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/input_multiline.py b/doc/gui/examples/controls/input_multiline.py index 2f5abdb7fd..4d848cb1bf 100644 --- a/doc/gui/examples/controls/input_multiline.py +++ b/doc/gui/examples/controls/input_multiline.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/input_on_action.py b/doc/gui/examples/controls/input_on_action.py index 00ed0a2cde..df304a372d 100644 --- a/doc/gui/examples/controls/input_on_action.py +++ b/doc/gui/examples/controls/input_on_action.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/input_password.py b/doc/gui/examples/controls/input_password.py index 2ca377b869..c1a41fbb90 100644 --- a/doc/gui/examples/controls/input_password.py +++ b/doc/gui/examples/controls/input_password.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/input_type.py b/doc/gui/examples/controls/input_type.py index 817a2522a5..576b6cfea0 100644 --- a/doc/gui/examples/controls/input_type.py +++ b/doc/gui/examples/controls/input_type.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/menu_inactive.py b/doc/gui/examples/controls/menu_inactive.py index 85133c15de..1ab62caadd 100644 --- a/doc/gui/examples/controls/menu_inactive.py +++ b/doc/gui/examples/controls/menu_inactive.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/menu_inactive_options.py b/doc/gui/examples/controls/menu_inactive_options.py index 7d1e245169..99f6efce14 100644 --- a/doc/gui/examples/controls/menu_inactive_options.py +++ b/doc/gui/examples/controls/menu_inactive_options.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/menu_label.py b/doc/gui/examples/controls/menu_label.py index ca52893227..16ae8b9712 100644 --- a/doc/gui/examples/controls/menu_label.py +++ b/doc/gui/examples/controls/menu_label.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/menu_on_action.py b/doc/gui/examples/controls/menu_on_action.py index f7122205f2..7e043c677a 100644 --- a/doc/gui/examples/controls/menu_on_action.py +++ b/doc/gui/examples/controls/menu_on_action.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/menu_selected.py b/doc/gui/examples/controls/menu_selected.py index 128b7843d1..5474d47066 100644 --- a/doc/gui/examples/controls/menu_selected.py +++ b/doc/gui/examples/controls/menu_selected.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/menu_simple.py b/doc/gui/examples/controls/menu_simple.py index b7772c7fae..af4e365a69 100644 --- a/doc/gui/examples/controls/menu_simple.py +++ b/doc/gui/examples/controls/menu_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_color_map.py b/doc/gui/examples/controls/metric_color_map.py index b1bf195266..3069cf1a49 100644 --- a/doc/gui/examples/controls/metric_color_map.py +++ b/doc/gui/examples/controls/metric_color_map.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_delta_color.py b/doc/gui/examples/controls/metric_delta_color.py index 7856aa82cd..fd9eea25ec 100644 --- a/doc/gui/examples/controls/metric_delta_color.py +++ b/doc/gui/examples/controls/metric_delta_color.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_formats.py b/doc/gui/examples/controls/metric_formats.py index b6177375f3..649ec50d24 100644 --- a/doc/gui/examples/controls/metric_formats.py +++ b/doc/gui/examples/controls/metric_formats.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_hide_value.py b/doc/gui/examples/controls/metric_hide_value.py index 7d3e2ce492..abcf8ec5e5 100644 --- a/doc/gui/examples/controls/metric_hide_value.py +++ b/doc/gui/examples/controls/metric_hide_value.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_layout.py b/doc/gui/examples/controls/metric_layout.py index 52a4679d84..b038bfaeb9 100644 --- a/doc/gui/examples/controls/metric_layout.py +++ b/doc/gui/examples/controls/metric_layout.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_range.py b/doc/gui/examples/controls/metric_range.py index 2889b6e503..32b2446cc0 100644 --- a/doc/gui/examples/controls/metric_range.py +++ b/doc/gui/examples/controls/metric_range.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_simple.py b/doc/gui/examples/controls/metric_simple.py index d147c7e03e..42c91abbb8 100644 --- a/doc/gui/examples/controls/metric_simple.py +++ b/doc/gui/examples/controls/metric_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/metric_type.py b/doc/gui/examples/controls/metric_type.py index a65ac66a97..7bd217d334 100644 --- a/doc/gui/examples/controls/metric_type.py +++ b/doc/gui/examples/controls/metric_type.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/number_min_max.py b/doc/gui/examples/controls/number_min_max.py index 18a4d9b085..b1750f22ea 100644 --- a/doc/gui/examples/controls/number_min_max.py +++ b/doc/gui/examples/controls/number_min_max.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/number_simple.py b/doc/gui/examples/controls/number_simple.py index 7b5699ca4b..145068789a 100644 --- a/doc/gui/examples/controls/number_simple.py +++ b/doc/gui/examples/controls/number_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/number_step.py b/doc/gui/examples/controls/number_step.py index 112e59c68b..ccf173af28 100644 --- a/doc/gui/examples/controls/number_step.py +++ b/doc/gui/examples/controls/number_step.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_linear.py b/doc/gui/examples/controls/progress_linear.py index 2598d233bc..c7da7ca50b 100644 --- a/doc/gui/examples/controls/progress_linear.py +++ b/doc/gui/examples/controls/progress_linear.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_simple.py b/doc/gui/examples/controls/progress_simple.py index 71c5e31bb4..31957a69d3 100644 --- a/doc/gui/examples/controls/progress_simple.py +++ b/doc/gui/examples/controls/progress_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_styling_circular/builder.py b/doc/gui/examples/controls/progress_styling_circular/builder.py index 5806fe6706..1cc02eed28 100644 --- a/doc/gui/examples/controls/progress_styling_circular/builder.py +++ b/doc/gui/examples/controls/progress_styling_circular/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_styling_circular/markdown.py b/doc/gui/examples/controls/progress_styling_circular/markdown.py index 72c7dcea69..b8fcd76972 100644 --- a/doc/gui/examples/controls/progress_styling_circular/markdown.py +++ b/doc/gui/examples/controls/progress_styling_circular/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_styling_linear/builder.py b/doc/gui/examples/controls/progress_styling_linear/builder.py index fdbcc9fde1..7e27f03c52 100644 --- a/doc/gui/examples/controls/progress_styling_linear/builder.py +++ b/doc/gui/examples/controls/progress_styling_linear/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_styling_linear/markdown.py b/doc/gui/examples/controls/progress_styling_linear/markdown.py index 881ea22b59..d25f3b0928 100644 --- a/doc/gui/examples/controls/progress_styling_linear/markdown.py +++ b/doc/gui/examples/controls/progress_styling_linear/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_styling_texts.py b/doc/gui/examples/controls/progress_styling_texts.py index c63f28afc6..843fc99fd1 100644 --- a/doc/gui/examples/controls/progress_styling_texts.py +++ b/doc/gui/examples/controls/progress_styling_texts.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/progress_texts.py b/doc/gui/examples/controls/progress_texts.py index 49f916210e..05561f7cd2 100644 --- a/doc/gui/examples/controls/progress_texts.py +++ b/doc/gui/examples/controls/progress_texts.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_adapter.py b/doc/gui/examples/controls/selector_adapter.py index 3d273b2df8..309ff33820 100644 --- a/doc/gui/examples/controls/selector_adapter.py +++ b/doc/gui/examples/controls/selector_adapter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_checkbox.py b/doc/gui/examples/controls/selector_checkbox.py index 906155ed7b..f18ad0d894 100644 --- a/doc/gui/examples/controls/selector_checkbox.py +++ b/doc/gui/examples/controls/selector_checkbox.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_dropdown.py b/doc/gui/examples/controls/selector_dropdown.py index f961251082..5506b9d374 100644 --- a/doc/gui/examples/controls/selector_dropdown.py +++ b/doc/gui/examples/controls/selector_dropdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_filter.py b/doc/gui/examples/controls/selector_filter.py index a18faac2e2..addee13c09 100644 --- a/doc/gui/examples/controls/selector_filter.py +++ b/doc/gui/examples/controls/selector_filter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_icon.py b/doc/gui/examples/controls/selector_icon.py index a1ee419f02..ea31af2297 100644 --- a/doc/gui/examples/controls/selector_icon.py +++ b/doc/gui/examples/controls/selector_icon.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_list.py b/doc/gui/examples/controls/selector_list.py index 770131ba65..b510b4b501 100644 --- a/doc/gui/examples/controls/selector_list.py +++ b/doc/gui/examples/controls/selector_list.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_multiple.py b/doc/gui/examples/controls/selector_multiple.py index 738cee67bb..b96bf89dcc 100644 --- a/doc/gui/examples/controls/selector_multiple.py +++ b/doc/gui/examples/controls/selector_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_radio.py b/doc/gui/examples/controls/selector_radio.py index b28f1928e1..3e6d66b839 100644 --- a/doc/gui/examples/controls/selector_radio.py +++ b/doc/gui/examples/controls/selector_radio.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/selector_styling.py b/doc/gui/examples/controls/selector_styling.py index f0124003ac..b18e24fd37 100644 --- a/doc/gui/examples/controls/selector_styling.py +++ b/doc/gui/examples/controls/selector_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/slider_date_range.py b/doc/gui/examples/controls/slider_date_range.py index 85438f6398..19c012f1d0 100644 --- a/doc/gui/examples/controls/slider_date_range.py +++ b/doc/gui/examples/controls/slider_date_range.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/slider_labels_dictionary.py b/doc/gui/examples/controls/slider_labels_dictionary.py index d9927b95e0..a03b06fdc9 100644 --- a/doc/gui/examples/controls/slider_labels_dictionary.py +++ b/doc/gui/examples/controls/slider_labels_dictionary.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/slider_lov.py b/doc/gui/examples/controls/slider_lov.py index ce60faccc5..2c170eb3e1 100644 --- a/doc/gui/examples/controls/slider_lov.py +++ b/doc/gui/examples/controls/slider_lov.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/slider_multiple.py b/doc/gui/examples/controls/slider_multiple.py index ed8d7c8c77..572ad60aa9 100644 --- a/doc/gui/examples/controls/slider_multiple.py +++ b/doc/gui/examples/controls/slider_multiple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/slider_orientation.py b/doc/gui/examples/controls/slider_orientation.py index 8f070023f2..a6abd2a540 100644 --- a/doc/gui/examples/controls/slider_orientation.py +++ b/doc/gui/examples/controls/slider_orientation.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/slider_range.py b/doc/gui/examples/controls/slider_range.py index 3b2389dc65..7537c15943 100644 --- a/doc/gui/examples/controls/slider_range.py +++ b/doc/gui/examples/controls/slider_range.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/slider_simple.py b/doc/gui/examples/controls/slider_simple.py index c0d5bc51e9..642f9116f0 100644 --- a/doc/gui/examples/controls/slider_simple.py +++ b/doc/gui/examples/controls/slider_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_custom_format.py b/doc/gui/examples/controls/table_custom_format.py index b0673c39cd..3544154694 100644 --- a/doc/gui/examples/controls/table_custom_format.py +++ b/doc/gui/examples/controls/table_custom_format.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_edit_action/builder.py b/doc/gui/examples/controls/table_edit_action/builder.py index ab9c6f6a0f..9c3a767af4 100644 --- a/doc/gui/examples/controls/table_edit_action/builder.py +++ b/doc/gui/examples/controls/table_edit_action/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_edit_action/markdown.py b/doc/gui/examples/controls/table_edit_action/markdown.py index 02379153fe..c5df2c1001 100644 --- a/doc/gui/examples/controls/table_edit_action/markdown.py +++ b/doc/gui/examples/controls/table_edit_action/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_enums.py b/doc/gui/examples/controls/table_enums.py index 08b623a95e..abf5aa7fe2 100644 --- a/doc/gui/examples/controls/table_enums.py +++ b/doc/gui/examples/controls/table_enums.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_formatting.py b/doc/gui/examples/controls/table_formatting.py index bcad5af34d..b43842da65 100644 --- a/doc/gui/examples/controls/table_formatting.py +++ b/doc/gui/examples/controls/table_formatting.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_guard_edits.py b/doc/gui/examples/controls/table_guard_edits.py index 67b7ce75d4..5064139dd0 100644 --- a/doc/gui/examples/controls/table_guard_edits.py +++ b/doc/gui/examples/controls/table_guard_edits.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_styling_cells/builder.py b/doc/gui/examples/controls/table_styling_cells/builder.py index f17499d4f1..dbe798ba41 100644 --- a/doc/gui/examples/controls/table_styling_cells/builder.py +++ b/doc/gui/examples/controls/table_styling_cells/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_styling_cells/markdown.py b/doc/gui/examples/controls/table_styling_cells/markdown.py index 704928b63d..0c600d5f76 100644 --- a/doc/gui/examples/controls/table_styling_cells/markdown.py +++ b/doc/gui/examples/controls/table_styling_cells/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_styling_rows/builder.py b/doc/gui/examples/controls/table_styling_rows/builder.py index 4de7c17cd1..2de932f843 100644 --- a/doc/gui/examples/controls/table_styling_rows/builder.py +++ b/doc/gui/examples/controls/table_styling_rows/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/table_styling_rows/markdown.py b/doc/gui/examples/controls/table_styling_rows/markdown.py index c7116bd8f0..0ec68d6dc5 100644 --- a/doc/gui/examples/controls/table_styling_rows/markdown.py +++ b/doc/gui/examples/controls/table_styling_rows/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/text_format.py b/doc/gui/examples/controls/text_format.py index 0af112b86e..7c51444483 100644 --- a/doc/gui/examples/controls/text_format.py +++ b/doc/gui/examples/controls/text_format.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/text_latex.py b/doc/gui/examples/controls/text_latex.py index c3754cebd2..12aaa88fec 100644 --- a/doc/gui/examples/controls/text_latex.py +++ b/doc/gui/examples/controls/text_latex.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/text_md.py b/doc/gui/examples/controls/text_md.py index 4826032edd..5740241127 100644 --- a/doc/gui/examples/controls/text_md.py +++ b/doc/gui/examples/controls/text_md.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/text_pre.py b/doc/gui/examples/controls/text_pre.py index 8195581e07..453f340df1 100644 --- a/doc/gui/examples/controls/text_pre.py +++ b/doc/gui/examples/controls/text_pre.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/text_simple.py b/doc/gui/examples/controls/text_simple.py index 9141421609..4af3cb987e 100644 --- a/doc/gui/examples/controls/text_simple.py +++ b/doc/gui/examples/controls/text_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/time_analog_picker.py b/doc/gui/examples/controls/time_analog_picker.py index 657f12e3d5..c451dbfe8d 100644 --- a/doc/gui/examples/controls/time_analog_picker.py +++ b/doc/gui/examples/controls/time_analog_picker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/time_format.py b/doc/gui/examples/controls/time_format.py index 5c5c84692f..d85ba67ef6 100644 --- a/doc/gui/examples/controls/time_format.py +++ b/doc/gui/examples/controls/time_format.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/time_simple.py b/doc/gui/examples/controls/time_simple.py index 0882b1b6a7..09dbc0c2e4 100644 --- a/doc/gui/examples/controls/time_simple.py +++ b/doc/gui/examples/controls/time_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/time_styling.py b/doc/gui/examples/controls/time_styling.py index 0de805ed44..ac6347bab9 100644 --- a/doc/gui/examples/controls/time_styling.py +++ b/doc/gui/examples/controls/time_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_list_tuples/builder.py b/doc/gui/examples/controls/toggle_list_tuples/builder.py index 86416ce01f..2168f1c2d3 100644 --- a/doc/gui/examples/controls/toggle_list_tuples/builder.py +++ b/doc/gui/examples/controls/toggle_list_tuples/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_list_tuples/markdown.py b/doc/gui/examples/controls/toggle_list_tuples/markdown.py index e803d37a63..46e575411b 100644 --- a/doc/gui/examples/controls/toggle_list_tuples/markdown.py +++ b/doc/gui/examples/controls/toggle_list_tuples/markdown.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_objects.py b/doc/gui/examples/controls/toggle_objects.py index b02e97278d..9f11994b11 100644 --- a/doc/gui/examples/controls/toggle_objects.py +++ b/doc/gui/examples/controls/toggle_objects.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_simple.py b/doc/gui/examples/controls/toggle_simple.py index 2738507530..bf3a4bb3c8 100644 --- a/doc/gui/examples/controls/toggle_simple.py +++ b/doc/gui/examples/controls/toggle_simple.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_styling.py b/doc/gui/examples/controls/toggle_styling.py index 17a9ca0b5c..7c43cc928c 100644 --- a/doc/gui/examples/controls/toggle_styling.py +++ b/doc/gui/examples/controls/toggle_styling.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_switch.py b/doc/gui/examples/controls/toggle_switch.py index 45045f0f2f..809504d911 100644 --- a/doc/gui/examples/controls/toggle_switch.py +++ b/doc/gui/examples/controls/toggle_switch.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_theme.py b/doc/gui/examples/controls/toggle_theme.py index 8ec057abb4..181b7772e1 100644 --- a/doc/gui/examples/controls/toggle_theme.py +++ b/doc/gui/examples/controls/toggle_theme.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/controls/toggle_unselect.py b/doc/gui/examples/controls/toggle_unselect.py index 38800aea55..28786c0ee7 100644 --- a/doc/gui/examples/controls/toggle_unselect.py +++ b/doc/gui/examples/controls/toggle_unselect.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/examples/styling_dynamic.py b/doc/gui/examples/styling_dynamic.py index db2626ff37..69f4fe845f 100644 --- a/doc/gui/examples/styling_dynamic.py +++ b/doc/gui/examples/styling_dynamic.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/dashboard.py b/doc/gui/extension/dashboard.py index 6b9c30fad1..923ffbb891 100644 --- a/doc/gui/extension/dashboard.py +++ b/doc/gui/extension/dashboard.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/example_library/__init__.py b/doc/gui/extension/example_library/__init__.py index ff8233c78e..c77076bb0b 100644 --- a/doc/gui/extension/example_library/__init__.py +++ b/doc/gui/extension/example_library/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/example_library/example_library.py b/doc/gui/extension/example_library/example_library.py index 8063175061..45abc0dce0 100644 --- a/doc/gui/extension/example_library/example_library.py +++ b/doc/gui/extension/example_library/example_library.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/example_library/front-end/src/Dashboard.tsx b/doc/gui/extension/example_library/front-end/src/Dashboard.tsx index 4128325e81..cd7e67e3e6 100644 --- a/doc/gui/extension/example_library/front-end/src/Dashboard.tsx +++ b/doc/gui/extension/example_library/front-end/src/Dashboard.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/example_library/front-end/src/GameTable.tsx b/doc/gui/extension/example_library/front-end/src/GameTable.tsx index a1b6a6146b..085309b1e6 100644 --- a/doc/gui/extension/example_library/front-end/src/GameTable.tsx +++ b/doc/gui/extension/example_library/front-end/src/GameTable.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/example_library/front-end/src/LogoWithText.tsx b/doc/gui/extension/example_library/front-end/src/LogoWithText.tsx index ef4f3e84d8..69fa33f756 100644 --- a/doc/gui/extension/example_library/front-end/src/LogoWithText.tsx +++ b/doc/gui/extension/example_library/front-end/src/LogoWithText.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/example_library/front-end/src/VisualLabelList.tsx b/doc/gui/extension/example_library/front-end/src/VisualLabelList.tsx index b2651641a5..d4fb924e56 100644 --- a/doc/gui/extension/example_library/front-end/src/VisualLabelList.tsx +++ b/doc/gui/extension/example_library/front-end/src/VisualLabelList.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/example_library/front-end/webpack.config.js b/doc/gui/extension/example_library/front-end/webpack.config.js index aec8fd2551..6f25513d46 100644 --- a/doc/gui/extension/example_library/front-end/webpack.config.js +++ b/doc/gui/extension/example_library/front-end/webpack.config.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/logo_with_text.py b/doc/gui/extension/logo_with_text.py index ad31ab934d..c9a4fbfb60 100644 --- a/doc/gui/extension/logo_with_text.py +++ b/doc/gui/extension/logo_with_text.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/main.py b/doc/gui/extension/main.py index e4306de51f..f33cf23b05 100644 --- a/doc/gui/extension/main.py +++ b/doc/gui/extension/main.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/table_chess_game.py b/doc/gui/extension/table_chess_game.py index 332019bed2..600c33eb4a 100644 --- a/doc/gui/extension/table_chess_game.py +++ b/doc/gui/extension/table_chess_game.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/doc/gui/extension/visual_label_list.py b/doc/gui/extension/visual_label_list.py index 73cc5efa56..b87aa0c781 100644 --- a/doc/gui/extension/visual_label_list.py +++ b/doc/gui/extension/visual_label_list.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/.eslintrc.js b/frontend/taipy-gui/.eslintrc.js index 30b459d814..d2044bfbcd 100644 --- a/frontend/taipy-gui/.eslintrc.js +++ b/frontend/taipy-gui/.eslintrc.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/dom/package-lock.json b/frontend/taipy-gui/dom/package-lock.json index 6cf6260f7f..a326140fd9 100644 --- a/frontend/taipy-gui/dom/package-lock.json +++ b/frontend/taipy-gui/dom/package-lock.json @@ -1,12 +1,12 @@ { "name": "taipy-gui-dom", - "version": "4.0.0", + "version": "4.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "taipy-gui-dom", - "version": "4.0.0", + "version": "4.1.0", "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", @@ -14,8 +14,7 @@ } }, "../packaging": { - "name": "taipy-gui", - "version": "4.0.0" + "version": "4.1.0" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -34,9 +33,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -45,21 +44,21 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } diff --git a/frontend/taipy-gui/dom/src/index.tsx b/frontend/taipy-gui/dom/src/index.tsx index bd7fd03a86..7c6691d16c 100644 --- a/frontend/taipy-gui/dom/src/index.tsx +++ b/frontend/taipy-gui/dom/src/index.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/jest.config.js b/frontend/taipy-gui/jest.config.js index c5238e1fb1..e8058fd02d 100644 --- a/frontend/taipy-gui/jest.config.js +++ b/frontend/taipy-gui/jest.config.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/package-lock.json b/frontend/taipy-gui/package-lock.json index 54e7c0c8a3..c72274348d 100644 --- a/frontend/taipy-gui/package-lock.json +++ b/frontend/taipy-gui/package-lock.json @@ -17,20 +17,20 @@ "apache-arrow": "^16.1.0", "axios": "^1.2.0", "better-react-mathjax": "^2.0.3", - "date-fns": "^3.6.0", + "date-fns": "^4.1.0", "date-fns-tz": "^3.1.3", "lodash": "^4.17.21", "nanoid": "^5.0.7", "notistack": "^3.0.0", "plotly.js": "^2.33.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-error-boundary": "^4.0.3", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-error-boundary": "^5.0.0", "react-helmet-async": "^2.0.1", "react-jsx-parser": "^2.1.0", "react-markdown": "^9.0.1", "react-plotly.js": "^2.5.1", - "react-router-dom": "^6.0.1", + "react-router": "^7.1.1", "react-virtualized-auto-sizer": "^1.0.6", "react-window": "^1.8.6", "react-window-infinite-loader": "^1.0.7", @@ -44,10 +44,10 @@ "@types/css-mediaquery": "^0.1.1", "@types/jest": "^29.0.1", "@types/lodash": "^4.14.177", - "@types/react": "^18.0.18", - "@types/react-dom": "^18.0.5", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "@types/react-plotly.js": "^2.5.0", - "@types/react-router-dom": "^5.3.2", + "@types/react-router": "^5.1.20", "@types/react-virtualized-auto-sizer": "^1.0.1", "@types/react-window": "^1.8.5", "@types/react-window-infinite-loader": "^1.0.5", @@ -62,10 +62,10 @@ "css-mediaquery": "^0.1.2", "dotenv-webpack": "^8.0.0", "dts-bundle-generator": "^7.2.0", - "eslint": "^8.57.0", + "eslint": "^9.18.0", "eslint-plugin-react": "^7.26.1", - "eslint-plugin-react-hooks": "^4.2.0", - "eslint-plugin-tsdoc": "^0.3.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-tsdoc": "^0.4.0", "eslint-webpack-plugin": "^4.0.0", "generate-json-webpack-plugin": "^2.0.0", "html-webpack-plugin": "^5.5.0", @@ -83,7 +83,7 @@ "typedoc-plugin-markdown": "^4.3.2", "typescript": "^5.7.2", "webpack": "^5.61.0", - "webpack-cli": "^5.0.0" + "webpack-cli": "^6.0.1" } }, "node_modules/@adobe/css-tools": { @@ -119,9 +119,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -173,12 +173,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -188,12 +188,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -242,9 +242,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -289,11 +289,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -549,15 +549,15 @@ } }, "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -566,9 +566,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -600,12 +600,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", "dev": true, "engines": { - "node": ">=10.0.0" + "node": ">=14.17.0" } }, "node_modules/@emotion/babel-plugin": { @@ -768,16 +768,64 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -785,7 +833,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -802,15 +850,12 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -828,73 +873,81 @@ "node": "*" } }, - "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/@eslint/js": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@gerrit0/mini-shiki": { - "version": "1.24.4", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-1.24.4.tgz", - "integrity": "sha512-YEHW1QeAg6UmxEmswiQbOVEg1CW22b1XUD/lNTliOsu0LD0wqoyleFMnmbTp697QE0pcadQiR5cVtbbAPncvpw==", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "dependencies": { - "@shikijs/engine-oniguruma": "^1.24.2", - "@shikijs/types": "^1.24.2", - "@shikijs/vscode-textmate": "^9.3.1" + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@gerrit0/mini-shiki": { + "version": "1.26.1", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-1.26.1.tgz", + "integrity": "sha512-gHFUvv9f1fU2Piou/5Y7Sx5moYxcERbC7CXc6rkDLQTUBg5Dgg9L4u29/nHqfoQ3Y9R0h0BcOhd14uOEZIBP7Q==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" + "@shikijs/engine-oniguruma": "^1.26.1", + "@shikijs/types": "^1.26.1", + "@shikijs/vscode-textmate": "^10.0.1" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": "*" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -910,12 +963,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -1493,18 +1552,18 @@ "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==" }, "node_modules/@microsoft/tsdoc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", - "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", + "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", "dev": true }, "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", - "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", + "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", "dev": true, "dependencies": { - "@microsoft/tsdoc": "0.15.0", + "@microsoft/tsdoc": "0.15.1", "ajv": "~8.12.0", "jju": "~1.4.0", "resolve": "~1.22.2" @@ -1533,18 +1592,18 @@ "dev": true }, "node_modules/@mui/core-downloads-tracker": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.2.1.tgz", - "integrity": "sha512-U/8vS1+1XiHBnnRRESSG1gvr6JDHdPjrpnW6KEebkAQWBn6wrpbSF/XSZ8/vJIRXH5NyDmMHi4Ro5Q70//JKhA==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.3.1.tgz", + "integrity": "sha512-2OmnEyoHpj5//dJJpMuxOeLItCCHdf99pjMFfUFdBteCunAK9jW+PwEo4mtdGcLs7P+IgZ+85ypd52eY4AigoQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.2.1.tgz", - "integrity": "sha512-bP0XtW+t5KFL+wjfQp2UctN/8CuWqF1qaxbYuCAsJhL+AzproM8gGOh2n8sNBcrjbVckzDNqaXqxdpn+OmoWug==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.3.1.tgz", + "integrity": "sha512-nJmWj1PBlwS3t1PnoqcixIsftE+7xrW3Su7f0yrjPw4tVjYrgkhU0hrRp+OlURfZ3ptdSkoBkalee9Bhf1Erfw==", "dependencies": { "@babel/runtime": "^7.26.0" }, @@ -1556,7 +1615,7 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^6.2.1", + "@mui/material": "^6.3.1", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -1567,15 +1626,15 @@ } }, "node_modules/@mui/material": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.2.1.tgz", - "integrity": "sha512-7VlKGsRKsy1bOSOPaSNgpkzaL+0C7iWAVKd2KYyAvhR9fTLJtiAMpq+KuzgEh1so2mtvQERN0tZVIceWMiIesw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.3.1.tgz", + "integrity": "sha512-ynG9ayhxgCsHJ/dtDcT1v78/r2GwQyP3E0hPz3GdPRl0uFJz/uUTtI5KFYwadXmbC+Uv3bfB8laZ6+Cpzh03gA==", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/core-downloads-tracker": "^6.2.1", - "@mui/system": "^6.2.1", - "@mui/types": "^7.2.20", - "@mui/utils": "^6.2.1", + "@mui/core-downloads-tracker": "^6.3.1", + "@mui/system": "^6.3.1", + "@mui/types": "^7.2.21", + "@mui/utils": "^6.3.1", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.12", "clsx": "^2.1.1", @@ -1594,7 +1653,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^6.2.1", + "@mui/material-pigment-css": "^6.3.1", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -1615,12 +1674,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.2.1.tgz", - "integrity": "sha512-u1y0gpcfrRRxCcIdVeU5eIvkinA82Q8ft178WUNYuoFQrsOrXdlBdZlRVi+eYuUFp1iXI55Cud7sMZZtETix5Q==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.3.1.tgz", + "integrity": "sha512-g0u7hIUkmXmmrmmf5gdDYv9zdAig0KoxhIQn1JN8IVqApzf/AyRhH3uDGx5mSvs8+a1zb4+0W6LC260SyTTtdQ==", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/utils": "^6.2.1", + "@mui/utils": "^6.3.1", "prop-types": "^15.8.1" }, "engines": { @@ -1641,9 +1700,9 @@ } }, "node_modules/@mui/styled-engine": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.2.1.tgz", - "integrity": "sha512-6R3OgYw6zgCZWFYYMfxDqpGfJA78mUTOIlUDmmJlr60ogVNCrM87X0pqx5TbZ2OwUyxlJxN9qFgRr+J9H6cOBg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.3.1.tgz", + "integrity": "sha512-/7CC0d2fIeiUxN5kCCwYu4AWUDd9cCTxWCyo0v/Rnv6s8uk6hWgJC3VLZBoDENBHf/KjqDZuYJ2CR+7hD6QYww==", "dependencies": { "@babel/runtime": "^7.26.0", "@emotion/cache": "^11.13.5", @@ -1674,15 +1733,15 @@ } }, "node_modules/@mui/system": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.2.1.tgz", - "integrity": "sha512-0lc8CbBP4WAAF+SmGMFJI9bpIyQvW3zvwIDzLsb26FIB/4Z0pO7qGe8mkAl0RM63Vb37899qxnThhHKgAAdy6w==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.3.1.tgz", + "integrity": "sha512-AwqQ3EAIT2np85ki+N15fF0lFXX1iFPqenCzVOSl3QXKy2eifZeGd9dGtt7pGMoFw5dzW4dRGGzRpLAq9rkl7A==", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/private-theming": "^6.2.1", - "@mui/styled-engine": "^6.2.1", - "@mui/types": "^7.2.20", - "@mui/utils": "^6.2.1", + "@mui/private-theming": "^6.3.1", + "@mui/styled-engine": "^6.3.1", + "@mui/types": "^7.2.21", + "@mui/utils": "^6.3.1", "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -1713,9 +1772,9 @@ } }, "node_modules/@mui/types": { - "version": "7.2.20", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.20.tgz", - "integrity": "sha512-straFHD7L8v05l/N5vcWk+y7eL9JF0C2mtph/y4BPm3gn2Eh61dDwDB65pa8DLss3WJfDXYC7Kx5yjP0EmXpgw==", + "version": "7.2.21", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz", + "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -1726,12 +1785,12 @@ } }, "node_modules/@mui/utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.2.1.tgz", - "integrity": "sha512-ubLqGIMhKUH2TF/Um+wRzYXgAooQw35th+DPemGrTpgrZHpOgcnUDIDbwsk1e8iQiuJ3mV/ErTtcQrecmlj5cg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.3.1.tgz", + "integrity": "sha512-sjGjXAngoio6lniQZKJ5zGfjm+LD2wvLwco7FbKe1fu8A7VIFmz2SwkLb+MDPLNX1lE7IscvNNyh1pobtZg2tw==", "dependencies": { "@babel/runtime": "^7.26.0", - "@mui/types": "^7.2.20", + "@mui/types": "^7.2.21", "@types/prop-types": "^15.7.14", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -1755,13 +1814,13 @@ } }, "node_modules/@mui/x-date-pickers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.23.2.tgz", - "integrity": "sha512-Kt9VsEnShaBKiaastTYku66UIWptgc9UMA16d0G/0TkfIsvZrAD3iacQR6HHAXWspaFshdfsRmW2JAoFhzKZsg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.23.6.tgz", + "integrity": "sha512-jt6rEAYLju3NZe3y2S+I5KcTiSHV79FW0jeNUEUTceg1qsPzseHbND66k3zVF0hO3N2oZtLtPywof6vN5Doe+Q==", "dependencies": { "@babel/runtime": "^7.25.7", "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-internals": "7.23.0", + "@mui/x-internals": "7.23.6", "@types/react-transition-group": "^4.4.11", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -1780,7 +1839,7 @@ "@mui/material": "^5.15.14 || ^6.0.0", "@mui/system": "^5.15.14 || ^6.0.0", "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", - "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0", + "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0", "dayjs": "^1.10.7", "luxon": "^3.0.2", "moment": "^2.29.4", @@ -1820,9 +1879,9 @@ } }, "node_modules/@mui/x-internals": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.23.0.tgz", - "integrity": "sha512-bPclKpqUiJYIHqmTxSzMVZi6MH51cQsn5U+8jskaTlo3J4QiMeCYJn/gn7YbeR9GOZFp8hetyHjoQoVHKRXCig==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.23.6.tgz", + "integrity": "sha512-hT1Pa4PNCnxwiauPbYMC3p4DiEF1x05Iu4C1MtC/jMJ1LtthymLmTuQ6ZQ53/R9FeqK6sYd6A6noR+vNMjp5DA==", "dependencies": { "@babel/runtime": "^7.25.7", "@mui/utils": "^5.16.6 || ^6.0.0" @@ -1839,13 +1898,13 @@ } }, "node_modules/@mui/x-tree-view": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@mui/x-tree-view/-/x-tree-view-7.23.2.tgz", - "integrity": "sha512-/R/9/GSF311fVLOUCg7r+a/+AScYZezL0SJZPfsTOquL1RDPAFRZei7BZEivUzOSEELJc0cxLGapJyM6QCA7Zg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@mui/x-tree-view/-/x-tree-view-7.23.6.tgz", + "integrity": "sha512-4gXXQtgxNW4aHGtksLJUBkRdK7m7CdV/j2OwemrjdmU0bEOz82ta7X4vQrIsaXXfxatuomaOy+MXOzEv6xbNqA==", "dependencies": { "@babel/runtime": "^7.25.7", "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-internals": "7.23.0", + "@mui/x-internals": "7.23.6", "@types/react-transition-group": "^4.4.11", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -1994,38 +2053,30 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@remix-run/router": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", - "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@shikijs/engine-oniguruma": { - "version": "1.24.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.24.2.tgz", - "integrity": "sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.27.0.tgz", + "integrity": "sha512-x1XMJvQuToX2KhESav2cnaTFDEwpJ1bcczaXy8wlRWhPVVAGR/MxlWnJbhHFe+ETerQgdpLZN8l+EgO0rVfEFQ==", "dev": true, "dependencies": { - "@shikijs/types": "1.24.2", - "@shikijs/vscode-textmate": "^9.3.0" + "@shikijs/types": "1.27.0", + "@shikijs/vscode-textmate": "^10.0.1" } }, "node_modules/@shikijs/types": { - "version": "1.24.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.24.2.tgz", - "integrity": "sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.27.0.tgz", + "integrity": "sha512-oOJdIeOnGo+hbM7MH+Ejpksse2ASex4DVHdvBoKyY3+26GEzG9PwM85BeXNGxUZuVxtVKo43sZl0qtJs/K2Zow==", "dev": true, "dependencies": { - "@shikijs/vscode-textmate": "^9.3.0", + "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "node_modules/@shikijs/vscode-textmate": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.1.tgz", - "integrity": "sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz", + "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==", "dev": true }, "node_modules/@sinclair/typebox": { @@ -2186,65 +2237,65 @@ } }, "node_modules/@turf/area": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.1.0.tgz", - "integrity": "sha512-w91FEe02/mQfMPRX2pXua48scFuKJ2dSVMF2XmJ6+BJfFiCPxp95I3+Org8+ZsYv93CDNKbf0oLNEPnuQdgs2g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.2.0.tgz", + "integrity": "sha512-zuTTdQ4eoTI9nSSjerIy4QwgvxqwJVciQJ8tOPuMHbXJ9N/dNjI7bU8tasjhxas/Cx3NE9NxVHtNpYHL0FSzoA==", "dependencies": { - "@turf/helpers": "^7.1.0", - "@turf/meta": "^7.1.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", "@types/geojson": "^7946.0.10", - "tslib": "^2.6.2" + "tslib": "^2.8.1" }, "funding": { "url": "https://opencollective.com/turf" } }, "node_modules/@turf/bbox": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.1.0.tgz", - "integrity": "sha512-PdWPz9tW86PD78vSZj2fiRaB8JhUHy6piSa/QXb83lucxPK+HTAdzlDQMTKj5okRCU8Ox/25IR2ep9T8NdopRA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.2.0.tgz", + "integrity": "sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==", "dependencies": { - "@turf/helpers": "^7.1.0", - "@turf/meta": "^7.1.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", "@types/geojson": "^7946.0.10", - "tslib": "^2.6.2" + "tslib": "^2.8.1" }, "funding": { "url": "https://opencollective.com/turf" } }, "node_modules/@turf/centroid": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.1.0.tgz", - "integrity": "sha512-1Y1b2l+ZB1CZ+ITjUCsGqC4/tSjwm/R4OUfDztVqyyCq/VvezkLmTNqvXTGXgfP0GXkpv68iCfxF5M7QdM5pJQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.2.0.tgz", + "integrity": "sha512-yJqDSw25T7P48au5KjvYqbDVZ7qVnipziVfZ9aSo7P2/jTE7d4BP21w0/XLi3T/9bry/t9PR1GDDDQljN4KfDw==", "dependencies": { - "@turf/helpers": "^7.1.0", - "@turf/meta": "^7.1.0", + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", "@types/geojson": "^7946.0.10", - "tslib": "^2.6.2" + "tslib": "^2.8.1" }, "funding": { "url": "https://opencollective.com/turf" } }, "node_modules/@turf/helpers": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.1.0.tgz", - "integrity": "sha512-dTeILEUVeNbaEeoZUOhxH5auv7WWlOShbx7QSd4s0T4Z0/iz90z9yaVCtZOLbU89umKotwKaJQltBNO9CzVgaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.2.0.tgz", + "integrity": "sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw==", "dependencies": { "@types/geojson": "^7946.0.10", - "tslib": "^2.6.2" + "tslib": "^2.8.1" }, "funding": { "url": "https://opencollective.com/turf" } }, "node_modules/@turf/meta": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.1.0.tgz", - "integrity": "sha512-ZgGpWWiKz797Fe8lfRj7HKCkGR+nSJ/5aKXMyofCvLSc2PuYJs/qyyifDPWjASQQCzseJ7AlF2Pc/XQ/3XkkuA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.2.0.tgz", + "integrity": "sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==", "dependencies": { - "@turf/helpers": "^7.1.0", + "@turf/helpers": "^7.2.0", "@types/geojson": "^7946.0.10" }, "funding": { @@ -2309,6 +2360,11 @@ "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz", "integrity": "sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==" }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/css-mediaquery": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@types/css-mediaquery/-/css-mediaquery-0.1.4.tgz", @@ -2479,9 +2535,9 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/lodash": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", - "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==", "dev": true }, "node_modules/@types/mapbox__point-geometry": { @@ -2513,9 +2569,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.17.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", - "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "version": "20.17.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.12.tgz", + "integrity": "sha512-vo/wmBgMIiEA23A/knMfn/cf37VnuF52nZh5ZoW0GWt4e4sxNquibrMRJ7UQsA06+MBx9r/H1jsI9grYjQCQlw==", "dependencies": { "undici-types": "~6.19.2" } @@ -2531,9 +2587,9 @@ "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" }, "node_modules/@types/plotly.js": { - "version": "2.35.1", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.35.1.tgz", - "integrity": "sha512-9fTHC8qeJNEDpGJK1qIJAEcRxrI9uPrap32I8cbCLPKsqwFmafOYHecaBzvIJXEPhLIUiQocN9Bc/tIV9CjsxQ==", + "version": "2.35.2", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.35.2.tgz", + "integrity": "sha512-tn0Kp7F6VWiu96jknCvR/PcdIGIATeIK+Z5WXH3bEvG6CRwUNfhy34yBhfPYmTea7mMQxXvTZKGMm6/Y4wxESg==", "dev": true }, "node_modules/@types/prop-types": { @@ -2542,9 +2598,9 @@ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" }, "node_modules/@types/react": { - "version": "18.3.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.17.tgz", - "integrity": "sha512-opAQ5no6LqJNo9TqnxBKsgnkIYHozW9KSTlFVoSUJYh1Fl/sswkEoqIugRSm7tbh6pABtYjGAjW+GOS23j8qbw==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -2579,17 +2635,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dev": true, - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, "node_modules/@types/react-transition-group": { "version": "4.4.12", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", @@ -2673,20 +2718,20 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.1.tgz", - "integrity": "sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", + "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.18.1", - "@typescript-eslint/type-utils": "8.18.1", - "@typescript-eslint/utils": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/type-utils": "8.20.0", + "@typescript-eslint/utils": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2702,15 +2747,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.1.tgz", - "integrity": "sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.20.0.tgz", + "integrity": "sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.18.1", - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/typescript-estree": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4" }, "engines": { @@ -2726,13 +2771,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz", - "integrity": "sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", + "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1" + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2743,15 +2788,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.1.tgz", - "integrity": "sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", + "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.18.1", - "@typescript-eslint/utils": "8.18.1", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/utils": "8.20.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2766,9 +2811,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.1.tgz", - "integrity": "sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", + "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2779,19 +2824,19 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz", - "integrity": "sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", + "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/visitor-keys": "8.18.1", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2805,15 +2850,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.1.tgz", - "integrity": "sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", + "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.18.1", - "@typescript-eslint/types": "8.18.1", - "@typescript-eslint/typescript-estree": "8.18.1" + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2828,12 +2873,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz", - "integrity": "sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", + "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/types": "8.20.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2993,42 +3038,42 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", "dev": true, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", "dev": true, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", "dev": true, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -3292,13 +3337,13 @@ "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -3747,9 +3792,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "funding": [ { "type": "opencollective", @@ -3878,9 +3923,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001689", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz", - "integrity": "sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==", + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", "funding": [ { "type": "opencollective", @@ -4360,6 +4405,14 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "engines": { + "node": ">=18" + } + }, "node_modules/copy-webpack-plugin": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", @@ -4820,14 +4873,14 @@ } }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4837,29 +4890,29 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -4871,9 +4924,9 @@ } }, "node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -5055,18 +5108,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", @@ -5296,9 +5337,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.74", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.74.tgz", - "integrity": "sha512-ck3//9RC+6oss/1Bh9tiAVFy5vfSKbRHAFh7Z3/eTRkEqJeWgymloShB17Vg3Z4nmDNp35vAd1BZ6CMW4Wt6Iw==" + "version": "1.5.80", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.80.tgz", + "integrity": "sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==" }, "node_modules/element-size": { "version": "1.1.1", @@ -5396,9 +5437,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5452,27 +5493,28 @@ } }, "node_modules/es-abstract": { - "version": "1.23.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.6.tgz", - "integrity": "sha512-Ifco6n3yj2tMZDWNLyloZrytt9lqqlwvS83P3HtaETR0NUOYnIULGGHpktqYGObGy+8wc1okO25p8TjemhImvA==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", + "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", + "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.7", - "get-intrinsic": "^1.2.6", - "get-symbol-description": "^1.0.2", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", @@ -5480,31 +5522,33 @@ "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.4", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.3", + "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", - "is-typed-array": "^1.1.13", + "is-typed-array": "^1.1.15", "is-weakref": "^1.1.0", - "math-intrinsics": "^1.0.0", + "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.3", "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.3", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.16" + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -5532,40 +5576,41 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", - "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", + "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.3", - "safe-array-concat": "^1.1.2" + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==" }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.1.tgz", + "integrity": "sha512-BPOBuyUF9QIVhuNLhbToCLHP6+0MHwZ7xLBkPPCZqK4JmpJgGnv10035STzzQwFpqdzNFMB3irvDI63IagvDwA==", "dev": true, "dependencies": { "es-errors": "^1.3.0" @@ -5575,14 +5620,15 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -5711,84 +5757,87 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-plugin-react": { - "version": "7.37.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", - "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", + "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.1.0", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", + "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "engines": { @@ -5799,15 +5848,15 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, "engines": { "node": ">=10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { @@ -5871,26 +5920,26 @@ } }, "node_modules/eslint-plugin-tsdoc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.3.0.tgz", - "integrity": "sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.4.0.tgz", + "integrity": "sha512-MT/8b4aKLdDClnS8mP3R/JNjg29i0Oyqd/0ym6NnQf+gfKbJJ4ZcSh2Bs1H0YiUMTBwww5JwXGTWot/RwyJ7aQ==", "dev": true, "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "@microsoft/tsdoc-config": "0.17.0" + "@microsoft/tsdoc": "0.15.1", + "@microsoft/tsdoc-config": "0.17.1" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5942,19 +5991,16 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/minimatch": { @@ -5969,18 +6015,6 @@ "node": "*" } }, - "node_modules/eslint/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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", @@ -6004,17 +6038,29 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -6193,16 +6239,16 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -6240,9 +6286,19 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -6254,9 +6310,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -6272,15 +6328,15 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/filelist": { @@ -6358,23 +6414,22 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatbuffers": { - "version": "24.3.25", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-24.3.25.tgz", - "integrity": "sha512-3HDgPbgiwWMI9zVB7VYBHaMrbOO7Gm0v+yD2FV/sCKj+9NDeVL7BOBYUuhWAQGKWOzBo8S9WdMvV0eixO233XQ==" + "version": "24.12.23", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-24.12.23.tgz", + "integrity": "sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==" }, "node_modules/flatted": { "version": "3.3.2", @@ -6498,12 +6553,13 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.7.tgz", - "integrity": "sha512-2g4x+HqTJKM9zcJqBSpjoRmdcPFtJM60J3xJisTQSXBWka5XqyBN/2tNUgma1mztTXyDuUsEtYe5qcs7xYzYQA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "dependencies": { "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", @@ -6572,21 +6628,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "dependencies": { "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", + "get-proto": "^1.0.0", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6604,6 +6660,19 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -6616,14 +6685,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -7037,10 +7106,13 @@ "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7565,12 +7637,15 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7628,9 +7703,9 @@ } }, "node_modules/is-core-module": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.0.tgz", - "integrity": "sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { "hasown": "^2.0.2" }, @@ -7748,12 +7823,15 @@ } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7808,18 +7886,6 @@ "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7853,15 +7919,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -7919,12 +7976,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7989,12 +8046,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -8142,16 +8199,16 @@ } }, "node_modules/iterator.prototype": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz", - "integrity": "sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", "has-symbols": "^1.1.0", - "reflect.getprototypeof": "^1.0.8", "set-function-name": "^2.0.2" }, "engines": { @@ -9299,12 +9356,12 @@ } }, "node_modules/lint-staged": { - "version": "15.2.11", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.11.tgz", - "integrity": "sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.3.0.tgz", + "integrity": "sha512-vHFahytLoF2enJklgtOtCtIjZrKD/LoxlaUusd5nh7dWv/dkKQJY74ndFSzxCdv7g0ueGg1ORgTSt4Y9LPZn9A==", "dev": true, "dependencies": { - "chalk": "~5.3.0", + "chalk": "~5.4.1", "commander": "~12.1.0", "debug": "~4.4.0", "execa": "~8.0.1", @@ -9326,9 +9383,9 @@ } }, "node_modules/lint-staged/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -9841,9 +9898,9 @@ "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" }, "node_modules/maplibre-gl/node_modules/earcut": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.0.tgz", - "integrity": "sha512-41Fs7Q/PLq1SDbqjsgcY7GA42T0jvaCNGXgGtsNdvg+Yv8eIu06bxv4/PoREkZ9nMDNwnUSG9OFB9+yv8eKhDg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==" }, "node_modules/maplibre-gl/node_modules/geojson-vt": { "version": "4.0.2", @@ -9891,9 +9948,9 @@ } }, "node_modules/math-intrinsics": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz", - "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "engines": { "node": ">= 0.4" @@ -9959,9 +10016,9 @@ } }, "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -10875,14 +10932,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -10925,12 +10984,13 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -10981,6 +11041,23 @@ "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -11369,9 +11446,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.0.tgz", + "integrity": "sha512-27VKOqrYfPncKA2NrFOVhP5MGAfHKLYn/Q0mz9cNQyRAKYi3VNHwYU2qKKqPCqgBmeeJ0uAFB56NumXZ5ZReXg==", "funding": [ { "type": "opencollective", @@ -11387,7 +11464,7 @@ } ], "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -11721,9 +11798,9 @@ } }, "node_modules/react-error-boundary": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.1.2.tgz", - "integrity": "sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-5.0.0.tgz", + "integrity": "sha512-tnjAxG+IkpLephNcePNA7v6F/QpWLH8He65+DmedchDwg162JZqx4NmbXj0mlAYVVEd81OW7aFhmbsScYfiAFQ==", "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -11775,9 +11852,9 @@ } }, "node_modules/react-markdown": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", - "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.3.tgz", + "integrity": "sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==", "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.0.0", @@ -11812,33 +11889,26 @@ } }, "node_modules/react-router": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz", - "integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", + "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", "dependencies": { - "@remix-run/router": "1.21.0" + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.0.tgz", - "integrity": "sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==", - "dependencies": { - "@remix-run/router": "1.21.0", - "react-router": "6.28.0" - }, - "engines": { - "node": ">=14.0.0" + "react": ">=18", + "react-dom": ">=18" }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, "node_modules/react-transition-group": { @@ -11943,19 +12013,19 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz", - "integrity": "sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "dunder-proto": "^1.0.0", - "es-abstract": "^1.23.5", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.2.0", - "which-builtin-type": "^1.2.0" + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -11970,14 +12040,16 @@ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", "set-function-name": "^2.0.2" }, "engines": { @@ -12139,9 +12211,9 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.9", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.9.tgz", - "integrity": "sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -12150,6 +12222,9 @@ "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12264,22 +12339,6 @@ "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==" }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -12346,6 +12405,22 @@ } ] }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex-test": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", @@ -12461,6 +12536,11 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -12493,6 +12573,20 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -12941,23 +13035,24 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -13377,12 +13472,6 @@ "node": "*" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -13497,15 +13586,15 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-jest": { @@ -13566,9 +13655,9 @@ } }, "node_modules/ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", + "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -13599,6 +13688,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", @@ -13638,30 +13732,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -13671,18 +13765,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", - "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -13726,9 +13820,9 @@ } }, "node_modules/typedoc": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.27.5.tgz", - "integrity": "sha512-x+fhKJtTg4ozXwKayh/ek4wxZQI/+2hmZUdO2i2NGDBRUflDble70z+ewHod3d4gRpXSO6fnlnjbDTnJk7HlkQ==", + "version": "0.27.6", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.27.6.tgz", + "integrity": "sha512-oBFRoh2Px6jFx366db0lLlihcalq/JzyCVp7Vaq1yphL/tbgx2e+bkpkCgJPunaPvPwoTOXSwasfklWHm7GfAw==", "dev": true, "dependencies": { "@gerrit0/mini-shiki": "^1.24.0", @@ -13748,9 +13842,9 @@ } }, "node_modules/typedoc-plugin-markdown": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.3.2.tgz", - "integrity": "sha512-hCF3V0axzbzGDYFW21XigWIJQBOJ2ZRVWWs7X+e62ew/pXnvz7iKF/zVdkBm3w8Mk4bmXWp/FT0IF4Zn9uBRww==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.4.1.tgz", + "integrity": "sha512-fx23nSCvewI9IR8lzIYtzDphETcgTDuxKcmHKGD4lo36oexC+B1k4NaCOY58Snqb4OlE8OXDAGVcQXYYuLRCNw==", "dev": true, "engines": { "node": ">= 18" @@ -13760,9 +13854,9 @@ } }, "node_modules/typedoc/node_modules/yaml": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", - "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, "bin": { "yaml": "bin.mjs" @@ -13772,9 +13866,9 @@ } }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -13940,9 +14034,9 @@ "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "funding": [ { "type": "opencollective", @@ -13959,7 +14053,7 @@ ], "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -14159,42 +14253,39 @@ } }, "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", "colorette": "^2.0.14", - "commander": "^10.0.1", + "commander": "^12.1.0", "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", + "envinfo": "^7.14.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" + "webpack-merge": "^6.0.1" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "5.x.x" + "webpack": "^5.82.0" }, "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -14204,26 +14295,26 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/webpack-sources": { @@ -14397,15 +14488,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", - "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { diff --git a/frontend/taipy-gui/package.json b/frontend/taipy-gui/package.json index 9afc6ba29b..bad5cd49e3 100644 --- a/frontend/taipy-gui/package.json +++ b/frontend/taipy-gui/package.json @@ -12,20 +12,20 @@ "apache-arrow": "^16.1.0", "axios": "^1.2.0", "better-react-mathjax": "^2.0.3", - "date-fns": "^3.6.0", + "date-fns": "^4.1.0", "date-fns-tz": "^3.1.3", "lodash": "^4.17.21", "nanoid": "^5.0.7", "notistack": "^3.0.0", "plotly.js": "^2.33.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-error-boundary": "^4.0.3", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-error-boundary": "^5.0.0", "react-helmet-async": "^2.0.1", "react-jsx-parser": "^2.1.0", "react-markdown": "^9.0.1", "react-plotly.js": "^2.5.1", - "react-router-dom": "^6.0.1", + "react-router": "^7.1.1", "react-virtualized-auto-sizer": "^1.0.6", "react-window": "^1.8.6", "react-window-infinite-loader": "^1.0.7", @@ -81,10 +81,10 @@ "@types/css-mediaquery": "^0.1.1", "@types/jest": "^29.0.1", "@types/lodash": "^4.14.177", - "@types/react": "^18.0.18", - "@types/react-dom": "^18.0.5", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "@types/react-plotly.js": "^2.5.0", - "@types/react-router-dom": "^5.3.2", + "@types/react-router": "^5.1.20", "@types/react-virtualized-auto-sizer": "^1.0.1", "@types/react-window": "^1.8.5", "@types/react-window-infinite-loader": "^1.0.5", @@ -99,10 +99,10 @@ "css-mediaquery": "^0.1.2", "dotenv-webpack": "^8.0.0", "dts-bundle-generator": "^7.2.0", - "eslint": "^8.57.0", + "eslint": "^9.18.0", "eslint-plugin-react": "^7.26.1", - "eslint-plugin-react-hooks": "^4.2.0", - "eslint-plugin-tsdoc": "^0.3.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-tsdoc": "^0.4.0", "eslint-webpack-plugin": "^4.0.0", "generate-json-webpack-plugin": "^2.0.0", "html-webpack-plugin": "^5.5.0", @@ -120,6 +120,6 @@ "typedoc-plugin-markdown": "^4.3.2", "typescript": "^5.7.2", "webpack": "^5.61.0", - "webpack-cli": "^5.0.0" + "webpack-cli": "^6.0.1" } } diff --git a/frontend/taipy-gui/packaging/taipy-gui.d.ts b/frontend/taipy-gui/packaging/taipy-gui.d.ts index bf07e4786b..1de50785ee 100644 --- a/frontend/taipy-gui/packaging/taipy-gui.d.ts +++ b/frontend/taipy-gui/packaging/taipy-gui.d.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -388,6 +388,8 @@ export interface ColumnDesc { lov?: string[]; /** If true the user can enter any value besides the lov values. */ freeLov?: boolean; + /** If false, the column cannot be sorted */ + sortable?: boolean; } /** * A cell value type. diff --git a/frontend/taipy-gui/public/stylekit/base/base.css b/frontend/taipy-gui/public/stylekit/base/base.css index 6f1f09b226..23ae562669 100644 --- a/frontend/taipy-gui/public/stylekit/base/base.css +++ b/frontend/taipy-gui/public/stylekit/base/base.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/base/fontfaces.css b/frontend/taipy-gui/public/stylekit/base/fontfaces.css index 4ec90d1b00..d249cf3fbb 100644 --- a/frontend/taipy-gui/public/stylekit/base/fontfaces.css +++ b/frontend/taipy-gui/public/stylekit/base/fontfaces.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/base/typography.css b/frontend/taipy-gui/public/stylekit/base/typography.css index 138652f773..4883ecfcf0 100644 --- a/frontend/taipy-gui/public/stylekit/base/typography.css +++ b/frontend/taipy-gui/public/stylekit/base/typography.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/blocks/layout.css b/frontend/taipy-gui/public/stylekit/blocks/layout.css index c4a192ee75..e54a921215 100644 --- a/frontend/taipy-gui/public/stylekit/blocks/layout.css +++ b/frontend/taipy-gui/public/stylekit/blocks/layout.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/button.css b/frontend/taipy-gui/public/stylekit/controls/button.css index 9bf4d9a171..582daee678 100644 --- a/frontend/taipy-gui/public/stylekit/controls/button.css +++ b/frontend/taipy-gui/public/stylekit/controls/button.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -21,6 +21,10 @@ MODIFIER CLASSES **************************************************/ +.taipy-button { + margin: 4px 0; +} + /* fullwidth : */ .taipy-button.fullwidth { display: flex; diff --git a/frontend/taipy-gui/public/stylekit/controls/chart.css b/frontend/taipy-gui/public/stylekit/controls/chart.css index 5626c49cca..853f381257 100644 --- a/frontend/taipy-gui/public/stylekit/controls/chart.css +++ b/frontend/taipy-gui/public/stylekit/controls/chart.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/date.css b/frontend/taipy-gui/public/stylekit/controls/date.css index c5e95aeb3e..3f6fcd0cc4 100644 --- a/frontend/taipy-gui/public/stylekit/controls/date.css +++ b/frontend/taipy-gui/public/stylekit/controls/date.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/expandable.css b/frontend/taipy-gui/public/stylekit/controls/expandable.css index 07fdbe7464..070eeb3fd4 100644 --- a/frontend/taipy-gui/public/stylekit/controls/expandable.css +++ b/frontend/taipy-gui/public/stylekit/controls/expandable.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/file_download.css b/frontend/taipy-gui/public/stylekit/controls/file_download.css index 54085e4b4c..494894f2f9 100644 --- a/frontend/taipy-gui/public/stylekit/controls/file_download.css +++ b/frontend/taipy-gui/public/stylekit/controls/file_download.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -20,6 +20,9 @@ /************************************************* MODIFIER CLASSES **************************************************/ +.taipy-file-download>button { + margin: 4px 0; +} /* fullwidth : */ .taipy-file-download.fullwidth button { diff --git a/frontend/taipy-gui/public/stylekit/controls/file_selector.css b/frontend/taipy-gui/public/stylekit/controls/file_selector.css index 08515985d8..3e628edf24 100644 --- a/frontend/taipy-gui/public/stylekit/controls/file_selector.css +++ b/frontend/taipy-gui/public/stylekit/controls/file_selector.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -20,6 +20,9 @@ /************************************************* MODIFIER CLASSES **************************************************/ +.taipy-file-selector .MuiButtonBase-root { + margin: 4px 0; +} /* fullwidth : */ .taipy-file-selector.fullwidth [role='button'] { diff --git a/frontend/taipy-gui/public/stylekit/controls/image.css b/frontend/taipy-gui/public/stylekit/controls/image.css index da11a3bd9e..9edbd46943 100644 --- a/frontend/taipy-gui/public/stylekit/controls/image.css +++ b/frontend/taipy-gui/public/stylekit/controls/image.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/input.css b/frontend/taipy-gui/public/stylekit/controls/input.css index c64cb0f56e..6a5b3de4f3 100644 --- a/frontend/taipy-gui/public/stylekit/controls/input.css +++ b/frontend/taipy-gui/public/stylekit/controls/input.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/metric.css b/frontend/taipy-gui/public/stylekit/controls/metric.css index 5b00661b6e..a53de4c024 100644 --- a/frontend/taipy-gui/public/stylekit/controls/metric.css +++ b/frontend/taipy-gui/public/stylekit/controls/metric.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/navbar.css b/frontend/taipy-gui/public/stylekit/controls/navbar.css index a4be218a2a..9d835daff2 100644 --- a/frontend/taipy-gui/public/stylekit/controls/navbar.css +++ b/frontend/taipy-gui/public/stylekit/controls/navbar.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/number.css b/frontend/taipy-gui/public/stylekit/controls/number.css index 561be8e667..adbe91727a 100644 --- a/frontend/taipy-gui/public/stylekit/controls/number.css +++ b/frontend/taipy-gui/public/stylekit/controls/number.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/selector.css b/frontend/taipy-gui/public/stylekit/controls/selector.css index 0e56ecdc7d..f2ccec8fd2 100644 --- a/frontend/taipy-gui/public/stylekit/controls/selector.css +++ b/frontend/taipy-gui/public/stylekit/controls/selector.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -22,7 +22,7 @@ **************************************************/ .taipy-selector { - margin: 0; + margin: 4px 0; } diff --git a/frontend/taipy-gui/public/stylekit/controls/slider.css b/frontend/taipy-gui/public/stylekit/controls/slider.css index 4bba39e40a..cead8abb51 100644 --- a/frontend/taipy-gui/public/stylekit/controls/slider.css +++ b/frontend/taipy-gui/public/stylekit/controls/slider.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -26,4 +26,5 @@ max-width: 100%; min-height: 48px; align-items: center; + margin: 4px 0; } diff --git a/frontend/taipy-gui/public/stylekit/controls/status.css b/frontend/taipy-gui/public/stylekit/controls/status.css index c0e1d73381..ce7f57107c 100644 --- a/frontend/taipy-gui/public/stylekit/controls/status.css +++ b/frontend/taipy-gui/public/stylekit/controls/status.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -25,4 +25,5 @@ display: inline-flex; min-height: 48px; padding-top: 0.5em; + margin: 4px 0; } diff --git a/frontend/taipy-gui/public/stylekit/controls/table.css b/frontend/taipy-gui/public/stylekit/controls/table.css index 3b3b2832ac..e7aa50cf7d 100644 --- a/frontend/taipy-gui/public/stylekit/controls/table.css +++ b/frontend/taipy-gui/public/stylekit/controls/table.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/controls/toggle.css b/frontend/taipy-gui/public/stylekit/controls/toggle.css index 7ff2b1afe9..ec953bf1c5 100644 --- a/frontend/taipy-gui/public/stylekit/controls/toggle.css +++ b/frontend/taipy-gui/public/stylekit/controls/toggle.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -36,6 +36,9 @@ /************************************************* MODIFIER CLASSES **************************************************/ +.taipy-toggle { + margin: 4px 0; +} /* relative : Reset the theme toggle position to fit page flow */ .taipy-toggle.relative { diff --git a/frontend/taipy-gui/public/stylekit/elements/card.css b/frontend/taipy-gui/public/stylekit/elements/card.css index 526d177456..002ad21b1f 100644 --- a/frontend/taipy-gui/public/stylekit/elements/card.css +++ b/frontend/taipy-gui/public/stylekit/elements/card.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/elements/container.css b/frontend/taipy-gui/public/stylekit/elements/container.css index 8048e2da84..f75e9dfbb2 100644 --- a/frontend/taipy-gui/public/stylekit/elements/container.css +++ b/frontend/taipy-gui/public/stylekit/elements/container.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/elements/header.css b/frontend/taipy-gui/public/stylekit/elements/header.css index 85b44cf323..49338e26a0 100644 --- a/frontend/taipy-gui/public/stylekit/elements/header.css +++ b/frontend/taipy-gui/public/stylekit/elements/header.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/elements/sidebar.css b/frontend/taipy-gui/public/stylekit/elements/sidebar.css index ff83ce3ed9..58ce223725 100644 --- a/frontend/taipy-gui/public/stylekit/elements/sidebar.css +++ b/frontend/taipy-gui/public/stylekit/elements/sidebar.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/stylekit.css b/frontend/taipy-gui/public/stylekit/stylekit.css index 8652e877bd..3811f0fe8a 100644 --- a/frontend/taipy-gui/public/stylekit/stylekit.css +++ b/frontend/taipy-gui/public/stylekit/stylekit.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/utilities/colors.css b/frontend/taipy-gui/public/stylekit/utilities/colors.css index c116190845..dc99b3d044 100644 --- a/frontend/taipy-gui/public/stylekit/utilities/colors.css +++ b/frontend/taipy-gui/public/stylekit/utilities/colors.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/utilities/misc.css b/frontend/taipy-gui/public/stylekit/utilities/misc.css index 21c9419368..6b6fe235fe 100644 --- a/frontend/taipy-gui/public/stylekit/utilities/misc.css +++ b/frontend/taipy-gui/public/stylekit/utilities/misc.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/utilities/spacing.css b/frontend/taipy-gui/public/stylekit/utilities/spacing.css index 2cd0bddc89..7e308c5c71 100644 --- a/frontend/taipy-gui/public/stylekit/utilities/spacing.css +++ b/frontend/taipy-gui/public/stylekit/utilities/spacing.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/utilities/typography.css b/frontend/taipy-gui/public/stylekit/utilities/typography.css index dd704ec59a..c7c1afe8ca 100644 --- a/frontend/taipy-gui/public/stylekit/utilities/typography.css +++ b/frontend/taipy-gui/public/stylekit/utilities/typography.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/variables/colors.css b/frontend/taipy-gui/public/stylekit/variables/colors.css index af94c2cdda..d90c507701 100644 --- a/frontend/taipy-gui/public/stylekit/variables/colors.css +++ b/frontend/taipy-gui/public/stylekit/variables/colors.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/variables/elements.css b/frontend/taipy-gui/public/stylekit/variables/elements.css index 5130edca9b..e3b3dd7686 100644 --- a/frontend/taipy-gui/public/stylekit/variables/elements.css +++ b/frontend/taipy-gui/public/stylekit/variables/elements.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/variables/misc.css b/frontend/taipy-gui/public/stylekit/variables/misc.css index 98593c4c4e..7ff80b134d 100644 --- a/frontend/taipy-gui/public/stylekit/variables/misc.css +++ b/frontend/taipy-gui/public/stylekit/variables/misc.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/variables/shapes.css b/frontend/taipy-gui/public/stylekit/variables/shapes.css index 703cd3c598..7fc5545b4e 100644 --- a/frontend/taipy-gui/public/stylekit/variables/shapes.css +++ b/frontend/taipy-gui/public/stylekit/variables/shapes.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/variables/spacing.css b/frontend/taipy-gui/public/stylekit/variables/spacing.css index 2514f70e90..80905a0166 100644 --- a/frontend/taipy-gui/public/stylekit/variables/spacing.css +++ b/frontend/taipy-gui/public/stylekit/variables/spacing.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/public/stylekit/variables/typography.css b/frontend/taipy-gui/public/stylekit/variables/typography.css index fcfd188ad9..a247abaa01 100644 --- a/frontend/taipy-gui/public/stylekit/variables/typography.css +++ b/frontend/taipy-gui/public/stylekit/variables/typography.css @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Router.tsx b/frontend/taipy-gui/src/components/Router.tsx index d14d41b1b8..4252a1124f 100644 --- a/frontend/taipy-gui/src/components/Router.tsx +++ b/frontend/taipy-gui/src/components/Router.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -21,7 +21,7 @@ import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider"; import { AdapterDateFns } from "@mui/x-date-pickers/AdapterDateFnsV3"; import { SnackbarProvider } from "notistack"; import { HelmetProvider } from "react-helmet-async"; -import { BrowserRouter, Route, Routes } from "react-router-dom"; +import { BrowserRouter, Route, Routes } from "react-router"; import { ErrorBoundary } from "react-error-boundary"; import { PageContext, TaipyContext } from "../context/taipyContext"; diff --git a/frontend/taipy-gui/src/components/Taipy/Alert.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Alert.spec.tsx index 4d5e614bb5..142f030113 100644 --- a/frontend/taipy-gui/src/components/Taipy/Alert.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Alert.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Alert.tsx b/frontend/taipy-gui/src/components/Taipy/Alert.tsx index e5ba600d99..c789e8c285 100644 --- a/frontend/taipy-gui/src/components/Taipy/Alert.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Alert.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.spec.tsx b/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.spec.tsx index 36b39da5a6..b9799dc664 100644 --- a/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -98,6 +98,7 @@ const tableValue = { }, }; const tableColumns = JSON.stringify({ Entity: { dfid: "Entity" } }); +const tableWidthColumns = JSON.stringify({ Entity: { dfid: "Entity", width: "100px" }, Country: {dfid: "Country"} }); describe("AutoLoadingTable Component", () => { it("renders", async () => { @@ -132,6 +133,16 @@ describe("AutoLoadingTable Component", () => { const { queryByTestId } = render(); expect(queryByTestId("ArrowDownwardIcon")).toBeNull(); }); + it("hides sort icons when not sortable", async () => { + const { queryByTestId } = render(); + expect(queryByTestId("ArrowDownwardIcon")).toBeNull(); + }); + it("set width if requested", async () => { + const { getByText } = render(); + const header = getByText("Entity").closest("tr"); + expect(header?.firstChild).toHaveStyle({"min-width": "100px"}); + expect(header?.lastChild).toHaveStyle({"width": "100%"}); + }); // keep getting undefined Error from jest, it seems to be linked to the setTimeout that makes the code run after the end of the test :-( // https://github.com/facebook/jest/issues/12262 // Looks like the right way to handle this is to use jest fakeTimers and runAllTimers ... diff --git a/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.tsx b/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.tsx index fabc2cafe7..030fdabdbf 100644 --- a/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.tsx +++ b/frontend/taipy-gui/src/components/Taipy/AutoLoadingTable.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -11,63 +11,33 @@ * specific language governing permissions and limitations under the License. */ -import React, { useState, useEffect, useCallback, useRef, useMemo, CSSProperties, MouseEvent } from "react"; +import React, { CSSProperties, MouseEvent, useCallback, useEffect, useMemo, useRef, useState } from "react"; +import AddIcon from "@mui/icons-material/Add"; +import DataSaverOff from "@mui/icons-material/DataSaverOff"; +import DataSaverOn from "@mui/icons-material/DataSaverOn"; +import Download from "@mui/icons-material/Download"; import Box from "@mui/material/Box"; +import IconButton from "@mui/material/IconButton"; +import Paper from "@mui/material/Paper"; +import Skeleton from "@mui/material/Skeleton"; import MuiTable from "@mui/material/Table"; import TableCell, { TableCellProps } from "@mui/material/TableCell"; import TableContainer from "@mui/material/TableContainer"; import TableHead from "@mui/material/TableHead"; import TableRow from "@mui/material/TableRow"; import TableSortLabel from "@mui/material/TableSortLabel"; -import Paper from "@mui/material/Paper"; +import Tooltip from "@mui/material/Tooltip"; import { visuallyHidden } from "@mui/utils"; import AutoSizer from "react-virtualized-auto-sizer"; import { FixedSizeList, ListOnItemsRenderedProps } from "react-window"; import InfiniteLoader from "react-window-infinite-loader"; -import Skeleton from "@mui/material/Skeleton"; -import IconButton from "@mui/material/IconButton"; -import Tooltip from "@mui/material/Tooltip"; -import AddIcon from "@mui/icons-material/Add"; -import DataSaverOn from "@mui/icons-material/DataSaverOn"; -import DataSaverOff from "@mui/icons-material/DataSaverOff"; -import Download from "@mui/icons-material/Download"; -import { generateHeaderClassName } from "./tableUtils"; import { createRequestInfiniteTableUpdateAction, createSendActionNameAction, FormatConfig, } from "../../context/taipyReducers"; -import { - ColumnDesc, - FilterDesc, - getSortByIndex, - Order, - TaipyTableProps, - baseBoxSx, - paperSx, - tableSx, - RowType, - EditableCell, - OnCellValidation, - RowValue, - EDIT_COL, - OnRowDeletion, - addActionColumn, - headBoxSx, - getClassName, - ROW_CLASS_NAME, - iconInRowSx, - DEFAULT_SIZE, - OnRowSelection, - getRowIndex, - getTooltip, - defaultColumns, - OnRowClick, - DownloadAction, - getFormatFn, - getPageKey, -} from "./tableUtils"; +import { emptyArray } from "../../utils"; import { useClassNames, useDispatch, @@ -78,9 +48,39 @@ import { useModule, } from "../../utils/hooks"; import TableFilter from "./TableFilter"; -import { getSuffixedClassNames, getUpdateVar } from "./utils"; -import { emptyArray } from "../../utils"; +import { + addActionColumn, + baseBoxSx, + ColumnDesc, + DEFAULT_SIZE, + defaultColumns, + DownloadAction, + EDIT_COL, + EditableCell, + FilterDesc, + generateHeaderClassName, + getClassName, + getFormatFn, + getPageKey, + getRowIndex, + getSortByIndex, + getTooltip, + headBoxSx, + iconInRowSx, + OnCellValidation, + OnRowClick, + OnRowDeletion, + OnRowSelection, + Order, + paperSx, + ROW_CLASS_NAME, + RowType, + RowValue, + tableSx, + TaipyTableProps, +} from "./tableUtils"; import { getComponentClassName } from "./TaipyStyle"; +import { getCssSize, getSuffixedClassNames, getUpdateVar } from "./utils"; interface RowData { colsOrder: string[]; @@ -203,6 +203,7 @@ const AutoLoadingTable = (props: TaipyTableProps) => { compare = false, onCompare = "", useCheckbox = false, + sortable = true, } = props; const [rows, setRows] = useState([]); const [compRows, setCompRows] = useState([]); @@ -253,7 +254,7 @@ const AutoLoadingTable = (props: TaipyTableProps) => { useDispatchRequestUpdateOnFirstRender(dispatch, id, module, updateVars); const onSort = useCallback( - (e: React.MouseEvent) => { + (e: MouseEvent) => { const col = e.currentTarget.getAttribute("data-dfid"); if (col) { const isAsc = orderBy === col && order === "asc"; @@ -287,82 +288,107 @@ const AutoLoadingTable = (props: TaipyTableProps) => { e.stopPropagation(); }, []); - const [colsOrder, columns, cellClassNames, tooltips, formats, handleNan, filter, partialEditable] = useMemo(() => { - let hNan = !!props.nanValue; - if (baseColumns) { - try { - let filter = false; - let partialEditable = editable; - const newCols: Record = {}; - Object.entries(baseColumns).forEach(([cId, cDesc]) => { - const nDesc = (newCols[cId] = { ...cDesc }); - if (typeof nDesc.filter != "boolean") { - nDesc.filter = !!props.filter; - } - filter = filter || nDesc.filter; - if (typeof nDesc.notEditable == "boolean") { - nDesc.notEditable = !editable; - } else { - partialEditable = partialEditable || !nDesc.notEditable; - } - if (nDesc.tooltip === undefined) { - nDesc.tooltip = props.tooltip; - } - }); - addActionColumn( - (active && partialEditable && (onAdd || onDelete) ? 1 : 0) + - (active && filter ? 1 : 0) + - (active && downloadable ? 1 : 0), - newCols - ); - const colsOrder = Object.keys(newCols).sort(getSortByIndex(newCols)); - const styTt = colsOrder.reduce>>((pv, col) => { - if (newCols[col].className) { - pv.classNames = pv.classNames || {}; - pv.classNames[newCols[col].dfid] = newCols[col].className as string; + const [colsOrder, columns, cellClassNames, tooltips, formats, handleNan, filter, partialEditable, calcWidth] = + useMemo(() => { + let hNan = !!props.nanValue; + if (baseColumns) { + try { + let filter = false; + let partialEditable = editable; + const newCols: Record = {}; + Object.entries(baseColumns).forEach(([cId, cDesc]) => { + const nDesc = (newCols[cId] = { ...cDesc }); + if (typeof nDesc.filter != "boolean") { + nDesc.filter = !!props.filter; + } + filter = filter || nDesc.filter; + if (typeof nDesc.notEditable == "boolean") { + nDesc.notEditable = !editable; + } else { + partialEditable = partialEditable || !nDesc.notEditable; + } + if (nDesc.tooltip === undefined) { + nDesc.tooltip = props.tooltip; + } + if (typeof nDesc.sortable != "boolean") { + nDesc.sortable = sortable; + } + }); + addActionColumn( + (active && partialEditable && (onAdd || onDelete) ? 1 : 0) + + (active && filter ? 1 : 0) + + (active && downloadable ? 1 : 0), + newCols + ); + const colsOrder = Object.keys(newCols).sort(getSortByIndex(newCols)); + let nbWidth = 0; + const styTt = colsOrder.reduce>>((pv, col) => { + if (newCols[col].className) { + pv.classNames = pv.classNames || {}; + pv.classNames[newCols[col].dfid] = newCols[col].className as string; + } + hNan = hNan || !!newCols[col].nanValue; + if (newCols[col].tooltip) { + pv.tooltips = pv.tooltips || {}; + pv.tooltips[newCols[col].dfid] = newCols[col].tooltip as string; + } + if (newCols[col].formatFn) { + pv.formats = pv.formats || {}; + pv.formats[newCols[col].dfid] = newCols[col].formatFn; + } + if (newCols[col].width !== undefined) { + const cssWidth = getCssSize(newCols[col].width); + if (cssWidth) { + newCols[col].width = cssWidth; + nbWidth++; + } + } + return pv; + }, {}); + nbWidth = nbWidth ? colsOrder.length - nbWidth : 0; + if (props.rowClassName) { + styTt.classNames = styTt.classNames || {}; + styTt.classNames[ROW_CLASS_NAME] = props.rowClassName; } - hNan = hNan || !!newCols[col].nanValue; - if (newCols[col].tooltip) { - pv.tooltips = pv.tooltips || {}; - pv.tooltips[newCols[col].dfid] = newCols[col].tooltip as string; - } - if (newCols[col].formatFn) { - pv.formats = pv.formats || {}; - pv.formats[newCols[col].dfid] = newCols[col].formatFn; - } - return pv; - }, {}); - if (props.rowClassName) { - styTt.classNames = styTt.classNames || {}; - styTt.classNames[ROW_CLASS_NAME] = props.rowClassName; + return [ + colsOrder, + newCols, + styTt.classNames, + styTt.tooltips, + styTt.formats, + hNan, + filter, + partialEditable, + nbWidth > 0 ? `${100 / nbWidth}%` : undefined, + ]; + } catch (e) { + console.info("ATable.columns: " + ((e as Error).message || e)); } - return [colsOrder, newCols, styTt.classNames, styTt.tooltips, styTt.formats, hNan, filter, partialEditable]; - } catch (e) { - console.info("ATable.columns: " + ((e as Error).message || e)); } - } - return [ - [], - {} as Record, - {} as Record, - {} as Record, - {} as Record, - hNan, - false, - false, - ]; - }, [ - active, - editable, - onAdd, - onDelete, - baseColumns, - props.rowClassName, - props.tooltip, - props.nanValue, - props.filter, - downloadable, - ]); + return [ + [], + {} as Record, + {} as Record, + {} as Record, + {} as Record, + hNan, + false, + false, + "", + ]; + }, [ + active, + editable, + onAdd, + onDelete, + baseColumns, + props.rowClassName, + props.tooltip, + props.nanValue, + props.filter, + downloadable, + sortable, + ]); const boxBodySx = useMemo(() => ({ height: height }), [height]); @@ -389,7 +415,18 @@ const AutoLoadingTable = (props: TaipyTableProps) => { return new Promise((resolve, reject) => { const cols = colsOrder.map((col) => columns[col].dfid).filter((c) => c != EDIT_COL); const afs = appliedFilters.filter((fd) => Object.values(columns).some((cd) => cd.dfid === fd.col)); - const key = getPageKey(columns, "Infinite", cols, orderBy, order, afs, aggregates, cellClassNames, tooltips, formats); + const key = getPageKey( + columns, + "Infinite", + cols, + orderBy, + order, + afs, + aggregates, + cellClassNames, + tooltips, + formats + ); page.current = { key: key, promises: { ...page.current.promises, [startIndex]: { resolve: resolve, reject: reject } }, @@ -594,7 +631,13 @@ const AutoLoadingTable = (props: TaipyTableProps) => { const boxSx = useMemo(() => ({ ...baseBoxSx, width: width }), [width]); return ( - + @@ -605,10 +648,20 @@ const AutoLoadingTable = (props: TaipyTableProps) => { {columns[col].dfid === EDIT_COL ? ( @@ -653,8 +706,8 @@ const AutoLoadingTable = (props: TaipyTableProps) => { direction={orderBy === columns[col].dfid ? order : "asc"} data-dfid={columns[col].dfid} onClick={onSort} - disabled={!active} - hideSortIcon={!active} + disabled={!active || !columns[col].sortable} + hideSortIcon={!active || !columns[col].sortable} > {columns[col].groupBy ? ( diff --git a/frontend/taipy-gui/src/components/Taipy/Button.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Button.spec.tsx index 2bb1a062a1..c9264d923e 100644 --- a/frontend/taipy-gui/src/components/Taipy/Button.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Button.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Button.tsx b/frontend/taipy-gui/src/components/Taipy/Button.tsx index 737f4904ef..f2ea3d33d6 100644 --- a/frontend/taipy-gui/src/components/Taipy/Button.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Button.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Chart.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Chart.spec.tsx index 9f86344998..2705cfa790 100644 --- a/frontend/taipy-gui/src/components/Taipy/Chart.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Chart.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -60,7 +60,7 @@ const chartValue = { }, }; const chartConfig = JSON.stringify({ - columns: { Day_str: { dfid: "Day" }, "Daily hospital occupancy": { dfid: "Daily hospital occupancy" } }, + columns: [{ Day_str: { dfid: "Day" }, "Daily hospital occupancy": { dfid: "Daily hospital occupancy" } }], traces: [["Day_str", "Daily hospital occupancy"]], xaxis: ["x"], yaxis: ["y"], @@ -86,7 +86,7 @@ const mapValue = { }, }; const mapConfig = JSON.stringify({ - columns: { Lat: { dfid: "Lat" }, Lon: { dfid: "Lon" } }, + columns: [{ Lat: { dfid: "Lat" }, Lon: { dfid: "Lon" } }], traces: [["Lat", "Lon"]], xaxis: ["x"], yaxis: ["y"], @@ -173,7 +173,7 @@ describe("Chart Component", () => { payload: { id: "chart", names: ["varName"], refresh: false }, type: "REQUEST_UPDATE", }); - expect(dispatch).toHaveBeenCalledWith({ + await waitFor(() => expect(dispatch).toHaveBeenCalledWith({ name: "data_var", payload: { alldata: true, @@ -183,7 +183,7 @@ describe("Chart Component", () => { id: "chart", }, type: "REQUEST_DATA_UPDATE", - }); + })); }); it("dispatch a well formed message on selection", async () => { const dispatch = jest.fn(); diff --git a/frontend/taipy-gui/src/components/Taipy/Chart.tsx b/frontend/taipy-gui/src/components/Taipy/Chart.tsx index 6e323292a0..86bebfc2ee 100644 --- a/frontend/taipy-gui/src/components/Taipy/Chart.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Chart.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -60,6 +60,7 @@ interface ChartProp extends TaipyActiveProps, TaipyChangeProps { defaultConfig: string; config?: string; data?: Record; + //data${number}?: Record; defaultLayout?: string; layout?: string; plotConfig?: string; @@ -69,13 +70,14 @@ interface ChartProp extends TaipyActiveProps, TaipyChangeProps { template?: string; template_Dark_?: string; template_Light_?: string; - //[key: `selected_${number}`]: number[]; + //[key: `selected${number}`]: number[]; figure?: Array>; onClick?: string; + dataVarNames?: string; } interface ChartConfig { - columns: Record; + columns: Array>; labels: string[]; modes: string[]; types: string[]; @@ -217,7 +219,7 @@ export const getPlotIndex = (pt: PlotDatum) => : pt.pointIndex; const defaultConfig = { - columns: {} as Record, + columns: [] as Array>, labels: [], modes: [], types: [], @@ -285,6 +287,15 @@ const getDataKey = (columns?: Record, decimators?: string[]) return [backCols, backCols.join("-") + (decimators ? `--${decimators.join("")}` : "")]; }; +const isDataRefresh = (data?: Record) => data?.__taipy_refresh !== undefined; +const getDataVarName = (updateVarName: string | undefined, dataVarNames: string[], idx: number) => + idx === 0 ? updateVarName : dataVarNames[idx - 1]; +const getData = ( + data: Record, + additionalDatas: Array>, + idx: number +) => (idx === 0 ? data : (idx <= additionalDatas.length ? additionalDatas[idx - 1]: undefined)); + const Chart = (props: ChartProp) => { const { title = "", @@ -301,18 +312,36 @@ const Chart = (props: ChartProp) => { const dispatch = useDispatch(); const [selected, setSelected] = useState([]); const plotRef = useRef(null); - const [dataKey, setDataKey] = useState("__default__"); + const [dataKeys, setDataKeys] = useState([]); const lastDataPl = useRef([]); const theme = useTheme(); const module = useModule(); - const refresh = useMemo(() => (data?.__taipy_refresh !== undefined ? nanoid() : false), [data]); const className = useClassNames(props.libClassName, props.dynamicClassName, props.className); const active = useDynamicProperty(props.active, props.defaultActive, true); const render = useDynamicProperty(props.render, props.defaultRender, true); const hover = useDynamicProperty(props.hoverText, props.defaultHoverText, undefined); const baseLayout = useDynamicJsonProperty(props.layout, props.defaultLayout || "", emptyLayout); + const dataVarNames = useMemo(() => (props.dataVarNames ? props.dataVarNames.split(";") : []), [props.dataVarNames]); + const oldAdditionalDatas = useRef>>([]); + const additionalDatas = useMemo(() => { + const newAdditionalDatas = dataVarNames.map( + (_, idx) => (props as unknown as Record>)[`data${idx + 1}`] + ); + if (newAdditionalDatas.length !== oldAdditionalDatas.current.length) { + oldAdditionalDatas.current = newAdditionalDatas; + } else if (!newAdditionalDatas.every((d, idx) => d === oldAdditionalDatas.current[idx])) { + oldAdditionalDatas.current = newAdditionalDatas; + } + return oldAdditionalDatas.current; + }, [dataVarNames, props]); + + const refresh = useMemo( + () => (isDataRefresh(data) || additionalDatas.some((d) => isDataRefresh(d)) ? nanoid() : false), + [data, additionalDatas] + ); + // get props.selected[i] values useEffect(() => { if (props.figure) { @@ -353,30 +382,53 @@ const Chart = (props: ChartProp) => { const config = useDynamicJsonProperty(props.config, props.defaultConfig, defaultConfig); useEffect(() => { - if (updateVarName) { - const [backCols, dtKey] = getDataKey(config.columns, config.decimators); - setDataKey(dtKey); - if (refresh || !data[dtKey]) { - dispatch( - createRequestChartUpdateAction( - updateVarName, - id, - module, - backCols, - dtKey, - getDecimatorsPayload( - config.decimators, - plotRef.current, - config.modes, - config.columns, - config.traces - ) - ) - ); - } - } + setDataKeys((oldDtKeys) => { + let changed = false; + const newDtKeys = (config.columns || []).map((columns, idx) => { + const varName = getDataVarName(updateVarName, dataVarNames, idx); + if (varName) { + const [backCols, dtKey] = getDataKey(columns, config.decimators); + changed = changed || idx > oldDtKeys.length || oldDtKeys[idx] !== dtKey; + const lData = getData(data, additionalDatas, idx); + if (lData === undefined || isDataRefresh(lData) || !lData[dtKey]) { + Promise.resolve().then(() => + dispatch( + createRequestChartUpdateAction( + varName, + id, + module, + backCols, + dtKey, + getDecimatorsPayload( + config.decimators, + plotRef.current, + config.modes, + columns, + config.traces + ) + ) + ) + ); + } + return dtKey; + } + return ""; + }); + return changed ? newDtKeys : oldDtKeys; + }); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [refresh, dispatch, config.columns, config.traces, config.modes, config.decimators, updateVarName, id, module]); + }, [ + refresh, + dispatch, + config.columns, + config.traces, + config.modes, + config.decimators, + updateVarName, + dataVarNames, + id, + module, + ]); useDispatchRequestUpdateOnFirstRender(dispatch, id, module, updateVars); @@ -411,14 +463,14 @@ const Chart = (props: ChartProp) => { xaxis: { title: config.traces.length && config.traces[0].length && config.traces[0][0] - ? getColNameFromIndexed(config.columns[config.traces[0][0]]?.dfid) + ? getColNameFromIndexed(config.columns[0][config.traces[0][0]]?.dfid) : undefined, ...layout.xaxis, }, yaxis: { title: - config.traces.length == 1 && config.traces[0].length > 1 && config.columns[config.traces[0][1]] - ? getColNameFromIndexed(config.columns[config.traces[0][1]]?.dfid) + config.traces.length == 1 && config.traces[0].length > 1 && config.columns[0][config.traces[0][1]] + ? getColNameFromIndexed(config.columns[0][config.traces[0][1]]?.dfid) : undefined, ...layout.yaxis, }, @@ -447,98 +499,112 @@ const Chart = (props: ChartProp) => { const dataPl = useMemo(() => { if (props.figure) { - return lastDataPl.current; - } - if (data.__taipy_refresh !== undefined) { return lastDataPl.current || []; } - const dtKey = getDataKey(config.columns, config.decimators)[1]; - if (!dataKey.startsWith(dtKey)) { + const dataList = dataKeys.map((_, idx) => getData(data, additionalDatas, idx)); + if (!dataList.length || dataList.every((d) => !d || isDataRefresh(d) || !Object.keys(d).length)) { return lastDataPl.current || []; } - const datum = data[dataKey]; - lastDataPl.current = datum - ? config.traces.map((trace, idx) => { - const ret = { - ...getArrayValue(config.options, idx, {}), - type: config.types[idx], - mode: config.modes[idx], - name: - getArrayValue(config.names, idx) || - (config.columns[trace[1]] ? getColNameFromIndexed(config.columns[trace[1]].dfid) : undefined), - } as Record; - ret.marker = { ...getArrayValue(config.markers, idx, ret.marker || {}) }; - if (Object.keys(ret.marker as object).length) { - MARKER_TO_COL.forEach((prop) => { - const val = (ret.marker as Record)[prop]; - if (typeof val === "string") { - const arr = getValueFromCol(datum, val as string); - if (arr.length) { - (ret.marker as Record)[prop] = arr; - } - } - }); - } else { - delete ret.marker; - } - const xs = getValue(datum, trace, 0) || []; - const ys = getValue(datum, trace, 1) || []; - const addIndex = getArrayValue(config.addIndex, idx, true) && !ys.length; - const baseX = addIndex ? Array.from(Array(xs.length).keys()) : xs; - const baseY = addIndex ? xs : ys; - const axisNames = config.axisNames.length > idx ? config.axisNames[idx] : ([] as string[]); - if (baseX.length) { - if (axisNames.length > 0) { - ret[axisNames[0]] = baseX; - } else { - ret.x = baseX; - } - } - if (baseY.length) { - if (axisNames.length > 1) { - ret[axisNames[1]] = baseY; - } else { - ret.y = baseY; - } - } - const baseZ = getValue(datum, trace, 2, true); - if (baseZ) { - if (axisNames.length > 2) { - ret[axisNames[2]] = baseZ; - } else { - ret.z = baseZ; - } - } - // Hack for treemap charts: create a fallback 'parents' column if needed - // This works ONLY because 'parents' is the third named axis - // (see __CHART_AXIS in gui/utils/chart_config_builder.py) - else if (config.types[idx] === "treemap" && Array.isArray(ret.labels)) { - ret.parents = Array(ret.labels.length).fill(""); - } - // Other axis - for (let i = 3; i < axisNames.length; i++) { - ret[axisNames[i]] = getValue(datum, trace, i, true); - } - ret.text = getValue(datum, config.texts, idx, true); - ret.xaxis = config.xaxis[idx]; - ret.yaxis = config.yaxis[idx]; - ret.hovertext = getValue(datum, config.labels, idx, true); - const selPoints = getArrayValue(selected, idx, []); - if (selPoints?.length) { - ret.selectedpoints = selPoints; - } - ret.orientation = getArrayValue(config.orientations, idx); - ret.line = getArrayValue(config.lines, idx); - ret.textposition = getArrayValue(config.textAnchors, idx); - const selectedMarker = getArrayValue(config.selectedMarkers, idx); - if (selectedMarker) { - ret.selected = { marker: selectedMarker }; - } - return ret as Data; - }) - : lastDataPl.current || []; + let changed = false; + const newDataPl = config.traces.map((trace, idx) => { + const currentData = idx < lastDataPl.current.length ? lastDataPl.current[idx] : {}; + const dataKey = idx < dataKeys.length ? dataKeys[idx] : dataKeys[0]; + const lData = idx < dataList.length ? dataList[idx] : dataList[0]; + if (!lData || isDataRefresh(lData) || !Object.keys(lData).length) { + return currentData; + } + const dtKey = getDataKey( + idx < config.columns?.length ? config.columns[idx] : undefined, + config.decimators + )[1]; + if (!dataKey.startsWith(dtKey) || !dtKey.length) { + return currentData; + } + changed = true; + const datum = lData[dataKey]; + const columns = config.columns[idx]; + const ret = { + ...getArrayValue(config.options, idx, {}), + type: config.types[idx], + mode: config.modes[idx], + name: + getArrayValue(config.names, idx) || + (columns[trace[1]] ? getColNameFromIndexed(columns[trace[1]].dfid) : undefined), + } as Record; + ret.marker = { ...getArrayValue(config.markers, idx, ret.marker || {}) }; + if (Object.keys(ret.marker as object).length) { + MARKER_TO_COL.forEach((prop) => { + const val = (ret.marker as Record)[prop]; + if (typeof val === "string") { + const arr = getValueFromCol(datum, val as string); + if (arr.length) { + (ret.marker as Record)[prop] = arr; + } + } + }); + } else { + delete ret.marker; + } + const xs = getValue(datum, trace, 0) || []; + const ys = getValue(datum, trace, 1) || []; + const addIndex = getArrayValue(config.addIndex, idx, true) && !ys.length; + const baseX = addIndex ? Array.from(Array(xs.length).keys()) : xs; + const baseY = addIndex ? xs : ys; + const axisNames = config.axisNames.length > idx ? config.axisNames[idx] : ([] as string[]); + if (baseX.length) { + if (axisNames.length > 0) { + ret[axisNames[0]] = baseX; + } else { + ret.x = baseX; + } + } + if (baseY.length) { + if (axisNames.length > 1) { + ret[axisNames[1]] = baseY; + } else { + ret.y = baseY; + } + } + const baseZ = getValue(datum, trace, 2, true); + if (baseZ) { + if (axisNames.length > 2) { + ret[axisNames[2]] = baseZ; + } else { + ret.z = baseZ; + } + } + // Hack for treemap charts: create a fallback 'parents' column if needed + // This works ONLY because 'parents' is the third named axis + // (see __CHART_AXIS in gui/utils/chart_config_builder.py) + else if (config.types[idx] === "treemap" && Array.isArray(ret.labels)) { + ret.parents = Array(ret.labels.length).fill(""); + } + // Other axis + for (let i = 3; i < axisNames.length; i++) { + ret[axisNames[i]] = getValue(datum, trace, i, true); + } + ret.text = getValue(datum, config.texts, idx, true); + ret.xaxis = config.xaxis[idx]; + ret.yaxis = config.yaxis[idx]; + ret.hovertext = getValue(datum, config.labels, idx, true); + const selPoints = getArrayValue(selected, idx, []); + if (selPoints?.length) { + ret.selectedpoints = selPoints; + } + ret.orientation = getArrayValue(config.orientations, idx); + ret.line = getArrayValue(config.lines, idx); + ret.textposition = getArrayValue(config.textAnchors, idx); + const selectedMarker = getArrayValue(config.selectedMarkers, idx); + if (selectedMarker) { + ret.selected = { marker: selectedMarker }; + } + return ret as Data; + }); + if (changed) { + lastDataPl.current = newDataPl; + } return lastDataPl.current; - }, [props.figure, selected, data, config, dataKey]); + }, [props.figure, selected, data, additionalDatas, config, dataKeys]); const plotConfig = useMemo(() => { let plConf: Partial = {}; @@ -567,28 +633,41 @@ const Chart = (props: ChartProp) => { (eventData: PlotRelayoutEvent) => { onRangeChange && dispatch(createSendActionNameAction(id, module, { action: onRangeChange, ...eventData })); if (config.decimators && !config.types.includes("scatter3d")) { - const [backCols, dtKeyBase] = getDataKey(config.columns, config.decimators); + const [backCols, dtKeyBase] = getDataKey( + config.columns?.length ? config.columns[0] : undefined, + config.decimators + ); const dtKey = `${dtKeyBase}--${Object.entries(eventData) .map(([k, v]) => `${k}=${v}`) .join("-")}`; - setDataKey(dtKey); - dispatch( - createRequestChartUpdateAction( - updateVarName, - id, - module, - backCols, - dtKey, - getDecimatorsPayload( - config.decimators, - plotRef.current, - config.modes, - config.columns, - config.traces, - eventData - ) - ) - ); + setDataKeys((oldDataKeys) => { + if (oldDataKeys.length === 0) { + return [dtKey]; + } + if (oldDataKeys[0] !== dtKey) { + Promise.resolve().then(() => + dispatch( + createRequestChartUpdateAction( + updateVarName, + id, + module, + backCols, + dtKey, + getDecimatorsPayload( + config.decimators, + plotRef.current, + config.modes, + config.columns?.length ? config.columns[0] : {}, + config.traces, + eventData + ) + ) + ) + ); + return [dtKey, ...oldDataKeys.slice(1)]; + } + return oldDataKeys; + }); } }, [ @@ -646,15 +725,21 @@ const Chart = (props: ChartProp) => { ); const getRealIndex = useCallback( - (index?: number) => - typeof index === "number" + (dataIdx: number, index?: number) => { + const lData = getData(data, additionalDatas, dataIdx); + if (!lData) { + return index || 0; + } + const dtKey = dataKeys[dataIdx]; + return typeof index === "number" ? props.figure ? index - : data[dataKey].tp_index - ? (data[dataKey].tp_index[index] as number) + : lData[dtKey].tp_index + ? (lData[dtKey].tp_index[index] as number) : index - : 0, - [data, dataKey, props.figure] + : 0; + }, + [data, additionalDatas, dataKeys, props.figure] ); const onSelect = useCallback( @@ -662,7 +747,7 @@ const Chart = (props: ChartProp) => { if (updateVars) { const traces = (evt?.points || []).reduce((tr, pt) => { tr[pt.curveNumber] = tr[pt.curveNumber] || []; - tr[pt.curveNumber].push(getRealIndex(getPlotIndex(pt))); + tr[pt.curveNumber].push(getRealIndex(pt.curveNumber, getPlotIndex(pt))); return tr; }, [] as number[][]); if (config.traces.length === 0) { diff --git a/frontend/taipy-gui/src/components/Taipy/Chat.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Chat.spec.tsx index 324d08efb1..1ebde9510a 100644 --- a/frontend/taipy-gui/src/components/Taipy/Chat.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Chat.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Chat.tsx b/frontend/taipy-gui/src/components/Taipy/Chat.tsx index 94ea8a2f46..07eb9568f5 100644 --- a/frontend/taipy-gui/src/components/Taipy/Chat.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Chat.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/DateRange.spec.tsx b/frontend/taipy-gui/src/components/Taipy/DateRange.spec.tsx index 19c701ea2b..3f0eb7cbf8 100644 --- a/frontend/taipy-gui/src/components/Taipy/DateRange.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/DateRange.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/DateRange.tsx b/frontend/taipy-gui/src/components/Taipy/DateRange.tsx index 7af9f29936..b96b27de1a 100644 --- a/frontend/taipy-gui/src/components/Taipy/DateRange.tsx +++ b/frontend/taipy-gui/src/components/Taipy/DateRange.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/DateSelector.spec.tsx b/frontend/taipy-gui/src/components/Taipy/DateSelector.spec.tsx index df193e49bc..afc95ad563 100644 --- a/frontend/taipy-gui/src/components/Taipy/DateSelector.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/DateSelector.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/DateSelector.tsx b/frontend/taipy-gui/src/components/Taipy/DateSelector.tsx index fe1d7b2660..976845283d 100644 --- a/frontend/taipy-gui/src/components/Taipy/DateSelector.tsx +++ b/frontend/taipy-gui/src/components/Taipy/DateSelector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Dialog.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Dialog.spec.tsx index 2a718e2776..2201a7c94f 100644 --- a/frontend/taipy-gui/src/components/Taipy/Dialog.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Dialog.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -28,8 +28,8 @@ const mockedAxios = axios as jest.Mocked; mockedAxios.get.mockRejectedValue("Network error: Something went wrong"); mockedAxios.get.mockResolvedValue({ data: { jsx_no: '

' } }); -jest.mock("react-router-dom", () => ({ - ...jest.requireActual("react-router-dom"), +jest.mock("react-router", () => ({ + ...jest.requireActual("react-router"), useLocation: () => ({ pathname: "pathname", }), diff --git a/frontend/taipy-gui/src/components/Taipy/Dialog.tsx b/frontend/taipy-gui/src/components/Taipy/Dialog.tsx index 9d39616464..0c0d8676c1 100644 --- a/frontend/taipy-gui/src/components/Taipy/Dialog.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Dialog.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Expandable.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Expandable.spec.tsx index 347ee51653..8a45246a27 100644 --- a/frontend/taipy-gui/src/components/Taipy/Expandable.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Expandable.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Expandable.tsx b/frontend/taipy-gui/src/components/Taipy/Expandable.tsx index 5fc81a9439..4136d24cde 100644 --- a/frontend/taipy-gui/src/components/Taipy/Expandable.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Expandable.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Field.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Field.spec.tsx index 6dec763064..1ac23cddfc 100644 --- a/frontend/taipy-gui/src/components/Taipy/Field.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Field.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Field.tsx b/frontend/taipy-gui/src/components/Taipy/Field.tsx index d3b978015f..494bc89c6a 100644 --- a/frontend/taipy-gui/src/components/Taipy/Field.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Field.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/FileDownload.spec.tsx b/frontend/taipy-gui/src/components/Taipy/FileDownload.spec.tsx index f8ca12c215..6df2cfb2eb 100644 --- a/frontend/taipy-gui/src/components/Taipy/FileDownload.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/FileDownload.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/FileDownload.tsx b/frontend/taipy-gui/src/components/Taipy/FileDownload.tsx index 825eb57230..aa468b20df 100644 --- a/frontend/taipy-gui/src/components/Taipy/FileDownload.tsx +++ b/frontend/taipy-gui/src/components/Taipy/FileDownload.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/FileSelector.spec.tsx b/frontend/taipy-gui/src/components/Taipy/FileSelector.spec.tsx index 1907429e06..f9e062c953 100644 --- a/frontend/taipy-gui/src/components/Taipy/FileSelector.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/FileSelector.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/FileSelector.tsx b/frontend/taipy-gui/src/components/Taipy/FileSelector.tsx index 14facaca66..3539753a53 100644 --- a/frontend/taipy-gui/src/components/Taipy/FileSelector.tsx +++ b/frontend/taipy-gui/src/components/Taipy/FileSelector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/GuiDownload.spec.tsx b/frontend/taipy-gui/src/components/Taipy/GuiDownload.spec.tsx index cb4d55cfb6..3a9ee25534 100644 --- a/frontend/taipy-gui/src/components/Taipy/GuiDownload.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/GuiDownload.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/GuiDownload.tsx b/frontend/taipy-gui/src/components/Taipy/GuiDownload.tsx index 285ef5c8c7..4486b68a5f 100644 --- a/frontend/taipy-gui/src/components/Taipy/GuiDownload.tsx +++ b/frontend/taipy-gui/src/components/Taipy/GuiDownload.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Image.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Image.spec.tsx index d7b11fcc2d..486d83eaf2 100644 --- a/frontend/taipy-gui/src/components/Taipy/Image.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Image.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Image.tsx b/frontend/taipy-gui/src/components/Taipy/Image.tsx index c16fc4a38b..4d3a8b8d83 100644 --- a/frontend/taipy-gui/src/components/Taipy/Image.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Image.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Indicator.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Indicator.spec.tsx index a5ca1f927e..1ebb20745c 100644 --- a/frontend/taipy-gui/src/components/Taipy/Indicator.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Indicator.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Indicator.tsx b/frontend/taipy-gui/src/components/Taipy/Indicator.tsx index 3faf98001f..6e5ed08fa3 100644 --- a/frontend/taipy-gui/src/components/Taipy/Indicator.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Indicator.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Input.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Input.spec.tsx index 322117c8de..629f2057ae 100644 --- a/frontend/taipy-gui/src/components/Taipy/Input.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Input.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Input.tsx b/frontend/taipy-gui/src/components/Taipy/Input.tsx index 9c71e92efe..9de04988a8 100644 --- a/frontend/taipy-gui/src/components/Taipy/Input.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Input.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Layout.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Layout.spec.tsx index 4c4936b78c..1f329b4bcc 100644 --- a/frontend/taipy-gui/src/components/Taipy/Layout.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Layout.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Layout.tsx b/frontend/taipy-gui/src/components/Taipy/Layout.tsx index d5459bbe4c..e7c1fd1147 100644 --- a/frontend/taipy-gui/src/components/Taipy/Layout.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Layout.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Link.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Link.spec.tsx index 83e34661bf..4dac59aa9e 100644 --- a/frontend/taipy-gui/src/components/Taipy/Link.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Link.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -14,7 +14,7 @@ import React from "react"; import { render } from "@testing-library/react"; import "@testing-library/jest-dom"; -import { BrowserRouter } from "react-router-dom"; +import { BrowserRouter } from "react-router"; import Link from "./Link"; import { INITIAL_STATE, TaipyState } from "../../context/taipyReducers"; diff --git a/frontend/taipy-gui/src/components/Taipy/Link.tsx b/frontend/taipy-gui/src/components/Taipy/Link.tsx index e65b1ab42e..8b9587776f 100644 --- a/frontend/taipy-gui/src/components/Taipy/Link.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Link.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -12,7 +12,7 @@ */ import React, { ReactNode, useContext, useMemo } from "react"; -import { Link as RouterLink, useMatch, useResolvedPath } from "react-router-dom"; +import { Link as RouterLink, useMatch, useResolvedPath } from "react-router"; import MuiLink from "@mui/material/Link"; import { TaipyContext } from "../../context/taipyContext"; diff --git a/frontend/taipy-gui/src/components/Taipy/Login.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Login.spec.tsx index 5090276a45..808d82f925 100644 --- a/frontend/taipy-gui/src/components/Taipy/Login.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Login.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Login.tsx b/frontend/taipy-gui/src/components/Taipy/Login.tsx index 8c2239d345..63b29d3eb7 100644 --- a/frontend/taipy-gui/src/components/Taipy/Login.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Login.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Menu.tsx b/frontend/taipy-gui/src/components/Taipy/Menu.tsx index 6ee53f41a9..72c667bf83 100644 --- a/frontend/taipy-gui/src/components/Taipy/Menu.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Menu.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/MenuCtl.spec.tsx b/frontend/taipy-gui/src/components/Taipy/MenuCtl.spec.tsx index 46a0aff54b..75ea79bb19 100644 --- a/frontend/taipy-gui/src/components/Taipy/MenuCtl.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/MenuCtl.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/MenuCtl.tsx b/frontend/taipy-gui/src/components/Taipy/MenuCtl.tsx index b828b258d7..0d6ac15f64 100644 --- a/frontend/taipy-gui/src/components/Taipy/MenuCtl.tsx +++ b/frontend/taipy-gui/src/components/Taipy/MenuCtl.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Metric.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Metric.spec.tsx index cec7f1149c..4181024f55 100644 --- a/frontend/taipy-gui/src/components/Taipy/Metric.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Metric.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Metric.tsx b/frontend/taipy-gui/src/components/Taipy/Metric.tsx index 600bc3023b..7f26b3b8f4 100644 --- a/frontend/taipy-gui/src/components/Taipy/Metric.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Metric.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/NavBar.spec.tsx b/frontend/taipy-gui/src/components/Taipy/NavBar.spec.tsx index e30ef437c2..d2a46ec513 100644 --- a/frontend/taipy-gui/src/components/Taipy/NavBar.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/NavBar.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -15,7 +15,7 @@ import React from "react"; import {render} from "@testing-library/react"; import "@testing-library/jest-dom"; import userEvent from "@testing-library/user-event"; -import { BrowserRouter } from "react-router-dom"; +import { BrowserRouter } from "react-router"; import NavBar from './NavBar'; import { LoV } from "./lovUtils"; diff --git a/frontend/taipy-gui/src/components/Taipy/NavBar.tsx b/frontend/taipy-gui/src/components/Taipy/NavBar.tsx index b594eb029e..9c55085f37 100644 --- a/frontend/taipy-gui/src/components/Taipy/NavBar.tsx +++ b/frontend/taipy-gui/src/components/Taipy/NavBar.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Navigate.tsx b/frontend/taipy-gui/src/components/Taipy/Navigate.tsx index 2ac893161a..a0ecde8c6e 100644 --- a/frontend/taipy-gui/src/components/Taipy/Navigate.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Navigate.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -13,7 +13,7 @@ import { useContext, useEffect } from "react"; import axios from "axios"; -import { useLocation, useNavigate } from "react-router-dom"; +import { useLocation, useNavigate } from "react-router"; import { TaipyContext } from "../../context/taipyContext"; import { createNavigateAction } from "../../context/taipyReducers"; @@ -49,7 +49,8 @@ const Navigate = ({ to, params, tab, force }: NavigateProps) => { const reloadAll = params?.tp_reload_all === "true"; const reloadSameRouteOnly = params?.tp_reload_same_route_only === "true"; if (reloadAll) { - return navigate(0); + navigate(0); + return; } if (reloadSameRouteOnly) { if (location.pathname === tos) { diff --git a/frontend/taipy-gui/src/components/Taipy/Notification.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Notification.spec.tsx index 10ebec4543..d651c47baa 100644 --- a/frontend/taipy-gui/src/components/Taipy/Notification.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Notification.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Notification.tsx b/frontend/taipy-gui/src/components/Taipy/Notification.tsx index a03f57c909..35d2452d0f 100644 --- a/frontend/taipy-gui/src/components/Taipy/Notification.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Notification.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/PaginatedTable.spec.tsx b/frontend/taipy-gui/src/components/Taipy/PaginatedTable.spec.tsx index c2971bfecf..2ed1a2bb61 100644 --- a/frontend/taipy-gui/src/components/Taipy/PaginatedTable.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/PaginatedTable.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -94,6 +94,10 @@ const tableColumns = JSON.stringify({ Entity: { dfid: "Entity" }, "Daily hospital occupancy": { dfid: "Daily hospital occupancy", type: "int64" }, }); +const tableWidthColumns = JSON.stringify({ + Entity: { dfid: "Entity", width: "100px" }, + "Daily hospital occupancy": { dfid: "Daily hospital occupancy", type: "int64" }, +}); const changedValue = { [valueKey]: { data: [ @@ -217,6 +221,18 @@ describe("PaginatedTable Component", () => { ); expect(queryByTestId("ArrowDownwardIcon")).toBeNull(); }); + it("Hides sort icons when not sortable", async () => { + const { queryByTestId } = render( + + ); + expect(queryByTestId("ArrowDownwardIcon")).toBeNull(); + }); + it("set width if requested", async () => { + const { getByText } = render(); + const header = getByText("Entity").closest("tr"); + expect(header?.firstChild).toHaveStyle({"min-width": "100px"}); + expect(header?.lastChild).toHaveStyle({"width": "100%"}); + }); it("dispatch 2 well formed messages at first render", async () => { const dispatch = jest.fn(); const state: TaipyState = INITIAL_STATE; diff --git a/frontend/taipy-gui/src/components/Taipy/PaginatedTable.tsx b/frontend/taipy-gui/src/components/Taipy/PaginatedTable.tsx index c5d28f2ec9..fae432eb46 100644 --- a/frontend/taipy-gui/src/components/Taipy/PaginatedTable.tsx +++ b/frontend/taipy-gui/src/components/Taipy/PaginatedTable.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -41,7 +41,6 @@ import TableSortLabel from "@mui/material/TableSortLabel"; import Tooltip from "@mui/material/Tooltip"; import Typography from "@mui/material/Typography"; import { visuallyHidden } from "@mui/utils"; -import { generateHeaderClassName } from "./tableUtils"; import { createRequestTableUpdateAction, createSendActionNameAction } from "../../context/taipyReducers"; import { emptyArray } from "../../utils"; @@ -65,6 +64,7 @@ import { EDIT_COL, EditableCell, FilterDesc, + generateHeaderClassName, getClassName, getFormatFn, getPageKey, @@ -87,7 +87,7 @@ import { TaipyPaginatedTableProps, } from "./tableUtils"; import { getComponentClassName } from "./TaipyStyle"; -import { getSuffixedClassNames, getUpdateVar } from "./utils"; +import { getCssSize, getSuffixedClassNames, getUpdateVar } from "./utils"; const loadingStyle: CSSProperties = { width: "100%", height: "3em", textAlign: "right", verticalAlign: "center" }; const skeletonSx = { width: "100%", height: "3em" }; @@ -115,6 +115,7 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { compare = false, onCompare = "", useCheckbox = false, + sortable = true, } = props; const pageSize = props.pageSize === undefined || props.pageSize < 1 ? 100 : Math.round(props.pageSize); const [value, setValue] = useState>({}); @@ -138,7 +139,7 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { const hover = useDynamicProperty(props.hoverText, props.defaultHoverText, undefined); const baseColumns = useDynamicJsonProperty(props.columns, props.defaultColumns, defaultColumns); - const [colsOrder, columns, cellClassNames, tooltips, formats, handleNan, filter, partialEditable, nbWidth] = + const [colsOrder, columns, cellClassNames, tooltips, formats, handleNan, filter, partialEditable, calcWidth] = useMemo(() => { let hNan = !!props.nanValue; if (baseColumns) { @@ -160,6 +161,9 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { if (nDesc.tooltip === undefined) { nDesc.tooltip = props.tooltip; } + if (typeof nDesc.sortable != "boolean") { + nDesc.sortable = sortable; + } }); addActionColumn( (active && partialEditable && (onAdd || onDelete) ? 1 : 0) + @@ -169,6 +173,7 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { ); const colsOrder = Object.keys(newCols).sort(getSortByIndex(newCols)); let nbWidth = 0; + let widthRate = 0; const functions = colsOrder.reduce>>((pv, col) => { if (newCols[col].className) { pv.classNames = pv.classNames || {}; @@ -184,7 +189,14 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { pv.formats[newCols[col].dfid] = newCols[col].formatFn; } if (newCols[col].width !== undefined) { - nbWidth++; + const cssWidth = getCssSize(newCols[col].width); + if (cssWidth) { + newCols[col].width = cssWidth; + nbWidth++; + if (cssWidth.endsWith("%")) { + widthRate += parseInt(cssWidth, 10); + } + } } return pv; }, {}); @@ -202,7 +214,7 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { hNan, filter, partialEditable, - nbWidth, + nbWidth > 0 ? `${(100 - widthRate) / nbWidth}%` : undefined ]; } catch (e) { console.info("PaginatedTable.columns: ", (e as Error).message || e); @@ -217,7 +229,7 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { hNan, false, false, - 0, + "" ]; }, [ active, @@ -230,6 +242,7 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { props.nanValue, props.filter, downloadable, + sortable, ]); useDispatchRequestUpdateOnFirstRender(dispatch, id, module, updateVars); @@ -524,9 +537,9 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { sortDirection={orderBy === columns[col].dfid && order} sx={ columns[col].width - ? { minWidth: columns[col].width } - : nbWidth - ? { minWidth: `${100 / nbWidth}%` } + ? { minWidth:columns[col].width } + : calcWidth + ? { width: calcWidth } : undefined } className={col === "EDIT_COL" @@ -576,8 +589,8 @@ const PaginatedTable = (props: TaipyPaginatedTableProps) => { direction={orderBy === columns[col].dfid ? order : "asc"} data-dfid={columns[col].dfid} onClick={onSort} - disabled={!active} - hideSortIcon={!active} + disabled={!active || !columns[col].sortable} + hideSortIcon={!active || !columns[col].sortable} > {columns[col].groupBy ? ( diff --git a/frontend/taipy-gui/src/components/Taipy/Pane.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Pane.spec.tsx index a062fc4c37..9ff80e643f 100644 --- a/frontend/taipy-gui/src/components/Taipy/Pane.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Pane.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -28,8 +28,8 @@ const mockedAxios = axios as jest.Mocked; mockedAxios.get.mockRejectedValue("Network error: Something went wrong"); mockedAxios.get.mockResolvedValue({ data: { jsx_no: '
' } }); -jest.mock("react-router-dom", () => ({ - ...jest.requireActual("react-router-dom"), +jest.mock("react-router", () => ({ + ...jest.requireActual("react-router"), useLocation: () => ({ pathname: "pathname", }), diff --git a/frontend/taipy-gui/src/components/Taipy/Pane.tsx b/frontend/taipy-gui/src/components/Taipy/Pane.tsx index 6aa7eb3027..0a70b9f1f1 100644 --- a/frontend/taipy-gui/src/components/Taipy/Pane.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Pane.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Part.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Part.spec.tsx index bec14be716..ac341635a9 100644 --- a/frontend/taipy-gui/src/components/Taipy/Part.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Part.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Part.tsx b/frontend/taipy-gui/src/components/Taipy/Part.tsx index 3657b9593e..0b7b45e75e 100644 --- a/frontend/taipy-gui/src/components/Taipy/Part.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Part.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Progress.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Progress.spec.tsx index 2e6f430d6a..e57fc79e48 100644 --- a/frontend/taipy-gui/src/components/Taipy/Progress.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Progress.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Progress.tsx b/frontend/taipy-gui/src/components/Taipy/Progress.tsx index ffa5424444..05efd67c77 100644 --- a/frontend/taipy-gui/src/components/Taipy/Progress.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Progress.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Selector.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Selector.spec.tsx index bcc9cde44d..c142923f8a 100644 --- a/frontend/taipy-gui/src/components/Taipy/Selector.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Selector.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Selector.tsx b/frontend/taipy-gui/src/components/Taipy/Selector.tsx index 7be98d23df..421ffbc0cf 100644 --- a/frontend/taipy-gui/src/components/Taipy/Selector.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Selector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Slider.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Slider.spec.tsx index 88ad9e31ac..7dae7762f9 100644 --- a/frontend/taipy-gui/src/components/Taipy/Slider.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Slider.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Slider.tsx b/frontend/taipy-gui/src/components/Taipy/Slider.tsx index 12c7dfde0e..19bb8b377c 100644 --- a/frontend/taipy-gui/src/components/Taipy/Slider.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Slider.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Status.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Status.spec.tsx index d584fa6faa..7aa7038dbe 100644 --- a/frontend/taipy-gui/src/components/Taipy/Status.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Status.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Status.tsx b/frontend/taipy-gui/src/components/Taipy/Status.tsx index 2f15fd7a26..ac3776514e 100644 --- a/frontend/taipy-gui/src/components/Taipy/Status.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Status.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/StatusList.spec.tsx b/frontend/taipy-gui/src/components/Taipy/StatusList.spec.tsx index 8fc6d69184..a082403f9d 100644 --- a/frontend/taipy-gui/src/components/Taipy/StatusList.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/StatusList.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/StatusList.tsx b/frontend/taipy-gui/src/components/Taipy/StatusList.tsx index 1e3d4b6b42..2d9979f15a 100644 --- a/frontend/taipy-gui/src/components/Taipy/StatusList.tsx +++ b/frontend/taipy-gui/src/components/Taipy/StatusList.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Table.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Table.spec.tsx index b6180b17be..faa2684a5f 100644 --- a/frontend/taipy-gui/src/components/Taipy/Table.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Table.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Table.tsx b/frontend/taipy-gui/src/components/Taipy/Table.tsx index e535fca84c..837dcf7ddc 100644 --- a/frontend/taipy-gui/src/components/Taipy/Table.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Table.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TableFilter.spec.tsx b/frontend/taipy-gui/src/components/Taipy/TableFilter.spec.tsx index ec6de11a98..141d315da7 100644 --- a/frontend/taipy-gui/src/components/Taipy/TableFilter.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TableFilter.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TableFilter.tsx b/frontend/taipy-gui/src/components/Taipy/TableFilter.tsx index b9ecaeabff..1e61508a02 100644 --- a/frontend/taipy-gui/src/components/Taipy/TableFilter.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TableFilter.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TableSort.spec.tsx b/frontend/taipy-gui/src/components/Taipy/TableSort.spec.tsx index 11cd82d711..15ec391ba6 100644 --- a/frontend/taipy-gui/src/components/Taipy/TableSort.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TableSort.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TableSort.tsx b/frontend/taipy-gui/src/components/Taipy/TableSort.tsx index 98ee71c61b..d571642908 100644 --- a/frontend/taipy-gui/src/components/Taipy/TableSort.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TableSort.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TaipyStyle.spec.tsx b/frontend/taipy-gui/src/components/Taipy/TaipyStyle.spec.tsx index 1c2db76d51..31091dacb2 100644 --- a/frontend/taipy-gui/src/components/Taipy/TaipyStyle.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TaipyStyle.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TaipyStyle.tsx b/frontend/taipy-gui/src/components/Taipy/TaipyStyle.tsx index c7e75cdea1..56d62f3655 100644 --- a/frontend/taipy-gui/src/components/Taipy/TaipyStyle.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TaipyStyle.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -29,7 +29,7 @@ interface TaipyStyleProps { export const getComponentClassName = (children: ReactNode) => ( React.Children.map(children, (element) => - React.isValidElement(element) && element.type == TaipyStyle ? element.props.className : undefined + React.isValidElement(element) && element.type == TaipyStyle ? (element.props as Record).className : undefined )?.filter((v) => v) || [] ).join(" "); diff --git a/frontend/taipy-gui/src/components/Taipy/ThemeToggle.spec.tsx b/frontend/taipy-gui/src/components/Taipy/ThemeToggle.spec.tsx index f316a06c3e..cf239df0af 100644 --- a/frontend/taipy-gui/src/components/Taipy/ThemeToggle.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/ThemeToggle.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/ThemeToggle.tsx b/frontend/taipy-gui/src/components/Taipy/ThemeToggle.tsx index 6318fc8b8e..0da63d1349 100644 --- a/frontend/taipy-gui/src/components/Taipy/ThemeToggle.tsx +++ b/frontend/taipy-gui/src/components/Taipy/ThemeToggle.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -20,14 +20,14 @@ import ToggleButtonGroup from "@mui/material/ToggleButtonGroup"; import WbSunny from "@mui/icons-material/WbSunny"; import Brightness3 from "@mui/icons-material/Brightness3"; -import { TaipyActiveProps, getCssSize } from "./utils"; +import { TaipyActiveProps, TaipyChangeProps, getCssSize } from "./utils"; import { TaipyContext } from "../../context/taipyContext"; -import { createThemeAction } from "../../context/taipyReducers"; -import { useClassNames } from "../../utils/hooks"; +import { createSendUpdateAction, createThemeAction } from "../../context/taipyReducers"; +import { useClassNames, useModule } from "../../utils/hooks"; import { getLocalStorageValue } from "../../context/utils"; import { getComponentClassName } from "./TaipyStyle"; -interface ThemeToggleProps extends TaipyActiveProps { +interface ThemeToggleProps extends TaipyActiveProps, TaipyChangeProps { style?: SxProps; label?: string; width?: string | number; @@ -53,11 +53,29 @@ const ThemeToggle = (props: ThemeToggleProps) => { const { id, label = "Mode", style = emptyStyle, active = true } = props; const { state, dispatch } = useContext(TaipyContext); + const module = useModule(); + const className = useClassNames(props.libClassName, props.dynamicClassName, props.className); + const updateBoundValue = useCallback( + (val: PaletteMode) => { + if (!props.updateVarName) { + return; + } + dispatch( + createSendUpdateAction(props.updateVarName, val === "dark", module, props.onChange, props.propagate), + ); + }, + [dispatch, props.updateVarName, props.onChange, props.propagate, module], + ); + + useEffect(() => { + updateBoundValue(state.theme.palette.mode); + }, [state.theme.palette.mode, updateBoundValue]); + const changeMode = useCallback( (evt: MouseEvent, mode: PaletteMode) => mode !== null && dispatch(createThemeAction(mode === "dark")), - [dispatch] + [dispatch], ); useEffect(() => { @@ -72,7 +90,7 @@ const ThemeToggle = (props: ThemeToggleProps) => { props.width ? ({ ...boxSx, ...style, width: getCssSize(props.width) } as SxProps) : ({ ...boxSx, ...style } as SxProps), - [style, props.width] + [style, props.width], ); return ( diff --git a/frontend/taipy-gui/src/components/Taipy/TimeSelector.spec.tsx b/frontend/taipy-gui/src/components/Taipy/TimeSelector.spec.tsx index e680cc67f8..6372712fc0 100644 --- a/frontend/taipy-gui/src/components/Taipy/TimeSelector.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TimeSelector.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -232,4 +232,4 @@ describe("TimeSelector component with analogue time picker", () => { expect(input).toBeInTheDocument(); expect(input).not.toBeDisabled(); }); -}); \ No newline at end of file +}); diff --git a/frontend/taipy-gui/src/components/Taipy/TimeSelector.tsx b/frontend/taipy-gui/src/components/Taipy/TimeSelector.tsx index cbad868d0c..041963ad6e 100644 --- a/frontend/taipy-gui/src/components/Taipy/TimeSelector.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TimeSelector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -94,7 +94,7 @@ const TimeSelector = (props: TimeSelectorProps) => { sx={timeSx} /> ):( - { /> ) ):( - { ); } -export default TimeSelector \ No newline at end of file +export default TimeSelector diff --git a/frontend/taipy-gui/src/components/Taipy/Toggle.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Toggle.spec.tsx index c4de55b427..6b63830291 100644 --- a/frontend/taipy-gui/src/components/Taipy/Toggle.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Toggle.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Toggle.tsx b/frontend/taipy-gui/src/components/Taipy/Toggle.tsx index 9933f80227..9b4f1229fb 100644 --- a/frontend/taipy-gui/src/components/Taipy/Toggle.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Toggle.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TreeView.spec.tsx b/frontend/taipy-gui/src/components/Taipy/TreeView.spec.tsx index 75a5bfe212..01bce85445 100644 --- a/frontend/taipy-gui/src/components/Taipy/TreeView.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TreeView.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/TreeView.tsx b/frontend/taipy-gui/src/components/Taipy/TreeView.tsx index 74289554a7..11d092d0cf 100644 --- a/frontend/taipy-gui/src/components/Taipy/TreeView.tsx +++ b/frontend/taipy-gui/src/components/Taipy/TreeView.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/UIBlocker.spec.tsx b/frontend/taipy-gui/src/components/Taipy/UIBlocker.spec.tsx index 0d3c67cd1f..77033cca85 100644 --- a/frontend/taipy-gui/src/components/Taipy/UIBlocker.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/UIBlocker.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/UIBlocker.tsx b/frontend/taipy-gui/src/components/Taipy/UIBlocker.tsx index 08f8b29243..636116444b 100644 --- a/frontend/taipy-gui/src/components/Taipy/UIBlocker.tsx +++ b/frontend/taipy-gui/src/components/Taipy/UIBlocker.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Unregistered.spec.tsx b/frontend/taipy-gui/src/components/Taipy/Unregistered.spec.tsx index 4d27279e78..51d91e2c62 100644 --- a/frontend/taipy-gui/src/components/Taipy/Unregistered.spec.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Unregistered.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/Unregistered.tsx b/frontend/taipy-gui/src/components/Taipy/Unregistered.tsx index 5444bf8b73..3260e7eb07 100644 --- a/frontend/taipy-gui/src/components/Taipy/Unregistered.tsx +++ b/frontend/taipy-gui/src/components/Taipy/Unregistered.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/index.ts b/frontend/taipy-gui/src/components/Taipy/index.ts index 023ea0a9f3..6957e7e66d 100644 --- a/frontend/taipy-gui/src/components/Taipy/index.ts +++ b/frontend/taipy-gui/src/components/Taipy/index.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -46,7 +46,7 @@ import Toggle from "./Toggle"; import TimeSelector from "./TimeSelector"; import TreeView from "./TreeView"; -const registeredComponents: Record = {}; +const registeredComponents: Record> = {}; export const getRegisteredComponents = () => { if (registeredComponents.TreeView === undefined) { @@ -106,5 +106,5 @@ export const getRegisteredComponents = () => { }); } } - return registeredComponents; + return registeredComponents as Record>; }; diff --git a/frontend/taipy-gui/src/components/Taipy/lovUtils.tsx b/frontend/taipy-gui/src/components/Taipy/lovUtils.tsx index e81062e330..fefc9f647a 100644 --- a/frontend/taipy-gui/src/components/Taipy/lovUtils.tsx +++ b/frontend/taipy-gui/src/components/Taipy/lovUtils.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/Taipy/tableUtils.tsx b/frontend/taipy-gui/src/components/Taipy/tableUtils.tsx index 3ef9c88453..ad747bb166 100644 --- a/frontend/taipy-gui/src/components/Taipy/tableUtils.tsx +++ b/frontend/taipy-gui/src/components/Taipy/tableUtils.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -102,6 +102,8 @@ export interface ColumnDesc { lov?: string[]; /** If true the user can enter any value besides the lov values. */ freeLov?: boolean; + /** If false, the column cannot be sorted */ + sortable?: boolean; } export const DEFAULT_SIZE = "small"; @@ -156,6 +158,7 @@ export interface TaipyTableProps extends TaipyActiveProps, TaipyMultiSelectProps onCompare?: string; compare?: boolean; useCheckbox?: boolean; + sortable?: boolean; } export const DownloadAction = "__Taipy__download_csv"; diff --git a/frontend/taipy-gui/src/components/Taipy/utils.ts b/frontend/taipy-gui/src/components/Taipy/utils.ts index a714cbbea7..c04c497311 100644 --- a/frontend/taipy-gui/src/components/Taipy/utils.ts +++ b/frontend/taipy-gui/src/components/Taipy/utils.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -116,14 +116,14 @@ export const noDisplayStyle = { display: "none" }; const RE_ONLY_NUMBERS = /^\d+(\.\d*)?$/; export const getCssSize = (val: string | number) => { if (typeof val === "number") { - return "" + val + "px"; + return `${val}px`; } else { - val = val.trim(); + val = `${val}`.trim(); if (RE_ONLY_NUMBERS.test(val)) { - return val + "px"; + return `${val}px`; } + return val; } - return val; }; /** diff --git a/frontend/taipy-gui/src/components/icons/MatchCase.tsx b/frontend/taipy-gui/src/components/icons/MatchCase.tsx index 23342ade2e..28ebc9d9fd 100644 --- a/frontend/taipy-gui/src/components/icons/MatchCase.tsx +++ b/frontend/taipy-gui/src/components/icons/MatchCase.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/pages/MainPage.tsx b/frontend/taipy-gui/src/components/pages/MainPage.tsx index 845df46f4f..5762f1832d 100644 --- a/frontend/taipy-gui/src/components/pages/MainPage.tsx +++ b/frontend/taipy-gui/src/components/pages/MainPage.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -12,7 +12,7 @@ */ import React, { useEffect } from "react"; -import { useNavigate, useLocation } from "react-router-dom"; +import { useNavigate, useLocation } from "react-router"; import TaipyRendered from "./TaipyRendered"; import { getBaseURL } from "../../utils"; diff --git a/frontend/taipy-gui/src/components/pages/NotFound404.tsx b/frontend/taipy-gui/src/components/pages/NotFound404.tsx index b4bf540a8a..c652356677 100644 --- a/frontend/taipy-gui/src/components/pages/NotFound404.tsx +++ b/frontend/taipy-gui/src/components/pages/NotFound404.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/components/pages/PageContent.tsx b/frontend/taipy-gui/src/components/pages/PageContent.tsx index cdcd2bd631..4669fbacbd 100644 --- a/frontend/taipy-gui/src/components/pages/PageContent.tsx +++ b/frontend/taipy-gui/src/components/pages/PageContent.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -12,7 +12,7 @@ */ import React from "react"; -import { Outlet } from "react-router-dom"; +import { Outlet } from "react-router"; const PageContent = () => ; diff --git a/frontend/taipy-gui/src/components/pages/TaipyRendered.tsx b/frontend/taipy-gui/src/components/pages/TaipyRendered.tsx index 510d3a971b..c8e6f02527 100644 --- a/frontend/taipy-gui/src/components/pages/TaipyRendered.tsx +++ b/frontend/taipy-gui/src/components/pages/TaipyRendered.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -11,12 +11,12 @@ * specific language governing permissions and limitations under the License. */ -import React, { ComponentType, useContext, useEffect, useState } from "react"; +import React, { useContext, useEffect, useState } from "react"; import axios from "axios"; import { ErrorBoundary } from "react-error-boundary"; import { Helmet } from "react-helmet-async"; import JsxParser from "react-jsx-parser"; -import { useLocation } from "react-router-dom"; +import { useLocation } from "react-router"; import { PageContext, TaipyContext } from "../../context/taipyContext"; import { createPartialAction } from "../../context/taipyReducers"; @@ -42,6 +42,7 @@ interface AxiosRenderer { style: string; head: HeadProps[]; context: string; + scriptPaths: string[]; } // set global style the traditional way @@ -61,6 +62,18 @@ const setStyle = (id: string, styleString: string): void => { } }; +// set script tag for the page +const setScript = (id: string, scriptPaths: string[]): void => { + document.querySelectorAll(`script[id^="${id}_"]`).forEach(script => script.remove()); + scriptPaths.forEach((path, index) => { + const script = document.createElement("script"); + script.id = `${id}_${index}`; + script.src = path; + script.defer = true; + document.head.append(script); + }); +}; + interface PageState { jsx?: string; module?: string; @@ -97,9 +110,10 @@ const TaipyRendered = (props: TaipyRenderedProps) => { if (!fromBlock) { setStyle( path == "/TaiPy_root_page" ? "Taipy_root_style" : "Taipy_style", - result.data.style || "" + result.data.style || "", ); Array.isArray(result.data.head) && setHead(result.data.head); + Array.isArray(result.data.scriptPaths) && setScript("Taipy_script", result.data.scriptPaths); } }) .catch((error) => { @@ -126,7 +140,7 @@ const TaipyRendered = (props: TaipyRenderedProps) => { } + components={getRegisteredComponents()} jsx={pageState.jsx} renderUnrecognized={unregisteredRender} allowUnknownElements={false} diff --git a/frontend/taipy-gui/src/context/taipyContext.ts b/frontend/taipy-gui/src/context/taipyContext.ts index 6f08a28fa1..313f5ac387 100644 --- a/frontend/taipy-gui/src/context/taipyContext.ts +++ b/frontend/taipy-gui/src/context/taipyContext.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/context/taipyReducers.spec.ts b/frontend/taipy-gui/src/context/taipyReducers.spec.ts index 27a8813b24..aecd76abc9 100644 --- a/frontend/taipy-gui/src/context/taipyReducers.spec.ts +++ b/frontend/taipy-gui/src/context/taipyReducers.spec.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/context/taipyReducers.ts b/frontend/taipy-gui/src/context/taipyReducers.ts index 8a8c53798c..b0ac7c2574 100644 --- a/frontend/taipy-gui/src/context/taipyReducers.ts +++ b/frontend/taipy-gui/src/context/taipyReducers.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/extensions/exports.ts b/frontend/taipy-gui/src/extensions/exports.ts index ac0f32a7b4..90d54e0b06 100644 --- a/frontend/taipy-gui/src/extensions/exports.ts +++ b/frontend/taipy-gui/src/extensions/exports.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/index.tsx b/frontend/taipy-gui/src/index.tsx index 119a3ef1ec..f9586553c4 100644 --- a/frontend/taipy-gui/src/index.tsx +++ b/frontend/taipy-gui/src/index.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/themes/darkThemeTemplate.ts b/frontend/taipy-gui/src/themes/darkThemeTemplate.ts index d7fa3d9592..85ccd7d97f 100644 --- a/frontend/taipy-gui/src/themes/darkThemeTemplate.ts +++ b/frontend/taipy-gui/src/themes/darkThemeTemplate.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/themes/stylekit.ts b/frontend/taipy-gui/src/themes/stylekit.ts index 3cc66c8971..65ac61321e 100644 --- a/frontend/taipy-gui/src/themes/stylekit.ts +++ b/frontend/taipy-gui/src/themes/stylekit.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/ErrorBoundary.tsx b/frontend/taipy-gui/src/utils/ErrorBoundary.tsx index 92b36bcc72..6da474e869 100644 --- a/frontend/taipy-gui/src/utils/ErrorBoundary.tsx +++ b/frontend/taipy-gui/src/utils/ErrorBoundary.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/dataFormat.spec.ts b/frontend/taipy-gui/src/utils/dataFormat.spec.ts index 3c905efb90..3c1ddacabd 100644 --- a/frontend/taipy-gui/src/utils/dataFormat.spec.ts +++ b/frontend/taipy-gui/src/utils/dataFormat.spec.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/dataFormat.ts b/frontend/taipy-gui/src/utils/dataFormat.ts index 652071060d..bbb81ac1c6 100644 --- a/frontend/taipy-gui/src/utils/dataFormat.ts +++ b/frontend/taipy-gui/src/utils/dataFormat.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/formatConversion.ts b/frontend/taipy-gui/src/utils/formatConversion.ts index 6ed70cfa8b..4ae8b4ba5e 100644 --- a/frontend/taipy-gui/src/utils/formatConversion.ts +++ b/frontend/taipy-gui/src/utils/formatConversion.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/hooks.ts b/frontend/taipy-gui/src/utils/hooks.ts index 430ca2bac9..14f3b3f1cd 100644 --- a/frontend/taipy-gui/src/utils/hooks.ts +++ b/frontend/taipy-gui/src/utils/hooks.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at @@ -191,7 +191,7 @@ export const useWhyDidYouUpdate = (name: string, props: Record) }); }; -export const useElementVisible = (ref: RefObject) => { +export const useElementVisible = (ref: RefObject) => { const observerRef = useRef(null); const [isOnScreen, setIsOnScreen] = useState(false); diff --git a/frontend/taipy-gui/src/utils/icon.tsx b/frontend/taipy-gui/src/utils/icon.tsx index 0a8a4a85eb..aec7611430 100644 --- a/frontend/taipy-gui/src/utils/icon.tsx +++ b/frontend/taipy-gui/src/utils/icon.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/image.ts b/frontend/taipy-gui/src/utils/image.ts index 6de283cc30..6f6894eef0 100644 --- a/frontend/taipy-gui/src/utils/image.ts +++ b/frontend/taipy-gui/src/utils/image.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/index.spec.ts b/frontend/taipy-gui/src/utils/index.spec.ts index 9e7709b30e..665f335328 100644 --- a/frontend/taipy-gui/src/utils/index.spec.ts +++ b/frontend/taipy-gui/src/utils/index.spec.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/index.ts b/frontend/taipy-gui/src/utils/index.ts index fee7294669..072f129d2c 100644 --- a/frontend/taipy-gui/src/utils/index.ts +++ b/frontend/taipy-gui/src/utils/index.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/lov.ts b/frontend/taipy-gui/src/utils/lov.ts index f061278c9e..74dedff59c 100644 --- a/frontend/taipy-gui/src/utils/lov.ts +++ b/frontend/taipy-gui/src/utils/lov.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/utils/utils.spec.ts b/frontend/taipy-gui/src/utils/utils.spec.ts index a2df2c15a8..5c311aaee5 100644 --- a/frontend/taipy-gui/src/utils/utils.spec.ts +++ b/frontend/taipy-gui/src/utils/utils.spec.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/workers/fileupload.ts b/frontend/taipy-gui/src/workers/fileupload.ts index 9e14a39e76..24b73a18f6 100644 --- a/frontend/taipy-gui/src/workers/fileupload.ts +++ b/frontend/taipy-gui/src/workers/fileupload.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/workers/fileupload.utils.ts b/frontend/taipy-gui/src/workers/fileupload.utils.ts index 81a339bb0e..8fb4a7caca 100644 --- a/frontend/taipy-gui/src/workers/fileupload.utils.ts +++ b/frontend/taipy-gui/src/workers/fileupload.utils.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/src/workers/fileupload.worker.ts b/frontend/taipy-gui/src/workers/fileupload.worker.ts index bf65f0dacf..c2b93b35e8 100644 --- a/frontend/taipy-gui/src/workers/fileupload.worker.ts +++ b/frontend/taipy-gui/src/workers/fileupload.worker.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/test-config/Canvas.js b/frontend/taipy-gui/test-config/Canvas.js index 9f6aa85e74..720fea8666 100644 --- a/frontend/taipy-gui/test-config/Canvas.js +++ b/frontend/taipy-gui/test-config/Canvas.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/test-config/createObjectUrl.js b/frontend/taipy-gui/test-config/createObjectUrl.js index dbcbca3713..62abed7182 100644 --- a/frontend/taipy-gui/test-config/createObjectUrl.js +++ b/frontend/taipy-gui/test-config/createObjectUrl.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/test-config/jest.env.js b/frontend/taipy-gui/test-config/jest.env.js index 25a813b8ac..eca156d5c6 100644 --- a/frontend/taipy-gui/test-config/jest.env.js +++ b/frontend/taipy-gui/test-config/jest.env.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/test-config/mockFileUpload.js b/frontend/taipy-gui/test-config/mockFileUpload.js index 644ff9d308..be6ed206cc 100644 --- a/frontend/taipy-gui/test-config/mockFileUpload.js +++ b/frontend/taipy-gui/test-config/mockFileUpload.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/test-config/nanoid.js b/frontend/taipy-gui/test-config/nanoid.js index 5482ac08e1..7deb7f5631 100644 --- a/frontend/taipy-gui/test-config/nanoid.js +++ b/frontend/taipy-gui/test-config/nanoid.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy-gui/webpack.config.js b/frontend/taipy-gui/webpack.config.js index 64ad3d27f8..cb5739799b 100644 --- a/frontend/taipy-gui/webpack.config.js +++ b/frontend/taipy-gui/webpack.config.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/.eslintrc.js b/frontend/taipy/.eslintrc.js index a0305ade37..13686ed8e5 100644 --- a/frontend/taipy/.eslintrc.js +++ b/frontend/taipy/.eslintrc.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/jest.config.js b/frontend/taipy/jest.config.js index 125814d9a7..93bd5b4473 100644 --- a/frontend/taipy/jest.config.js +++ b/frontend/taipy/jest.config.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/package-lock.json b/frontend/taipy/package-lock.json index 3ed3ed53f8..10c0932f1a 100644 --- a/frontend/taipy/package-lock.json +++ b/frontend/taipy/package-lock.json @@ -35,10 +35,10 @@ "child_process": "^1.0.2", "cross-env": "^7.0.3", "dotenv": "^16.4.5", - "eslint": "^8.20.0", + "eslint": "^9.18.0", "eslint-plugin-react": "^7.30.1", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-tsdoc": "^0.3.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-tsdoc": "^0.4.0", "eslint-webpack-plugin": "^4.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -46,26 +46,24 @@ "ts-loader": "^9.3.1", "typescript": "^5.0.2", "webpack": "^5.74.0", - "webpack-cli": "^5.0.1" + "webpack-cli": "^6.0.1" } }, "../../taipy/gui/webapp": { "name": "taipy-gui", - "version": "4.0.0" + "version": "4.1.0" }, "node_modules/@adobe/css-tools": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz", - "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==", - "dev": true, - "license": "MIT" + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", + "dev": true }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -78,7 +76,6 @@ "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", @@ -89,11 +86,10 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -103,7 +99,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.0", @@ -133,27 +128,24 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", - "license": "MIT", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -163,13 +155,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -184,7 +175,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -193,7 +183,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -207,7 +196,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", @@ -221,11 +209,10 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -234,7 +221,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -243,7 +229,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -253,7 +238,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -263,7 +247,6 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.25.9", "@babel/types": "^7.26.0" @@ -273,12 +256,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", - "license": "MIT", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -292,7 +274,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -305,7 +286,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -318,7 +298,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -331,7 +310,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -347,7 +325,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -363,7 +340,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -376,7 +352,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -389,7 +364,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -405,7 +379,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -418,7 +391,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -431,7 +403,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -444,7 +415,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -457,7 +427,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -470,7 +439,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -483,7 +451,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -499,7 +466,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -515,7 +481,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -527,9 +492,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -541,7 +506,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.25.9", "@babel/parser": "^7.25.9", @@ -552,16 +516,15 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", - "license": "MIT", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -570,10 +533,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", - "license": "MIT", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -586,28 +548,27 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", "dev": true, "engines": { - "node": ">=10.0.0" + "node": ">=14.17.0" } }, "node_modules/@emotion/babel-plugin": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", - "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", - "@emotion/serialize": "^1.2.0", + "@emotion/serialize": "^1.3.3", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", @@ -617,13 +578,13 @@ } }, "node_modules/@emotion/cache": { - "version": "11.13.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", - "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", "dependencies": { "@emotion/memoize": "^0.9.0", "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.0", + "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "stylis": "4.2.0" } @@ -647,16 +608,16 @@ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { - "version": "11.13.3", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", - "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.12.0", - "@emotion/cache": "^11.13.0", - "@emotion/serialize": "^1.3.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", - "@emotion/utils": "^1.4.0", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" }, @@ -670,14 +631,14 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz", - "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", "dependencies": { "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.1", + "@emotion/utils": "^1.4.2", "csstype": "^3.0.2" } }, @@ -687,16 +648,16 @@ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" }, "node_modules/@emotion/styled": { - "version": "11.13.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz", - "integrity": "sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", + "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.12.0", + "@emotion/babel-plugin": "^11.13.5", "@emotion/is-prop-valid": "^1.3.0", - "@emotion/serialize": "^1.3.0", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", - "@emotion/utils": "^1.4.0" + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" }, "peerDependencies": { "@emotion/react": "^11.0.0-rc.0", @@ -714,17 +675,17 @@ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.1.tgz", - "integrity": "sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==" }, "node_modules/@emotion/weak-memoize": { "version": "0.4.0", @@ -732,39 +693,90 @@ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" }, "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==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -772,7 +784,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -789,15 +801,12 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -816,49 +825,69 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" }, "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": "*" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -874,19 +903,24 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "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, - "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -903,7 +937,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -913,7 +946,6 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -927,7 +959,6 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -941,7 +972,6 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -954,7 +984,6 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -970,7 +999,6 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -983,7 +1011,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -993,7 +1020,6 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -1003,7 +1029,6 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -1021,7 +1046,6 @@ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -1069,7 +1093,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -1082,7 +1105,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -1092,12 +1114,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/@jest/environment": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -1113,7 +1140,6 @@ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "license": "MIT", "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -1127,7 +1153,6 @@ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3" }, @@ -1140,7 +1165,6 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -1158,7 +1182,6 @@ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -1174,7 +1197,6 @@ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, - "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -1230,7 +1252,6 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -1245,7 +1266,6 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -1261,7 +1281,6 @@ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -1277,7 +1296,6 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -1303,8 +1321,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@jest/types": { "version": "29.6.3", @@ -1324,9 +1341,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1377,18 +1394,18 @@ } }, "node_modules/@microsoft/tsdoc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", - "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", + "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", "dev": true }, "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", - "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", + "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", "dev": true, "dependencies": { - "@microsoft/tsdoc": "0.15.0", + "@microsoft/tsdoc": "0.15.1", "ajv": "~8.12.0", "jju": "~1.4.0", "resolve": "~1.22.2" @@ -1417,20 +1434,20 @@ "dev": true }, "node_modules/@mui/core-downloads-tracker": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.1.2.tgz", - "integrity": "sha512-1oE4U38/TtzLWRYWEm/m70dUbpcvBx0QvDVg6NtpOmSNQC1Mbx0X/rNvYDdZnn8DIsAiVQ+SZ3am6doSswUQ4g==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.3.1.tgz", + "integrity": "sha512-2OmnEyoHpj5//dJJpMuxOeLItCCHdf99pjMFfUFdBteCunAK9jW+PwEo4mtdGcLs7P+IgZ+85ypd52eY4AigoQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.1.2.tgz", - "integrity": "sha512-7NNcjW5JoT9jHagrVbARA1o41vQY2xezDamtke+mEKKZmsJyejfRBOacSrPDfjZQ//lyhIjNKyzAwisxYJR47w==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.3.1.tgz", + "integrity": "sha512-nJmWj1PBlwS3t1PnoqcixIsftE+7xrW3Su7f0yrjPw4tVjYrgkhU0hrRp+OlURfZ3ptdSkoBkalee9Bhf1Erfw==", "dependencies": { - "@babel/runtime": "^7.25.6" + "@babel/runtime": "^7.26.0" }, "engines": { "node": ">=14.0.0" @@ -1440,7 +1457,7 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^6.1.2", + "@mui/material": "^6.3.1", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -1451,21 +1468,21 @@ } }, "node_modules/@mui/material": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.1.2.tgz", - "integrity": "sha512-5TtHeAVX9D5d2LYfB1GAUn29BcVETVsrQ76Dwb2SpAfQGW3JVy4deJCAd0RrIkI3eEUrsl0E4xuBdreszxdTTg==", - "dependencies": { - "@babel/runtime": "^7.25.6", - "@mui/core-downloads-tracker": "^6.1.2", - "@mui/system": "^6.1.2", - "@mui/types": "^7.2.17", - "@mui/utils": "^6.1.2", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.3.1.tgz", + "integrity": "sha512-ynG9ayhxgCsHJ/dtDcT1v78/r2GwQyP3E0hPz3GdPRl0uFJz/uUTtI5KFYwadXmbC+Uv3bfB8laZ6+Cpzh03gA==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/core-downloads-tracker": "^6.3.1", + "@mui/system": "^6.3.1", + "@mui/types": "^7.2.21", + "@mui/utils": "^6.3.1", "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.11", + "@types/react-transition-group": "^4.4.12", "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1", - "react-is": "^18.3.1", + "react-is": "^19.0.0", "react-transition-group": "^4.4.5" }, "engines": { @@ -1478,7 +1495,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^6.1.2", + "@mui/material-pigment-css": "^6.3.1", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -1499,12 +1516,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.1.2.tgz", - "integrity": "sha512-S8WcjZdNdi++8UhrrY8Lton5h/suRiQexvdTfdcPAlbajlvgM+kx+uJstuVIEyTb3gMkxzIZep87knZ0tqcR0g==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.3.1.tgz", + "integrity": "sha512-g0u7hIUkmXmmrmmf5gdDYv9zdAig0KoxhIQn1JN8IVqApzf/AyRhH3uDGx5mSvs8+a1zb4+0W6LC260SyTTtdQ==", "dependencies": { - "@babel/runtime": "^7.25.6", - "@mui/utils": "^6.1.2", + "@babel/runtime": "^7.26.0", + "@mui/utils": "^6.3.1", "prop-types": "^15.8.1" }, "engines": { @@ -1525,12 +1542,13 @@ } }, "node_modules/@mui/styled-engine": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.1.2.tgz", - "integrity": "sha512-uKOfWkR23X39xj7th2nyTcCHqInTAXtUnqD3T5qRVdJcOPvu1rlgTleTwJC/FJvWZJBU6ieuTWDhbcx5SNViHQ==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.3.1.tgz", + "integrity": "sha512-/7CC0d2fIeiUxN5kCCwYu4AWUDd9cCTxWCyo0v/Rnv6s8uk6hWgJC3VLZBoDENBHf/KjqDZuYJ2CR+7hD6QYww==", "dependencies": { - "@babel/runtime": "^7.25.6", - "@emotion/cache": "^11.13.1", + "@babel/runtime": "^7.26.0", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", "@emotion/sheet": "^1.4.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -1557,15 +1575,15 @@ } }, "node_modules/@mui/system": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.1.2.tgz", - "integrity": "sha512-mzW7F1ZMIYS1aLON48Nrk9c65OrVEVQ+R4lUcTWs1lCSul0VGK23eo4dmY0NX5PS7Oe4xz3P5B9tQZZ7SYgxcg==", - "dependencies": { - "@babel/runtime": "^7.25.6", - "@mui/private-theming": "^6.1.2", - "@mui/styled-engine": "^6.1.2", - "@mui/types": "^7.2.17", - "@mui/utils": "^6.1.2", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.3.1.tgz", + "integrity": "sha512-AwqQ3EAIT2np85ki+N15fF0lFXX1iFPqenCzVOSl3QXKy2eifZeGd9dGtt7pGMoFw5dzW4dRGGzRpLAq9rkl7A==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/private-theming": "^6.3.1", + "@mui/styled-engine": "^6.3.1", + "@mui/types": "^7.2.21", + "@mui/utils": "^6.3.1", "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -1596,9 +1614,9 @@ } }, "node_modules/@mui/types": { - "version": "7.2.17", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.17.tgz", - "integrity": "sha512-oyumoJgB6jDV8JFzRqjBo2daUuHpzDjoO/e3IrRhhHo/FxJlaVhET6mcNrKHUq2E+R+q3ql0qAtvQ4rfWHhAeQ==", + "version": "7.2.21", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz", + "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -1609,16 +1627,16 @@ } }, "node_modules/@mui/utils": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.1.2.tgz", - "integrity": "sha512-6+B1YZ8cCBWD1fc3RjqpclF9UA0MLUiuXhyCO+XowD/Z2ku5IlxeEhHHlgglyBWFGMu4kib4YU3CDsG5/zVjJQ==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.3.1.tgz", + "integrity": "sha512-sjGjXAngoio6lniQZKJ5zGfjm+LD2wvLwco7FbKe1fu8A7VIFmz2SwkLb+MDPLNX1lE7IscvNNyh1pobtZg2tw==", "dependencies": { - "@babel/runtime": "^7.25.6", - "@mui/types": "^7.2.17", - "@types/prop-types": "^15.7.13", + "@babel/runtime": "^7.26.0", + "@mui/types": "^7.2.21", + "@types/prop-types": "^15.7.14", "clsx": "^2.1.1", "prop-types": "^15.8.1", - "react-is": "^18.3.1" + "react-is": "^19.0.0" }, "engines": { "node": ">=14.0.0" @@ -1638,13 +1656,13 @@ } }, "node_modules/@mui/x-date-pickers": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.18.0.tgz", - "integrity": "sha512-12tXIoMj9vpS8fS/bS3kWPCoVrH38vNGCxgplI0vOnUrN9rJuYJz3agLPJe1S0xciTw+9W8ZSe3soaW+owoz1Q==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.23.6.tgz", + "integrity": "sha512-jt6rEAYLju3NZe3y2S+I5KcTiSHV79FW0jeNUEUTceg1qsPzseHbND66k3zVF0hO3N2oZtLtPywof6vN5Doe+Q==", "dependencies": { - "@babel/runtime": "^7.25.6", - "@mui/utils": "^5.16.6", - "@mui/x-internals": "7.18.0", + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0", + "@mui/x-internals": "7.23.6", "@types/react-transition-group": "^4.4.11", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -1663,14 +1681,14 @@ "@mui/material": "^5.15.14 || ^6.0.0", "@mui/system": "^5.15.14 || ^6.0.0", "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", - "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0", + "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0", "dayjs": "^1.10.7", "luxon": "^3.0.2", "moment": "^2.29.4", - "moment-hijri": "^2.1.2", + "moment-hijri": "^2.1.2 || ^3.0.0", "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -1702,42 +1720,13 @@ } } }, - "node_modules/@mui/x-date-pickers/node_modules/@mui/utils": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", - "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/x-internals": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.18.0.tgz", - "integrity": "sha512-lzCHOWIR0cAIY1bGrWSprYerahbnH5C31ql/2OWCEjcngL2NAV1M6oKI2Vp4HheqzJ822c60UyWyapvyjSzY/A==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.23.6.tgz", + "integrity": "sha512-hT1Pa4PNCnxwiauPbYMC3p4DiEF1x05Iu4C1MtC/jMJ1LtthymLmTuQ6ZQ53/R9FeqK6sYd6A6noR+vNMjp5DA==", "dependencies": { - "@babel/runtime": "^7.25.6", - "@mui/utils": "^5.16.6" + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0" }, "engines": { "node": ">=14.0.0" @@ -1747,46 +1736,17 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "react": "^17.0.0 || ^18.0.0" - } - }, - "node_modules/@mui/x-internals/node_modules/@mui/utils": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", - "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@mui/x-tree-view": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@mui/x-tree-view/-/x-tree-view-7.18.0.tgz", - "integrity": "sha512-3UJAYtBquc0SzKxEEdM68XlKOuuCl70ktZPqqI3z4wTZ0HK445XXc32t/s0VPIL94kRxWQcGPpgWFauScDwhug==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@mui/x-tree-view/-/x-tree-view-7.23.6.tgz", + "integrity": "sha512-4gXXQtgxNW4aHGtksLJUBkRdK7m7CdV/j2OwemrjdmU0bEOz82ta7X4vQrIsaXXfxatuomaOy+MXOzEv6xbNqA==", "dependencies": { - "@babel/runtime": "^7.25.6", - "@mui/utils": "^5.16.6", - "@mui/x-internals": "7.18.0", + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0", + "@mui/x-internals": "7.23.6", "@types/react-transition-group": "^4.4.11", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -1804,8 +1764,8 @@ "@emotion/styled": "^11.8.1", "@mui/material": "^5.15.14 || ^6.0.0", "@mui/system": "^5.15.14 || ^6.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -1816,35 +1776,6 @@ } } }, - "node_modules/@mui/x-tree-view/node_modules/@mui/utils": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", - "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1974,7 +1905,6 @@ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } @@ -1984,7 +1914,6 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } @@ -1994,7 +1923,6 @@ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", @@ -2015,7 +1943,6 @@ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", "dev": true, - "license": "MIT", "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", @@ -2036,7 +1963,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2049,15 +1975,13 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@testing-library/react": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.0.1.tgz", - "integrity": "sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.1.0.tgz", + "integrity": "sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -2066,10 +1990,10 @@ }, "peerDependencies": { "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0", - "@types/react-dom": "^18.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2085,7 +2009,6 @@ "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12", "npm": ">=6" @@ -2095,10 +2018,9 @@ } }, "node_modules/@textea/json-viewer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@textea/json-viewer/-/json-viewer-4.0.0.tgz", - "integrity": "sha512-TOrvWJ3E1Qg8pRu2eTdMSYJl/JwaYtMGD6EIzYsaicFIA0jICZa/WH4D7/0anH5At8eYfubPTfjjBqnair5WIA==", - "license": "MIT", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@textea/json-viewer/-/json-viewer-4.0.1.tgz", + "integrity": "sha512-7FH4ti3kVNyKhe/gl85w+8KllXJY9XQalY2KZnBn9ST1CjhqZQCWJLkYf24aX2FOv2D/8cvAllYkFX46A7C9KQ==", "dependencies": { "clsx": "^2.1.1", "copy-to-clipboard": "^3.3.3", @@ -2117,7 +2039,6 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10" } @@ -2127,7 +2048,6 @@ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/@types/babel__core": { @@ -2135,7 +2055,6 @@ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -2149,7 +2068,6 @@ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } @@ -2159,7 +2077,6 @@ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -2170,7 +2087,6 @@ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } @@ -2185,6 +2101,16 @@ "@types/json-schema": "*" } }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2196,15 +2122,14 @@ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -2239,7 +2164,6 @@ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, - "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -2250,7 +2174,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -2263,7 +2186,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -2273,12 +2195,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", @@ -2292,12 +2219,12 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.7.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz", - "integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==", + "version": "22.10.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.6.tgz", + "integrity": "sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==", "dev": true, "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.20.0" } }, "node_modules/@types/parse-json": { @@ -2306,24 +2233,24 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" }, "node_modules/@types/react": { - "version": "18.3.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", - "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-transition-group": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", - "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", - "dependencies": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "peerDependencies": { "@types/react": "*" } }, @@ -2331,15 +2258,13 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/yargs": { "version": "17.0.33", @@ -2357,20 +2282,20 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.0.tgz", - "integrity": "sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", + "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.8.0", - "@typescript-eslint/type-utils": "8.8.0", - "@typescript-eslint/utils": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/type-utils": "8.20.0", + "@typescript-eslint/utils": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2381,24 +2306,20 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.0.tgz", - "integrity": "sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.20.0.tgz", + "integrity": "sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.8.0", - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/typescript-estree": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4" }, "engines": { @@ -2409,22 +2330,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.0.tgz", - "integrity": "sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", + "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0" + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2435,15 +2352,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.0.tgz", - "integrity": "sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", + "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.8.0", - "@typescript-eslint/utils": "8.8.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/utils": "8.20.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2452,16 +2369,15 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.0.tgz", - "integrity": "sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", + "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2472,19 +2388,19 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.0.tgz", - "integrity": "sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", + "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/visitor-keys": "8.8.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2493,22 +2409,20 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.0.tgz", - "integrity": "sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", + "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.8.0", - "@typescript-eslint/types": "8.8.0", - "@typescript-eslint/typescript-estree": "8.8.0" + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2518,17 +2432,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.0.tgz", - "integrity": "sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", + "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.8.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.20.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2538,195 +2453,201 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", "dev": true, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", "dev": true, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", "dev": true, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -2751,13 +2672,12 @@ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2771,21 +2691,11 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, - "license": "MIT", "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -2800,7 +2710,6 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, - "license": "MIT", "dependencies": { "acorn": "^8.11.0" }, @@ -2813,7 +2722,6 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "4" }, @@ -2890,7 +2798,6 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -2901,19 +2808,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2928,7 +2822,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2944,7 +2837,6 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2964,19 +2856,18 @@ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, - "license": "Apache-2.0", "dependencies": { "dequal": "^2.0.3" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -3026,15 +2917,15 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3044,15 +2935,15 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3078,19 +2969,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -3103,15 +2993,13 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/available-typed-arrays": { "version": "1.0.7", @@ -3133,7 +3021,6 @@ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -3155,7 +3042,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -3172,7 +3058,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -3189,7 +3074,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -3199,7 +3083,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -3229,7 +3112,6 @@ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -3256,7 +3138,6 @@ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -3296,9 +3177,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -3315,10 +3196,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -3332,7 +3213,6 @@ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, - "license": "MIT", "dependencies": { "fast-json-stable-stringify": "2.x" }, @@ -3345,7 +3225,6 @@ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } @@ -3357,16 +3236,44 @@ "dev": true }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -3388,15 +3295,14 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001666", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001666.tgz", - "integrity": "sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==", + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", "dev": true, "funding": [ { @@ -3418,7 +3324,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3435,7 +3340,6 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -3474,15 +3378,13 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3519,7 +3421,6 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -3529,15 +3430,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3549,8 +3448,7 @@ "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, - "license": "MIT" + "dev": true }, "node_modules/colorette": { "version": "2.0.20", @@ -3563,7 +3461,6 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -3592,7 +3489,6 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "license": "MIT", "dependencies": { "toggle-selection": "^1.0.6" } @@ -3617,7 +3513,6 @@ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -3639,7 +3534,6 @@ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.1" }, @@ -3654,9 +3548,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -3671,22 +3565,19 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, - "license": "MIT", "dependencies": { "cssom": "~0.3.6" }, @@ -3698,8 +3589,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/csstype": { "version": "3.1.3", @@ -3720,7 +3610,6 @@ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "dev": true, - "license": "MIT", "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -3731,14 +3620,14 @@ } }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3748,29 +3637,29 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -3791,9 +3680,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dependencies": { "ms": "^2.1.3" }, @@ -3810,15 +3699,13 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/dedent": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -3881,7 +3768,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -3891,7 +3777,6 @@ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -3901,7 +3786,6 @@ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -3911,29 +3795,15 @@ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/dom-helpers": { @@ -3951,7 +3821,6 @@ "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "deprecated": "Use your platform's native DOMException instead", "dev": true, - "license": "MIT", "dependencies": { "webidl-conversions": "^7.0.0" }, @@ -3960,9 +3829,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "dev": true, "engines": { "node": ">=12" @@ -3971,12 +3840,25 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -3988,9 +3870,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.31", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.31.tgz", - "integrity": "sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==", + "version": "1.5.80", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.80.tgz", + "integrity": "sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==", "dev": true }, "node_modules/emittery": { @@ -3998,7 +3880,6 @@ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -4010,13 +3891,12 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -4031,7 +3911,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -4060,57 +3939,62 @@ } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -4120,13 +4004,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -4141,40 +4022,42 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.1.tgz", + "integrity": "sha512-BPOBuyUF9QIVhuNLhbToCLHP6+0MHwZ7xLBkPPCZqK4JmpJgGnv10035STzzQwFpqdzNFMB3irvDI63IagvDwA==", "dev": true, "dependencies": { "es-errors": "^1.3.0" @@ -4184,14 +4067,15 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -4207,14 +4091,14 @@ } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -4248,7 +4132,6 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -4270,90 +4153,93 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-plugin-react": { - "version": "7.37.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", - "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", + "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", + "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "engines": { @@ -4364,15 +4250,15 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, "engines": { "node": ">=10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { @@ -4436,26 +4322,26 @@ } }, "node_modules/eslint-plugin-tsdoc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.3.0.tgz", - "integrity": "sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.4.0.tgz", + "integrity": "sha512-MT/8b4aKLdDClnS8mP3R/JNjg29i0Oyqd/0ym6NnQf+gfKbJJ4ZcSh2Bs1H0YiUMTBwww5JwXGTWot/RwyJ7aQ==", "dev": true, "dependencies": { - "@microsoft/tsdoc": "0.15.0", - "@microsoft/tsdoc-config": "0.17.0" + "@microsoft/tsdoc": "0.15.1", + "@microsoft/tsdoc-config": "0.17.1" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4507,19 +4393,16 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/minimatch": { @@ -4535,17 +4418,29 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4556,7 +4451,6 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4621,7 +4515,6 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -4654,7 +4547,6 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -4672,16 +4564,16 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -4712,10 +4604,20 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", - "dev": true + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -4727,9 +4629,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -4740,21 +4642,20 @@ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/filelist": { @@ -4762,7 +4663,6 @@ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } @@ -4772,7 +4672,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4823,23 +4722,22 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, "node_modules/for-each": { @@ -4856,7 +4754,6 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -4902,7 +4799,6 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -4920,15 +4816,17 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -4951,7 +4849,6 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -4961,22 +4858,26 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4990,17 +4891,28 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -5009,14 +4921,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5111,12 +5023,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5143,10 +5055,13 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5156,7 +5071,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -5174,10 +5088,13 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5186,9 +5103,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "engines": { "node": ">= 0.4" @@ -5246,7 +5163,6 @@ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, - "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -5258,15 +5174,13 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, - "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -5281,7 +5195,6 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -5295,7 +5208,6 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } @@ -5305,7 +5217,6 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -5370,7 +5281,6 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -5393,14 +5303,14 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5416,13 +5326,14 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5437,12 +5348,15 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5452,25 +5366,28 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5492,9 +5409,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { "hasown": "^2.0.2" }, @@ -5506,11 +5423,13 @@ } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -5521,12 +5440,13 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5545,12 +5465,15 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5561,7 +5484,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -5571,18 +5493,20 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5615,18 +5539,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -5637,12 +5549,13 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5651,15 +5564,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -5676,17 +5580,18 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -5708,12 +5613,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -5727,7 +5632,6 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -5736,12 +5640,13 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5751,12 +5656,14 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5766,12 +5673,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -5793,25 +5700,28 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5846,7 +5756,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -5856,7 +5765,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -5873,7 +5781,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -5888,7 +5795,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -5903,7 +5809,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -5913,7 +5818,6 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -5923,16 +5827,20 @@ } }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jake": { @@ -5940,7 +5848,6 @@ "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -5959,7 +5866,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5970,7 +5876,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5983,7 +5888,6 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -6010,7 +5914,6 @@ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, - "license": "MIT", "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -6025,7 +5928,6 @@ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -6057,7 +5959,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6070,7 +5971,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6080,12 +5980,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-cli": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -6119,7 +6024,6 @@ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -6165,7 +6069,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6178,7 +6081,6 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6188,7 +6090,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6198,12 +6099,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-config/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -6219,7 +6125,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6232,7 +6137,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6242,12 +6146,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-docblock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, - "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -6260,7 +6169,6 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -6277,7 +6185,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6290,7 +6197,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6300,12 +6206,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-each/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -6333,7 +6244,6 @@ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -6351,7 +6261,6 @@ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -6361,7 +6270,6 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -6387,7 +6295,6 @@ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, - "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -6401,7 +6308,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6414,7 +6320,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6424,12 +6329,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -6445,7 +6355,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6458,7 +6367,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6468,12 +6376,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -6494,7 +6407,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6507,7 +6419,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6517,12 +6428,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -6537,7 +6453,6 @@ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -6555,7 +6470,6 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -6565,7 +6479,6 @@ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -6586,7 +6499,6 @@ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "license": "MIT", "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -6600,7 +6512,6 @@ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -6628,33 +6539,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-runner/node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/jest-runtime": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -6688,7 +6577,6 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -6720,7 +6608,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6733,7 +6620,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6743,6 +6629,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -6765,7 +6657,6 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -6783,7 +6674,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6796,7 +6686,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6809,7 +6698,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -6819,12 +6707,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, - "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -6897,7 +6790,6 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, - "license": "MIT", "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", @@ -6939,9 +6831,9 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "bin": { "jsesc": "bin/jsesc" }, @@ -6977,7 +6869,6 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -7023,7 +6914,6 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7033,7 +6923,6 @@ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7094,8 +6983,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -7119,7 +7007,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -7129,7 +7016,6 @@ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, - "license": "MIT", "peer": true, "bin": { "lz-string": "bin/bin.js" @@ -7140,7 +7026,6 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -7155,19 +7040,26 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -7222,7 +7114,6 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7232,7 +7123,6 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -7273,13 +7163,12 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true }, "node_modules/normalize-path": { @@ -7296,7 +7185,6 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -7305,11 +7193,10 @@ } }, "node_modules/nwsapi": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", - "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", - "dev": true, - "license": "MIT" + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "dev": true }, "node_modules/object-assign": { "version": "4.1.1", @@ -7320,9 +7207,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, "engines": { "node": ">= 0.4" @@ -7341,14 +7228,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -7391,12 +7280,13 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -7421,7 +7311,6 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -7449,6 +7338,23 @@ "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -7521,7 +7427,6 @@ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dev": true, - "license": "MIT", "dependencies": { "entities": "^4.5.0" }, @@ -7586,9 +7491,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -7607,7 +7512,6 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6" } @@ -7699,7 +7603,6 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ansi-regex": "^5.0.1", @@ -7715,7 +7618,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -7729,7 +7631,6 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/prompts": { @@ -7737,7 +7638,6 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -7762,13 +7662,15 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/psl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", - "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, - "license": "MIT", "dependencies": { "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" } }, "node_modules/punycode": { @@ -7794,15 +7696,13 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ], - "license": "MIT" + ] }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -7862,9 +7762,9 @@ "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==" }, "node_modules/react-transition-group": { "version": "4.4.5", @@ -7898,7 +7798,6 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, - "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -7908,18 +7807,19 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -7934,14 +7834,16 @@ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", "set-function-name": "^2.0.2" }, "engines": { @@ -7956,7 +7858,6 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7974,8 +7875,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", @@ -7983,17 +7883,20 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8028,11 +7931,10 @@ } }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -8047,22 +7949,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8087,14 +7973,15 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -8124,15 +8011,31 @@ } ] }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -8145,15 +8048,13 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, - "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -8170,9 +8071,9 @@ } }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -8181,7 +8082,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -8275,6 +8176,20 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -8309,15 +8224,69 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -8330,22 +8299,19 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8359,9 +8325,9 @@ } }, "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", @@ -8381,15 +8347,13 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -8402,7 +8366,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8412,7 +8375,6 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -8426,7 +8388,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8437,23 +8398,24 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -8473,15 +8435,18 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8491,15 +8456,19 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8538,7 +8507,6 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8548,7 +8516,6 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -8558,7 +8525,6 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -8588,7 +8554,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8611,8 +8576,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/taipy-gui": { "resolved": "../../taipy/gui/webapp", @@ -8628,9 +8592,9 @@ } }, "node_modules/terser": { - "version": "5.34.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", - "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -8646,16 +8610,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -8693,24 +8657,6 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -8726,12 +8672,30 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -8746,7 +8710,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8757,7 +8720,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -8765,12 +8727,6 @@ "node": "*" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", @@ -8780,8 +8736,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -8798,15 +8753,13 @@ "node_modules/toggle-selection": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", - "license": "MIT" + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" }, "node_modules/tough-cookie": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -8822,7 +8775,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, - "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -8831,15 +8783,15 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-jest": { @@ -8847,7 +8799,6 @@ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, - "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", @@ -8892,9 +8843,9 @@ } }, "node_modules/ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", + "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -8921,9 +8872,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/type-check": { "version": "0.4.0", @@ -8942,15 +8893,14 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "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==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" @@ -8960,30 +8910,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -8993,17 +8943,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -9013,17 +8964,17 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -9033,9 +8984,9 @@ } }, "node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -9046,24 +8997,27 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true }, "node_modules/universalify": { @@ -9071,15 +9025,14 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -9097,7 +9050,7 @@ ], "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -9120,19 +9073,17 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, - "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "license": "MIT", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/v8-to-istanbul": { @@ -9140,7 +9091,6 @@ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -9154,15 +9104,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, - "license": "MIT", "dependencies": { "xml-name-validator": "^4.0.0" }, @@ -9175,7 +9123,6 @@ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } @@ -9198,24 +9145,23 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -9250,42 +9196,39 @@ } }, "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", "colorette": "^2.0.14", - "commander": "^10.0.1", + "commander": "^12.1.0", "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", + "envinfo": "^7.14.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" + "webpack-merge": "^6.0.1" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "5.x.x" + "webpack": "^5.82.0" }, "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -9295,26 +9238,26 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/webpack-sources": { @@ -9371,7 +9314,6 @@ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, - "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -9384,7 +9326,6 @@ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" } @@ -9394,7 +9335,6 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, - "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -9419,39 +9359,43 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", - "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, "dependencies": { + "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", + "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -9479,15 +9423,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -9517,7 +9462,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9541,7 +9485,6 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, - "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -9555,7 +9498,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -9577,7 +9519,6 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12" } @@ -9586,15 +9527,13 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } @@ -9603,8 +9542,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/yaml": { "version": "1.10.2", @@ -9619,7 +9557,6 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -9638,7 +9575,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } @@ -9656,12 +9592,11 @@ } }, "node_modules/zustand": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz", - "integrity": "sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==", - "license": "MIT", + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.6.tgz", + "integrity": "sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==", "dependencies": { - "use-sync-external-store": "1.2.2" + "use-sync-external-store": "^1.2.2" }, "engines": { "node": ">=12.7.0" diff --git a/frontend/taipy/package.json b/frontend/taipy/package.json index 64300e3f0a..76606ee20e 100644 --- a/frontend/taipy/package.json +++ b/frontend/taipy/package.json @@ -13,10 +13,10 @@ "child_process": "^1.0.2", "cross-env": "^7.0.3", "dotenv": "^16.4.5", - "eslint": "^8.20.0", + "eslint": "^9.18.0", "eslint-plugin-react": "^7.30.1", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-tsdoc": "^0.3.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-tsdoc": "^0.4.0", "eslint-webpack-plugin": "^4.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -24,7 +24,7 @@ "ts-loader": "^9.3.1", "typescript": "^5.0.2", "webpack": "^5.74.0", - "webpack-cli": "^5.0.1" + "webpack-cli": "^6.0.1" }, "dependencies": { "@emotion/react": "^11.10.6", @@ -39,7 +39,8 @@ "fast-deep-equal": "^3.1.3", "formik": "^2.2.9", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "taipy-gui": "file:../../taipy/gui/webapp" }, "scripts": { "postinstall": "node scripts/install.js", diff --git a/frontend/taipy/src/CoreSelector.tsx b/frontend/taipy/src/CoreSelector.tsx index 3f4c6c80b6..ad56a82ec4 100644 --- a/frontend/taipy/src/CoreSelector.tsx +++ b/frontend/taipy/src/CoreSelector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/DataNodeChart.tsx b/frontend/taipy/src/DataNodeChart.tsx index 73208c6b44..50dd0a7a6e 100644 --- a/frontend/taipy/src/DataNodeChart.tsx +++ b/frontend/taipy/src/DataNodeChart.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/DataNodeTable.tsx b/frontend/taipy/src/DataNodeTable.tsx index bd3e270c93..eead42382a 100644 --- a/frontend/taipy/src/DataNodeTable.tsx +++ b/frontend/taipy/src/DataNodeTable.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/DataNodeViewer.tsx b/frontend/taipy/src/DataNodeViewer.tsx index a4097020c8..4cb85352c4 100644 --- a/frontend/taipy/src/DataNodeViewer.tsx +++ b/frontend/taipy/src/DataNodeViewer.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/JobSelector.tsx b/frontend/taipy/src/JobSelector.tsx index 02ec3e28e5..db720ee392 100644 --- a/frontend/taipy/src/JobSelector.tsx +++ b/frontend/taipy/src/JobSelector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/JobViewer.tsx b/frontend/taipy/src/JobViewer.tsx index 9cc11d015f..50f4de86cd 100644 --- a/frontend/taipy/src/JobViewer.tsx +++ b/frontend/taipy/src/JobViewer.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/NodeSelector.tsx b/frontend/taipy/src/NodeSelector.tsx index 6d8697a263..88d551cadc 100644 --- a/frontend/taipy/src/NodeSelector.tsx +++ b/frontend/taipy/src/NodeSelector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/PropertiesEditor.tsx b/frontend/taipy/src/PropertiesEditor.tsx index 176af0aa8f..e4ebc242fb 100644 --- a/frontend/taipy/src/PropertiesEditor.tsx +++ b/frontend/taipy/src/PropertiesEditor.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/ScenarioSelector.spec.tsx b/frontend/taipy/src/ScenarioSelector.spec.tsx index 8144499fd9..fb780ca159 100644 --- a/frontend/taipy/src/ScenarioSelector.spec.tsx +++ b/frontend/taipy/src/ScenarioSelector.spec.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/ScenarioSelector.tsx b/frontend/taipy/src/ScenarioSelector.tsx index a964fd0a09..0e8c9edc16 100644 --- a/frontend/taipy/src/ScenarioSelector.tsx +++ b/frontend/taipy/src/ScenarioSelector.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/ScenarioViewer.tsx b/frontend/taipy/src/ScenarioViewer.tsx index c22764f155..81044e4581 100644 --- a/frontend/taipy/src/ScenarioViewer.tsx +++ b/frontend/taipy/src/ScenarioViewer.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/projectstorm/NodeWidget.tsx b/frontend/taipy/src/projectstorm/NodeWidget.tsx index 5622a43032..db8b0d2965 100644 --- a/frontend/taipy/src/projectstorm/NodeWidget.tsx +++ b/frontend/taipy/src/projectstorm/NodeWidget.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/projectstorm/factories.tsx b/frontend/taipy/src/projectstorm/factories.tsx index 27d47e488e..7807c56600 100644 --- a/frontend/taipy/src/projectstorm/factories.tsx +++ b/frontend/taipy/src/projectstorm/factories.tsx @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/projectstorm/models.ts b/frontend/taipy/src/projectstorm/models.ts index 9daa19195d..944bb74474 100644 --- a/frontend/taipy/src/projectstorm/models.ts +++ b/frontend/taipy/src/projectstorm/models.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/utils.ts b/frontend/taipy/src/utils.ts index 8400d765a9..cb84e066ff 100644 --- a/frontend/taipy/src/utils.ts +++ b/frontend/taipy/src/utils.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/utils/childtype.ts b/frontend/taipy/src/utils/childtype.ts index 13207d23c7..a4cf3fb39e 100644 --- a/frontend/taipy/src/utils/childtype.ts +++ b/frontend/taipy/src/utils/childtype.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/utils/config.ts b/frontend/taipy/src/utils/config.ts index 53a13e9a74..c4ed0a1e9b 100644 --- a/frontend/taipy/src/utils/config.ts +++ b/frontend/taipy/src/utils/config.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/utils/diagram.ts b/frontend/taipy/src/utils/diagram.ts index a126b4bcfa..ea66a4f0e5 100644 --- a/frontend/taipy/src/utils/diagram.ts +++ b/frontend/taipy/src/utils/diagram.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/utils/hooks.ts b/frontend/taipy/src/utils/hooks.ts index 9a665432cd..90618a7db5 100644 --- a/frontend/taipy/src/utils/hooks.ts +++ b/frontend/taipy/src/utils/hooks.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/src/utils/names.ts b/frontend/taipy/src/utils/names.ts index 40fd2807a3..661525ad23 100644 --- a/frontend/taipy/src/utils/names.ts +++ b/frontend/taipy/src/utils/names.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/test-config/Canvas.js b/frontend/taipy/test-config/Canvas.js index 9f6aa85e74..720fea8666 100644 --- a/frontend/taipy/test-config/Canvas.js +++ b/frontend/taipy/test-config/Canvas.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/test-config/createObjectUrl.js b/frontend/taipy/test-config/createObjectUrl.js index dbcbca3713..62abed7182 100644 --- a/frontend/taipy/test-config/createObjectUrl.js +++ b/frontend/taipy/test-config/createObjectUrl.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/test-config/jest.env.js b/frontend/taipy/test-config/jest.env.js index 25a813b8ac..eca156d5c6 100644 --- a/frontend/taipy/test-config/jest.env.js +++ b/frontend/taipy/test-config/jest.env.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/test-config/nanoid.js b/frontend/taipy/test-config/nanoid.js index 2d14c84d3e..212812f544 100644 --- a/frontend/taipy/test-config/nanoid.js +++ b/frontend/taipy/test-config/nanoid.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/frontend/taipy/webpack.config.js b/frontend/taipy/webpack.config.js index 56b8040f6a..b3b45ebd8a 100644 --- a/frontend/taipy/webpack.config.js +++ b/frontend/taipy/webpack.config.js @@ -1,5 +1,5 @@ /* - * Copyright 2021-2024 Avaiga Private Limited + * Copyright 2021-2025 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at diff --git a/package_desc.md b/package_desc.md index bdde0533c8..9e2dc4bc5d 100644 --- a/package_desc.md +++ b/package_desc.md @@ -2,7 +2,7 @@ ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/setup.py b/setup.py index 36c287da8a..b93a9c1a38 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/__init__.py b/taipy/__init__.py index ea8fe9ba5b..30a09697b1 100644 --- a/taipy/__init__.py +++ b/taipy/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/_entrypoint.py b/taipy/_entrypoint.py index 49d44fb82e..68ed30c4bb 100644 --- a/taipy/_entrypoint.py +++ b/taipy/_entrypoint.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -14,7 +14,7 @@ from importlib.util import find_spec from taipy.common._cli._base_cli._taipy_parser import _TaipyParser -from taipy.common._cli._create_cli import _CreateCLI +from taipy.common._cli._create_cli_factory import _CreateCLIFactory from taipy.common._cli._help_cli import _HelpCLI from taipy.common._cli._run_cli import _RunCLI from taipy.core._cli._core_cli_factory import _CoreCLIFactory @@ -42,14 +42,15 @@ def _entrypoint(): _enterprise_entrypoint_initialize() _core_cli = _CoreCLIFactory._build_cli() + _create_cli = _CreateCLIFactory._build_cli() _RunCLI.create_parser() _GuiCLI.create_run_parser() _core_cli.create_run_parser() _VersionCLIFactory._build_cli().create_parser() - _CreateCLI.generate_template_map() - _CreateCLI.create_parser() + _create_cli.generate_template_map() + _create_cli.create_parser() _MigrateCLI.create_parser() _HelpCLI.create_parser() @@ -67,7 +68,7 @@ def _entrypoint(): _HelpCLI.handle_command() _VersionCLIFactory._build_cli().handle_command() _MigrateCLI.handle_command() - _CreateCLI.handle_command() + _create_cli.handle_command() _TaipyParser._remove_argument("help") _TaipyParser._parser.print_help() diff --git a/taipy/_run.py b/taipy/_run.py index 65a0de3923..eec26686a8 100644 --- a/taipy/_run.py +++ b/taipy/_run.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/LICENSE b/taipy/common/LICENSE index ca413c9dd6..96ca40dd64 100644 --- a/taipy/common/LICENSE +++ b/taipy/common/LICENSE @@ -187,7 +187,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2021-2024 Avaiga Private Limited + Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/taipy/common/README.md b/taipy/common/README.md index c8f0f6f90e..d367df205a 100644 --- a/taipy/common/README.md +++ b/taipy/common/README.md @@ -1,7 +1,7 @@ # Taipy Common ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/common/__init__.py b/taipy/common/__init__.py index b85c1472a9..8c7789d271 100644 --- a/taipy/common/__init__.py +++ b/taipy/common/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/_cli/__init__.py b/taipy/common/_cli/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/common/_cli/__init__.py +++ b/taipy/common/_cli/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/_cli/_base_cli/__init__.py b/taipy/common/_cli/_base_cli/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/common/_cli/_base_cli/__init__.py +++ b/taipy/common/_cli/_base_cli/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/_cli/_base_cli/_abstract_cli.py b/taipy/common/_cli/_base_cli/_abstract_cli.py index 3007611fe5..06522331b4 100644 --- a/taipy/common/_cli/_base_cli/_abstract_cli.py +++ b/taipy/common/_cli/_base_cli/_abstract_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/_cli/_base_cli/_taipy_parser.py b/taipy/common/_cli/_base_cli/_taipy_parser.py index f66561ca08..a0ba8214d8 100644 --- a/taipy/common/_cli/_base_cli/_taipy_parser.py +++ b/taipy/common/_cli/_base_cli/_taipy_parser.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/_cli/_create_cli.py b/taipy/common/_cli/_create_cli.py index fa2d1fc7f4..dbbaea79a2 100644 --- a/taipy/common/_cli/_create_cli.py +++ b/taipy/common/_cli/_create_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -11,7 +11,7 @@ import pathlib import sys -from typing import Dict, Optional +from typing import Dict from cookiecutter.exceptions import OutputDirExistsException from cookiecutter.main import cookiecutter @@ -29,9 +29,8 @@ class _CreateCLI(_AbstractCLI): _ARGUMENTS = ["--application"] @classmethod - def generate_template_map(cls, template_path: Optional[pathlib.Path] = None): - if not template_path: - template_path = pathlib.Path(taipy.__file__).parent.resolve() / "templates" + def generate_template_map(cls): + template_path = pathlib.Path(taipy.__file__).parent.resolve() / "templates" # Update the template map with the new templates but do not override the existing ones cls._template_map.update( diff --git a/taipy/common/_cli/_create_cli_factory.py b/taipy/common/_cli/_create_cli_factory.py new file mode 100644 index 0000000000..88d2b5da98 --- /dev/null +++ b/taipy/common/_cli/_create_cli_factory.py @@ -0,0 +1,31 @@ +# Copyright 2021-2025 Avaiga Private Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on +# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +from importlib import import_module +from operator import attrgetter +from typing import Type + +from taipy.common._cli._base_cli._abstract_cli import _AbstractCLI + +from ...core.common._check_dependencies import EnterpriseEditionUtils +from ._create_cli import _CreateCLI + + +class _CreateCLIFactory: + @staticmethod + def _build_cli() -> Type[_AbstractCLI]: + if EnterpriseEditionUtils._using_enterprise(): + module = import_module(EnterpriseEditionUtils._TAIPY_ENTERPRISE_MODULE + ".templates._create_cli") + create_cli = attrgetter("_CreateCLI")(module) + else: + create_cli = _CreateCLI + + return create_cli diff --git a/taipy/common/_cli/_help_cli.py b/taipy/common/_cli/_help_cli.py index 77df6e1682..f7721a7f5a 100644 --- a/taipy/common/_cli/_help_cli.py +++ b/taipy/common/_cli/_help_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/_cli/_run_cli.py b/taipy/common/_cli/_run_cli.py index 2ed76f2110..b987dce1d8 100644 --- a/taipy/common/_cli/_run_cli.py +++ b/taipy/common/_cli/_run_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/__init__.py b/taipy/common/config/__init__.py index 79efd4dec7..469f8831cf 100644 --- a/taipy/common/config/__init__.py +++ b/taipy/common/config/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_config.py b/taipy/common/config/_config.py index c793253029..8e32853f85 100644 --- a/taipy/common/config/_config.py +++ b/taipy/common/config/_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_config_comparator/__init__.py b/taipy/common/config/_config_comparator/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/common/config/_config_comparator/__init__.py +++ b/taipy/common/config/_config_comparator/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_config_comparator/_comparator_result.py b/taipy/common/config/_config_comparator/_comparator_result.py index c6978a9a38..7b92a8e1fa 100644 --- a/taipy/common/config/_config_comparator/_comparator_result.py +++ b/taipy/common/config/_config_comparator/_comparator_result.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_config_comparator/_config_comparator.py b/taipy/common/config/_config_comparator/_config_comparator.py index 57ddb756da..dd3676ddda 100644 --- a/taipy/common/config/_config_comparator/_config_comparator.py +++ b/taipy/common/config/_config_comparator/_config_comparator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_init.py b/taipy/common/config/_init.py index 377e840b87..2f13b0722f 100644 --- a/taipy/common/config/_init.py +++ b/taipy/common/config/_init.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_serializer/__init__.py b/taipy/common/config/_serializer/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/common/config/_serializer/__init__.py +++ b/taipy/common/config/_serializer/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_serializer/_base_serializer.py b/taipy/common/config/_serializer/_base_serializer.py index 98c9a920b4..d12670932c 100644 --- a/taipy/common/config/_serializer/_base_serializer.py +++ b/taipy/common/config/_serializer/_base_serializer.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_serializer/_json_serializer.py b/taipy/common/config/_serializer/_json_serializer.py index ca046d25a4..e620a1777e 100644 --- a/taipy/common/config/_serializer/_json_serializer.py +++ b/taipy/common/config/_serializer/_json_serializer.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/_serializer/_toml_serializer.py b/taipy/common/config/_serializer/_toml_serializer.py index f85f896275..a099e5b182 100644 --- a/taipy/common/config/_serializer/_toml_serializer.py +++ b/taipy/common/config/_serializer/_toml_serializer.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/checker/__init__.py b/taipy/common/config/checker/__init__.py index c93101ab6f..8b5a053fe2 100644 --- a/taipy/common/config/checker/__init__.py +++ b/taipy/common/config/checker/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/checker/_checker.py b/taipy/common/config/checker/_checker.py index c06fd5a255..450de35793 100644 --- a/taipy/common/config/checker/_checker.py +++ b/taipy/common/config/checker/_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/checker/_checkers/__init__.py b/taipy/common/config/checker/_checkers/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/common/config/checker/_checkers/__init__.py +++ b/taipy/common/config/checker/_checkers/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/checker/_checkers/_config_checker.py b/taipy/common/config/checker/_checkers/_config_checker.py index e4810552e0..9c856b98cb 100644 --- a/taipy/common/config/checker/_checkers/_config_checker.py +++ b/taipy/common/config/checker/_checkers/_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/checker/issue.py b/taipy/common/config/checker/issue.py index cb1b79b7e8..0c9c41cb98 100644 --- a/taipy/common/config/checker/issue.py +++ b/taipy/common/config/checker/issue.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/checker/issue_collector.py b/taipy/common/config/checker/issue_collector.py index 072627ebcc..763393f3fe 100644 --- a/taipy/common/config/checker/issue_collector.py +++ b/taipy/common/config/checker/issue_collector.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/__init__.py b/taipy/common/config/common/__init__.py index 6886ad3fd3..95b299eb95 100644 --- a/taipy/common/config/common/__init__.py +++ b/taipy/common/config/common/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/_classproperty.py b/taipy/common/config/common/_classproperty.py index 171142b744..e0819d2e6c 100644 --- a/taipy/common/config/common/_classproperty.py +++ b/taipy/common/config/common/_classproperty.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/_config_blocker.py b/taipy/common/config/common/_config_blocker.py index 29eee254c9..fc1ae5a813 100644 --- a/taipy/common/config/common/_config_blocker.py +++ b/taipy/common/config/common/_config_blocker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/_repr_enum.py b/taipy/common/config/common/_repr_enum.py index f6b06a6293..2c00cdebf7 100644 --- a/taipy/common/config/common/_repr_enum.py +++ b/taipy/common/config/common/_repr_enum.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/_template_handler.py b/taipy/common/config/common/_template_handler.py index 1d913ad312..57822b7bc5 100644 --- a/taipy/common/config/common/_template_handler.py +++ b/taipy/common/config/common/_template_handler.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/_validate_id.py b/taipy/common/config/common/_validate_id.py index 3105549a79..5c5ac800f1 100644 --- a/taipy/common/config/common/_validate_id.py +++ b/taipy/common/config/common/_validate_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/frequency.py b/taipy/common/config/common/frequency.py index 61643af46e..fd42fe04e3 100644 --- a/taipy/common/config/common/frequency.py +++ b/taipy/common/config/common/frequency.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/scope.py b/taipy/common/config/common/scope.py index f9df2ffff1..ff92f4a72a 100644 --- a/taipy/common/config/common/scope.py +++ b/taipy/common/config/common/scope.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/common/typing.py b/taipy/common/config/common/typing.py index b46ba5a711..2f2713aa9e 100644 --- a/taipy/common/config/common/typing.py +++ b/taipy/common/config/common/typing.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/config.py b/taipy/common/config/config.py index 270cf6d5db..971551b56d 100644 --- a/taipy/common/config/config.py +++ b/taipy/common/config/config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/config.pyi b/taipy/common/config/config.pyi index d8e701f87b..71ce6bc2ac 100644 --- a/taipy/common/config/config.pyi +++ b/taipy/common/config/config.pyi @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/exceptions/__init__.py b/taipy/common/config/exceptions/__init__.py index 91109a386c..b3f30e71ea 100644 --- a/taipy/common/config/exceptions/__init__.py +++ b/taipy/common/config/exceptions/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/exceptions/exceptions.py b/taipy/common/config/exceptions/exceptions.py index dec3878722..1153547879 100644 --- a/taipy/common/config/exceptions/exceptions.py +++ b/taipy/common/config/exceptions/exceptions.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/global_app/__init__.py b/taipy/common/config/global_app/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/common/config/global_app/__init__.py +++ b/taipy/common/config/global_app/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/global_app/global_app_config.py b/taipy/common/config/global_app/global_app_config.py index e83fc6e10a..c358ce4248 100644 --- a/taipy/common/config/global_app/global_app_config.py +++ b/taipy/common/config/global_app/global_app_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/section.py b/taipy/common/config/section.py index adc4fe369b..0150b59bd6 100644 --- a/taipy/common/config/section.py +++ b/taipy/common/config/section.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/stubs/generate_pyi.py b/taipy/common/config/stubs/generate_pyi.py index 03b40c1311..6f9ba51b9c 100644 --- a/taipy/common/config/stubs/generate_pyi.py +++ b/taipy/common/config/stubs/generate_pyi.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/stubs/pyi_header.py b/taipy/common/config/stubs/pyi_header.py index 575f7658ff..6245b9a826 100644 --- a/taipy/common/config/stubs/pyi_header.py +++ b/taipy/common/config/stubs/pyi_header.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/config/unique_section.py b/taipy/common/config/unique_section.py index 358c37e0b8..f727ac3187 100644 --- a/taipy/common/config/unique_section.py +++ b/taipy/common/config/unique_section.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/logger/__init__.py b/taipy/common/logger/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/common/logger/__init__.py +++ b/taipy/common/logger/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/logger/_taipy_logger.py b/taipy/common/logger/_taipy_logger.py index 2f1f26f823..b093b12dd2 100644 --- a/taipy/common/logger/_taipy_logger.py +++ b/taipy/common/logger/_taipy_logger.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/package_desc.md b/taipy/common/package_desc.md index 036686777f..13730c3635 100644 --- a/taipy/common/package_desc.md +++ b/taipy/common/package_desc.md @@ -2,7 +2,7 @@ ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/common/setup.py b/taipy/common/setup.py index 6bba4c096e..81e5d5faad 100644 --- a/taipy/common/setup.py +++ b/taipy/common/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/common/version.py b/taipy/common/version.py index 88586caae9..cee53291be 100644 --- a/taipy/common/version.py +++ b/taipy/common/version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/README.md b/taipy/core/README.md index 45b50a93f8..444ab40013 100644 --- a/taipy/core/README.md +++ b/taipy/core/README.md @@ -2,7 +2,7 @@ ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/core/__init__.py b/taipy/core/__init__.py index 42edd099b6..417b08ca25 100644 --- a/taipy/core/__init__.py +++ b/taipy/core/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_cli/__init__.py b/taipy/core/_cli/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/_cli/__init__.py +++ b/taipy/core/_cli/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_cli/_core_cli.py b/taipy/core/_cli/_core_cli.py index fa42f0636e..f65e7bbc07 100644 --- a/taipy/core/_cli/_core_cli.py +++ b/taipy/core/_cli/_core_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_cli/_core_cli_factory.py b/taipy/core/_cli/_core_cli_factory.py index 919e94efce..8e65847ad9 100644 --- a/taipy/core/_cli/_core_cli_factory.py +++ b/taipy/core/_cli/_core_cli_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_core.py b/taipy/core/_core.py index 86c5228269..692df8fe23 100644 --- a/taipy/core/_core.py +++ b/taipy/core/_core.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/__init__.py b/taipy/core/_entity/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/_entity/__init__.py +++ b/taipy/core/_entity/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_dag.py b/taipy/core/_entity/_dag.py index 4a548d7fcc..faa2b8aa7e 100644 --- a/taipy/core/_entity/_dag.py +++ b/taipy/core/_entity/_dag.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_entity.py b/taipy/core/_entity/_entity.py index 2b5df4a2fb..6d78fda58f 100644 --- a/taipy/core/_entity/_entity.py +++ b/taipy/core/_entity/_entity.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_entity_ids.py b/taipy/core/_entity/_entity_ids.py index 368de61151..5937e89790 100644 --- a/taipy/core/_entity/_entity_ids.py +++ b/taipy/core/_entity/_entity_ids.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_labeled.py b/taipy/core/_entity/_labeled.py index 5618a78d00..0f401c9e06 100644 --- a/taipy/core/_entity/_labeled.py +++ b/taipy/core/_entity/_labeled.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_migrate/__init__.py b/taipy/core/_entity/_migrate/__init__.py index 3b45121e0d..06f3d806b9 100644 --- a/taipy/core/_entity/_migrate/__init__.py +++ b/taipy/core/_entity/_migrate/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_migrate/_migrate_fs.py b/taipy/core/_entity/_migrate/_migrate_fs.py index 6ea0e1b4ff..012bca5667 100644 --- a/taipy/core/_entity/_migrate/_migrate_fs.py +++ b/taipy/core/_entity/_migrate/_migrate_fs.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_migrate/_migrate_mongo.py b/taipy/core/_entity/_migrate/_migrate_mongo.py index eafcaae0e7..71c41d5e63 100644 --- a/taipy/core/_entity/_migrate/_migrate_mongo.py +++ b/taipy/core/_entity/_migrate/_migrate_mongo.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_migrate/_utils.py b/taipy/core/_entity/_migrate/_utils.py index 3107bc16c9..f91e8d1f30 100644 --- a/taipy/core/_entity/_migrate/_utils.py +++ b/taipy/core/_entity/_migrate/_utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_migrate_cli.py b/taipy/core/_entity/_migrate_cli.py index c46196795e..bd5c5d3b01 100644 --- a/taipy/core/_entity/_migrate_cli.py +++ b/taipy/core/_entity/_migrate_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_properties.py b/taipy/core/_entity/_properties.py index 027b5f43ba..a755eb6d70 100644 --- a/taipy/core/_entity/_properties.py +++ b/taipy/core/_entity/_properties.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_ready_to_run_property.py b/taipy/core/_entity/_ready_to_run_property.py index 661adc76f3..6d1da86933 100644 --- a/taipy/core/_entity/_ready_to_run_property.py +++ b/taipy/core/_entity/_ready_to_run_property.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/_reload.py b/taipy/core/_entity/_reload.py index 825ce70c9b..82b8f95aa9 100644 --- a/taipy/core/_entity/_reload.py +++ b/taipy/core/_entity/_reload.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_entity/submittable.py b/taipy/core/_entity/submittable.py index 4982343e34..5d16a4c08f 100644 --- a/taipy/core/_entity/submittable.py +++ b/taipy/core/_entity/submittable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_init.py b/taipy/core/_init.py index be80907d13..ee80d9c66f 100644 --- a/taipy/core/_init.py +++ b/taipy/core/_init.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_init_version.py b/taipy/core/_init_version.py index 0de0d353bc..ddf21bca8f 100644 --- a/taipy/core/_init_version.py +++ b/taipy/core/_init_version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_manager/__init__.py b/taipy/core/_manager/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/_manager/__init__.py +++ b/taipy/core/_manager/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_manager/_manager.py b/taipy/core/_manager/_manager.py index 3f1ee38a87..27976d7cd8 100644 --- a/taipy/core/_manager/_manager.py +++ b/taipy/core/_manager/_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_manager/_manager_factory.py b/taipy/core/_manager/_manager_factory.py index ff42695d10..98db667017 100644 --- a/taipy/core/_manager/_manager_factory.py +++ b/taipy/core/_manager/_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/__init__.py b/taipy/core/_orchestrator/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/_orchestrator/__init__.py +++ b/taipy/core/_orchestrator/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_abstract_orchestrator.py b/taipy/core/_orchestrator/_abstract_orchestrator.py index e444751434..ae95ef38d4 100644 --- a/taipy/core/_orchestrator/_abstract_orchestrator.py +++ b/taipy/core/_orchestrator/_abstract_orchestrator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_dispatcher/__init__.py b/taipy/core/_orchestrator/_dispatcher/__init__.py index 344e101d1b..c4c829f6db 100644 --- a/taipy/core/_orchestrator/_dispatcher/__init__.py +++ b/taipy/core/_orchestrator/_dispatcher/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_dispatcher/_development_job_dispatcher.py b/taipy/core/_orchestrator/_dispatcher/_development_job_dispatcher.py index 043005e14b..5528c27347 100644 --- a/taipy/core/_orchestrator/_dispatcher/_development_job_dispatcher.py +++ b/taipy/core/_orchestrator/_dispatcher/_development_job_dispatcher.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_dispatcher/_job_dispatcher.py b/taipy/core/_orchestrator/_dispatcher/_job_dispatcher.py index f6d46fb310..ab2bee9074 100644 --- a/taipy/core/_orchestrator/_dispatcher/_job_dispatcher.py +++ b/taipy/core/_orchestrator/_dispatcher/_job_dispatcher.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_dispatcher/_standalone_job_dispatcher.py b/taipy/core/_orchestrator/_dispatcher/_standalone_job_dispatcher.py index b8d44e5b80..84935ac1e0 100644 --- a/taipy/core/_orchestrator/_dispatcher/_standalone_job_dispatcher.py +++ b/taipy/core/_orchestrator/_dispatcher/_standalone_job_dispatcher.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_dispatcher/_task_function_wrapper.py b/taipy/core/_orchestrator/_dispatcher/_task_function_wrapper.py index 3a83ccf2f2..4f3e579a4e 100644 --- a/taipy/core/_orchestrator/_dispatcher/_task_function_wrapper.py +++ b/taipy/core/_orchestrator/_dispatcher/_task_function_wrapper.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_orchestrator.py b/taipy/core/_orchestrator/_orchestrator.py index c8309371b2..e0156f391f 100644 --- a/taipy/core/_orchestrator/_orchestrator.py +++ b/taipy/core/_orchestrator/_orchestrator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_orchestrator/_orchestrator_factory.py b/taipy/core/_orchestrator/_orchestrator_factory.py index 59568acfe7..cf866bc735 100644 --- a/taipy/core/_orchestrator/_orchestrator_factory.py +++ b/taipy/core/_orchestrator/_orchestrator_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_repository/__init__.py b/taipy/core/_repository/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/_repository/__init__.py +++ b/taipy/core/_repository/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_repository/_abstract_converter.py b/taipy/core/_repository/_abstract_converter.py index 4e423c9d08..258817ce65 100644 --- a/taipy/core/_repository/_abstract_converter.py +++ b/taipy/core/_repository/_abstract_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_repository/_abstract_repository.py b/taipy/core/_repository/_abstract_repository.py index 42be4fc515..cb1841ada5 100644 --- a/taipy/core/_repository/_abstract_repository.py +++ b/taipy/core/_repository/_abstract_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_repository/_base_taipy_model.py b/taipy/core/_repository/_base_taipy_model.py index 1ed26469dc..fe80c71887 100644 --- a/taipy/core/_repository/_base_taipy_model.py +++ b/taipy/core/_repository/_base_taipy_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_repository/_decoder.py b/taipy/core/_repository/_decoder.py index f847caa14a..354f43d554 100644 --- a/taipy/core/_repository/_decoder.py +++ b/taipy/core/_repository/_decoder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_repository/_encoder.py b/taipy/core/_repository/_encoder.py index 3124df86cc..d32435857a 100644 --- a/taipy/core/_repository/_encoder.py +++ b/taipy/core/_repository/_encoder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_repository/_filesystem_repository.py b/taipy/core/_repository/_filesystem_repository.py index c628e1836a..721c569b36 100644 --- a/taipy/core/_repository/_filesystem_repository.py +++ b/taipy/core/_repository/_filesystem_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/__init__.py b/taipy/core/_version/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/_version/__init__.py +++ b/taipy/core/_version/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_cli/__init__.py b/taipy/core/_version/_cli/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/_version/_cli/__init__.py +++ b/taipy/core/_version/_cli/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_cli/_bcolor.py b/taipy/core/_version/_cli/_bcolor.py index 8144001217..09b669eaf6 100644 --- a/taipy/core/_version/_cli/_bcolor.py +++ b/taipy/core/_version/_cli/_bcolor.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_cli/_version_cli.py b/taipy/core/_version/_cli/_version_cli.py index 51bf318e59..327818b7d1 100644 --- a/taipy/core/_version/_cli/_version_cli.py +++ b/taipy/core/_version/_cli/_version_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_cli/_version_cli_factory.py b/taipy/core/_version/_cli/_version_cli_factory.py index 15c5c275e2..0032289a7c 100644 --- a/taipy/core/_version/_cli/_version_cli_factory.py +++ b/taipy/core/_version/_cli/_version_cli_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_version.py b/taipy/core/_version/_version.py index 33adccbd08..71acfc0742 100644 --- a/taipy/core/_version/_version.py +++ b/taipy/core/_version/_version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_version_converter.py b/taipy/core/_version/_version_converter.py index b9cbf493c7..8eb08395e0 100644 --- a/taipy/core/_version/_version_converter.py +++ b/taipy/core/_version/_version_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_version_fs_repository.py b/taipy/core/_version/_version_fs_repository.py index 52df1c8d85..5d46ea7452 100644 --- a/taipy/core/_version/_version_fs_repository.py +++ b/taipy/core/_version/_version_fs_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_version_manager.py b/taipy/core/_version/_version_manager.py index aebc334aef..f49af7dab6 100644 --- a/taipy/core/_version/_version_manager.py +++ b/taipy/core/_version/_version_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_version_manager_factory.py b/taipy/core/_version/_version_manager_factory.py index f5cc1f4542..cbd580169c 100644 --- a/taipy/core/_version/_version_manager_factory.py +++ b/taipy/core/_version/_version_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_version_mixin.py b/taipy/core/_version/_version_mixin.py index df0c052f60..1793319692 100644 --- a/taipy/core/_version/_version_mixin.py +++ b/taipy/core/_version/_version_mixin.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/_version/_version_model.py b/taipy/core/_version/_version_model.py index b9cae9ec4c..e93f2774dd 100644 --- a/taipy/core/_version/_version_model.py +++ b/taipy/core/_version/_version_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/__init__.py b/taipy/core/common/__init__.py index d447a18d38..b6b0afb734 100644 --- a/taipy/core/common/__init__.py +++ b/taipy/core/common/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/_check_dependencies.py b/taipy/core/common/_check_dependencies.py index 333fb9cd1d..db55628e6b 100644 --- a/taipy/core/common/_check_dependencies.py +++ b/taipy/core/common/_check_dependencies.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/_check_instance.py b/taipy/core/common/_check_instance.py index 5e784f41b7..6be5115c86 100644 --- a/taipy/core/common/_check_instance.py +++ b/taipy/core/common/_check_instance.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/_listattributes.py b/taipy/core/common/_listattributes.py index af4b247eeb..80e7793a1a 100644 --- a/taipy/core/common/_listattributes.py +++ b/taipy/core/common/_listattributes.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/_mongo_connector.py b/taipy/core/common/_mongo_connector.py index 98f7cbc925..25b284fdc7 100644 --- a/taipy/core/common/_mongo_connector.py +++ b/taipy/core/common/_mongo_connector.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/_repr_enum.py b/taipy/core/common/_repr_enum.py index f6b06a6293..2c00cdebf7 100644 --- a/taipy/core/common/_repr_enum.py +++ b/taipy/core/common/_repr_enum.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/_utils.py b/taipy/core/common/_utils.py index 0e29e75639..e48721f08d 100644 --- a/taipy/core/common/_utils.py +++ b/taipy/core/common/_utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/_warnings.py b/taipy/core/common/_warnings.py index 4938164e27..b0ab7d47a0 100644 --- a/taipy/core/common/_warnings.py +++ b/taipy/core/common/_warnings.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/mongo_default_document.py b/taipy/core/common/mongo_default_document.py index ec20b0b2fb..371098e11a 100644 --- a/taipy/core/common/mongo_default_document.py +++ b/taipy/core/common/mongo_default_document.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/typing.py b/taipy/core/common/typing.py index 43d4798e48..c6cc658c53 100644 --- a/taipy/core/common/typing.py +++ b/taipy/core/common/typing.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/common/warn_if_inputs_not_ready.py b/taipy/core/common/warn_if_inputs_not_ready.py index 5a1fbd3cdb..6d56b43493 100644 --- a/taipy/core/common/warn_if_inputs_not_ready.py +++ b/taipy/core/common/warn_if_inputs_not_ready.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/__init__.py b/taipy/core/config/__init__.py index e8c3758d3f..ff12134300 100644 --- a/taipy/core/config/__init__.py +++ b/taipy/core/config/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/checkers/__init__.py b/taipy/core/config/checkers/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/config/checkers/__init__.py +++ b/taipy/core/config/checkers/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/checkers/_config_id_checker.py b/taipy/core/config/checkers/_config_id_checker.py index 8b66c93908..1380618613 100644 --- a/taipy/core/config/checkers/_config_id_checker.py +++ b/taipy/core/config/checkers/_config_id_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/checkers/_core_section_checker.py b/taipy/core/config/checkers/_core_section_checker.py index d13b493eb4..a291b92dc9 100644 --- a/taipy/core/config/checkers/_core_section_checker.py +++ b/taipy/core/config/checkers/_core_section_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/checkers/_data_node_config_checker.py b/taipy/core/config/checkers/_data_node_config_checker.py index 823da79069..92a31fc37f 100644 --- a/taipy/core/config/checkers/_data_node_config_checker.py +++ b/taipy/core/config/checkers/_data_node_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -10,7 +10,7 @@ # specific language governing permissions and limitations under the License. from datetime import timedelta -from typing import Any, Callable, Dict, List, Tuple, cast +from typing import Callable, Dict, List, cast from taipy.common.config._config import _Config from taipy.common.config.checker._checkers._config_checker import _ConfigChecker @@ -23,27 +23,6 @@ class _DataNodeConfigChecker(_ConfigChecker): - _PROPERTIES_TYPES: Dict[str, List[Tuple[Any, List[str]]]] = { - DataNodeConfig._STORAGE_TYPE_VALUE_GENERIC: [ - ( - Callable, - [ - DataNodeConfig._OPTIONAL_READ_FUNCTION_GENERIC_PROPERTY, - DataNodeConfig._OPTIONAL_WRITE_FUNCTION_GENERIC_PROPERTY, - ], - ) - ], - DataNodeConfig._STORAGE_TYPE_VALUE_SQL: [ - ( - Callable, - [ - DataNodeConfig._REQUIRED_WRITE_QUERY_BUILDER_SQL_PROPERTY, - DataNodeConfig._OPTIONAL_APPEND_QUERY_BUILDER_SQL_PROPERTY, - ], - ), - ], - } - def __init__(self, config: _Config, collector: IssueCollector): super().__init__(config, collector) @@ -67,7 +46,7 @@ def _check(self) -> IssueCollector: self._check_scope(data_node_config_id, data_node_config) self._check_validity_period(data_node_config_id, data_node_config) self._check_required_properties(data_node_config_id, data_node_config) - self._check_class_type(data_node_config_id, data_node_config) + self._check_property_types(data_node_config_id, data_node_config) self._check_generic_read_write_fct_and_args(data_node_config_id, data_node_config) self._check_exposed_type(data_node_config_id, data_node_config) return self._collector @@ -217,31 +196,34 @@ def _check_generic_read_write_fct_and_args(self, data_node_config_id: str, data_ f"DataNodeConfig `{data_node_config_id}` must be populated with a Callable function.", ) - def _check_class_type(self, data_node_config_id: str, data_node_config: DataNodeConfig): - if data_node_config.storage_type in self._PROPERTIES_TYPES.keys(): - for class_type, prop_keys in self._PROPERTIES_TYPES[data_node_config.storage_type]: - for prop_key in prop_keys: - prop_value = data_node_config.properties.get(prop_key) if data_node_config.properties else None - if prop_value and not isinstance(prop_value, class_type): - self._error( - prop_key, - prop_value, - f"`{prop_key}` of DataNodeConfig `{data_node_config_id}` must be" - f" populated with a {'Callable' if class_type == Callable else class_type.__name__}.", - ) - if class_type == Callable and callable(prop_value) and prop_value.__name__ == "": - self._error( - prop_key, - prop_value, - f"`{prop_key}` of DataNodeConfig `{data_node_config_id}` must be" - f" populated with a serializable Callable function but not a lambda.", - ) + def _check_property_types(self, data_node_config_id: str, data_node_config: DataNodeConfig): + if property_types := data_node_config._PROPERTIES_TYPES.get(data_node_config.storage_type): + for prop_key, prop_type in property_types.items(): + prop_value = data_node_config.properties.get(prop_key) if data_node_config.properties else None + + if prop_value and not isinstance(prop_value, prop_type): + self._error( + prop_key, + prop_value, + f"`{prop_key}` of DataNodeConfig `{data_node_config_id}` must be" + f" populated with a {prop_type}.", + ) + + if prop_type == Callable and callable(prop_value) and prop_value.__name__ == "": + self._error( + prop_key, + prop_value, + f"`{prop_key}` of DataNodeConfig `{data_node_config_id}` must be" + f" populated with a serializable typing.Callable function but not a lambda.", + ) def _check_exposed_type(self, data_node_config_id: str, data_node_config: DataNodeConfig): if not isinstance(data_node_config.exposed_type, str): return if data_node_config.exposed_type not in DataNodeConfig._ALL_EXPOSED_TYPES: - valid_exposed_types_str = ", ".join([f'"{x}"' for x in DataNodeConfig._ALL_EXPOSED_TYPES]) + valid_exposed_types_str = ", ".join( + [f'"{x}"' for x in DataNodeConfig._ALL_EXPOSED_TYPES if isinstance(x, str)] + ) self._error( data_node_config._EXPOSED_TYPE_KEY, data_node_config.exposed_type, diff --git a/taipy/core/config/checkers/_job_config_checker.py b/taipy/core/config/checkers/_job_config_checker.py index 7da8735924..391f5d6518 100644 --- a/taipy/core/config/checkers/_job_config_checker.py +++ b/taipy/core/config/checkers/_job_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/checkers/_scenario_config_checker.py b/taipy/core/config/checkers/_scenario_config_checker.py index 5041adcdc4..f495f1e3df 100644 --- a/taipy/core/config/checkers/_scenario_config_checker.py +++ b/taipy/core/config/checkers/_scenario_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/checkers/_task_config_checker.py b/taipy/core/config/checkers/_task_config_checker.py index 831a15e552..c85531cb00 100644 --- a/taipy/core/config/checkers/_task_config_checker.py +++ b/taipy/core/config/checkers/_task_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/core_section.py b/taipy/core/config/core_section.py index e0c91b5776..161f2ccd91 100644 --- a/taipy/core/config/core_section.py +++ b/taipy/core/config/core_section.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/data_node_config.py b/taipy/core/config/data_node_config.py index 8edc6ce171..c451c7baca 100644 --- a/taipy/core/config/data_node_config.py +++ b/taipy/core/config/data_node_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -11,9 +11,12 @@ import json from copy import copy -from datetime import timedelta +from datetime import datetime, timedelta from typing import Any, Callable, Dict, List, Optional, Union +import numpy +import pandas + from taipy.common.config import Config from taipy.common.config._config import _Config from taipy.common.config.common._config_blocker import _ConfigBlocker @@ -38,7 +41,7 @@ class DataNodeConfig(Section): """ name = "DATA_NODE" - + _ALL_TYPES = (str, int, float, bool, list, dict, tuple, set, type(None), type(callable), datetime, timedelta) _STORAGE_TYPE_KEY = "storage_type" _STORAGE_TYPE_VALUE_PICKLE = "pickle" _STORAGE_TYPE_VALUE_SQL_TABLE = "sql_table" @@ -71,11 +74,15 @@ class DataNodeConfig(Section): _EXPOSED_TYPE_PANDAS = "pandas" _EXPOSED_TYPE_MODIN = "modin" # Deprecated in favor of pandas since 3.1.0 _EXPOSED_TYPE_NUMPY = "numpy" + _EXPOSED_TYPE_PANDAS_DATAFRAME = pandas.DataFrame + _EXPOSED_TYPE_NUMPY_NDARRAY = numpy.ndarray _DEFAULT_EXPOSED_TYPE = _EXPOSED_TYPE_PANDAS _ALL_EXPOSED_TYPES = [ _EXPOSED_TYPE_PANDAS, _EXPOSED_TYPE_NUMPY, + _EXPOSED_TYPE_PANDAS_DATAFRAME, + _EXPOSED_TYPE_NUMPY_NDARRAY, ] _OPTIONAL_ENCODING_PROPERTY = "encoding" @@ -150,6 +157,99 @@ class DataNodeConfig(Section): _OPTIONAL_AWS_S3_GET_OBJECT_PARAMETERS_PROPERTY = "aws_s3_get_object_parameters" _OPTIONAL_AWS_S3_PUT_OBJECT_PARAMETERS_PROPERTY = "aws_s3_put_object_parameters" + _PROPERTIES_TYPES: Dict[str, Dict[str, Any]] = { + _STORAGE_TYPE_VALUE_GENERIC: { + _OPTIONAL_READ_FUNCTION_GENERIC_PROPERTY: Callable, + _OPTIONAL_WRITE_FUNCTION_GENERIC_PROPERTY: Callable, + _OPTIONAL_READ_FUNCTION_ARGS_GENERIC_PROPERTY: list, + _OPTIONAL_WRITE_FUNCTION_ARGS_GENERIC_PROPERTY: list, + }, + _STORAGE_TYPE_VALUE_SQL: { + _REQUIRED_DB_NAME_SQL_PROPERTY: str, + _REQUIRED_DB_ENGINE_SQL_PROPERTY: str, + _REQUIRED_READ_QUERY_SQL_PROPERTY: str, + _REQUIRED_WRITE_QUERY_BUILDER_SQL_PROPERTY: Callable, + _OPTIONAL_APPEND_QUERY_BUILDER_SQL_PROPERTY: Callable, + _OPTIONAL_DB_USERNAME_SQL_PROPERTY: str, + _OPTIONAL_DB_PASSWORD_SQL_PROPERTY: str, + _OPTIONAL_HOST_SQL_PROPERTY: str, + _OPTIONAL_PORT_SQL_PROPERTY: int, + _OPTIONAL_DRIVER_SQL_PROPERTY: str, + _OPTIONAL_FOLDER_PATH_SQLITE_PROPERTY: str, + _OPTIONAL_FILE_EXTENSION_SQLITE_PROPERTY: str, + _OPTIONAL_DB_EXTRA_ARGS_SQL_PROPERTY: dict, + _OPTIONAL_EXPOSED_TYPE_SQL_PROPERTY: (str, Callable), + }, + _STORAGE_TYPE_VALUE_SQL_TABLE: { + _REQUIRED_DB_NAME_SQL_PROPERTY: str, + _REQUIRED_DB_ENGINE_SQL_PROPERTY: str, + _REQUIRED_TABLE_NAME_SQL_TABLE_PROPERTY: str, + _OPTIONAL_DB_USERNAME_SQL_PROPERTY: str, + _OPTIONAL_DB_PASSWORD_SQL_PROPERTY: str, + _OPTIONAL_HOST_SQL_PROPERTY: str, + _OPTIONAL_PORT_SQL_PROPERTY: int, + _OPTIONAL_DRIVER_SQL_PROPERTY: str, + _OPTIONAL_FOLDER_PATH_SQLITE_PROPERTY: str, + _OPTIONAL_FILE_EXTENSION_SQLITE_PROPERTY: str, + _OPTIONAL_DB_EXTRA_ARGS_SQL_PROPERTY: dict, + _OPTIONAL_EXPOSED_TYPE_SQL_PROPERTY: (str, Callable), + }, + _STORAGE_TYPE_VALUE_CSV: { + _OPTIONAL_DEFAULT_PATH_CSV_PROPERTY: str, + _OPTIONAL_ENCODING_PROPERTY: str, + _OPTIONAL_HAS_HEADER_CSV_PROPERTY: bool, + _OPTIONAL_EXPOSED_TYPE_CSV_PROPERTY: (str, Callable), + }, + _STORAGE_TYPE_VALUE_EXCEL: { + _OPTIONAL_DEFAULT_PATH_EXCEL_PROPERTY: str, + _OPTIONAL_HAS_HEADER_EXCEL_PROPERTY: bool, + _OPTIONAL_SHEET_NAME_EXCEL_PROPERTY: (str, list), + _OPTIONAL_EXPOSED_TYPE_EXCEL_PROPERTY: (str, Callable), + }, + _STORAGE_TYPE_VALUE_IN_MEMORY: { + _OPTIONAL_DEFAULT_DATA_IN_MEMORY_PROPERTY: _ALL_TYPES, + }, + _STORAGE_TYPE_VALUE_PICKLE: { + _OPTIONAL_DEFAULT_PATH_PICKLE_PROPERTY: str, + _OPTIONAL_DEFAULT_DATA_PICKLE_PROPERTY: _ALL_TYPES, + }, + _STORAGE_TYPE_VALUE_JSON: { + _OPTIONAL_DEFAULT_PATH_JSON_PROPERTY: str, + _OPTIONAL_ENCODING_PROPERTY: str, + _OPTIONAL_ENCODER_JSON_PROPERTY: json.JSONEncoder, + _OPTIONAL_DECODER_JSON_PROPERTY: json.JSONDecoder, + }, + _STORAGE_TYPE_VALUE_PARQUET: { + _OPTIONAL_DEFAULT_PATH_PARQUET_PROPERTY: str, + _OPTIONAL_ENGINE_PARQUET_PROPERTY: str, + _OPTIONAL_COMPRESSION_PARQUET_PROPERTY: str, + _OPTIONAL_READ_KWARGS_PARQUET_PROPERTY: dict, + _OPTIONAL_WRITE_KWARGS_PARQUET_PROPERTY: dict, + _OPTIONAL_EXPOSED_TYPE_PARQUET_PROPERTY: (str, Callable), + }, + _STORAGE_TYPE_VALUE_MONGO_COLLECTION: { + _REQUIRED_DB_NAME_MONGO_PROPERTY: str, + _REQUIRED_COLLECTION_NAME_MONGO_PROPERTY: str, + _OPTIONAL_CUSTOM_DOCUMENT_MONGO_PROPERTY: str, + _OPTIONAL_USERNAME_MONGO_PROPERTY: str, + _OPTIONAL_PASSWORD_MONGO_PROPERTY: str, + _OPTIONAL_HOST_MONGO_PROPERTY: str, + _OPTIONAL_PORT_MONGO_PROPERTY: int, + _OPTIONAL_DRIVER_MONGO_PROPERTY: str, + _OPTIONAL_DB_EXTRA_ARGS_MONGO_PROPERTY: dict, + }, + _STORAGE_TYPE_VALUE_S3_OBJECT: { + _REQUIRED_AWS_ACCESS_KEY_ID_PROPERTY: str, + _REQUIRED_AWS_SECRET_ACCESS_KEY_PROPERTY: str, + _REQUIRED_AWS_STORAGE_BUCKET_NAME_PROPERTY: str, + _REQUIRED_AWS_S3_OBJECT_KEY_PROPERTY: str, + _OPTIONAL_AWS_REGION_PROPERTY: str, + _OPTIONAL_AWS_S3_CLIENT_PARAMETERS_PROPERTY: dict, + _OPTIONAL_AWS_S3_GET_OBJECT_PARAMETERS_PROPERTY: dict, + _OPTIONAL_AWS_S3_PUT_OBJECT_PARAMETERS_PROPERTY: dict, + }, + } + _REQUIRED_PROPERTIES: Dict[str, List] = { _STORAGE_TYPE_VALUE_PICKLE: [], _STORAGE_TYPE_VALUE_SQL_TABLE: [ diff --git a/taipy/core/config/job_config.py b/taipy/core/config/job_config.py index 8e99e6fa31..b473abef82 100644 --- a/taipy/core/config/job_config.py +++ b/taipy/core/config/job_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/scenario_config.py b/taipy/core/config/scenario_config.py index f7b19a97ed..182fdabc72 100644 --- a/taipy/core/config/scenario_config.py +++ b/taipy/core/config/scenario_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/config/task_config.py b/taipy/core/config/task_config.py index 436c796650..c265edf115 100644 --- a/taipy/core/config/task_config.py +++ b/taipy/core/config/task_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/__init__.py b/taipy/core/cycle/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/cycle/__init__.py +++ b/taipy/core/cycle/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/_cycle_converter.py b/taipy/core/cycle/_cycle_converter.py index ebc6deba36..1c95b8fa51 100644 --- a/taipy/core/cycle/_cycle_converter.py +++ b/taipy/core/cycle/_cycle_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/_cycle_fs_repository.py b/taipy/core/cycle/_cycle_fs_repository.py index d4622b8042..d98bedaa63 100644 --- a/taipy/core/cycle/_cycle_fs_repository.py +++ b/taipy/core/cycle/_cycle_fs_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/_cycle_manager.py b/taipy/core/cycle/_cycle_manager.py index 8de779d414..a523fececf 100644 --- a/taipy/core/cycle/_cycle_manager.py +++ b/taipy/core/cycle/_cycle_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/_cycle_manager_factory.py b/taipy/core/cycle/_cycle_manager_factory.py index b28ea55c95..d1073771cd 100644 --- a/taipy/core/cycle/_cycle_manager_factory.py +++ b/taipy/core/cycle/_cycle_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/_cycle_model.py b/taipy/core/cycle/_cycle_model.py index 5bb1804440..403048922e 100644 --- a/taipy/core/cycle/_cycle_model.py +++ b/taipy/core/cycle/_cycle_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/cycle.py b/taipy/core/cycle/cycle.py index cd0c3c7b1c..84db27994a 100644 --- a/taipy/core/cycle/cycle.py +++ b/taipy/core/cycle/cycle.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/cycle/cycle_id.py b/taipy/core/cycle/cycle_id.py index 9f9209e22f..64b956586d 100644 --- a/taipy/core/cycle/cycle_id.py +++ b/taipy/core/cycle/cycle_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/__init__.py b/taipy/core/data/__init__.py index c693dc68ab..78aba9aa38 100644 --- a/taipy/core/data/__init__.py +++ b/taipy/core/data/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_abstract_sql.py b/taipy/core/data/_abstract_sql.py index 18fb42f45d..98083fc3eb 100644 --- a/taipy/core/data/_abstract_sql.py +++ b/taipy/core/data/_abstract_sql.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_data_converter.py b/taipy/core/data/_data_converter.py index d934d42497..9198943096 100644 --- a/taipy/core/data/_data_converter.py +++ b/taipy/core/data/_data_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_data_fs_repository.py b/taipy/core/data/_data_fs_repository.py index 60b4d3c9d3..315d476c58 100644 --- a/taipy/core/data/_data_fs_repository.py +++ b/taipy/core/data/_data_fs_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_data_manager.py b/taipy/core/data/_data_manager.py index 254499e1b2..e65d0ec779 100644 --- a/taipy/core/data/_data_manager.py +++ b/taipy/core/data/_data_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_data_manager_factory.py b/taipy/core/data/_data_manager_factory.py index 33a0dcd455..7595372b73 100644 --- a/taipy/core/data/_data_manager_factory.py +++ b/taipy/core/data/_data_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_data_model.py b/taipy/core/data/_data_model.py index 51369eaa07..1e477b0bea 100644 --- a/taipy/core/data/_data_model.py +++ b/taipy/core/data/_data_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_file_datanode_mixin.py b/taipy/core/data/_file_datanode_mixin.py index e7c12463a2..ff87146756 100644 --- a/taipy/core/data/_file_datanode_mixin.py +++ b/taipy/core/data/_file_datanode_mixin.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_filter.py b/taipy/core/data/_filter.py index 074c68bfef..bf4d997c86 100644 --- a/taipy/core/data/_filter.py +++ b/taipy/core/data/_filter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/_tabular_datanode_mixin.py b/taipy/core/data/_tabular_datanode_mixin.py index 54e5d04947..57a20830eb 100644 --- a/taipy/core/data/_tabular_datanode_mixin.py +++ b/taipy/core/data/_tabular_datanode_mixin.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -26,6 +26,8 @@ class _TabularDataNodeMixin(object): _EXPOSED_TYPE_PANDAS = "pandas" _EXPOSED_TYPE_MODIN = "modin" # Deprecated in favor of pandas since 3.1.0 _VALID_STRING_EXPOSED_TYPES = [_EXPOSED_TYPE_PANDAS, _EXPOSED_TYPE_NUMPY] + _EXPOSED_TYPE_PANDAS_DATAFRAME = pd.DataFrame + _EXPOSED_TYPE_NUMPY_NDARRAY = np.ndarray def __init__(self, **kwargs) -> None: self._decoder: Union[Callable, Any] @@ -44,11 +46,14 @@ def __init__(self, **kwargs) -> None: if callable(custom_encoder): self._encoder = custom_encoder - def _convert_data_to_dataframe(self, exposed_type: Any, data: Any) -> Union[pd.DataFrame, pd.Series]: - if exposed_type == self._EXPOSED_TYPE_PANDAS and isinstance(data, (pd.DataFrame, pd.Series)): + if exposed_type in [self._EXPOSED_TYPE_PANDAS, self._EXPOSED_TYPE_PANDAS_DATAFRAME] and isinstance( + data, (pd.DataFrame, pd.Series) + ): return data - elif exposed_type == self._EXPOSED_TYPE_NUMPY and isinstance(data, np.ndarray): + elif exposed_type in [self._EXPOSED_TYPE_NUMPY, self._EXPOSED_TYPE_NUMPY_NDARRAY] and isinstance( + data, np.ndarray + ): return pd.DataFrame(data) elif isinstance(data, list) and not isinstance(exposed_type, str): return pd.DataFrame.from_records([self._encoder(row) for row in data]) diff --git a/taipy/core/data/aws_s3.py b/taipy/core/data/aws_s3.py index 45a307115b..bb5f800503 100644 --- a/taipy/core/data/aws_s3.py +++ b/taipy/core/data/aws_s3.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/csv.py b/taipy/core/data/csv.py index f61e1b1b55..083215bc4e 100644 --- a/taipy/core/data/csv.py +++ b/taipy/core/data/csv.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -134,9 +134,9 @@ def _read_from_path(self, path: Optional[str] = None, **read_kwargs) -> Any: path = self._path properties = self.properties - if properties[self._EXPOSED_TYPE_PROPERTY] == self._EXPOSED_TYPE_PANDAS: + if properties[self._EXPOSED_TYPE_PROPERTY] in [self._EXPOSED_TYPE_PANDAS, self._EXPOSED_TYPE_PANDAS_DATAFRAME]: return self._read_as_pandas_dataframe(path=path) - if properties[self._EXPOSED_TYPE_PROPERTY] == self._EXPOSED_TYPE_NUMPY: + if properties[self._EXPOSED_TYPE_PROPERTY] in [self._EXPOSED_TYPE_NUMPY, self._EXPOSED_TYPE_NUMPY_NDARRAY]: return self._read_as_numpy(path=path) return self._read_as(path=path) diff --git a/taipy/core/data/data_node.py b/taipy/core/data/data_node.py index 67dcfc0f98..08e8b2e1da 100644 --- a/taipy/core/data/data_node.py +++ b/taipy/core/data/data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/data_node_id.py b/taipy/core/data/data_node_id.py index 8149c718ba..a21b72ef92 100644 --- a/taipy/core/data/data_node_id.py +++ b/taipy/core/data/data_node_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/excel.py b/taipy/core/data/excel.py index f7bb0ddfd2..3e39c1160f 100644 --- a/taipy/core/data/excel.py +++ b/taipy/core/data/excel.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -137,7 +137,7 @@ def write_with_column_names(self, data: Any, columns: List[str] = None, editor_i @staticmethod def _check_exposed_type(exposed_type): - if isinstance(exposed_type, str): + if isinstance(exposed_type, str) or exposed_type in [pd.DataFrame, np.ndarray]: _TabularDataNodeMixin._check_exposed_type(exposed_type) elif isinstance(exposed_type, list): for t in exposed_type: @@ -154,18 +154,18 @@ def _read_from_path(self, path: Optional[str] = None, **read_kwargs) -> Any: path = self._path exposed_type = self.properties[self._EXPOSED_TYPE_PROPERTY] - if exposed_type == self._EXPOSED_TYPE_PANDAS: + if exposed_type in [self._EXPOSED_TYPE_PANDAS, self._EXPOSED_TYPE_PANDAS_DATAFRAME]: return self._read_as_pandas_dataframe(path=path) - if exposed_type == self._EXPOSED_TYPE_NUMPY: + if exposed_type in [self._EXPOSED_TYPE_NUMPY, self._EXPOSED_TYPE_NUMPY_NDARRAY]: return self._read_as_numpy(path=path) return self._read_as(path=path) def _read_sheet_with_exposed_type( self, path: str, sheet_exposed_type: str, sheet_name: str ) -> Optional[Union[np.ndarray, pd.DataFrame]]: - if sheet_exposed_type == self._EXPOSED_TYPE_NUMPY: + if sheet_exposed_type in [self._EXPOSED_TYPE_NUMPY, self._EXPOSED_TYPE_NUMPY_NDARRAY]: return self._read_as_numpy(path, sheet_name) - elif sheet_exposed_type == self._EXPOSED_TYPE_PANDAS: + elif sheet_exposed_type in [self._EXPOSED_TYPE_PANDAS, self._EXPOSED_TYPE_PANDAS_DATAFRAME]: return self._read_as_pandas_dataframe(path, sheet_name) # type: ignore return None @@ -202,6 +202,10 @@ def _read_as(self, path: str): sheet_exposed_type = exposed_type.get(sheet_name, self._EXPOSED_TYPE_PANDAS) elif isinstance(exposed_type, List): sheet_exposed_type = exposed_type[i] + elif exposed_type == np.ndarray: + sheet_exposed_type = self._EXPOSED_TYPE_NUMPY + elif exposed_type == pd.DataFrame: + sheet_exposed_type = self._EXPOSED_TYPE_PANDAS if isinstance(sheet_exposed_type, str): sheet_data = self._read_sheet_with_exposed_type(path, sheet_exposed_type, sheet_name) diff --git a/taipy/core/data/generic.py b/taipy/core/data/generic.py index 75366aae00..1b0775a713 100644 --- a/taipy/core/data/generic.py +++ b/taipy/core/data/generic.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/in_memory.py b/taipy/core/data/in_memory.py index 422d49fb6f..701e80bfbc 100644 --- a/taipy/core/data/in_memory.py +++ b/taipy/core/data/in_memory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/json.py b/taipy/core/data/json.py index eed76d2a31..c18ab8d7b1 100644 --- a/taipy/core/data/json.py +++ b/taipy/core/data/json.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/mongo.py b/taipy/core/data/mongo.py index 88b94ba6b5..7f9fa9d2ac 100644 --- a/taipy/core/data/mongo.py +++ b/taipy/core/data/mongo.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/operator.py b/taipy/core/data/operator.py index dcb319c130..8f3fe18191 100644 --- a/taipy/core/data/operator.py +++ b/taipy/core/data/operator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/parquet.py b/taipy/core/data/parquet.py index 698aae58a5..7c526b35d8 100644 --- a/taipy/core/data/parquet.py +++ b/taipy/core/data/parquet.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -227,9 +227,9 @@ def _read_from_path(self, path: Optional[str] = None, **read_kwargs) -> Any: return self._do_read_from_path(path, properties[self._EXPOSED_TYPE_PROPERTY], kwargs) def _do_read_from_path(self, path: str, exposed_type: str, kwargs: Dict) -> Any: - if exposed_type == self._EXPOSED_TYPE_PANDAS: + if exposed_type in [self._EXPOSED_TYPE_PANDAS, self._EXPOSED_TYPE_PANDAS_DATAFRAME]: return self._read_as_pandas_dataframe(path, kwargs) - if exposed_type == self._EXPOSED_TYPE_NUMPY: + if exposed_type in [self._EXPOSED_TYPE_NUMPY, self._EXPOSED_TYPE_NUMPY_NDARRAY]: return self._read_as_numpy(path, kwargs) return self._read_as(path, kwargs) @@ -249,4 +249,3 @@ def _append(self, data: Any): def _write(self, data: Any): self._write_with_kwargs(data) - diff --git a/taipy/core/data/pickle.py b/taipy/core/data/pickle.py index b976f18640..b86e82d6c7 100644 --- a/taipy/core/data/pickle.py +++ b/taipy/core/data/pickle.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/sql.py b/taipy/core/data/sql.py index d790b52a57..b39e1dc6ea 100644 --- a/taipy/core/data/sql.py +++ b/taipy/core/data/sql.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/data/sql_table.py b/taipy/core/data/sql_table.py index a55b20627e..8f24de2870 100644 --- a/taipy/core/data/sql_table.py +++ b/taipy/core/data/sql_table.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/exceptions/__init__.py b/taipy/core/exceptions/__init__.py index 1ccc0cfa2a..ceb2e7319e 100644 --- a/taipy/core/exceptions/__init__.py +++ b/taipy/core/exceptions/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/exceptions/exceptions.py b/taipy/core/exceptions/exceptions.py index 916d4f5176..e18ac0690f 100644 --- a/taipy/core/exceptions/exceptions.py +++ b/taipy/core/exceptions/exceptions.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/__init__.py b/taipy/core/job/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/job/__init__.py +++ b/taipy/core/job/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/_job_converter.py b/taipy/core/job/_job_converter.py index b25864e4d5..5d5a50b3c7 100644 --- a/taipy/core/job/_job_converter.py +++ b/taipy/core/job/_job_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/_job_fs_repository.py b/taipy/core/job/_job_fs_repository.py index 36a2a7748c..bd17fc8605 100644 --- a/taipy/core/job/_job_fs_repository.py +++ b/taipy/core/job/_job_fs_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/_job_manager.py b/taipy/core/job/_job_manager.py index 676f486a8b..52c9d045ca 100644 --- a/taipy/core/job/_job_manager.py +++ b/taipy/core/job/_job_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/_job_manager_factory.py b/taipy/core/job/_job_manager_factory.py index 96f2407222..f1c488a887 100644 --- a/taipy/core/job/_job_manager_factory.py +++ b/taipy/core/job/_job_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/_job_model.py b/taipy/core/job/_job_model.py index f4c251d2db..79141b2904 100644 --- a/taipy/core/job/_job_model.py +++ b/taipy/core/job/_job_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/job.py b/taipy/core/job/job.py index 43343df6a2..d4c49e52e7 100644 --- a/taipy/core/job/job.py +++ b/taipy/core/job/job.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/job_id.py b/taipy/core/job/job_id.py index 83b6aaf6d1..7f8530375f 100644 --- a/taipy/core/job/job_id.py +++ b/taipy/core/job/job_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/job/status.py b/taipy/core/job/status.py index 9620cdc319..2c43a152ca 100644 --- a/taipy/core/job/status.py +++ b/taipy/core/job/status.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/notification/__init__.py b/taipy/core/notification/__init__.py index cead5789fb..4d2631cb43 100644 --- a/taipy/core/notification/__init__.py +++ b/taipy/core/notification/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/notification/_registration.py b/taipy/core/notification/_registration.py index 6810d7ade1..418edd9da5 100644 --- a/taipy/core/notification/_registration.py +++ b/taipy/core/notification/_registration.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/notification/_topic.py b/taipy/core/notification/_topic.py index be7901480b..f279e4ff0a 100644 --- a/taipy/core/notification/_topic.py +++ b/taipy/core/notification/_topic.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/notification/core_event_consumer.py b/taipy/core/notification/core_event_consumer.py index 26b7238f0a..2c82623fe6 100644 --- a/taipy/core/notification/core_event_consumer.py +++ b/taipy/core/notification/core_event_consumer.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/notification/event.py b/taipy/core/notification/event.py index 63eafca714..d2641a490d 100644 --- a/taipy/core/notification/event.py +++ b/taipy/core/notification/event.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/notification/notifier.py b/taipy/core/notification/notifier.py index 3cfd09c62d..eba79fca6f 100644 --- a/taipy/core/notification/notifier.py +++ b/taipy/core/notification/notifier.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/notification/registration_id.py b/taipy/core/notification/registration_id.py index 0ebc22cf8f..751fe2159e 100644 --- a/taipy/core/notification/registration_id.py +++ b/taipy/core/notification/registration_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/orchestrator.py b/taipy/core/orchestrator.py index 18dc16e393..6e8f259948 100644 --- a/taipy/core/orchestrator.py +++ b/taipy/core/orchestrator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/package_desc.md b/taipy/core/package_desc.md index 05cdadf331..bfc56b5047 100644 --- a/taipy/core/package_desc.md +++ b/taipy/core/package_desc.md @@ -2,7 +2,7 @@ ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/core/reason/__init__.py b/taipy/core/reason/__init__.py index 669bcc4f6f..ffc2911ef4 100644 --- a/taipy/core/reason/__init__.py +++ b/taipy/core/reason/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/reason/reason.py b/taipy/core/reason/reason.py index 8ffea79b13..843c0b149d 100644 --- a/taipy/core/reason/reason.py +++ b/taipy/core/reason/reason.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/reason/reason_collection.py b/taipy/core/reason/reason_collection.py index e0fbca2d2f..dfba179eda 100644 --- a/taipy/core/reason/reason_collection.py +++ b/taipy/core/reason/reason_collection.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/__init__.py b/taipy/core/scenario/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/scenario/__init__.py +++ b/taipy/core/scenario/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/_scenario_converter.py b/taipy/core/scenario/_scenario_converter.py index d69cc0660b..e138e1cabc 100644 --- a/taipy/core/scenario/_scenario_converter.py +++ b/taipy/core/scenario/_scenario_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/_scenario_fs_repository.py b/taipy/core/scenario/_scenario_fs_repository.py index ec25906659..247272053e 100644 --- a/taipy/core/scenario/_scenario_fs_repository.py +++ b/taipy/core/scenario/_scenario_fs_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/_scenario_manager.py b/taipy/core/scenario/_scenario_manager.py index 0450f99313..b8d71c25d9 100644 --- a/taipy/core/scenario/_scenario_manager.py +++ b/taipy/core/scenario/_scenario_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/_scenario_manager_factory.py b/taipy/core/scenario/_scenario_manager_factory.py index 6d0785221c..b11649aff3 100644 --- a/taipy/core/scenario/_scenario_manager_factory.py +++ b/taipy/core/scenario/_scenario_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/_scenario_model.py b/taipy/core/scenario/_scenario_model.py index f8d1a3f155..2d0055bb25 100644 --- a/taipy/core/scenario/_scenario_model.py +++ b/taipy/core/scenario/_scenario_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/scenario.py b/taipy/core/scenario/scenario.py index 3721c85d86..bdb5652963 100644 --- a/taipy/core/scenario/scenario.py +++ b/taipy/core/scenario/scenario.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/scenario/scenario_id.py b/taipy/core/scenario/scenario_id.py index 1fc87f0d48..94b3970bbe 100644 --- a/taipy/core/scenario/scenario_id.py +++ b/taipy/core/scenario/scenario_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/sequence/__init__.py b/taipy/core/sequence/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/sequence/__init__.py +++ b/taipy/core/sequence/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/sequence/_sequence_converter.py b/taipy/core/sequence/_sequence_converter.py index 5836fc9738..b401a95c97 100644 --- a/taipy/core/sequence/_sequence_converter.py +++ b/taipy/core/sequence/_sequence_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/sequence/_sequence_manager.py b/taipy/core/sequence/_sequence_manager.py index 7a10f48d45..993546a92c 100644 --- a/taipy/core/sequence/_sequence_manager.py +++ b/taipy/core/sequence/_sequence_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/sequence/_sequence_manager_factory.py b/taipy/core/sequence/_sequence_manager_factory.py index 5d11e6a46b..83199c9fae 100644 --- a/taipy/core/sequence/_sequence_manager_factory.py +++ b/taipy/core/sequence/_sequence_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/sequence/sequence.py b/taipy/core/sequence/sequence.py index 1ffbe870bd..b07d0e348d 100644 --- a/taipy/core/sequence/sequence.py +++ b/taipy/core/sequence/sequence.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/sequence/sequence_id.py b/taipy/core/sequence/sequence_id.py index 9bd4c52b74..27761b2e30 100644 --- a/taipy/core/sequence/sequence_id.py +++ b/taipy/core/sequence/sequence_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/setup.py b/taipy/core/setup.py index 18296101de..b775dcb1de 100644 --- a/taipy/core/setup.py +++ b/taipy/core/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/__init__.py b/taipy/core/submission/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/submission/__init__.py +++ b/taipy/core/submission/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/_submission_converter.py b/taipy/core/submission/_submission_converter.py index 142655bb5d..60c4f16a6f 100644 --- a/taipy/core/submission/_submission_converter.py +++ b/taipy/core/submission/_submission_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/_submission_fs_repository.py b/taipy/core/submission/_submission_fs_repository.py index 742865f00d..2497532e55 100644 --- a/taipy/core/submission/_submission_fs_repository.py +++ b/taipy/core/submission/_submission_fs_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/_submission_manager.py b/taipy/core/submission/_submission_manager.py index 91c14f9e0a..27672e856f 100644 --- a/taipy/core/submission/_submission_manager.py +++ b/taipy/core/submission/_submission_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/_submission_manager_factory.py b/taipy/core/submission/_submission_manager_factory.py index 8758a34e08..61f2380aef 100644 --- a/taipy/core/submission/_submission_manager_factory.py +++ b/taipy/core/submission/_submission_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/_submission_model.py b/taipy/core/submission/_submission_model.py index dacd4f7915..7105ba2477 100644 --- a/taipy/core/submission/_submission_model.py +++ b/taipy/core/submission/_submission_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/submission.py b/taipy/core/submission/submission.py index e2c2d136bb..9a781b2d5f 100644 --- a/taipy/core/submission/submission.py +++ b/taipy/core/submission/submission.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/submission_id.py b/taipy/core/submission/submission_id.py index dc784cc145..0331e313c8 100644 --- a/taipy/core/submission/submission_id.py +++ b/taipy/core/submission/submission_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/submission/submission_status.py b/taipy/core/submission/submission_status.py index 5c94c3870e..e499bb865b 100644 --- a/taipy/core/submission/submission_status.py +++ b/taipy/core/submission/submission_status.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/taipy.py b/taipy/core/taipy.py index fba1355ca6..784cb8f314 100644 --- a/taipy/core/taipy.py +++ b/taipy/core/taipy.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/__init__.py b/taipy/core/task/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/core/task/__init__.py +++ b/taipy/core/task/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/_task_converter.py b/taipy/core/task/_task_converter.py index a07081d4d7..866d75ed4b 100644 --- a/taipy/core/task/_task_converter.py +++ b/taipy/core/task/_task_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/_task_fs_repository.py b/taipy/core/task/_task_fs_repository.py index 66ec96de02..4544fdaa59 100644 --- a/taipy/core/task/_task_fs_repository.py +++ b/taipy/core/task/_task_fs_repository.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/_task_manager.py b/taipy/core/task/_task_manager.py index dec530a3cd..4336b8069f 100644 --- a/taipy/core/task/_task_manager.py +++ b/taipy/core/task/_task_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/_task_manager_factory.py b/taipy/core/task/_task_manager_factory.py index c8a1591386..78039f528c 100644 --- a/taipy/core/task/_task_manager_factory.py +++ b/taipy/core/task/_task_manager_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/_task_model.py b/taipy/core/task/_task_model.py index e4a337b588..3084125ec7 100644 --- a/taipy/core/task/_task_model.py +++ b/taipy/core/task/_task_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/task.py b/taipy/core/task/task.py index ff1d599b16..ecedf8ae4b 100644 --- a/taipy/core/task/task.py +++ b/taipy/core/task/task.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/core/task/task_id.py b/taipy/core/task/task_id.py index 8d6a0b77b6..87b6305da7 100644 --- a/taipy/core/task/task_id.py +++ b/taipy/core/task/task_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/LICENSE b/taipy/gui/LICENSE index ca413c9dd6..96ca40dd64 100644 --- a/taipy/gui/LICENSE +++ b/taipy/gui/LICENSE @@ -187,7 +187,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2021-2024 Avaiga Private Limited + Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/taipy/gui/README.md b/taipy/gui/README.md index 73d85b2030..d023e25b41 100644 --- a/taipy/gui/README.md +++ b/taipy/gui/README.md @@ -1,7 +1,7 @@ # Taipy GUI ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/gui/__init__.py b/taipy/gui/__init__.py index e3a04c72b5..17ec6de3ef 100644 --- a/taipy/gui/__init__.py +++ b/taipy/gui/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_default_config.py b/taipy/gui/_default_config.py index 3c42cc9498..94660a338a 100644 --- a/taipy/gui/_default_config.py +++ b/taipy/gui/_default_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_event_context_manager.py b/taipy/gui/_event_context_manager.py index 5be745e868..99ec2b4549 100644 --- a/taipy/gui/_event_context_manager.py +++ b/taipy/gui/_event_context_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_gui_cli.py b/taipy/gui/_gui_cli.py index caebace15b..d4417ce15e 100644 --- a/taipy/gui/_gui_cli.py +++ b/taipy/gui/_gui_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_gui_section.py b/taipy/gui/_gui_section.py index 6f15b4f1f3..45dba5320e 100644 --- a/taipy/gui/_gui_section.py +++ b/taipy/gui/_gui_section.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_hook.py b/taipy/gui/_hook.py index 1a4421d650..56ebf6cb8e 100644 --- a/taipy/gui/_hook.py +++ b/taipy/gui/_hook.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_init.py b/taipy/gui/_init.py index 85463c3c57..ae5c940ef3 100644 --- a/taipy/gui/_init.py +++ b/taipy/gui/_init.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_page.py b/taipy/gui/_page.py index 6505926c13..a1da83da1e 100644 --- a/taipy/gui/_page.py +++ b/taipy/gui/_page.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -16,6 +16,7 @@ import re import typing as t import warnings +from pathlib import Path from ._warnings import TaipyGuiAlwaysWarning @@ -34,14 +35,20 @@ def __init__(self) -> None: self._style: t.Optional[t.Union[str, t.Dict[str, t.Any]]] = None self._route: t.Optional[str] = None self._head: t.Optional[list] = None + self._script_paths: t.Optional[t.Union[str, Path, t.List[t.Union[str, Path]]]] = None def render(self, gui: Gui, silent: t.Optional[bool] = False): if self._renderer is None: raise RuntimeError(f"Can't render page {self._route}: no renderer found") with warnings.catch_warnings(record=True) as w: warnings.resetwarnings() - with gui._set_locals_context(self._renderer._get_module_name()): - self._rendered_jsx = self._renderer.render(gui) + module_name = self._renderer._get_module_name() + with gui._set_locals_context(module_name): + render_return = self._renderer.render(gui) + if isinstance(render_return, tuple): + self._rendered_jsx, module_name = render_return + else: + self._rendered_jsx = render_return if silent: s = "" for wm in w: @@ -76,4 +83,4 @@ def render(self, gui: Gui, silent: t.Optional[bool] = False): if hasattr(self._renderer, "head"): self._head = list(self._renderer.head) # type: ignore # return renderer module_name from frame - return self._renderer._get_module_name() + return module_name diff --git a/taipy/gui/_renderers/__init__.py b/taipy/gui/_renderers/__init__.py index 34446bdd62..0b6292cdce 100644 --- a/taipy/gui/_renderers/__init__.py +++ b/taipy/gui/_renderers/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_html/__init__.py b/taipy/gui/_renderers/_html/__init__.py index f4883b95d9..f06bbbbb42 100644 --- a/taipy/gui/_renderers/_html/__init__.py +++ b/taipy/gui/_renderers/_html/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_html/factory.py b/taipy/gui/_renderers/_html/factory.py index 35cb5f96e9..4bb736fcd9 100644 --- a/taipy/gui/_renderers/_html/factory.py +++ b/taipy/gui/_renderers/_html/factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_html/parser.py b/taipy/gui/_renderers/_html/parser.py index 6cfe2c0b29..3eae468dca 100644 --- a/taipy/gui/_renderers/_html/parser.py +++ b/taipy/gui/_renderers/_html/parser.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_markdown/__init__.py b/taipy/gui/_renderers/_markdown/__init__.py index 7501524fda..ce6ecf97f7 100644 --- a/taipy/gui/_renderers/_markdown/__init__.py +++ b/taipy/gui/_renderers/_markdown/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_markdown/blocproc.py b/taipy/gui/_renderers/_markdown/blocproc.py index 8f11b34960..db0c8abfe0 100644 --- a/taipy/gui/_renderers/_markdown/blocproc.py +++ b/taipy/gui/_renderers/_markdown/blocproc.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_markdown/control.py b/taipy/gui/_renderers/_markdown/control.py index 3da18b601f..71854cdce6 100644 --- a/taipy/gui/_renderers/_markdown/control.py +++ b/taipy/gui/_renderers/_markdown/control.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_markdown/factory.py b/taipy/gui/_renderers/_markdown/factory.py index 5517e71051..fa47e3baf6 100644 --- a/taipy/gui/_renderers/_markdown/factory.py +++ b/taipy/gui/_renderers/_markdown/factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_markdown/postproc.py b/taipy/gui/_renderers/_markdown/postproc.py index 6c66d89436..c4044bea1a 100644 --- a/taipy/gui/_renderers/_markdown/postproc.py +++ b/taipy/gui/_renderers/_markdown/postproc.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/_markdown/preproc.py b/taipy/gui/_renderers/_markdown/preproc.py index d1433851fe..d819074be2 100644 --- a/taipy/gui/_renderers/_markdown/preproc.py +++ b/taipy/gui/_renderers/_markdown/preproc.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/builder.py b/taipy/gui/_renderers/builder.py index 2c101e6708..ba9d5ee95a 100644 --- a/taipy/gui/_renderers/builder.py +++ b/taipy/gui/_renderers/builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -610,7 +610,7 @@ def _get_chart_config(self, default_type: str, default_mode: str): self.__attributes["_default_mode"] = default_mode rebuild_fn_hash = self.__build_rebuild_fn( self.__gui._get_call_method_name("_chart_conf"), - _CHART_NAMES + ("_default_type", "_default_mode", "data"), + _CHART_NAMES + ("_default_type", "_default_mode"), ) if rebuild_fn_hash: self.__set_react_attribute("config", rebuild_fn_hash) @@ -618,7 +618,23 @@ def _get_chart_config(self, default_type: str, default_mode: str): # read column definitions data = self.__attributes.get("data") data_hash = self.__hashes.get("data", "") - col_types = self.__gui._get_accessor().get_col_types(data_hash, _TaipyData(data, data_hash)) + col_types = [self.__gui._get_accessor().get_col_types(data_hash, _TaipyData(data, data_hash))] + + if data_hash: + data_updates: t.List[str] = [] + data_idx = 1 + name_idx = f"data[{data_idx}]" + while add_data_hash := self.__hashes.get(name_idx): + typed_hash = self.__get_typed_hash_name(add_data_hash, _TaipyData) + data_updates.append(typed_hash) + self.__set_react_attribute(f"data{data_idx}",_get_client_var_name(typed_hash)) + add_data = self.__attributes.get(name_idx) + data_idx += 1 + name_idx = f"data[{data_idx}]" + col_types.append( + self.__gui._get_accessor().get_col_types(add_data_hash, _TaipyData(add_data, add_data_hash)) + ) + self.set_attribute("dataVarNames", ";".join(data_updates)) config = _build_chart_config(self.__gui, self.__attributes, col_types) diff --git a/taipy/gui/_renderers/factory.py b/taipy/gui/_renderers/factory.py index 7a45cdb90f..72fe815273 100644 --- a/taipy/gui/_renderers/factory.py +++ b/taipy/gui/_renderers/factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -585,6 +585,7 @@ class _Factory: ("size",), ("downloadable", PropertyType.boolean), ("use_checkbox", PropertyType.boolean), + ("sortable", PropertyType.boolean, True), ] ) ._set_propagate() diff --git a/taipy/gui/_renderers/json.py b/taipy/gui/_renderers/json.py index afae10fa5b..6cdcb3724b 100644 --- a/taipy/gui/_renderers/json.py +++ b/taipy/gui/_renderers/json.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_renderers/utils.py b/taipy/gui/_renderers/utils.py index bcd885d2fa..3144711b69 100644 --- a/taipy/gui/_renderers/utils.py +++ b/taipy/gui/_renderers/utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/_warnings.py b/taipy/gui/_warnings.py index b68cd37631..576f89144b 100644 --- a/taipy/gui/_warnings.py +++ b/taipy/gui/_warnings.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/builder/__init__.py b/taipy/gui/builder/__init__.py index 6aaa3c51da..4c14982210 100644 --- a/taipy/gui/builder/__init__.py +++ b/taipy/gui/builder/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/builder/_api_generator.py b/taipy/gui/builder/_api_generator.py index 63a1d8f9f9..5a2f43262e 100644 --- a/taipy/gui/builder/_api_generator.py +++ b/taipy/gui/builder/_api_generator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/builder/_context_manager.py b/taipy/gui/builder/_context_manager.py index e736007566..2752e47a58 100644 --- a/taipy/gui/builder/_context_manager.py +++ b/taipy/gui/builder/_context_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/builder/_element.py b/taipy/gui/builder/_element.py index 1141152cf9..7e85896fe3 100644 --- a/taipy/gui/builder/_element.py +++ b/taipy/gui/builder/_element.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/builder/_factory.py b/taipy/gui/builder/_factory.py index 9d77696fdf..e4b8fbd1a9 100644 --- a/taipy/gui/builder/_factory.py +++ b/taipy/gui/builder/_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/builder/_utils.py b/taipy/gui/builder/_utils.py index 5ce4b898d3..4ccd70b9bc 100644 --- a/taipy/gui/builder/_utils.py +++ b/taipy/gui/builder/_utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/builder/page.py b/taipy/gui/builder/page.py index 23e32e74a1..4b72188260 100644 --- a/taipy/gui/builder/page.py +++ b/taipy/gui/builder/page.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/config.py b/taipy/gui/config.py index 5045833cd3..5cef23968a 100644 --- a/taipy/gui/config.py +++ b/taipy/gui/config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/custom/__init__.py b/taipy/gui/custom/__init__.py index a30dadfc3c..9f6f7369bc 100644 --- a/taipy/gui/custom/__init__.py +++ b/taipy/gui/custom/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/custom/_page.py b/taipy/gui/custom/_page.py index 0870470bdd..ba5256b1eb 100644 --- a/taipy/gui/custom/_page.py +++ b/taipy/gui/custom/_page.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/custom/utils.py b/taipy/gui/custom/utils.py index 4018a5c3f1..4252cf3490 100644 --- a/taipy/gui/custom/utils.py +++ b/taipy/gui/custom/utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/__init__.py b/taipy/gui/data/__init__.py index 6db1f8220d..c229cb0989 100644 --- a/taipy/gui/data/__init__.py +++ b/taipy/gui/data/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/array_dict_data_accessor.py b/taipy/gui/data/array_dict_data_accessor.py index 9af5f911b3..23701ab568 100644 --- a/taipy/gui/data/array_dict_data_accessor.py +++ b/taipy/gui/data/array_dict_data_accessor.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/comparison.py b/taipy/gui/data/comparison.py index e15786b2e5..e58a496aaf 100644 --- a/taipy/gui/data/comparison.py +++ b/taipy/gui/data/comparison.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/content_accessor.py b/taipy/gui/data/content_accessor.py index b32eb3e48b..33abc23fc5 100644 --- a/taipy/gui/data/content_accessor.py +++ b/taipy/gui/data/content_accessor.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/data_accessor.py b/taipy/gui/data/data_accessor.py index 23d85445c0..802e7fb98b 100644 --- a/taipy/gui/data/data_accessor.py +++ b/taipy/gui/data/data_accessor.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/data_format.py b/taipy/gui/data/data_format.py index 9b5a801567..f7e589f359 100644 --- a/taipy/gui/data/data_format.py +++ b/taipy/gui/data/data_format.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/data_scope.py b/taipy/gui/data/data_scope.py index 2bbe192d7f..53ee6fcac1 100644 --- a/taipy/gui/data/data_scope.py +++ b/taipy/gui/data/data_scope.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/decimator/__init__.py b/taipy/gui/data/decimator/__init__.py index ff3691045f..88b221777e 100644 --- a/taipy/gui/data/decimator/__init__.py +++ b/taipy/gui/data/decimator/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/decimator/base.py b/taipy/gui/data/decimator/base.py index f5dc43d5d9..1de5df7ecd 100644 --- a/taipy/gui/data/decimator/base.py +++ b/taipy/gui/data/decimator/base.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/decimator/lttb.py b/taipy/gui/data/decimator/lttb.py index 4ae14f52df..c28a2a20bf 100644 --- a/taipy/gui/data/decimator/lttb.py +++ b/taipy/gui/data/decimator/lttb.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/decimator/minmax.py b/taipy/gui/data/decimator/minmax.py index b41536b9c8..cee840f3c4 100644 --- a/taipy/gui/data/decimator/minmax.py +++ b/taipy/gui/data/decimator/minmax.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/decimator/rdp.py b/taipy/gui/data/decimator/rdp.py index 81ee6e6340..9da5fcf92d 100644 --- a/taipy/gui/data/decimator/rdp.py +++ b/taipy/gui/data/decimator/rdp.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/decimator/scatter_decimator.py b/taipy/gui/data/decimator/scatter_decimator.py index ec421006bf..35c44dade2 100644 --- a/taipy/gui/data/decimator/scatter_decimator.py +++ b/taipy/gui/data/decimator/scatter_decimator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/numpy_data_accessor.py b/taipy/gui/data/numpy_data_accessor.py index 53cb034cf7..08fe265ba2 100644 --- a/taipy/gui/data/numpy_data_accessor.py +++ b/taipy/gui/data/numpy_data_accessor.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/data/pandas_data_accessor.py b/taipy/gui/data/pandas_data_accessor.py index 84248cb1b4..dfbeb6d9f9 100644 --- a/taipy/gui/data/pandas_data_accessor.py +++ b/taipy/gui/data/pandas_data_accessor.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/extension/__init__.py b/taipy/gui/extension/__init__.py index e6a2323857..d9a103f9a1 100644 --- a/taipy/gui/extension/__init__.py +++ b/taipy/gui/extension/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/extension/library.py b/taipy/gui/extension/library.py index 4b0dc9bd88..0a7ba76084 100644 --- a/taipy/gui/extension/library.py +++ b/taipy/gui/extension/library.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/gui.py b/taipy/gui/gui.py index 63f70a3fde..6183f25c3a 100644 --- a/taipy/gui/gui.py +++ b/taipy/gui/gui.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -187,6 +187,7 @@ def __init__( env_filename: t.Optional[str] = None, libraries: t.Optional[t.List[ElementLibrary]] = None, flask: t.Optional[Flask] = None, + script_paths: t.Optional[t.Union[str, Path, t.List[t.Union[str, Path]]]] = None, ): """Initialize a new Gui instance. @@ -231,12 +232,19 @@ def __init__( If this argument is set, this `Gui` instance will use the value of this argument as the underlying server. If omitted or set to None, this `Gui` will create its own Flask application instance and use it to serve the pages. + script_paths (Optional[Union[str, Path, List[Union[str, Path]]]]): + Specifies the path(s) to the JavaScript files or external resources used by the application. + It can be a single URL or path, or a list containing multiple URLs and/or paths. """ # store suspected local containing frame self.__frame = t.cast(FrameType, t.cast(FrameType, currentframe()).f_back) self.__default_module_name = _get_module_name_from_frame(self.__frame) self._set_css_file(css_file) + # Set the assets URL path + self.__script_files: list[str] = [] + self.__load_scripts(script_paths) + # Preserve server config for server initialization if path_mapping is None: path_mapping = {} @@ -411,6 +419,34 @@ def __init__( for library in libraries: Gui.add_library(library) + def __load_scripts(self, script_paths: t.Optional[t.Union[str, Path, t.List[t.Union[str, Path]]]]): + if script_paths is None: + return + else: + if isinstance(script_paths, (str, Path)): + script_paths = [script_paths] + + for script_path in script_paths: + if isinstance(script_path, str): + parsed_url = urlparse(script_path) + if parsed_url.netloc: + self.__script_files.append(script_path) + continue + script_path = Path(script_path) + + if ( + isinstance(script_path, Path) + and script_path.exists() + and script_path.is_file() + and script_path.suffix == ".js" + ): + self.__script_files.append(str(script_path)) + else: + _warn(f"Script path '{script_path}' does not exist, is not a file, or is not a JavaScript file.") + + if not self.__script_files: + _warn("No JavaScript files found in the specified script paths.") + @staticmethod def add_library(library: ElementLibrary) -> None: """Add a custom visual element library. @@ -1894,11 +1930,18 @@ def _chart_conf( rebuild = rebuild_val if rebuild_val is not None else rebuild if rebuild: attributes, hashes = self.__get_attributes(attr_json, hash_json, kwargs) - data_hash = hashes.get("data", "") + idx = 0 + data_hashes = [] + while data_hash := hashes.get("data" if idx == 0 else f"data[{idx}]", ""): + data_hashes.append(data_hash) + idx += 1 config = _build_chart_config( self, attributes, - self._get_accessor().get_col_types(data_hash, _TaipyData(kwargs.get(data_hash), data_hash)), + [ + self._get_accessor().get_col_types(data_hash, _TaipyData(kwargs.get(data_hash), data_hash)) + for data_hash in data_hashes + ], ) return json.dumps(config, cls=_TaipyJsonEncoder) @@ -1932,10 +1975,11 @@ def _is_ui_blocked(self): return _getscopeattr(self, Gui.__UI_BLOCK_NAME, False) def __get_on_cancel_block_ui(self, callback: t.Optional[str]): - def _taipy_on_cancel_block_ui(guiApp, id: t.Optional[str], payload: t.Any): - if _hasscopeattr(guiApp, Gui.__UI_BLOCK_NAME): - _setscopeattr(guiApp, Gui.__UI_BLOCK_NAME, False) - guiApp.__on_action(id, {"action": callback}) + def _taipy_on_cancel_block_ui(a_state: State, id: t.Optional[str], payload: t.Any): + gui_app = a_state.get_gui() + if _hasscopeattr(gui_app, Gui.__UI_BLOCK_NAME): + _setscopeattr(gui_app, Gui.__UI_BLOCK_NAME, False) + gui_app.__on_action(id, {"action": callback}) return _taipy_on_cancel_block_ui @@ -1968,6 +2012,12 @@ def __add_pages_in_folder(self, folder_name: str, folder_path: str): self.__add_pages_in_folder(child_dir_name, child_dir_path) # Proxy methods for LocalsContext + def _get_locals_context_obj(self) -> _LocalsContext: + return self.__locals_context + + def _get_variable_directory_obj(self) -> _VariableDirectory: + return self.__var_dir + def _get_locals_bind(self) -> t.Dict[str, t.Any]: return self.__locals_context.get_locals() @@ -2072,6 +2122,7 @@ def add_page( new_page._route = name new_page._renderer = page new_page._style = style or page._get_style() + new_page._script_paths = page._get_script_paths() # Append page to _config self._config.pages.append(new_page) self._config.routes.append(name) @@ -2368,15 +2419,13 @@ def _hold_actions( callback: t.Optional[t.Union[str, t.Callable]] = None, message: t.Optional[str] = "Work in Progress...", ): # pragma: no cover - action_name = ( - callback - if isinstance(callback, str) - else _get_lambda_id(t.cast(LambdaType, callback)) - if _is_unnamed_function(callback) - else callback.__name__ - if callback is not None - else None - ) + if _is_unnamed_function(callback): + action_name = _get_lambda_id(t.cast(LambdaType, callback)) + self._bind_var_val(action_name, callback) + else: + action_name = ( + callback if isinstance(callback, str) else (callback.__name__ if callback is not None else None) + ) func = self.__get_on_cancel_block_ui(action_name) def_action_name = func.__name__ _setscopeattr(self, def_action_name, func) @@ -2556,7 +2605,11 @@ def __render_page(self, page_name: str) -> t.Any: with self._set_locals_context(context): self._call_on_page_load(nav_page) return self._server._render( - page._rendered_jsx, page._style if page._style is not None else "", page._head, context + page._rendered_jsx, + page._script_paths if page._script_paths is not None else [], + page._style if page._style is not None else "", + page._head, + context, # noqa: E501 ) else: return ("No page template", 404) @@ -2757,6 +2810,9 @@ def __register_blueprint(self): if self.__css_file: styles.append(f"{self.__css_file}") + if self.__script_files: + scripts.extend(self.__script_files) + self._flask_blueprint.append(extension_bp) _webapp_path = self._get_webapp_path() diff --git a/taipy/gui/gui_actions.py b/taipy/gui/gui_actions.py index ef9c45130f..70773924c2 100644 --- a/taipy/gui/gui_actions.py +++ b/taipy/gui/gui_actions.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/icon.py b/taipy/gui/icon.py index 9e18140315..5ad3ca0579 100644 --- a/taipy/gui/icon.py +++ b/taipy/gui/icon.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/mock/__init__.py b/taipy/gui/mock/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/gui/mock/__init__.py +++ b/taipy/gui/mock/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/mock/mock_state.py b/taipy/gui/mock/mock_state.py index 5c204e7ea1..e7ecafded6 100644 --- a/taipy/gui/mock/mock_state.py +++ b/taipy/gui/mock/mock_state.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/package_desc.md b/taipy/gui/package_desc.md index 3608aafc61..5bc68dca38 100644 --- a/taipy/gui/package_desc.md +++ b/taipy/gui/package_desc.md @@ -2,7 +2,7 @@ ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/gui/page.py b/taipy/gui/page.py index 0d1218db09..e87984dc89 100644 --- a/taipy/gui/page.py +++ b/taipy/gui/page.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -13,8 +13,11 @@ import inspect import typing as t +from pathlib import Path from types import FrameType +from urllib.parse import urlparse +from ._warnings import _warn from .utils import _filter_locals, _get_module_name_from_frame if t.TYPE_CHECKING: @@ -75,6 +78,7 @@ def __init__(self, **kwargs) -> None: self._notebook_gui: t.Optional["Gui"] = None self._notebook_page: t.Optional["_Page"] = None self.set_style(kwargs.get("style", None)) + self._script_paths(kwargs.get("script_paths", None)) def create_page(self) -> t.Optional[Page]: """Create the page content for page modules. @@ -180,3 +184,34 @@ def set_style(self, style: t.Dict[str, t.Dict[str, t.Any]]) -> Page: def _get_style(self): return self.__style + + def _script_paths(self, script_paths: t.Optional[t.Union[str, Path, t.List[t.Union[str, Path]]]]) -> Page: + """ + Load a script or a list of scripts to be used in the page. + + Arguments: + script_paths (str, Path, list): The path to the script file or a list of paths to the script files. + + Returns: + This `Page` instance. + """ + if script_paths: + if isinstance(script_paths, (str, Path)): + script_paths = [script_paths] + for script_path in script_paths: + if isinstance(script_path, str): + parsed_url = urlparse(script_path) + if parsed_url.netloc: + continue + script_path = Path(script_path) + + if isinstance(script_path, + Path) and script_path.exists() and script_path.is_file() and script_path.suffix == ".js": + continue + else: + _warn(f"Script path '{script_path}' does not exist, is not a file, or is not a JavaScript file.") + self.__script_paths = script_paths if script_paths else None + return self + + def _get_script_paths(self): + return self.__script_paths diff --git a/taipy/gui/partial.py b/taipy/gui/partial.py index c0caa88992..9502dee4b2 100644 --- a/taipy/gui/partial.py +++ b/taipy/gui/partial.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/server.py b/taipy/gui/server.py index 697f1f52c0..df13e34048 100644 --- a/taipy/gui/server.py +++ b/taipy/gui/server.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -240,7 +240,7 @@ def my_index(path): return taipy_bp # Update to render as JSX - def _render(self, html_fragment, style, head, context): + def _render(self, html_fragment, script_paths, style, head, context): template_str = _Server.__RE_OPENING_CURLY.sub(_Server.__OPENING_CURLY, html_fragment) template_str = _Server.__RE_CLOSING_CURLY.sub(_Server.__CLOSING_CURLY, template_str) template_str = template_str.replace('"{!', "{") @@ -252,6 +252,7 @@ def _render(self, html_fragment, style, head, context): "style": (style + os.linesep) if style else "", "head": head or [], "context": context or self._gui._get_default_module_name(), + "scriptPaths": script_paths } ) diff --git a/taipy/gui/setup.py b/taipy/gui/setup.py index 7a32942b28..c540dd10a6 100644 --- a/taipy/gui/setup.py +++ b/taipy/gui/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/state.py b/taipy/gui/state.py index 7aad4219fd..f5ed8ccb4b 100644 --- a/taipy/gui/state.py +++ b/taipy/gui/state.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/state_support.py b/taipy/gui/state_support.py index 5dbebd2414..fd6bb28ff8 100644 --- a/taipy/gui/state_support.py +++ b/taipy/gui/state_support.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/types.py b/taipy/gui/types.py index e290a21c36..ae32cad644 100644 --- a/taipy/gui/types.py +++ b/taipy/gui/types.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/__init__.py b/taipy/gui/utils/__init__.py index e249db6108..fa43c136aa 100644 --- a/taipy/gui/utils/__init__.py +++ b/taipy/gui/utils/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_adapter.py b/taipy/gui/utils/_adapter.py index 3d5ce60168..8a2de2d802 100644 --- a/taipy/gui/utils/_adapter.py +++ b/taipy/gui/utils/_adapter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_attributes.py b/taipy/gui/utils/_attributes.py index b7342c14d8..bba56ad199 100644 --- a/taipy/gui/utils/_attributes.py +++ b/taipy/gui/utils/_attributes.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_bindings.py b/taipy/gui/utils/_bindings.py index 6189245ccb..ae6f8dbfbd 100644 --- a/taipy/gui/utils/_bindings.py +++ b/taipy/gui/utils/_bindings.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_evaluator.py b/taipy/gui/utils/_evaluator.py index e4aee67954..0db9f14788 100644 --- a/taipy/gui/utils/_evaluator.py +++ b/taipy/gui/utils/_evaluator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_lambda.py b/taipy/gui/utils/_lambda.py index 268fb8bfe1..631c408ded 100644 --- a/taipy/gui/utils/_lambda.py +++ b/taipy/gui/utils/_lambda.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_locals_context.py b/taipy/gui/utils/_locals_context.py index ad480fc029..064c408bd9 100644 --- a/taipy/gui/utils/_locals_context.py +++ b/taipy/gui/utils/_locals_context.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_map_dict.py b/taipy/gui/utils/_map_dict.py index 8c1cae7d10..e4e0cd6654 100644 --- a/taipy/gui/utils/_map_dict.py +++ b/taipy/gui/utils/_map_dict.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_runtime_manager.py b/taipy/gui/utils/_runtime_manager.py index 383afb1c57..f39ac1567a 100644 --- a/taipy/gui/utils/_runtime_manager.py +++ b/taipy/gui/utils/_runtime_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/_variable_directory.py b/taipy/gui/utils/_variable_directory.py index 4d58442681..88e917c0bd 100644 --- a/taipy/gui/utils/_variable_directory.py +++ b/taipy/gui/utils/_variable_directory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -25,6 +25,8 @@ def __init__(self, locals_context: _LocalsContext): self._var_dir: t.Dict[str, t.Dict] = {} self._var_head: t.Dict[str, t.List[t.Tuple[str, str]]] = {} self._imported_var_dir: t.Dict[str, t.List[t.Tuple[str, str, str]]] = {} + self._pre_processed_module: t.Set[str] = set() + self._processed_module: t.Set[str] = set() def set_default(self, frame: FrameType) -> None: self._default_module = _get_module_name_from_frame(frame) @@ -39,7 +41,10 @@ def add_frame(self, frame: t.Optional[FrameType]) -> None: self._imported_var_dir[t.cast(str, module_name)] = imported_var_list def pre_process_module_import_all(self) -> None: - for imported_dir in self._imported_var_dir.values(): + for base_module, imported_dir in self._imported_var_dir.items(): + # Skip pre process for modules that have been processed + if base_module in self._pre_processed_module: + continue additional_var_list: t.List[t.Tuple[str, str, str]] = [] for name, asname, module in imported_dir: if name != "*" or asname != "*": @@ -51,21 +56,28 @@ def pre_process_module_import_all(self) -> None: (v, v, module) for v in self._locals_context.get_locals().keys() if not v.startswith("_") ) imported_dir.extend(additional_var_list) + # Save the pre-processed module + self._pre_processed_module.add(base_module) def process_imported_var(self) -> None: self.pre_process_module_import_all() - default_imported_dir = self._imported_var_dir[t.cast(str, self._default_module)] - with self._locals_context.set_locals_context(self._default_module): - for name, asname, module in default_imported_dir: - if name == "*" and asname == "*": - continue - imported_module_name = _get_module_name_from_imported_var( - name, self._locals_context.get_locals().get(asname, None), module - ) - temp_var_name = self.add_var(asname, self._default_module) - self.add_var(name, imported_module_name, temp_var_name) + default_module = t.cast(str, self._default_module) + if default_module not in self._processed_module: + default_imported_dir = self._imported_var_dir[default_module] + with self._locals_context.set_locals_context(self._default_module): + for name, asname, module in default_imported_dir: + if name == "*" and asname == "*": + continue + imported_module_name = _get_module_name_from_imported_var( + name, self._locals_context.get_locals().get(asname, None), module + ) + temp_var_name = self.add_var(asname, self._default_module) + self.add_var(name, imported_module_name, temp_var_name) + self._processed_module.add(default_module) for k, v in self._imported_var_dir.items(): + if k in self._processed_module: + continue with self._locals_context.set_locals_context(k): for name, asname, module in v: if name == "*" and asname == "*": @@ -82,6 +94,7 @@ def process_imported_var(self) -> None: self.add_var(asname, k, var_name) else: self.add_var(name, imported_module_name, var_asname) + self._processed_module.add(k) def add_var(self, name: str, module: t.Optional[str], var_name: t.Optional[str] = None) -> str: if module is None: @@ -119,9 +132,11 @@ def get_var(self, name: str, module: str) -> t.Optional[str]: _MODULE_ID = "_TPMDL_" _RE_TPMDL_DECODE = re.compile(r"(.*?)" + _MODULE_ID + r"(\d+)$") + def _is_moduled_variable(var_name: str): return _MODULE_ID in var_name + def _variable_encode(var_name: str, module_name: t.Optional[str]): if module_name is None: return var_name diff --git a/taipy/gui/utils/boolean.py b/taipy/gui/utils/boolean.py index e00640b104..a3879d7824 100644 --- a/taipy/gui/utils/boolean.py +++ b/taipy/gui/utils/boolean.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/callable.py b/taipy/gui/utils/callable.py index 33b1a802e9..40586f3c6a 100644 --- a/taipy/gui/utils/callable.py +++ b/taipy/gui/utils/callable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -11,7 +11,6 @@ import typing as t from inspect import isclass -from types import LambdaType def _is_function(s: t.Any) -> bool: @@ -28,4 +27,4 @@ def _function_name(s: t.Any) -> str: def _is_unnamed_function(s: t.Any): - return isinstance(s, LambdaType) or (callable(s) and not hasattr(s, "__name__")) + return (hasattr(s, "__name__") and s.__name__ == "") or (callable(s) and not hasattr(s, "__name__")) diff --git a/taipy/gui/utils/chart_config_builder.py b/taipy/gui/utils/chart_config_builder.py index 12e4942aeb..4ce9c68e66 100644 --- a/taipy/gui/utils/chart_config_builder.py +++ b/taipy/gui/utils/chart_config_builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -112,7 +112,7 @@ def __get_col_from_indexed(col_name: str, idx: int) -> t.Optional[str]: return col_name -def _build_chart_config(gui: "Gui", attributes: t.Dict[str, t.Any], col_types: t.Dict[str, str]): # noqa: C901 +def _build_chart_config(gui: "Gui", attributes: t.Dict[str, t.Any], col_types_list: t.List[t.Dict[str, str]]): # noqa: C901 if "data" not in attributes and "figure" in attributes: return {"traces": []} default_type = attributes.get("_default_type", "scatter") @@ -167,32 +167,47 @@ def _build_chart_config(gui: "Gui", attributes: t.Dict[str, t.Any], col_types: t # axis names axis.append(__CHART_AXIS.get(trace[_Chart_iprops.type.value] or "", __CHART_DEFAULT_AXIS)) + idx = 1 + while f"data[{idx}]" in attributes: + if idx >= len(traces): + traces.append(list(traces[0])) + axis.append(__CHART_AXIS.get(traces[0][_Chart_iprops.type.value] or "", __CHART_DEFAULT_AXIS)) + idx += 1 + # list of data columns name indexes with label text dt_idx = tuple(e.value for e in (axis[0] + (_Chart_iprops.label, _Chart_iprops.text))) # configure columns - columns: t.Set[str] = set() - for j, trace in enumerate(traces): + columns: t.List[t.Set[str]] = [set()] * len(traces) + for idx, trace in enumerate(traces): dt_idx = tuple( - e.value for e in (axis[j] if j < len(axis) else axis[0]) + (_Chart_iprops.label, _Chart_iprops.text) + e.value for e in (axis[idx] if idx < len(axis) else axis[0]) + (_Chart_iprops.label, _Chart_iprops.text) ) - columns.update([trace[i] or "" for i in dt_idx if trace[i]]) + columns[idx].update([trace[i] or "" for i in dt_idx if trace[i]]) # add optional column if any markers = [ t[_Chart_iprops.marker.value] or ({"color": t[_Chart_iprops.color.value]} if t[_Chart_iprops.color.value] else None) for t in traces ] - opt_cols = set() - for m in markers: + opt_cols: t.List[t.Set[str]] = [set()] * len(traces) + for idx, m in enumerate(markers): if isinstance(m, (dict, _MapDict)): for prop1 in __CHART_MARKER_TO_COLS: val = m.get(prop1) - if isinstance(val, str) and val not in columns: - opt_cols.add(val) + if isinstance(val, str) and val not in columns[idx]: + opt_cols[idx].add(val) # Validate the column names - col_dict = _get_columns_dict(attributes.get("data"), list(columns), col_types, opt_columns=opt_cols) + col_dicts = [] + for idx, col_types in enumerate(col_types_list): + if add_col_dict := _get_columns_dict( + attributes.get("data" if idx == 0 else f"data[{idx}]"), + list(columns[idx] if idx < len(columns) else columns[0]), + col_types, + opt_columns=opt_cols[idx] if idx < len(opt_cols) else opt_cols[0], + ): + col_dicts.append(add_col_dict) # Manage Decimator decimators: t.List[t.Optional[str]] = [] @@ -208,7 +223,14 @@ def _build_chart_config(gui: "Gui", attributes: t.Dict[str, t.Any], col_types: t # set default columns if not defined icols = [ - [c2 for c2 in [__get_col_from_indexed(c1, i) for c1 in t.cast(dict, col_dict).keys()] if c2] + [ + c2 + for c2 in [ + __get_col_from_indexed(c1, i) + for c1 in t.cast(dict, col_dicts[i] if i < len(col_dicts) else col_dicts[0]).keys() + ] + if c2 + ] for i in range(len(traces)) ] @@ -222,21 +244,24 @@ def _build_chart_config(gui: "Gui", attributes: t.Dict[str, t.Any], col_types: t for j, v in enumerate(tr) ] - if col_dict is not None: - reverse_cols = {str(cd.get("dfid")): c for c, cd in col_dict.items()} + if col_dicts: + reverse_cols = [{str(cd.get("dfid")): c for c, cd in col_dict.items()} for col_dict in col_dicts] + for idx in range(len(traces)): + if idx < len(reverse_cols): + reverse_cols.append(reverse_cols[0]) # List used axis used_axis = [[e for e in (axis[j] if j < len(axis) else axis[0]) if tr[e.value]] for j, tr in enumerate(traces)] ret_dict = { - "columns": col_dict, + "columns": col_dicts, "labels": [ - reverse_cols.get(tr[_Chart_iprops.label.value] or "", (tr[_Chart_iprops.label.value] or "")) - for tr in traces + reverse_cols[idx].get(tr[_Chart_iprops.label.value] or "", (tr[_Chart_iprops.label.value] or "")) + for idx, tr in enumerate(traces) ], "texts": [ - reverse_cols.get(tr[_Chart_iprops.text.value] or "", (tr[_Chart_iprops.text.value] or None)) - for tr in traces + reverse_cols[idx].get(tr[_Chart_iprops.text.value] or "", (tr[_Chart_iprops.text.value] or None)) + for idx, tr in enumerate(traces) ], "modes": [tr[_Chart_iprops.mode.value] for tr in traces], "types": [tr[_Chart_iprops.type.value] for tr in traces], @@ -253,8 +278,8 @@ def _build_chart_config(gui: "Gui", attributes: t.Dict[str, t.Any], col_types: t for tr in traces ], "traces": [ - [reverse_cols.get(c or "", c) for c in [tr[e.value] for e in used_axis[j]]] - for j, tr in enumerate(traces) + [reverse_cols[idx].get(c or "", c) for c in [tr[e.value] for e in used_axis[idx]]] + for idx, tr in enumerate(traces) ], "orientations": [tr[_Chart_iprops.orientation.value] for tr in traces], "names": [tr[_Chart_iprops._name.value] for tr in traces], diff --git a/taipy/gui/utils/clientvarname.py b/taipy/gui/utils/clientvarname.py index 81fc78f5b9..5f3b7e5783 100644 --- a/taipy/gui/utils/clientvarname.py +++ b/taipy/gui/utils/clientvarname.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/datatype.py b/taipy/gui/utils/datatype.py index fbcdf3d893..dd7316a4d2 100644 --- a/taipy/gui/utils/datatype.py +++ b/taipy/gui/utils/datatype.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/date.py b/taipy/gui/utils/date.py index 7103ff97d3..b72b7f1f6c 100644 --- a/taipy/gui/utils/date.py +++ b/taipy/gui/utils/date.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/expr_var_name.py b/taipy/gui/utils/expr_var_name.py index 43461758af..5a2c69a359 100644 --- a/taipy/gui/utils/expr_var_name.py +++ b/taipy/gui/utils/expr_var_name.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/filename.py b/taipy/gui/utils/filename.py index 521d0d3629..3d167ecb3f 100644 --- a/taipy/gui/utils/filename.py +++ b/taipy/gui/utils/filename.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/filter_locals.py b/taipy/gui/utils/filter_locals.py index 9fcc69f911..9cf4cd12ae 100644 --- a/taipy/gui/utils/filter_locals.py +++ b/taipy/gui/utils/filter_locals.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/get_imported_var.py b/taipy/gui/utils/get_imported_var.py index 46745dfdba..fd3e8efe7c 100644 --- a/taipy/gui/utils/get_imported_var.py +++ b/taipy/gui/utils/get_imported_var.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/get_module_name.py b/taipy/gui/utils/get_module_name.py index 5b7231844d..afabdf0674 100644 --- a/taipy/gui/utils/get_module_name.py +++ b/taipy/gui/utils/get_module_name.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/get_page_from_module.py b/taipy/gui/utils/get_page_from_module.py index eccc993286..bcda22baf0 100644 --- a/taipy/gui/utils/get_page_from_module.py +++ b/taipy/gui/utils/get_page_from_module.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/getdatecolstrname.py b/taipy/gui/utils/getdatecolstrname.py index d422d855b4..8efa1b149f 100644 --- a/taipy/gui/utils/getdatecolstrname.py +++ b/taipy/gui/utils/getdatecolstrname.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/html.py b/taipy/gui/utils/html.py index 84c7b40ed0..3b75afba26 100644 --- a/taipy/gui/utils/html.py +++ b/taipy/gui/utils/html.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/is_debugging.py b/taipy/gui/utils/is_debugging.py index 8065030bd3..65aa8b225d 100644 --- a/taipy/gui/utils/is_debugging.py +++ b/taipy/gui/utils/is_debugging.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/is_port_open.py b/taipy/gui/utils/is_port_open.py index d252130187..a3c9e0d1a6 100644 --- a/taipy/gui/utils/is_port_open.py +++ b/taipy/gui/utils/is_port_open.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/isnotebook.py b/taipy/gui/utils/isnotebook.py index 05f9d72937..a9e59c7834 100644 --- a/taipy/gui/utils/isnotebook.py +++ b/taipy/gui/utils/isnotebook.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/proxy.py b/taipy/gui/utils/proxy.py index 31b88ce562..0163661c39 100644 --- a/taipy/gui/utils/proxy.py +++ b/taipy/gui/utils/proxy.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/singleton.py b/taipy/gui/utils/singleton.py index 3300b4eb68..3208d16256 100644 --- a/taipy/gui/utils/singleton.py +++ b/taipy/gui/utils/singleton.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/table_col_builder.py b/taipy/gui/utils/table_col_builder.py index 8f88bbc9ff..eeb4401b51 100644 --- a/taipy/gui/utils/table_col_builder.py +++ b/taipy/gui/utils/table_col_builder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/threads.py b/taipy/gui/utils/threads.py index 36e0e2af47..baaf5c6865 100644 --- a/taipy/gui/utils/threads.py +++ b/taipy/gui/utils/threads.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/types.py b/taipy/gui/utils/types.py index dc7ed44ceb..bba058c06c 100644 --- a/taipy/gui/utils/types.py +++ b/taipy/gui/utils/types.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/varnamefromcontent.py b/taipy/gui/utils/varnamefromcontent.py index 8aa6dd0c4d..96817fd444 100644 --- a/taipy/gui/utils/varnamefromcontent.py +++ b/taipy/gui/utils/varnamefromcontent.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/utils/viselements.py b/taipy/gui/utils/viselements.py index 84cf8b9d43..a6d9aa5ce7 100644 --- a/taipy/gui/utils/viselements.py +++ b/taipy/gui/utils/viselements.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui/viselements.json b/taipy/gui/viselements.json index 452ec035fb..ac76351e09 100644 --- a/taipy/gui/viselements.json +++ b/taipy/gui/viselements.json @@ -285,7 +285,8 @@ ], "properties": [ { - "name": "value" + "name": "value", + "doc": "Bound to the selection value.
If this is used for theme toggling, it must be a Boolean value: True indicates that the current theme is set to \"dark\", while False indicates that the theme is set to \"light\"." }, { "name": "theme", @@ -492,7 +493,7 @@ "name": "data", "default_property": true, "required": true, - "type": "dynamic(Any)", + "type": "indexed(dynamic(Any))", "doc": "The data object bound to this chart control.
See the section on the data property below for more details." }, { @@ -814,7 +815,7 @@ { "name": "width[column_name]", "type": "str", - "doc": "The width of the indicated column, in CSS units." + "doc": "The width of the indicated column, in CSS units (% values are not supported)." }, { "name": "selected", @@ -1076,6 +1077,12 @@ "type": "bool", "default_value": "False", "doc": "If True, boolean values are rendered as a simple HTML checkbox." + }, + { + "name": "sortable", + "type": "bool", + "default_value": "True", + "doc": "If False, the table provides no sorting capability. Individual columns can override this global setting, allowing specific columns to be marked as sortable or non-sortable regardless of value of sortable, by setting the sortable property to True or False accordingly, in the dictionary for that column in the columns property value." } ] } diff --git a/taipy/gui_core/_GuiCoreLib.py b/taipy/gui_core/_GuiCoreLib.py index 1bf6fd9dbf..81bead0fd4 100644 --- a/taipy/gui_core/_GuiCoreLib.py +++ b/taipy/gui_core/_GuiCoreLib.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui_core/__init__.py b/taipy/gui_core/__init__.py index 68565af06f..98ebe1179c 100644 --- a/taipy/gui_core/__init__.py +++ b/taipy/gui_core/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui_core/_adapters.py b/taipy/gui_core/_adapters.py index ff712792ec..8d8310b625 100644 --- a/taipy/gui_core/_adapters.py +++ b/taipy/gui_core/_adapters.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui_core/_context.py b/taipy/gui_core/_context.py index 82f8b7bdad..7e6ec89616 100644 --- a/taipy/gui_core/_context.py +++ b/taipy/gui_core/_context.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -33,7 +33,6 @@ Sequence, SequenceId, Submission, - SubmissionId, can_create, cancel_job, create_scenario, @@ -166,67 +165,64 @@ def submission_status_callback(self, submission_id: t.Optional[str] = None, even if not submission_id: return submission = None - new_status = None + new_status: t.Optional[SubmissionStatus] = None payload: t.Optional[t.Dict[str, t.Any]] = None client_id: t.Optional[str] = None + submission_name: t.Optional[str] = None try: - last_client_status = self.client_submission.get(submission_id) - if not last_client_status: + submission = t.cast(Submission, core_get(submission_id)) + if not submission or not submission.entity_id: return + new_status = submission.submission_status - client_id = last_client_status.client_id - - with self.gui._get_authorization(client_id): - if not is_readable(t.cast(SubmissionId, submission_id)): - return - submission = t.cast(Submission, core_get(submission_id)) - if not submission or not submission.entity_id: + with self.submissions_lock: + last_client_status = self.client_submission.get(submission_id) + if not last_client_status: return payload = {} - new_status = t.cast(SubmissionStatus, submission.submission_status) - - if client_id: - running_tasks = {} - # with self.gui._get_authorization(client_id): - for job in submission.jobs: - job = job if isinstance(job, Job) else t.cast(Job, core_get(job)) - running_tasks[job.task.id] = ( - SubmissionStatus.RUNNING.value - if job.is_running() - else SubmissionStatus.PENDING.value - if job.is_pending() - else None - ) - payload.update(tasks=running_tasks) - - if last_client_status.submission_status is not new_status: - # callback - submission_name = submission.properties.get("on_submission") - if submission_name: - self.gui.invoke_callback( - client_id, - submission_name, - [ - core_get(submission.id), - { - "submission_status": new_status.name, - "submittable_entity": core_get(submission.entity_id), - **(event.metadata if event else {}), - }, - ], - submission.properties.get("module_context"), + if last_client_status.submission_status is not new_status: + # callback + submission_name = submission.properties.get("on_submission") + + if new_status in ( + SubmissionStatus.COMPLETED, + SubmissionStatus.FAILED, + SubmissionStatus.CANCELED, + ): + self.client_submission.pop(submission_id, None) + else: + last_client_status.submission_status = new_status + + if client_id:= submission.properties.get("client_id"): + with self.gui._get_authorization(client_id): + if payload is not None: + running_tasks = {} + for job in submission.jobs: + job = job if isinstance(job, Job) else t.cast(Job, core_get(job)) + running_tasks[job.task.id] = ( + SubmissionStatus.RUNNING.value + if job.is_running() + else SubmissionStatus.PENDING.value + if job.is_pending() + else None ) + payload.update(tasks=running_tasks) - if new_status in ( - SubmissionStatus.COMPLETED, - SubmissionStatus.FAILED, - SubmissionStatus.CANCELED, - ): - with self.submissions_lock: - self.client_submission.pop(submission_id, None) - else: - last_client_status.submission_status = new_status + if submission_name: + self.gui.invoke_callback( + client_id, + submission_name, + [ + core_get(submission.id), + { + "submission_status": new_status.name if new_status else "None", + "submittable_entity": core_get(submission.entity_id), + **(event.metadata if event else {}), + }, + ], + submission.properties.get("module_context"), + ) except Exception as e: _warn(f"Submission ({submission_id}) is not available", e) diff --git a/taipy/gui_core/_init.py b/taipy/gui_core/_init.py index 6f2126edf1..6ca3653c1e 100644 --- a/taipy/gui_core/_init.py +++ b/taipy/gui_core/_init.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui_core/_utils.py b/taipy/gui_core/_utils.py index 27fe9f09f1..2d47037e22 100644 --- a/taipy/gui_core/_utils.py +++ b/taipy/gui_core/_utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/gui_core/filters.py b/taipy/gui_core/filters.py index defe352146..a5e4f30dd9 100644 --- a/taipy/gui_core/filters.py +++ b/taipy/gui_core/filters.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/README.md b/taipy/rest/README.md index 810d29b16c..6633f0d237 100644 --- a/taipy/rest/README.md +++ b/taipy/rest/README.md @@ -1,7 +1,7 @@ # Taipy REST ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/rest/__init__.py b/taipy/rest/__init__.py index 062a0080c1..42f1d48e23 100644 --- a/taipy/rest/__init__.py +++ b/taipy/rest/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/_init.py b/taipy/rest/_init.py index b28fb00723..ac8f24a09b 100644 --- a/taipy/rest/_init.py +++ b/taipy/rest/_init.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/__init__.py b/taipy/rest/api/__init__.py index 60c4867ff6..78eedca8ff 100644 --- a/taipy/rest/api/__init__.py +++ b/taipy/rest/api/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/error_handler.py b/taipy/rest/api/error_handler.py index ec2c718d28..fbd16edb35 100644 --- a/taipy/rest/api/error_handler.py +++ b/taipy/rest/api/error_handler.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/exceptions/__init__.py b/taipy/rest/api/exceptions/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/rest/api/exceptions/__init__.py +++ b/taipy/rest/api/exceptions/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/exceptions/exceptions.py b/taipy/rest/api/exceptions/exceptions.py index 833f4d87a0..b274ed5912 100644 --- a/taipy/rest/api/exceptions/exceptions.py +++ b/taipy/rest/api/exceptions/exceptions.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/middlewares/__init__.py b/taipy/rest/api/middlewares/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/rest/api/middlewares/__init__.py +++ b/taipy/rest/api/middlewares/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/middlewares/_middleware.py b/taipy/rest/api/middlewares/_middleware.py index 670de3d8a6..4e22dea7f1 100644 --- a/taipy/rest/api/middlewares/_middleware.py +++ b/taipy/rest/api/middlewares/_middleware.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/resources/__init__.py b/taipy/rest/api/resources/__init__.py index 8909a31f05..abe48591e7 100644 --- a/taipy/rest/api/resources/__init__.py +++ b/taipy/rest/api/resources/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/resources/cycle.py b/taipy/rest/api/resources/cycle.py index 1186ebf4e1..9e6a084690 100644 --- a/taipy/rest/api/resources/cycle.py +++ b/taipy/rest/api/resources/cycle.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/resources/datanode.py b/taipy/rest/api/resources/datanode.py index ace6378ebb..c3541c5cc5 100644 --- a/taipy/rest/api/resources/datanode.py +++ b/taipy/rest/api/resources/datanode.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/resources/job.py b/taipy/rest/api/resources/job.py index 63a5bb0626..4ce2f9adfe 100644 --- a/taipy/rest/api/resources/job.py +++ b/taipy/rest/api/resources/job.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/resources/scenario.py b/taipy/rest/api/resources/scenario.py index 2908e47de7..973477e4ab 100644 --- a/taipy/rest/api/resources/scenario.py +++ b/taipy/rest/api/resources/scenario.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/resources/sequence.py b/taipy/rest/api/resources/sequence.py index 0688fc9fa9..875eec3241 100644 --- a/taipy/rest/api/resources/sequence.py +++ b/taipy/rest/api/resources/sequence.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/resources/task.py b/taipy/rest/api/resources/task.py index 1e78aa539c..cc48be4bca 100644 --- a/taipy/rest/api/resources/task.py +++ b/taipy/rest/api/resources/task.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/schemas/__init__.py b/taipy/rest/api/schemas/__init__.py index b4262821f6..b600fe8a7c 100644 --- a/taipy/rest/api/schemas/__init__.py +++ b/taipy/rest/api/schemas/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/schemas/cycle.py b/taipy/rest/api/schemas/cycle.py index eba17961cc..6739fd1aa2 100644 --- a/taipy/rest/api/schemas/cycle.py +++ b/taipy/rest/api/schemas/cycle.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/schemas/datanode.py b/taipy/rest/api/schemas/datanode.py index 35b23716a7..a07fe5b787 100644 --- a/taipy/rest/api/schemas/datanode.py +++ b/taipy/rest/api/schemas/datanode.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/schemas/job.py b/taipy/rest/api/schemas/job.py index 27dd2717d3..5d0f6824d9 100644 --- a/taipy/rest/api/schemas/job.py +++ b/taipy/rest/api/schemas/job.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/schemas/scenario.py b/taipy/rest/api/schemas/scenario.py index afd10c615b..a62e46ab48 100644 --- a/taipy/rest/api/schemas/scenario.py +++ b/taipy/rest/api/schemas/scenario.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/schemas/sequence.py b/taipy/rest/api/schemas/sequence.py index 935e0a3ec0..f257f6972b 100644 --- a/taipy/rest/api/schemas/sequence.py +++ b/taipy/rest/api/schemas/sequence.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/schemas/task.py b/taipy/rest/api/schemas/task.py index deba2c0e56..54496c3855 100644 --- a/taipy/rest/api/schemas/task.py +++ b/taipy/rest/api/schemas/task.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/api/views.py b/taipy/rest/api/views.py index 3a9c154a1a..c29dd6448f 100644 --- a/taipy/rest/api/views.py +++ b/taipy/rest/api/views.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/app.py b/taipy/rest/app.py index f795b43ceb..954b47dd36 100644 --- a/taipy/rest/app.py +++ b/taipy/rest/app.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/commons/__init__.py b/taipy/rest/commons/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/rest/commons/__init__.py +++ b/taipy/rest/commons/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/commons/apispec.py b/taipy/rest/commons/apispec.py index c346fc65dc..f622d56592 100644 --- a/taipy/rest/commons/apispec.py +++ b/taipy/rest/commons/apispec.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/commons/encoder.py b/taipy/rest/commons/encoder.py index be63187759..0610273c47 100644 --- a/taipy/rest/commons/encoder.py +++ b/taipy/rest/commons/encoder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/commons/pagination.py b/taipy/rest/commons/pagination.py index 57787c811a..22a7068ef4 100644 --- a/taipy/rest/commons/pagination.py +++ b/taipy/rest/commons/pagination.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/commons/to_from_model.py b/taipy/rest/commons/to_from_model.py index 4687b51429..a40fefd1e8 100644 --- a/taipy/rest/commons/to_from_model.py +++ b/taipy/rest/commons/to_from_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/extensions.py b/taipy/rest/extensions.py index 13b8f483e1..b48ec14412 100644 --- a/taipy/rest/extensions.py +++ b/taipy/rest/extensions.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/package_desc.md b/taipy/rest/package_desc.md index c34e3cb9d7..1ebb9bc799 100644 --- a/taipy/rest/package_desc.md +++ b/taipy/rest/package_desc.md @@ -2,7 +2,7 @@ ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/rest/rest.py b/taipy/rest/rest.py index 9bed57535e..def98b195c 100644 --- a/taipy/rest/rest.py +++ b/taipy/rest/rest.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/setup.py b/taipy/rest/setup.py index 348cdd8344..8a5ece9308 100644 --- a/taipy/rest/setup.py +++ b/taipy/rest/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/rest/version.py b/taipy/rest/version.py index 88586caae9..cee53291be 100644 --- a/taipy/rest/version.py +++ b/taipy/rest/version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/LICENSE b/taipy/templates/LICENSE index ca413c9dd6..96ca40dd64 100644 --- a/taipy/templates/LICENSE +++ b/taipy/templates/LICENSE @@ -187,7 +187,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2021-2024 Avaiga Private Limited + Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/taipy/templates/README.md b/taipy/templates/README.md index 41d212cae4..86d1958063 100644 --- a/taipy/templates/README.md +++ b/taipy/templates/README.md @@ -1,7 +1,7 @@ # Taipy templates ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/templates/default/hooks/post_gen_project.py b/taipy/templates/default/hooks/post_gen_project.py index b0d4b7452b..45253b0ddb 100644 --- a/taipy/templates/default/hooks/post_gen_project.py +++ b/taipy/templates/default/hooks/post_gen_project.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -77,33 +77,29 @@ def handle_single_page_app(): main_file.write("\n") main_file.write(" gui = Gui(page=page)\n") + with open(os.path.join(os.getcwd(), "sections", "import.txt"), "a") as import_file: + import_file.write("import taipy.gui.builder as tgb\n") + handle_run_service() with open(os.path.join(os.getcwd(), "sections", "page_content.txt"), "a") as page_content_file: page_content_file.write( - ''' -page = """ -
-<|navbar|lov={[("home", "Homepage")]}|> -
+ """ +with tgb.Page() as page: + tgb.navbar(lov="{[('home', 'Homepage')]}") """ -''' ) def handle_multi_page_app(pages): for page_name in pages: os.mkdir(os.path.join(os.getcwd(), "pages", page_name)) - with open(os.path.join(os.getcwd(), "pages", "page_example", "page_example.md"), "r") as page_md_file: - page_md_content = page_md_file.read() - page_md_content = page_md_content.replace("Page example", page_name.replace("_", " ").title()) - with open(os.path.join(os.getcwd(), "pages", page_name, page_name + ".md"), "w") as page_md_file: - page_md_file.write(page_md_content) with open(os.path.join(os.getcwd(), "pages", "page_example", "page_example.py"), "r") as page_content_file: page_py_content = page_content_file.read() page_py_content = page_py_content.replace("page_example", page_name) + page_py_content = page_py_content.replace("Page example", page_name.replace("_", " ").title()) with open(os.path.join(os.getcwd(), "pages", page_name, page_name + ".py"), "w") as page_content_file: page_content_file.write(page_py_content) diff --git a/taipy/templates/default/hooks/pre_gen_project.py b/taipy/templates/default/hooks/pre_gen_project.py index bf0b65561e..370cd2726f 100644 --- a/taipy/templates/default/hooks/pre_gen_project.py +++ b/taipy/templates/default/hooks/pre_gen_project.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/__init__.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/__init__.py index a0b389252a..0c5348870c 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/__init__.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/algorithms.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/algorithms.py index adae74acf5..1cff2037ce 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/algorithms.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/algorithms/algorithms.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/__init__.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/__init__.py index 8d472ee605..36f37dee39 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/__init__.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/config.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/config.py index e828b78db5..8c53f58fae 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/config.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/configuration/config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/__init__.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/__init__.py index 6896f49716..36715d2e6e 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/__init__.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/page_example/page_example.md b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/page_example/page_example.md deleted file mode 100644 index dc0bea2fd6..0000000000 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/page_example/page_example.md +++ /dev/null @@ -1 +0,0 @@ -# Page example diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/page_example/page_example.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/page_example/page_example.py index ef4753a531..ac1a6b94b5 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/page_example/page_example.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/page_example/page_example.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -11,11 +11,12 @@ """ A page of the application. -Page content is imported from the page_example.md file. +Page content is built using the Page builder API. -Please refer to https://docs.taipy.io/en/latest/manuals/userman/gui/pages for more details. +Please refer to https://docs.taipy.io/en/latest/userman/gui/pages/builder/ for more details. """ -from taipy.gui import Markdown +import taipy.gui.builder as tgb -page_example = Markdown("pages/page_example/page_example.md") +with tgb.Page() as page_example: + tgb.text("# Page example", mode="md") diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/root.md b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/root.md deleted file mode 100644 index 0216ecc457..0000000000 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/root.md +++ /dev/null @@ -1,3 +0,0 @@ -
-<|navbar|> -
diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/root.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/root.py index 315af8fef9..ac91eaffad 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/root.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/pages/root.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -11,11 +11,12 @@ """ The root page of the application. -Page content is imported from the root.md file. +Page content is built using the Page builder API. -Please refer to https://docs.taipy.io/en/latest/manuals/userman/gui/pages for more details. +Please refer to https://docs.taipy.io/en/latest/userman/gui/pages/builder/ for more details. """ -from taipy.gui import Markdown +import taipy.gui.builder as tgb -root_page = Markdown("pages/root.md") +with tgb.Page() as root_page: + tgb.navbar() diff --git a/taipy/templates/default/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py b/taipy/templates/default/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/templates/default/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py +++ b/taipy/templates/default/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/package_desc.md b/taipy/templates/package_desc.md index e768deb92f..e8eb125d94 100644 --- a/taipy/templates/package_desc.md +++ b/taipy/templates/package_desc.md @@ -2,7 +2,7 @@ ## License -Copyright 2021-2024 Avaiga Private Limited +Copyright 2021-2025 Avaiga Private Limited Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/hooks/post_gen_project.py b/taipy/templates/sdm/hooks/post_gen_project.py index f40b89beb0..3ab69b0d75 100644 --- a/taipy/templates/sdm/hooks/post_gen_project.py +++ b/taipy/templates/sdm/hooks/post_gen_project.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/__init__.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/__init__.py index 6db31a1ab9..fb52a11f0f 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/__init__.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/algos.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/algos.py index b7beca25a3..5e055e7163 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/algos.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/algos/algos.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/__init__.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/__init__.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config.py index 20a37a2a94..740748f1ab 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config_with_toml.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config_with_toml.py index f7b72c50f3..b28f28520f 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config_with_toml.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/config/config_with_toml.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/__init__.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/__init__.py index af914ecfee..c7d4558991 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/__init__.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/__init__.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/__init__.py index b426e7d605..344443ed4c 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/__init__.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/job_page.md b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/job_page.md deleted file mode 100644 index b498167e96..0000000000 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/job_page.md +++ /dev/null @@ -1 +0,0 @@ -<|job_selector|> diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/job_page.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/job_page.py index ec441907f2..fb50ed5e3d 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/job_page.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/job_page/job_page.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -9,6 +9,7 @@ # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. -from taipy.gui import Markdown +import taipy.gui.builder as tgb -job_page = Markdown("pages/job_page/job_page.md") +with tgb.Page() as job_page: + tgb.job_selector() diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/root.md b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/root.md deleted file mode 100644 index 994124b8fd..0000000000 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/root.md +++ /dev/null @@ -1,21 +0,0 @@ -<|layout|columns=1 5| - -<|sidebar| - -<|{selected_scenario}|scenario_selector|> - -<|part|render={selected_scenario}| -<|{selected_data_node}|data_node_selector|not display_cycles|> -|> -|> - -<|part|class_name=main| - -<|navbar|> - -<|part|class_name=main| -<|content|> -|> - -|> -|> diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/root.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/root.py index decba81cc1..62b5838ed9 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/root.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/root.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -9,10 +9,23 @@ # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. -from taipy.gui import Markdown +import taipy.gui.builder as tgb selected_scenario = None selected_data_node = None content = "" -root = Markdown("pages/root.md") + +with tgb.Page() as root: + with tgb.layout(columns="1, 5"): + with tgb.part(class_name="sidebar"): + tgb.scenario_selector("{selected_scenario}") + + with tgb.part(render="{selected_scenario}"): + tgb.data_node_selector("{selected_data_node}", display_cycles=False) + + with tgb.part(class_name="main"): + tgb.navbar() + + with tgb.part(class_name="main"): + tgb.text("{content}") diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/__init__.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/__init__.py index b825888665..980455dfd4 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/__init__.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/data_node_management.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/data_node_management.py index 3c4954e5d4..5237439671 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/data_node_management.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/data_node_management.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/scenario_page.md b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/scenario_page.md deleted file mode 100644 index 6c26000f84..0000000000 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/scenario_page.md +++ /dev/null @@ -1,12 +0,0 @@ -<|layout|columns=1 1| - -<|part|render={selected_scenario}| - -<|{selected_scenario}|scenario|not expandable|expanded|on_submission_change=notify_on_submission|> - -<|{selected_scenario}|scenario_dag|> -|> - -<|part|partial={data_node_partial}|render={selected_data_node}|> - -|> diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/scenario_page.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/scenario_page.py index 1970a5cc36..2ae27ca268 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/scenario_page.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/pages/scenario_page/scenario_page.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -9,7 +9,8 @@ # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. -from taipy.gui import Markdown, notify +import taipy.gui.builder as tgb +from taipy.gui import notify from .data_node_management import manage_partial @@ -27,4 +28,16 @@ def manage_data_node_partial(state): manage_partial(state) -scenario_page = Markdown("pages/scenario_page/scenario_page.md") +with tgb.Page() as scenario_page: + with tgb.layout(columns="1, 1"): + with tgb.part(render="{selected_scenario}"): + tgb.scenario( + "{selected_scenario}", + expandable=False, + expanded=True, + on_submission_change=notify_on_submission, + ) + + tgb.scenario_dag("{selected_scenario}") + + tgb.part(partial="{data_node_partial}", render="{selected_data_node}") diff --git a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py index f1a10dcae8..68c1bb7bee 100644 --- a/taipy/templates/sdm/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py +++ b/taipy/templates/sdm/{{cookiecutter.__root_folder}}/{{cookiecutter.__main_file}}.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/templates/setup.py b/taipy/templates/setup.py index d29e9922b9..be7fbbbff6 100644 --- a/taipy/templates/setup.py +++ b/taipy/templates/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/taipy/version.py b/taipy/version.py index 88586caae9..cee53291be 100644 --- a/taipy/version.py +++ b/taipy/version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/__init__.py b/tests/__init__.py index c440f86b39..035282144e 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/__init__.py b/tests/common/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/__init__.py +++ b/tests/common/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/cli/__init__.py b/tests/common/cli/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/cli/__init__.py +++ b/tests/common/cli/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/cli/conftest.py b/tests/common/cli/conftest.py index 0ab2b2fb68..393e69d159 100644 --- a/tests/common/cli/conftest.py +++ b/tests/common/cli/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/cli/test_argparser.py b/tests/common/cli/test_argparser.py index c4564dabbf..b97d0232ec 100644 --- a/tests/common/cli/test_argparser.py +++ b/tests/common/cli/test_argparser.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/cli/test_help_cli.py b/tests/common/cli/test_help_cli.py index fd5f27c077..84928b3c58 100644 --- a/tests/common/cli/test_help_cli.py +++ b/tests/common/cli/test_help_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/__init__.py b/tests/common/config/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/config/__init__.py +++ b/tests/common/config/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/checker/__init__.py b/tests/common/config/checker/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/config/checker/__init__.py +++ b/tests/common/config/checker/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/checker/checkers/__init__.py b/tests/common/config/checker/checkers/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/config/checker/checkers/__init__.py +++ b/tests/common/config/checker/checkers/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/checker/checkers/test_checker.py b/tests/common/config/checker/checkers/test_checker.py index 6c3ac08dd8..93b68dea8c 100644 --- a/tests/common/config/checker/checkers/test_checker.py +++ b/tests/common/config/checker/checkers/test_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/checker/checkers/test_config_checker.py b/tests/common/config/checker/checkers/test_config_checker.py index 1901ea6b92..f919ce8e88 100644 --- a/tests/common/config/checker/checkers/test_config_checker.py +++ b/tests/common/config/checker/checkers/test_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/checker/test_default_config_checker.py b/tests/common/config/checker/test_default_config_checker.py index 15fdd9176f..1495490694 100644 --- a/tests/common/config/checker/test_default_config_checker.py +++ b/tests/common/config/checker/test_default_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/checker/test_issue_collector.py b/tests/common/config/checker/test_issue_collector.py index b24572a273..1407792f15 100644 --- a/tests/common/config/checker/test_issue_collector.py +++ b/tests/common/config/checker/test_issue_collector.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/common/__init__.py b/tests/common/config/common/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/config/common/__init__.py +++ b/tests/common/config/common/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/common/test_classproperty.py b/tests/common/config/common/test_classproperty.py index 7dbcf4a39f..3875b3d79a 100644 --- a/tests/common/config/common/test_classproperty.py +++ b/tests/common/config/common/test_classproperty.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/common/test_scope.py b/tests/common/config/common/test_scope.py index 6f2972a239..45a74a0889 100644 --- a/tests/common/config/common/test_scope.py +++ b/tests/common/config/common/test_scope.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/common/test_template_handler.py b/tests/common/config/common/test_template_handler.py index 0f81818c7a..2793d4ba36 100644 --- a/tests/common/config/common/test_template_handler.py +++ b/tests/common/config/common/test_template_handler.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/common/test_validate_id.py b/tests/common/config/common/test_validate_id.py index 6dba919082..d4053b7425 100644 --- a/tests/common/config/common/test_validate_id.py +++ b/tests/common/config/common/test_validate_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/conftest.py b/tests/common/config/conftest.py index 074987b102..b51e9ee68d 100644 --- a/tests/common/config/conftest.py +++ b/tests/common/config/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/global_app/__init__.py b/tests/common/config/global_app/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/config/global_app/__init__.py +++ b/tests/common/config/global_app/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/global_app/test_global_app_config.py b/tests/common/config/global_app/test_global_app_config.py index 6ff65a7668..8cd63c0a17 100644 --- a/tests/common/config/global_app/test_global_app_config.py +++ b/tests/common/config/global_app/test_global_app_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_compilation.py b/tests/common/config/test_compilation.py index ea9d6005e7..e56b1e8f47 100644 --- a/tests/common/config/test_compilation.py +++ b/tests/common/config/test_compilation.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_config_comparator.py b/tests/common/config/test_config_comparator.py index c038fd6a4c..ba7049f898 100644 --- a/tests/common/config/test_config_comparator.py +++ b/tests/common/config/test_config_comparator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_default_config.py b/tests/common/config/test_default_config.py index 714b9b1d15..9a1ac4fa84 100644 --- a/tests/common/config/test_default_config.py +++ b/tests/common/config/test_default_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_env_file_config.py b/tests/common/config/test_env_file_config.py index 6cd5b34e43..115287a69a 100644 --- a/tests/common/config/test_env_file_config.py +++ b/tests/common/config/test_env_file_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_file_config.py b/tests/common/config/test_file_config.py index 598706155b..e97705d548 100644 --- a/tests/common/config/test_file_config.py +++ b/tests/common/config/test_file_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_override_config.py b/tests/common/config/test_override_config.py index 0473c20850..7feb81d91c 100644 --- a/tests/common/config/test_override_config.py +++ b/tests/common/config/test_override_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_section.py b/tests/common/config/test_section.py index f4945fa9c6..20e8b40f15 100644 --- a/tests/common/config/test_section.py +++ b/tests/common/config/test_section.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_section_registration.py b/tests/common/config/test_section_registration.py index 63e2fc935c..68b10719e6 100644 --- a/tests/common/config/test_section_registration.py +++ b/tests/common/config/test_section_registration.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/test_section_serialization.py b/tests/common/config/test_section_serialization.py index c7cab97b4b..11ccccc02d 100644 --- a/tests/common/config/test_section_serialization.py +++ b/tests/common/config/test_section_serialization.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/utils/__init__.py b/tests/common/config/utils/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/config/utils/__init__.py +++ b/tests/common/config/utils/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/utils/checker_for_tests.py b/tests/common/config/utils/checker_for_tests.py index a8afbeab58..d0cf79f863 100644 --- a/tests/common/config/utils/checker_for_tests.py +++ b/tests/common/config/utils/checker_for_tests.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/utils/named_temporary_file.py b/tests/common/config/utils/named_temporary_file.py index 8b3ed718f3..c4ebd66da8 100644 --- a/tests/common/config/utils/named_temporary_file.py +++ b/tests/common/config/utils/named_temporary_file.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/utils/section_for_tests.py b/tests/common/config/utils/section_for_tests.py index 0aa455c908..6572ecf0a0 100644 --- a/tests/common/config/utils/section_for_tests.py +++ b/tests/common/config/utils/section_for_tests.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/utils/section_of_sections_list_for_tests.py b/tests/common/config/utils/section_of_sections_list_for_tests.py index 954acca5f3..e833ea0472 100644 --- a/tests/common/config/utils/section_of_sections_list_for_tests.py +++ b/tests/common/config/utils/section_of_sections_list_for_tests.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/config/utils/unique_section_for_tests.py b/tests/common/config/utils/unique_section_for_tests.py index 817387bd22..3ace033918 100644 --- a/tests/common/config/utils/unique_section_for_tests.py +++ b/tests/common/config/utils/unique_section_for_tests.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/logger/__init__.py b/tests/common/logger/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/common/logger/__init__.py +++ b/tests/common/logger/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/common/logger/test_logger.py b/tests/common/logger/test_logger.py index f9b567b1eb..f0cfbf0420 100644 --- a/tests/common/logger/test_logger.py +++ b/tests/common/logger/test_logger.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/conftest.py b/tests/conftest.py index 9d0e9c0e09..9873b9326c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/__init__.py b/tests/core/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/__init__.py +++ b/tests/core/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_entity/__init__.py b/tests/core/_entity/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/_entity/__init__.py +++ b/tests/core/_entity/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_entity/test_dag.py b/tests/core/_entity/test_dag.py index 6d317c010d..72f1eb43f6 100644 --- a/tests/core/_entity/test_dag.py +++ b/tests/core/_entity/test_dag.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_entity/test_entity_ids.py b/tests/core/_entity/test_entity_ids.py index 1e1fb23693..f7100d659b 100644 --- a/tests/core/_entity/test_entity_ids.py +++ b/tests/core/_entity/test_entity_ids.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_entity/test_labelled.py b/tests/core/_entity/test_labelled.py index b6967fa8c2..759f62941c 100644 --- a/tests/core/_entity/test_labelled.py +++ b/tests/core/_entity/test_labelled.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_entity/test_migrate_cli.py b/tests/core/_entity/test_migrate_cli.py index 919c707000..550d2bb48b 100644 --- a/tests/core/_entity/test_migrate_cli.py +++ b/tests/core/_entity/test_migrate_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_entity/test_migrate_utils.py b/tests/core/_entity/test_migrate_utils.py index a46064316f..58d0f0b0ae 100644 --- a/tests/core/_entity/test_migrate_utils.py +++ b/tests/core/_entity/test_migrate_utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_entity/test_ready_to_run_property.py b/tests/core/_entity/test_ready_to_run_property.py index a9df0dfaca..e6a7897ab0 100644 --- a/tests/core/_entity/test_ready_to_run_property.py +++ b/tests/core/_entity/test_ready_to_run_property.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_manager/__init__.py b/tests/core/_manager/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/_manager/__init__.py +++ b/tests/core/_manager/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_manager/test_manager.py b/tests/core/_manager/test_manager.py index f55192bb98..74e03538d5 100644 --- a/tests/core/_manager/test_manager.py +++ b/tests/core/_manager/test_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/__init__.py b/tests/core/_orchestrator/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/_orchestrator/__init__.py +++ b/tests/core/_orchestrator/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/__init__.py b/tests/core/_orchestrator/_dispatcher/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/_orchestrator/_dispatcher/__init__.py +++ b/tests/core/_orchestrator/_dispatcher/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/mock_standalone_dispatcher.py b/tests/core/_orchestrator/_dispatcher/mock_standalone_dispatcher.py index acad99bdca..15de5a263d 100644 --- a/tests/core/_orchestrator/_dispatcher/mock_standalone_dispatcher.py +++ b/tests/core/_orchestrator/_dispatcher/mock_standalone_dispatcher.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/test_development_job_dispatcher.py b/tests/core/_orchestrator/_dispatcher/test_development_job_dispatcher.py index 028fddd6f5..c5a4fcefd8 100644 --- a/tests/core/_orchestrator/_dispatcher/test_development_job_dispatcher.py +++ b/tests/core/_orchestrator/_dispatcher/test_development_job_dispatcher.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/test_dispatcher__execute_job.py b/tests/core/_orchestrator/_dispatcher/test_dispatcher__execute_job.py index fd222f2624..74955c2fa3 100644 --- a/tests/core/_orchestrator/_dispatcher/test_dispatcher__execute_job.py +++ b/tests/core/_orchestrator/_dispatcher/test_dispatcher__execute_job.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/test_dispatcher__needs_to_run.py b/tests/core/_orchestrator/_dispatcher/test_dispatcher__needs_to_run.py index ea8e52896e..0ab6580bee 100644 --- a/tests/core/_orchestrator/_dispatcher/test_dispatcher__needs_to_run.py +++ b/tests/core/_orchestrator/_dispatcher/test_dispatcher__needs_to_run.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/test_dispatcher__update_job_status.py b/tests/core/_orchestrator/_dispatcher/test_dispatcher__update_job_status.py index 674900a435..1dee97239d 100644 --- a/tests/core/_orchestrator/_dispatcher/test_dispatcher__update_job_status.py +++ b/tests/core/_orchestrator/_dispatcher/test_dispatcher__update_job_status.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/test_standalone_job_dispatcher.py b/tests/core/_orchestrator/_dispatcher/test_standalone_job_dispatcher.py index 654f81bd15..9e4be14795 100644 --- a/tests/core/_orchestrator/_dispatcher/test_standalone_job_dispatcher.py +++ b/tests/core/_orchestrator/_dispatcher/test_standalone_job_dispatcher.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/_dispatcher/test_task_function_wrapper.py b/tests/core/_orchestrator/_dispatcher/test_task_function_wrapper.py index a9cd56c11c..e8a251ee0a 100644 --- a/tests/core/_orchestrator/_dispatcher/test_task_function_wrapper.py +++ b/tests/core/_orchestrator/_dispatcher/test_task_function_wrapper.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator.py b/tests/core/_orchestrator/test_orchestrator.py index eee571297a..e443d0316b 100644 --- a/tests/core/_orchestrator/test_orchestrator.py +++ b/tests/core/_orchestrator/test_orchestrator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator__cancel_jobs.py b/tests/core/_orchestrator/test_orchestrator__cancel_jobs.py index 99e81ab976..988ce38d73 100644 --- a/tests/core/_orchestrator/test_orchestrator__cancel_jobs.py +++ b/tests/core/_orchestrator/test_orchestrator__cancel_jobs.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator__is_blocked.py b/tests/core/_orchestrator/test_orchestrator__is_blocked.py index aa5ddbc0fd..2782b351c6 100644 --- a/tests/core/_orchestrator/test_orchestrator__is_blocked.py +++ b/tests/core/_orchestrator/test_orchestrator__is_blocked.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator__lock_dn_output_and_create_job.py b/tests/core/_orchestrator/test_orchestrator__lock_dn_output_and_create_job.py index 4729f8f498..b5301065e6 100644 --- a/tests/core/_orchestrator/test_orchestrator__lock_dn_output_and_create_job.py +++ b/tests/core/_orchestrator/test_orchestrator__lock_dn_output_and_create_job.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator__on_status_change.py b/tests/core/_orchestrator/test_orchestrator__on_status_change.py index 1ba947c4ca..4ad1680a29 100644 --- a/tests/core/_orchestrator/test_orchestrator__on_status_change.py +++ b/tests/core/_orchestrator/test_orchestrator__on_status_change.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator__orchestrate_job_to_run_or_block.py b/tests/core/_orchestrator/test_orchestrator__orchestrate_job_to_run_or_block.py index e9d26a3027..3769748237 100644 --- a/tests/core/_orchestrator/test_orchestrator__orchestrate_job_to_run_or_block.py +++ b/tests/core/_orchestrator/test_orchestrator__orchestrate_job_to_run_or_block.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator__submit.py b/tests/core/_orchestrator/test_orchestrator__submit.py index 743ba0fe36..89e6d4527e 100644 --- a/tests/core/_orchestrator/test_orchestrator__submit.py +++ b/tests/core/_orchestrator/test_orchestrator__submit.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator__submit_task.py b/tests/core/_orchestrator/test_orchestrator__submit_task.py index 2411ae07a3..ec1cf5096e 100644 --- a/tests/core/_orchestrator/test_orchestrator__submit_task.py +++ b/tests/core/_orchestrator/test_orchestrator__submit_task.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_orchestrator/test_orchestrator_factory.py b/tests/core/_orchestrator/test_orchestrator_factory.py index 009bf3018c..02507c3805 100644 --- a/tests/core/_orchestrator/test_orchestrator_factory.py +++ b/tests/core/_orchestrator/test_orchestrator_factory.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_version/__init__.py b/tests/core/_version/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/_version/__init__.py +++ b/tests/core/_version/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_version/test_version.py b/tests/core/_version/test_version.py index 7127d58ba1..f866fd6cd7 100644 --- a/tests/core/_version/test_version.py +++ b/tests/core/_version/test_version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_version/test_version_cli.py b/tests/core/_version/test_version_cli.py index 4292097e4c..0c9e4f427d 100644 --- a/tests/core/_version/test_version_cli.py +++ b/tests/core/_version/test_version_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_version/test_version_manager.py b/tests/core/_version/test_version_manager.py index 639289ad4f..423beb273f 100644 --- a/tests/core/_version/test_version_manager.py +++ b/tests/core/_version/test_version_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/_version/test_version_repositories.py b/tests/core/_version/test_version_repositories.py index bcf7ac5e90..b5dfa20e72 100644 --- a/tests/core/_version/test_version_repositories.py +++ b/tests/core/_version/test_version_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/common/__init__.py b/tests/core/common/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/common/__init__.py +++ b/tests/core/common/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/common/test_reason.py b/tests/core/common/test_reason.py index c00b15f9dc..d8329172c4 100644 --- a/tests/core/common/test_reason.py +++ b/tests/core/common/test_reason.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/common/test_retry.py b/tests/core/common/test_retry.py index 0f8a8bd41e..6839d7d2dc 100644 --- a/tests/core/common/test_retry.py +++ b/tests/core/common/test_retry.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/common/test_warn_if_inputs_not_ready.py b/tests/core/common/test_warn_if_inputs_not_ready.py index 9abac3c28f..0f5bb172bc 100644 --- a/tests/core/common/test_warn_if_inputs_not_ready.py +++ b/tests/core/common/test_warn_if_inputs_not_ready.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/__init__.py b/tests/core/config/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/config/__init__.py +++ b/tests/core/config/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/checkers/__init__.py b/tests/core/config/checkers/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/config/checkers/__init__.py +++ b/tests/core/config/checkers/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/checkers/test_config_id_checker.py b/tests/core/config/checkers/test_config_id_checker.py index 3940c66002..bea2d6c242 100644 --- a/tests/core/config/checkers/test_config_id_checker.py +++ b/tests/core/config/checkers/test_config_id_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/checkers/test_core_section_checker.py b/tests/core/config/checkers/test_core_section_checker.py index ba3d7048a1..8d60fd82d9 100644 --- a/tests/core/config/checkers/test_core_section_checker.py +++ b/tests/core/config/checkers/test_core_section_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/checkers/test_data_node_config_checker.py b/tests/core/config/checkers/test_data_node_config_checker.py index 7c9c3f93b5..84d5a47251 100644 --- a/tests/core/config/checkers/test_data_node_config_checker.py +++ b/tests/core/config/checkers/test_data_node_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -10,7 +10,7 @@ # specific language governing permissions and limitations under the License. from copy import copy -from datetime import timedelta +from datetime import datetime, timedelta import pytest @@ -513,12 +513,12 @@ def test_check_callable_properties(self, caplog): Config.check() assert len(Config._collector.errors) == 2 expected_error_message_1 = ( - "`write_query_builder` of DataNodeConfig `new` must be populated with a Callable." + "`write_query_builder` of DataNodeConfig `new` must be populated with a typing.Callable." " Current value of property `write_query_builder` is 1." ) assert expected_error_message_1 in caplog.text expected_error_message_2 = ( - "`append_query_builder` of DataNodeConfig `new` must be populated with a Callable." + "`append_query_builder` of DataNodeConfig `new` must be populated with a typing.Callable." " Current value of property `append_query_builder` is 2." ) assert expected_error_message_2 in caplog.text @@ -530,7 +530,7 @@ def test_check_callable_properties(self, caplog): Config.check() assert len(Config._collector.errors) == 1 expected_error_messages = [ - "`write_fct` of DataNodeConfig `new` must be populated with a Callable. Current value" + "`write_fct` of DataNodeConfig `new` must be populated with a typing.Callable. Current value" " of property `write_fct` is 12.", ] assert all(message in caplog.text for message in expected_error_messages) @@ -542,7 +542,7 @@ def test_check_callable_properties(self, caplog): Config.check() assert len(Config._collector.errors) == 1 expected_error_messages = [ - "`read_fct` of DataNodeConfig `new` must be populated with a Callable. Current value" + "`read_fct` of DataNodeConfig `new` must be populated with a typing.Callable. Current value" " of property `read_fct` is 5.", ] assert all(message in caplog.text for message in expected_error_messages) @@ -554,9 +554,9 @@ def test_check_callable_properties(self, caplog): Config.check() assert len(Config._collector.errors) == 2 expected_error_messages = [ - "`write_fct` of DataNodeConfig `new` must be populated with a Callable. Current value" + "`write_fct` of DataNodeConfig `new` must be populated with a typing.Callable. Current value" " of property `write_fct` is 9.", - "`read_fct` of DataNodeConfig `new` must be populated with a Callable. Current value" + "`read_fct` of DataNodeConfig `new` must be populated with a typing.Callable. Current value" " of property `read_fct` is 5.", ] assert all(message in caplog.text for message in expected_error_messages) @@ -588,10 +588,10 @@ def test_check_callable_properties(self, caplog): Config.check() assert len(Config._collector.errors) == 2 expected_error_messages = [ - "`write_fct` of DataNodeConfig `new` must be populated with a serializable Callable function but" + "`write_fct` of DataNodeConfig `new` must be populated with a serializable typing.Callable function but" " not a lambda. Current value of property `write_fct` is .", - "`read_fct` of DataNodeConfig `new` must be populated with a serializable Callable function but" + "`read_fct` of DataNodeConfig `new` must be populated with a serializable typing.Callable function but" " not a lambda. Current value of property `read_fct` is .", ] @@ -616,12 +616,15 @@ def test_check_read_write_fct_args(self, caplog): with pytest.raises(SystemExit): Config._collector = IssueCollector() Config.check() - assert len(Config._collector.errors) == 1 - expected_error_message = ( + assert len(Config._collector.errors) == 2 + + expected_error_messages = ( + "`write_fct_args` of DataNodeConfig `default` must be populated with a ." + ' Current value of property `write_fct_args` is "foo".', "`write_fct_args` field of DataNodeConfig `default` must be populated with a List value." - ' Current value of property `write_fct_args` is "foo".' + ' Current value of property `write_fct_args` is "foo".', ) - assert expected_error_message in caplog.text + assert all(message in caplog.text for message in expected_error_messages) config._sections[DataNodeConfig.name]["default"].storage_type = "generic" config._sections[DataNodeConfig.name]["default"].properties = { "write_fct": print, @@ -641,12 +644,15 @@ def test_check_read_write_fct_args(self, caplog): with pytest.raises(SystemExit): Config._collector = IssueCollector() Config.check() - assert len(Config._collector.errors) == 1 - expected_error_message = ( + assert len(Config._collector.errors) == 2 + + expected_error_messages = ( + "`read_fct_args` of DataNodeConfig `default` must be populated with a ." + " Current value of property `read_fct_args` is 1.", "`read_fct_args` field of DataNodeConfig `default` must be populated with a List value." - " Current value of property `read_fct_args` is 1." + " Current value of property `read_fct_args` is 1.", ) - assert expected_error_message in caplog.text + assert all(message in caplog.text for message in expected_error_messages) config._sections[DataNodeConfig.name]["default"].storage_type = "generic" config._sections[DataNodeConfig.name]["default"].properties = { @@ -704,3 +710,67 @@ def test_check_exposed_types(self, caplog): config._sections[DataNodeConfig.name]["default"].properties = {"exposed_type": MyCustomClass} Config.check() assert len(Config._collector.errors) == 0 + + def test_check_property_types(self, caplog): + config = Config._applied_config + Config._compile_configs() + config._sections[DataNodeConfig.name]["default"].storage_type = "pickle" + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": "string"} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": 1} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": 1.} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": True} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": ["foo", "bar"]} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": ("foo", "bar")} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": {"foo": "bar"}} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": {"foo", "bar"}} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": None} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": print} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": datetime(2021, 7, 26)} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 + + config._sections[DataNodeConfig.name]["default"].properties = {"default_data": timedelta(7)} + Config._collector = IssueCollector() + Config.check() + assert len(Config._collector.errors) == 0 diff --git a/tests/core/config/checkers/test_job_config_checker.py b/tests/core/config/checkers/test_job_config_checker.py index 3b374814ee..98547d0017 100644 --- a/tests/core/config/checkers/test_job_config_checker.py +++ b/tests/core/config/checkers/test_job_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/checkers/test_scenario_config_checker.py b/tests/core/config/checkers/test_scenario_config_checker.py index c1462603df..75d5f8fb6c 100644 --- a/tests/core/config/checkers/test_scenario_config_checker.py +++ b/tests/core/config/checkers/test_scenario_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/checkers/test_task_config_checker.py b/tests/core/config/checkers/test_task_config_checker.py index 3a43ec62bf..c20007c992 100644 --- a/tests/core/config/checkers/test_task_config_checker.py +++ b/tests/core/config/checkers/test_task_config_checker.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_config.py b/tests/core/config/test_config.py index 04c31f35af..f9e2579ed2 100644 --- a/tests/core/config/test_config.py +++ b/tests/core/config/test_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_config_schema.py b/tests/core/config/test_config_schema.py index d9065a9988..c9edc98ddc 100644 --- a/tests/core/config/test_config_schema.py +++ b/tests/core/config/test_config_schema.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_config_serialization.py b/tests/core/config/test_config_serialization.py index 83aab6618e..8f9258bbb9 100644 --- a/tests/core/config/test_config_serialization.py +++ b/tests/core/config/test_config_serialization.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_configure_default_config.py b/tests/core/config/test_configure_default_config.py index 14833163ed..04eea7dd1e 100644 --- a/tests/core/config/test_configure_default_config.py +++ b/tests/core/config/test_configure_default_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_core_section.py b/tests/core/config/test_core_section.py index b12cdba901..2f2fa64828 100644 --- a/tests/core/config/test_core_section.py +++ b/tests/core/config/test_core_section.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_core_version.py b/tests/core/config/test_core_version.py index b2fd1a1498..03a8d8e3d9 100644 --- a/tests/core/config/test_core_version.py +++ b/tests/core/config/test_core_version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_data_node_config.py b/tests/core/config/test_data_node_config.py index 4c0a822925..e7a8a61844 100644 --- a/tests/core/config/test_data_node_config.py +++ b/tests/core/config/test_data_node_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_default_config.py b/tests/core/config/test_default_config.py index 407f3b0b78..30da40f71b 100644 --- a/tests/core/config/test_default_config.py +++ b/tests/core/config/test_default_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_file_config.py b/tests/core/config/test_file_config.py index 1b75e6e32d..fea0f24a3e 100644 --- a/tests/core/config/test_file_config.py +++ b/tests/core/config/test_file_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_job_config.py b/tests/core/config/test_job_config.py index 461f396b47..73df98762b 100644 --- a/tests/core/config/test_job_config.py +++ b/tests/core/config/test_job_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_override_config.py b/tests/core/config/test_override_config.py index 165e7d67df..319d721b43 100644 --- a/tests/core/config/test_override_config.py +++ b/tests/core/config/test_override_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_scenario_config.py b/tests/core/config/test_scenario_config.py index 9b31ed4b45..d1517da17a 100644 --- a/tests/core/config/test_scenario_config.py +++ b/tests/core/config/test_scenario_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/config/test_task_config.py b/tests/core/config/test_task_config.py index 594b87d005..625f23c114 100644 --- a/tests/core/config/test_task_config.py +++ b/tests/core/config/test_task_config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/conftest.py b/tests/core/conftest.py index 72cbe0c0ce..18fa4f8892 100644 --- a/tests/core/conftest.py +++ b/tests/core/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/cycle/__init__.py b/tests/core/cycle/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/cycle/__init__.py +++ b/tests/core/cycle/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/cycle/test_cycle.py b/tests/core/cycle/test_cycle.py index 66b1aa56eb..558ee50c3f 100644 --- a/tests/core/cycle/test_cycle.py +++ b/tests/core/cycle/test_cycle.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/cycle/test_cycle_manager.py b/tests/core/cycle/test_cycle_manager.py index 3fc0b6d52d..6327c35b69 100644 --- a/tests/core/cycle/test_cycle_manager.py +++ b/tests/core/cycle/test_cycle_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/cycle/test_cycle_repositories.py b/tests/core/cycle/test_cycle_repositories.py index a29d9cd06a..ab75f02188 100644 --- a/tests/core/cycle/test_cycle_repositories.py +++ b/tests/core/cycle/test_cycle_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/__init__.py b/tests/core/data/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/data/__init__.py +++ b/tests/core/data/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_aws_s3_data_node.py b/tests/core/data/test_aws_s3_data_node.py index ebb3a99644..394ce3d4e3 100644 --- a/tests/core/data/test_aws_s3_data_node.py +++ b/tests/core/data/test_aws_s3_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_csv_data_node.py b/tests/core/data/test_csv_data_node.py index 360fd62a56..dcd5f56cc1 100644 --- a/tests/core/data/test_csv_data_node.py +++ b/tests/core/data/test_csv_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -157,6 +157,58 @@ def test_pandas_exposed_type(self): dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": "pandas"}) assert isinstance(dn.read(), pd.DataFrame) + def test_pandas_dataframe_exposed_type(self): + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": pd.DataFrame}) + assert isinstance(dn.read(), pd.DataFrame) + + def test_pandas_dataframe_exposed_type_a(self): + import pandas + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": pandas.DataFrame}) + assert isinstance(dn.read(), pandas.DataFrame) + + def test_pandas_dataframe_exposed_type_b(self): + from pandas import DataFrame + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": DataFrame}) + assert isinstance(dn.read(), DataFrame) + + def test_pandas_dataframe_exposed_type_c(self): + from pandas import DataFrame as DF + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": DF}) + assert isinstance(dn.read(), DF) + + def test_numpy_ndarray_exposed_type(self): + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": np.ndarray}) + assert isinstance(dn.read(), np.ndarray) + + def test_numpy_ndarray_exposed_type_a(self): + import numpy + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": numpy.ndarray}) + assert isinstance(dn.read(), numpy.ndarray) + + def test_numpy_ndarray_exposed_type_b(self): + from numpy import ndarray + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": ndarray}) + assert isinstance(dn.read(), ndarray) + + def test_numpy_ndarray_exposed_type_c(self): + from numpy import ndarray as nd_array + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") + dn = CSVDataNode("foo", Scope.SCENARIO, properties={"path": path, "exposed_type": nd_array}) + assert isinstance(dn.read(), nd_array) + def test_raise_error_invalid_exposed_type(self): path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.csv") with pytest.raises(InvalidExposedType): diff --git a/tests/core/data/test_data_manager.py b/tests/core/data/test_data_manager.py index bb43a45be9..7316f6d498 100644 --- a/tests/core/data/test_data_manager.py +++ b/tests/core/data/test_data_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_data_node.py b/tests/core/data/test_data_node.py index 5101177644..ce9db06015 100644 --- a/tests/core/data/test_data_node.py +++ b/tests/core/data/test_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_data_repositories.py b/tests/core/data/test_data_repositories.py index da0b671d7c..9d3bc8fa6b 100644 --- a/tests/core/data/test_data_repositories.py +++ b/tests/core/data/test_data_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_excel_data_node.py b/tests/core/data/test_excel_data_node.py index 734f72b2d8..0a262a8e90 100644 --- a/tests/core/data/test_excel_data_node.py +++ b/tests/core/data/test_excel_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -302,6 +302,100 @@ def test_pandas_exposed_type(self): data = dn.read() assert isinstance(data, pd.DataFrame) + def test_pandas_dataframe_exposed_type(self): + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", + Scope.SCENARIO, + properties={"default_path": path, "exposed_type": pd.DataFrame, "sheet_name": "Sheet1"}, + ) + assert dn.properties["exposed_type"] == pd.DataFrame + data = dn.read() + assert isinstance(data, pd.DataFrame) + + def test_pandas_dataframe_exposed_type_a(self): + import pandas + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", + Scope.SCENARIO, + properties={"default_path": path, "exposed_type": pandas.DataFrame, "sheet_name": "Sheet1"}, + ) + assert dn.properties["exposed_type"] == pandas.DataFrame + data = dn.read() + assert isinstance(data, pandas.DataFrame) + + def test_pandas_dataframe_exposed_type_b(self): + from pandas import DataFrame + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", + Scope.SCENARIO, + properties={"default_path": path, "exposed_type": DataFrame, "sheet_name": "Sheet1"}, + ) + assert dn.properties["exposed_type"] == DataFrame + data = dn.read() + assert isinstance(data, DataFrame) + + def test_pandas_dataframe_exposed_type_c(self): + from pandas import DataFrame as DF + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", + Scope.SCENARIO, + properties={"default_path": path, "exposed_type": DF, "sheet_name": "Sheet1"}, + ) + assert dn.properties["exposed_type"] == DF + data = dn.read() + assert isinstance(data, DF) + + def test_numpy_ndarray_exposed_type(self): + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", Scope.SCENARIO, properties={"default_path": path, "exposed_type": np.ndarray, "sheet_name": "Sheet1"} + ) + assert dn.properties["exposed_type"] == np.ndarray + data = dn.read() + assert isinstance(data, np.ndarray) + + def test_numpy_ndarray_exposed_type_a(self): + import numpy + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", + Scope.SCENARIO, + properties={"default_path": path, "exposed_type": numpy.ndarray, "sheet_name": "Sheet1"}, + ) + assert dn.properties["exposed_type"] == numpy.ndarray + data = dn.read() + assert isinstance(data, numpy.ndarray) + + def test_numpy_ndarray_exposed_type_b(self): + from numpy import ndarray + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", Scope.SCENARIO, properties={"default_path": path, "exposed_type": ndarray, "sheet_name": "Sheet1"} + ) + assert dn.properties["exposed_type"] == ndarray + data = dn.read() + assert isinstance(data, ndarray) + + def test_numpy_ndarray_exposed_type_c(self): + from numpy import ndarray as nd_array + + path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example.xlsx") + dn = ExcelDataNode( + "foo", Scope.SCENARIO, properties={"default_path": path, "exposed_type": nd_array, "sheet_name": "Sheet1"} + ) + assert dn.properties["exposed_type"] == nd_array + data = dn.read() + assert isinstance(data, nd_array) + def test_complex_exposed_type_dict(self): # ["Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5"] path = os.path.join(pathlib.Path(__file__).parent.resolve(), "data_sample/example_4.xlsx") diff --git a/tests/core/data/test_filter_csv_data_node.py b/tests/core/data/test_filter_csv_data_node.py index 94c9eeba25..d90559a1a4 100644 --- a/tests/core/data/test_filter_csv_data_node.py +++ b/tests/core/data/test_filter_csv_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_filter_data_node.py b/tests/core/data/test_filter_data_node.py index a10dcc3eb0..b103dec3c3 100644 --- a/tests/core/data/test_filter_data_node.py +++ b/tests/core/data/test_filter_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_filter_excel_data_node.py b/tests/core/data/test_filter_excel_data_node.py index e69fea2c2b..424bfebd96 100644 --- a/tests/core/data/test_filter_excel_data_node.py +++ b/tests/core/data/test_filter_excel_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_filter_parquet_data_node.py b/tests/core/data/test_filter_parquet_data_node.py index 19d5124bf8..6ca2ceccc8 100644 --- a/tests/core/data/test_filter_parquet_data_node.py +++ b/tests/core/data/test_filter_parquet_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_filter_sql_table_data_node.py b/tests/core/data/test_filter_sql_table_data_node.py index a9dba6980a..133902be7a 100644 --- a/tests/core/data/test_filter_sql_table_data_node.py +++ b/tests/core/data/test_filter_sql_table_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_generic_data_node.py b/tests/core/data/test_generic_data_node.py index beb6818b42..5cb1282293 100644 --- a/tests/core/data/test_generic_data_node.py +++ b/tests/core/data/test_generic_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_in_memory_data_node.py b/tests/core/data/test_in_memory_data_node.py index bf5525fce9..d3c36792b6 100644 --- a/tests/core/data/test_in_memory_data_node.py +++ b/tests/core/data/test_in_memory_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_json_data_node.py b/tests/core/data/test_json_data_node.py index 9319a65bf7..05b2b76b02 100644 --- a/tests/core/data/test_json_data_node.py +++ b/tests/core/data/test_json_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_mongo_data_node.py b/tests/core/data/test_mongo_data_node.py index e7abd1cf44..576e5d4b23 100644 --- a/tests/core/data/test_mongo_data_node.py +++ b/tests/core/data/test_mongo_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_parquet_data_node.py b/tests/core/data/test_parquet_data_node.py index 02dd247b69..1fc224dfa1 100644 --- a/tests/core/data/test_parquet_data_node.py +++ b/tests/core/data/test_parquet_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -98,6 +98,20 @@ def test_create(self): assert isinstance(dn_1, ParquetDataNode) assert dn_1.properties["exposed_type"] == MyCustomObject + parquet_dn_config_2 = Config.configure_parquet_data_node( + id="bar", default_path=path, compression=compression, exposed_type=np.ndarray + ) + dn_2 = _DataManagerFactory._build_manager()._create_and_set(parquet_dn_config_2, None, None) + assert isinstance(dn_2, ParquetDataNode) + assert dn_2.properties["exposed_type"] == np.ndarray + + parquet_dn_config_3 = Config.configure_parquet_data_node( + id="bar", default_path=path, compression=compression, exposed_type=pd.DataFrame + ) + dn_3 = _DataManagerFactory._build_manager()._create_and_set(parquet_dn_config_3, None, None) + assert isinstance(dn_3, ParquetDataNode) + assert dn_3.properties["exposed_type"] == pd.DataFrame + with pytest.raises(InvalidConfigurationId): dn = ParquetDataNode("foo bar", Scope.SCENARIO, properties={"path": path, "name": "super name"}) diff --git a/tests/core/data/test_pickle_data_node.py b/tests/core/data/test_pickle_data_node.py index 57d4259e28..05deccf0cf 100644 --- a/tests/core/data/test_pickle_data_node.py +++ b/tests/core/data/test_pickle_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_read_csv_data_node.py b/tests/core/data/test_read_csv_data_node.py index 9f0cef447d..5d36ba3440 100644 --- a/tests/core/data/test_read_csv_data_node.py +++ b/tests/core/data/test_read_csv_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_read_excel_data_node.py b/tests/core/data/test_read_excel_data_node.py index 7c20206127..dc4c5e5001 100644 --- a/tests/core/data/test_read_excel_data_node.py +++ b/tests/core/data/test_read_excel_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_read_parquet_data_node.py b/tests/core/data/test_read_parquet_data_node.py index 36e38dc2ca..796f0ec5f2 100644 --- a/tests/core/data/test_read_parquet_data_node.py +++ b/tests/core/data/test_read_parquet_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_read_sql_table_data_node.py b/tests/core/data/test_read_sql_table_data_node.py index 1310c013cc..c85678c923 100644 --- a/tests/core/data/test_read_sql_table_data_node.py +++ b/tests/core/data/test_read_sql_table_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_sql_data_node.py b/tests/core/data/test_sql_data_node.py index be402f066e..fef714b90f 100644 --- a/tests/core/data/test_sql_data_node.py +++ b/tests/core/data/test_sql_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_sql_table_data_node.py b/tests/core/data/test_sql_table_data_node.py index 00c8c912af..5fea9061bb 100644 --- a/tests/core/data/test_sql_table_data_node.py +++ b/tests/core/data/test_sql_table_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_write_csv_data_node.py b/tests/core/data/test_write_csv_data_node.py index 0e0828f421..2fdccaaf76 100644 --- a/tests/core/data/test_write_csv_data_node.py +++ b/tests/core/data/test_write_csv_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_write_multiple_sheet_excel_data_node.py b/tests/core/data/test_write_multiple_sheet_excel_data_node.py index e783b5c786..c286f485e4 100644 --- a/tests/core/data/test_write_multiple_sheet_excel_data_node.py +++ b/tests/core/data/test_write_multiple_sheet_excel_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_write_parquet_data_node.py b/tests/core/data/test_write_parquet_data_node.py index 58d7d9f363..f7168358ec 100644 --- a/tests/core/data/test_write_parquet_data_node.py +++ b/tests/core/data/test_write_parquet_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_write_single_sheet_excel_data_node.py b/tests/core/data/test_write_single_sheet_excel_data_node.py index fd0fe36487..67dddea02b 100644 --- a/tests/core/data/test_write_single_sheet_excel_data_node.py +++ b/tests/core/data/test_write_single_sheet_excel_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/test_write_sql_table_data_node.py b/tests/core/data/test_write_sql_table_data_node.py index b93db8c23f..c51f602537 100644 --- a/tests/core/data/test_write_sql_table_data_node.py +++ b/tests/core/data/test_write_sql_table_data_node.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/data/utils.py b/tests/core/data/utils.py index 21bbd43577..d019f97e54 100644 --- a/tests/core/data/utils.py +++ b/tests/core/data/utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/job/__init__.py b/tests/core/job/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/job/__init__.py +++ b/tests/core/job/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/job/test_job.py b/tests/core/job/test_job.py index 30bc56bcd7..76df56e427 100644 --- a/tests/core/job/test_job.py +++ b/tests/core/job/test_job.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/job/test_job_manager.py b/tests/core/job/test_job_manager.py index b361d5f74f..778ea39c0f 100644 --- a/tests/core/job/test_job_manager.py +++ b/tests/core/job/test_job_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/job/test_job_repositories.py b/tests/core/job/test_job_repositories.py index deeb2040db..2f80298803 100644 --- a/tests/core/job/test_job_repositories.py +++ b/tests/core/job/test_job_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/__init__.py b/tests/core/notification/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/notification/__init__.py +++ b/tests/core/notification/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/test_core_event_consumer.py b/tests/core/notification/test_core_event_consumer.py index 1f0d3820c6..04aa7f2fe4 100644 --- a/tests/core/notification/test_core_event_consumer.py +++ b/tests/core/notification/test_core_event_consumer.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/test_event.py b/tests/core/notification/test_event.py index b2f24477a8..11e4725f7b 100644 --- a/tests/core/notification/test_event.py +++ b/tests/core/notification/test_event.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/test_events_published.py b/tests/core/notification/test_events_published.py index abb580c706..3cfc194a7f 100644 --- a/tests/core/notification/test_events_published.py +++ b/tests/core/notification/test_events_published.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/test_notifier.py b/tests/core/notification/test_notifier.py index 6b5025ffff..959e5a6f7d 100644 --- a/tests/core/notification/test_notifier.py +++ b/tests/core/notification/test_notifier.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/test_published_ready_to_run_event.py b/tests/core/notification/test_published_ready_to_run_event.py index c020582f3e..0f4f823a10 100644 --- a/tests/core/notification/test_published_ready_to_run_event.py +++ b/tests/core/notification/test_published_ready_to_run_event.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/test_registration.py b/tests/core/notification/test_registration.py index 218ad22a2b..4afe4dd321 100644 --- a/tests/core/notification/test_registration.py +++ b/tests/core/notification/test_registration.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/notification/test_topic.py b/tests/core/notification/test_topic.py index 1c99b6774b..585606709b 100644 --- a/tests/core/notification/test_topic.py +++ b/tests/core/notification/test_topic.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/repository/__init__.py b/tests/core/repository/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/repository/__init__.py +++ b/tests/core/repository/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/repository/mocks.py b/tests/core/repository/mocks.py index 8c0507e4d1..2b89b84e40 100644 --- a/tests/core/repository/mocks.py +++ b/tests/core/repository/mocks.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/repository/test_base_model.py b/tests/core/repository/test_base_model.py index 4da77a39c9..49d8c5d7d6 100644 --- a/tests/core/repository/test_base_model.py +++ b/tests/core/repository/test_base_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/repository/test_encoding.py b/tests/core/repository/test_encoding.py index 86e0abb78d..aa22ed4e59 100644 --- a/tests/core/repository/test_encoding.py +++ b/tests/core/repository/test_encoding.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/repository/test_json_encoder_decoder.py b/tests/core/repository/test_json_encoder_decoder.py index e342ffc218..b2f0b171d8 100644 --- a/tests/core/repository/test_json_encoder_decoder.py +++ b/tests/core/repository/test_json_encoder_decoder.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/repository/test_repositories.py b/tests/core/repository/test_repositories.py index 1ac94580ca..bfcce02ce1 100644 --- a/tests/core/repository/test_repositories.py +++ b/tests/core/repository/test_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/scenario/__init__.py b/tests/core/scenario/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/scenario/__init__.py +++ b/tests/core/scenario/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/scenario/test_scenario.py b/tests/core/scenario/test_scenario.py index 86726eb7c2..72899c20ef 100644 --- a/tests/core/scenario/test_scenario.py +++ b/tests/core/scenario/test_scenario.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/scenario/test_scenario_manager.py b/tests/core/scenario/test_scenario_manager.py index 134e026bd3..6441a32e31 100644 --- a/tests/core/scenario/test_scenario_manager.py +++ b/tests/core/scenario/test_scenario_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/scenario/test_scenario_repositories.py b/tests/core/scenario/test_scenario_repositories.py index a6725e842c..48942aac5f 100644 --- a/tests/core/scenario/test_scenario_repositories.py +++ b/tests/core/scenario/test_scenario_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/sequence/__init__.py b/tests/core/sequence/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/sequence/__init__.py +++ b/tests/core/sequence/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/sequence/test_sequence.py b/tests/core/sequence/test_sequence.py index 4defaaee97..9b78cb53df 100644 --- a/tests/core/sequence/test_sequence.py +++ b/tests/core/sequence/test_sequence.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/sequence/test_sequence_converter.py b/tests/core/sequence/test_sequence_converter.py index b02f4eceea..3ebbe5258c 100644 --- a/tests/core/sequence/test_sequence_converter.py +++ b/tests/core/sequence/test_sequence_converter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/sequence/test_sequence_manager.py b/tests/core/sequence/test_sequence_manager.py index f760a64362..309e63442d 100644 --- a/tests/core/sequence/test_sequence_manager.py +++ b/tests/core/sequence/test_sequence_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/submission/__init__.py b/tests/core/submission/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/submission/__init__.py +++ b/tests/core/submission/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/submission/test_submission.py b/tests/core/submission/test_submission.py index 5055782972..aca6e18219 100644 --- a/tests/core/submission/test_submission.py +++ b/tests/core/submission/test_submission.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/submission/test_submission_manager.py b/tests/core/submission/test_submission_manager.py index 8b79f90819..a7028e62b0 100644 --- a/tests/core/submission/test_submission_manager.py +++ b/tests/core/submission/test_submission_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/submission/test_submission_repositories.py b/tests/core/submission/test_submission_repositories.py index 7364ed25b1..95b9d19518 100644 --- a/tests/core/submission/test_submission_repositories.py +++ b/tests/core/submission/test_submission_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/task/__init__.py b/tests/core/task/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/core/task/__init__.py +++ b/tests/core/task/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/task/test_task.py b/tests/core/task/test_task.py index aa199a57bc..a2f093a4fa 100644 --- a/tests/core/task/test_task.py +++ b/tests/core/task/test_task.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/task/test_task_manager.py b/tests/core/task/test_task_manager.py index 53d724d4b8..55d98bd875 100644 --- a/tests/core/task/test_task_manager.py +++ b/tests/core/task/test_task_manager.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/task/test_task_model.py b/tests/core/task/test_task_model.py index c7908c5808..7de89e8174 100644 --- a/tests/core/task/test_task_model.py +++ b/tests/core/task/test_task_model.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/task/test_task_repositories.py b/tests/core/task/test_task_repositories.py index 714ea51f75..de43047344 100644 --- a/tests/core/task/test_task_repositories.py +++ b/tests/core/task/test_task_repositories.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/test_complex_application.py b/tests/core/test_complex_application.py index bad6322d58..90dae13b07 100644 --- a/tests/core/test_complex_application.py +++ b/tests/core/test_complex_application.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/test_core.py b/tests/core/test_core.py index 8f9c801b80..45d2bb985d 100644 --- a/tests/core/test_core.py +++ b/tests/core/test_core.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/test_core_cli.py b/tests/core/test_core_cli.py index 3b3f9b55d1..8cc8ef465a 100644 --- a/tests/core/test_core_cli.py +++ b/tests/core/test_core_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/test_orchestrator.py b/tests/core/test_orchestrator.py index 1c70fb0b77..946a633697 100644 --- a/tests/core/test_orchestrator.py +++ b/tests/core/test_orchestrator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/test_taipy.py b/tests/core/test_taipy.py index 12b3aceac7..afcea08d40 100644 --- a/tests/core/test_taipy.py +++ b/tests/core/test_taipy.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/utils/NotifyMock.py b/tests/core/utils/NotifyMock.py index ffe6c45285..95a4a70967 100644 --- a/tests/core/utils/NotifyMock.py +++ b/tests/core/utils/NotifyMock.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/utils/__init__.py b/tests/core/utils/__init__.py index 3101edc5fa..22619f1c6a 100644 --- a/tests/core/utils/__init__.py +++ b/tests/core/utils/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/core/utils/named_temporary_file.py b/tests/core/utils/named_temporary_file.py index 8b3ed718f3..c4ebd66da8 100644 --- a/tests/core/utils/named_temporary_file.py +++ b/tests/core/utils/named_temporary_file.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/__init__.py b/tests/gui/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/gui/__init__.py +++ b/tests/gui/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_actions.py b/tests/gui/actions/test_actions.py index e53d3a1721..771dd15778 100644 --- a/tests/gui/actions/test_actions.py +++ b/tests/gui/actions/test_actions.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_download.py b/tests/gui/actions/test_download.py index 8a804ceaf8..bc453f6756 100644 --- a/tests/gui/actions/test_download.py +++ b/tests/gui/actions/test_download.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_get_state_id.py b/tests/gui/actions/test_get_state_id.py index d486ecb4e4..b54ab5cf91 100644 --- a/tests/gui/actions/test_get_state_id.py +++ b/tests/gui/actions/test_get_state_id.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_hold_control.py b/tests/gui/actions/test_hold_control.py index 7e610e0ca4..e0dcdca8bf 100644 --- a/tests/gui/actions/test_hold_control.py +++ b/tests/gui/actions/test_hold_control.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_invoke_callback.py b/tests/gui/actions/test_invoke_callback.py index b45d1744ad..d97131efa8 100644 --- a/tests/gui/actions/test_invoke_callback.py +++ b/tests/gui/actions/test_invoke_callback.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_navigate.py b/tests/gui/actions/test_navigate.py index e3768ffcbb..5f99af502b 100644 --- a/tests/gui/actions/test_navigate.py +++ b/tests/gui/actions/test_navigate.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_notify.py b/tests/gui/actions/test_notify.py index 8d91f01267..61cf3e065e 100644 --- a/tests/gui/actions/test_notify.py +++ b/tests/gui/actions/test_notify.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/actions/test_resume_control.py b/tests/gui/actions/test_resume_control.py index af99796791..f05a089bdd 100644 --- a/tests/gui/actions/test_resume_control.py +++ b/tests/gui/actions/test_resume_control.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/builder/control/__init__.py b/tests/gui/builder/control/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/gui/builder/control/__init__.py +++ b/tests/gui/builder/control/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/builder/control/test_button.py b/tests/gui/builder/control/test_button.py index b6e53c00a2..5f2eb7a2bb 100644 --- a/tests/gui/builder/control/test_button.py +++ b/tests/gui/builder/control/test_button.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/builder/control/test_chart.py b/tests/gui/builder/control/test_chart.py index 82a93bb666..7f3ba83691 100644 --- a/tests/gui/builder/control/test_chart.py +++ b/tests/gui/builder/control/test_chart.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -258,3 +258,21 @@ def test_chart_indexed_properties_with_arrays_builder(gui: Gui, helpers): ""lines": [null, {"dash": "dashdot"}, {"dash": "dash"}, null, {"dash": "dashdot"}, {"dash": "dash"}]", # noqa: E501 ] helpers.test_control_builder(gui, page, expected_list) + +def test_chart_multi_data(gui: Gui, helpers, csvdata): + with tgb.Page(frame=None) as page: + tgb.chart( # type: ignore[attr-defined] + data="{csvdata}", + x="Day", + y="Daily hospital occupancy", + data__1="{csvdata}", + ) + expected_list = [ + " +""" +) diff --git a/tests/gui/gui_specific/test_broadcast.py b/tests/gui/gui_specific/test_broadcast.py index a680a27e9e..dcdb260f09 100644 --- a/tests/gui/gui_specific/test_broadcast.py +++ b/tests/gui/gui_specific/test_broadcast.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_callable.py b/tests/gui/gui_specific/test_callable.py new file mode 100644 index 0000000000..2ac3f6906b --- /dev/null +++ b/tests/gui/gui_specific/test_callable.py @@ -0,0 +1,58 @@ +# Copyright 2021-2025 Avaiga Private Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on +# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +from taipy.gui.utils.callable import _function_name, _is_function, _is_unnamed_function + + +def my_function(): + pass + + +class my_class: + pass + + +class my_callable_class: + def __call__(self): + pass + + +def test__is_unnamed_function(): + assert _is_unnamed_function(my_function) is False + assert _is_unnamed_function(lambda x: x) is True + assert _is_unnamed_function("a") is False + + +def test__is_function(): + assert _is_function(my_function) is True + assert _is_function(lambda x: x) is True + assert _is_function("a") is False + + +def test__function_name(): + assert _function_name(my_function) == "my_function" + assert _function_name(lambda x: x) == "" + assert _function_name("a") == "a" + assert _function_name(1) == "1" + assert _function_name(1.0) == "1.0" + assert _function_name(True) == "True" + assert _function_name(False) == "False" + assert _function_name(None) == "None" + assert _function_name([]) == "[]" + assert _function_name({}) == "{}" + assert _function_name(set()) == "set()" + assert _function_name(tuple()) == "()" # noqa C408 + assert _function_name(object) == "object" + assert _function_name(object()).startswith("" diff --git a/tests/gui/gui_specific/test_cli.py b/tests/gui/gui_specific/test_cli.py index ac7b5e0262..f3bf9deeb7 100644 --- a/tests/gui/gui_specific/test_cli.py +++ b/tests/gui/gui_specific/test_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_df_filter.py b/tests/gui/gui_specific/test_df_filter.py index bec7c4f27c..b7612b7545 100644 --- a/tests/gui/gui_specific/test_df_filter.py +++ b/tests/gui/gui_specific/test_df_filter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_evaluator.py b/tests/gui/gui_specific/test_evaluator.py index 72b8700fe8..6889178886 100644 --- a/tests/gui/gui_specific/test_evaluator.py +++ b/tests/gui/gui_specific/test_evaluator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_expression.py b/tests/gui/gui_specific/test_expression.py index 1cf5e3bfb3..96cdb6f32d 100644 --- a/tests/gui/gui_specific/test_expression.py +++ b/tests/gui/gui_specific/test_expression.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_favicon.py b/tests/gui/gui_specific/test_favicon.py index a99f173cb7..c6991ca750 100644 --- a/tests/gui/gui_specific/test_favicon.py +++ b/tests/gui/gui_specific/test_favicon.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_folder_pages_binding.py b/tests/gui/gui_specific/test_folder_pages_binding.py index 0087b7c29a..b146b773d9 100644 --- a/tests/gui/gui_specific/test_folder_pages_binding.py +++ b/tests/gui/gui_specific/test_folder_pages_binding.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_get_module_name.py b/tests/gui/gui_specific/test_get_module_name.py index 9c96f4c13b..583bcb47c8 100644 --- a/tests/gui/gui_specific/test_get_module_name.py +++ b/tests/gui/gui_specific/test_get_module_name.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_gui.py b/tests/gui/gui_specific/test_gui.py index 01dfd8e219..cf0fb2563e 100644 --- a/tests/gui/gui_specific/test_gui.py +++ b/tests/gui/gui_specific/test_gui.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -73,7 +73,7 @@ def test__chart_conf(gui: Gui): d = json.loads(res) assert isinstance(d, dict) - assert d["columns"]["col1"]["type"] == "int" + assert d["columns"][0]["col1"]["type"] == "int" res = gui._chart_conf(False, None, "", "") assert repr(res) == "Taipy: Do not update" diff --git a/tests/gui/gui_specific/test_locals_context.py b/tests/gui/gui_specific/test_locals_context.py index b5b63e8056..39f36ddabb 100644 --- a/tests/gui/gui_specific/test_locals_context.py +++ b/tests/gui/gui_specific/test_locals_context.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_multiple_instances.py b/tests/gui/gui_specific/test_multiple_instances.py index 7e395f90d5..f909693e47 100644 --- a/tests/gui/gui_specific/test_multiple_instances.py +++ b/tests/gui/gui_specific/test_multiple_instances.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_navigate.py b/tests/gui/gui_specific/test_navigate.py index 2f1854a146..c9d41bd599 100644 --- a/tests/gui/gui_specific/test_navigate.py +++ b/tests/gui/gui_specific/test_navigate.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_partial.py b/tests/gui/gui_specific/test_partial.py index 6d95765bc3..9983452b7e 100644 --- a/tests/gui/gui_specific/test_partial.py +++ b/tests/gui/gui_specific/test_partial.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_render_route.py b/tests/gui/gui_specific/test_render_route.py index 154d3242b9..2b3101a45d 100644 --- a/tests/gui/gui_specific/test_render_route.py +++ b/tests/gui/gui_specific/test_render_route.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_run_thread.py b/tests/gui/gui_specific/test_run_thread.py index 30e85fae37..51051ceaa7 100644 --- a/tests/gui/gui_specific/test_run_thread.py +++ b/tests/gui/gui_specific/test_run_thread.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_shared.py b/tests/gui/gui_specific/test_shared.py index ed407456f7..3390ffc969 100644 --- a/tests/gui/gui_specific/test_shared.py +++ b/tests/gui/gui_specific/test_shared.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_state.py b/tests/gui/gui_specific/test_state.py index 0800832589..396b9e2381 100644 --- a/tests/gui/gui_specific/test_state.py +++ b/tests/gui/gui_specific/test_state.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_variable_binding.py b/tests/gui/gui_specific/test_variable_binding.py index ae407235e8..2e667a03cb 100644 --- a/tests/gui/gui_specific/test_variable_binding.py +++ b/tests/gui/gui_specific/test_variable_binding.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/gui_specific/test_variable_directory.py b/tests/gui/gui_specific/test_variable_directory.py new file mode 100644 index 0000000000..5f795088ff --- /dev/null +++ b/tests/gui/gui_specific/test_variable_directory.py @@ -0,0 +1,36 @@ +# Copyright 2021-2025 Avaiga Private Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on +# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + + +from taipy.gui import Gui +from taipy.gui.utils import _LocalsContext, _VariableDirectory + +from .state_asset.page1 import md_page1 +from .state_asset.page2 import md_page2 + + +def test_variable_directory_dyanmic_process(gui: Gui): + gui.run(run_server=False) + with gui.get_flask_app().app_context(): + locals_context = _LocalsContext() + variable_directory = _VariableDirectory(locals_context) + page1_module = str(md_page1._get_module_name()) + page2_module = str(md_page2._get_module_name()) + locals_context.add(page1_module, md_page1._get_locals()) + variable_directory.set_default(md_page1._get_frame()) # type: ignore + variable_directory.process_imported_var() + assert page1_module in variable_directory._pre_processed_module + assert page1_module in variable_directory._processed_module + locals_context.add(page2_module, md_page2._get_locals()) + variable_directory.add_frame(md_page2._get_frame()) + variable_directory.process_imported_var() + assert page2_module in variable_directory._pre_processed_module + assert page2_module in variable_directory._processed_module diff --git a/tests/gui/gui_specific/test_variable_encode_decode.py b/tests/gui/gui_specific/test_variable_encode_decode.py index 96fd6856ba..a6dbf01f1c 100644 --- a/tests/gui/gui_specific/test_variable_encode_decode.py +++ b/tests/gui/gui_specific/test_variable_encode_decode.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/helpers.py b/tests/gui/helpers.py index 56eaa94d8b..17c884d24f 100644 --- a/tests/gui/helpers.py +++ b/tests/gui/helpers.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/hooks/__init__.py b/tests/gui/hooks/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/gui/hooks/__init__.py +++ b/tests/gui/hooks/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/hooks/test_listener.py b/tests/gui/hooks/test_listener.py index 9d3b3aea8a..60183e2ec0 100644 --- a/tests/gui/hooks/test_listener.py +++ b/tests/gui/hooks/test_listener.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/ignore/no_file/test_ignore.py b/tests/gui/ignore/no_file/test_ignore.py index 5e0aa0cc7d..c64f46adfd 100644 --- a/tests/gui/ignore/no_file/test_ignore.py +++ b/tests/gui/ignore/no_file/test_ignore.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/ignore/with_file/test_with_ignore.py b/tests/gui/ignore/with_file/test_with_ignore.py index 9597cd3ba6..d1b42d5d1a 100644 --- a/tests/gui/ignore/with_file/test_with_ignore.py +++ b/tests/gui/ignore/with_file/test_with_ignore.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/lambdas/__init__.py b/tests/gui/lambdas/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/gui/lambdas/__init__.py +++ b/tests/gui/lambdas/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/lambdas/test_lambda.py b/tests/gui/lambdas/test_lambda.py index 34903bb8bf..14d05eead6 100644 --- a/tests/gui/lambdas/test_lambda.py +++ b/tests/gui/lambdas/test_lambda.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/long_runnig/test_long_running.py b/tests/gui/long_runnig/test_long_running.py index b895c9812e..410c894351 100644 --- a/tests/gui/long_runnig/test_long_running.py +++ b/tests/gui/long_runnig/test_long_running.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/mock/test_mock_state.py b/tests/gui/mock/test_mock_state.py index c6ef450ae3..f288658bc7 100644 --- a/tests/gui/mock/test_mock_state.py +++ b/tests/gui/mock/test_mock_state.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/notebook/__init__.py b/tests/gui/notebook/__init__.py index db30febb47..c0281cc870 100644 --- a/tests/gui/notebook/__init__.py +++ b/tests/gui/notebook/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/notebook/test_notebook_simple_gui.py b/tests/gui/notebook/test_notebook_simple_gui.py index ab000098e5..d4ed1e9b27 100644 --- a/tests/gui/notebook/test_notebook_simple_gui.py +++ b/tests/gui/notebook/test_notebook_simple_gui.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/renderers/test_html_parsing.py b/tests/gui/renderers/test_html_parsing.py index 32dcef111d..a0c602502e 100644 --- a/tests/gui/renderers/test_html_parsing.py +++ b/tests/gui/renderers/test_html_parsing.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/renderers/test_md_parsing.py b/tests/gui/renderers/test_md_parsing.py index 66b8af6cf8..fcb7d436d7 100644 --- a/tests/gui/renderers/test_md_parsing.py +++ b/tests/gui/renderers/test_md_parsing.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/http/test_extension.py b/tests/gui/server/http/test_extension.py index 53c835ced4..c673ecb2ca 100644 --- a/tests/gui/server/http/test_extension.py +++ b/tests/gui/server/http/test_extension.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/http/test_file_upload.py b/tests/gui/server/http/test_file_upload.py index aaf742229d..b03c3c5077 100644 --- a/tests/gui/server/http/test_file_upload.py +++ b/tests/gui/server/http/test_file_upload.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/http/test_image_path.py b/tests/gui/server/http/test_image_path.py index 849ace0beb..a0976505c8 100644 --- a/tests/gui/server/http/test_image_path.py +++ b/tests/gui/server/http/test_image_path.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/http/test_status.py b/tests/gui/server/http/test_status.py index a01fe562de..af2d4cb74d 100644 --- a/tests/gui/server/http/test_status.py +++ b/tests/gui/server/http/test_status.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/http/test_user_content.py b/tests/gui/server/http/test_user_content.py index 52a6a897df..53467c03a2 100644 --- a/tests/gui/server/http/test_user_content.py +++ b/tests/gui/server/http/test_user_content.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/__init__.py b/tests/gui/server/ws/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/gui/server/ws/__init__.py +++ b/tests/gui/server/ws/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_a.py b/tests/gui/server/ws/test_a.py index c33914fa3d..22d1ebc186 100644 --- a/tests/gui/server/ws/test_a.py +++ b/tests/gui/server/ws/test_a.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_broadcast.py b/tests/gui/server/ws/test_broadcast.py index 6ef1389c18..c4278f5623 100644 --- a/tests/gui/server/ws/test_broadcast.py +++ b/tests/gui/server/ws/test_broadcast.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_df.py b/tests/gui/server/ws/test_df.py index 64dc7ce265..012bc72252 100644 --- a/tests/gui/server/ws/test_df.py +++ b/tests/gui/server/ws/test_df.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_du.py b/tests/gui/server/ws/test_du.py index 0586a95dfa..5f6d3da340 100644 --- a/tests/gui/server/ws/test_du.py +++ b/tests/gui/server/ws/test_du.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_on_change.py b/tests/gui/server/ws/test_on_change.py index 89b4c70011..9aa4d456cd 100644 --- a/tests/gui/server/ws/test_on_change.py +++ b/tests/gui/server/ws/test_on_change.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_ru.py b/tests/gui/server/ws/test_ru.py index 9913c97f63..1765dc6e84 100644 --- a/tests/gui/server/ws/test_ru.py +++ b/tests/gui/server/ws/test_ru.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_u.py b/tests/gui/server/ws/test_u.py index 6ffbed204e..ef6e782900 100644 --- a/tests/gui/server/ws/test_u.py +++ b/tests/gui/server/ws/test_u.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/server/ws/test_with.py b/tests/gui/server/ws/test_with.py index 565fa59c46..13417167bb 100644 --- a/tests/gui/server/ws/test_with.py +++ b/tests/gui/server/ws/test_with.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/utils/test_evaluator.py b/tests/gui/utils/test_evaluator.py index f5029a0e01..e47020913f 100644 --- a/tests/gui/utils/test_evaluator.py +++ b/tests/gui/utils/test_evaluator.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/utils/test_filename.py b/tests/gui/utils/test_filename.py index bb92537f48..e9a6b9ec6a 100644 --- a/tests/gui/utils/test_filename.py +++ b/tests/gui/utils/test_filename.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/utils/test_map_dict.py b/tests/gui/utils/test_map_dict.py index e5298a9320..2bb8f2cf50 100644 --- a/tests/gui/utils/test_map_dict.py +++ b/tests/gui/utils/test_map_dict.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui/utils/test_types.py b/tests/gui/utils/test_types.py index c365c5a4f4..c47393c35e 100644 --- a/tests/gui/utils/test_types.py +++ b/tests/gui/utils/test_types.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/__init__.py b/tests/gui_core/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/gui_core/__init__.py +++ b/tests/gui_core/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_crud_scenario.py b/tests/gui_core/test_context_crud_scenario.py index 324dfd3644..1e4c69c5db 100644 --- a/tests/gui_core/test_context_crud_scenario.py +++ b/tests/gui_core/test_context_crud_scenario.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_dn_properties.py b/tests/gui_core/test_context_dn_properties.py index 25ba37fcdd..a8619946c3 100644 --- a/tests/gui_core/test_context_dn_properties.py +++ b/tests/gui_core/test_context_dn_properties.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_filter.py b/tests/gui_core/test_context_filter.py index ac3bf528a8..9d011f9aa9 100644 --- a/tests/gui_core/test_context_filter.py +++ b/tests/gui_core/test_context_filter.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_is_deletable.py b/tests/gui_core/test_context_is_deletable.py index 26706f9c6f..f028e2b975 100644 --- a/tests/gui_core/test_context_is_deletable.py +++ b/tests/gui_core/test_context_is_deletable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_is_editable.py b/tests/gui_core/test_context_is_editable.py index bc0f9a6161..56491d10ad 100644 --- a/tests/gui_core/test_context_is_editable.py +++ b/tests/gui_core/test_context_is_editable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_is_promotable.py b/tests/gui_core/test_context_is_promotable.py index d1f87bab3d..8622d26966 100644 --- a/tests/gui_core/test_context_is_promotable.py +++ b/tests/gui_core/test_context_is_promotable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_is_readable.py b/tests/gui_core/test_context_is_readable.py index d321f31fb6..3ec987f106 100644 --- a/tests/gui_core/test_context_is_readable.py +++ b/tests/gui_core/test_context_is_readable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -215,10 +215,6 @@ def test_submission_status_callback(self): assert found is True mockget.reset_mock() - with patch("taipy.gui_core._context.is_readable", side_effect=mock_is_readable_false): - gui_core_context.submission_status_callback(a_submission.id) - mockget.assert_not_called() - def test_data_node_adapter(self): with patch("taipy.gui_core._context.core_get", side_effect=mock_core_get): gui_core_context = _GuiCoreContext(Mock()) @@ -386,7 +382,7 @@ def test_get_scenarios_for_owner(self): mockget.reset_mock() with patch("taipy.gui_core._context.is_readable", side_effect=mock_is_readable_false): - gui_core_context.submission_status_callback(a_scenario.id) + gui_core_context.get_scenarios_for_owner(a_scenario.id) mockget.assert_not_called() def test_update_data(self): diff --git a/tests/gui_core/test_context_is_submitable.py b/tests/gui_core/test_context_is_submitable.py index 6664d48d58..2b22828495 100644 --- a/tests/gui_core/test_context_is_submitable.py +++ b/tests/gui_core/test_context_is_submitable.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_on_file_action.py b/tests/gui_core/test_context_on_file_action.py index 3605532734..32a463ed41 100644 --- a/tests/gui_core/test_context_on_file_action.py +++ b/tests/gui_core/test_context_on_file_action.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_tabular_data_edit.py b/tests/gui_core/test_context_tabular_data_edit.py index 60f89c6541..224cb73ea6 100644 --- a/tests/gui_core/test_context_tabular_data_edit.py +++ b/tests/gui_core/test_context_tabular_data_edit.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/gui_core/test_context_update_data.py b/tests/gui_core/test_context_update_data.py index 7d8923ed03..875fb72007 100644 --- a/tests/gui_core/test_context_update_data.py +++ b/tests/gui_core/test_context_update_data.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/__init__.py b/tests/rest/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/rest/__init__.py +++ b/tests/rest/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/conftest.py b/tests/rest/conftest.py index 810fe2d94e..703c60e37a 100644 --- a/tests/rest/conftest.py +++ b/tests/rest/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/setup/__init__.py b/tests/rest/setup/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/rest/setup/__init__.py +++ b/tests/rest/setup/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/setup/shared/__init__.py b/tests/rest/setup/shared/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/rest/setup/shared/__init__.py +++ b/tests/rest/setup/shared/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/setup/shared/algorithms.py b/tests/rest/setup/shared/algorithms.py index b32c36e5d2..89132080c3 100644 --- a/tests/rest/setup/shared/algorithms.py +++ b/tests/rest/setup/shared/algorithms.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/setup/shared/config.py b/tests/rest/setup/shared/config.py index 0b6281743a..933ac125b9 100644 --- a/tests/rest/setup/shared/config.py +++ b/tests/rest/setup/shared/config.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_cycle.py b/tests/rest/test_cycle.py index bdf26a0b99..b98d7fe166 100644 --- a/tests/rest/test_cycle.py +++ b/tests/rest/test_cycle.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_datanode.py b/tests/rest/test_datanode.py index 12f9fc26b6..55f5c5b5e7 100644 --- a/tests/rest/test_datanode.py +++ b/tests/rest/test_datanode.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_end_to_end.py b/tests/rest/test_end_to_end.py index 648a504cd6..40f644c79e 100644 --- a/tests/rest/test_end_to_end.py +++ b/tests/rest/test_end_to_end.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_job.py b/tests/rest/test_job.py index 4e8b6ae558..9fa540251f 100644 --- a/tests/rest/test_job.py +++ b/tests/rest/test_job.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_middleware.py b/tests/rest/test_middleware.py index fee81fdb14..ba56c36083 100644 --- a/tests/rest/test_middleware.py +++ b/tests/rest/test_middleware.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_scenario.py b/tests/rest/test_scenario.py index 2ce0dc8a7d..de15861fc4 100644 --- a/tests/rest/test_scenario.py +++ b/tests/rest/test_scenario.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_sequence.py b/tests/rest/test_sequence.py index 2e1cfe4d4d..4510e6adfd 100644 --- a/tests/rest/test_sequence.py +++ b/tests/rest/test_sequence.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/rest/test_task.py b/tests/rest/test_task.py index e221a22c40..ea4c3f1663 100644 --- a/tests/rest/test_task.py +++ b/tests/rest/test_task.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/templates/__init__.py b/tests/templates/__init__.py index 4309283dc5..675fb0a3d4 100644 --- a/tests/templates/__init__.py +++ b/tests/templates/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/templates/conftest.py b/tests/templates/conftest.py index 0ab2b2fb68..393e69d159 100644 --- a/tests/templates/conftest.py +++ b/tests/templates/conftest.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/templates/test_default_template.py b/tests/templates/test_default_template.py index 4ea044cc75..5574a084c9 100644 --- a/tests/templates/test_default_template.py +++ b/tests/templates/test_default_template.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at @@ -145,7 +145,7 @@ def test_multipage_gui_template(tmpdir): assert sorted(os.listdir(os.path.join(tmpdir, "foo_app"))) == sorted(["requirements.txt", "main.py", "pages"]) assert sorted(os.listdir(os.path.join(tmpdir, "foo_app", "pages"))) == sorted( - ["name_1", "name_2", "name_3", "root.md", "root.py", "__init__.py"] + ["name_1", "name_2", "name_3", "root.py", "__init__.py"] ) taipy_path = os.getcwd() diff --git a/tests/templates/test_scenario_mgt_template.py b/tests/templates/test_scenario_mgt_template.py index 79b0ba5c94..61f3d29d59 100644 --- a/tests/templates/test_scenario_mgt_template.py +++ b/tests/templates/test_scenario_mgt_template.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/templates/test_template_cli.py b/tests/templates/test_template_cli.py index 792c54e80a..7a720e79d6 100644 --- a/tests/templates/test_template_cli.py +++ b/tests/templates/test_template_cli.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/templates/utils.py b/tests/templates/utils.py index f6ecd9058b..9e320ad702 100644 --- a/tests/templates/utils.py +++ b/tests/templates/utils.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tests/test_run.py b/tests/test_run.py index f34878c5c7..88698a40bf 100644 --- a/tests/test_run.py +++ b/tests/test_run.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/frontend/bundle_build.py b/tools/frontend/bundle_build.py index 6502f8c6f2..c2904df2b6 100644 --- a/tools/frontend/bundle_build.py +++ b/tools/frontend/bundle_build.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/frontend/hash_source.py b/tools/frontend/hash_source.py index c44160869e..1e30c977ca 100644 --- a/tools/frontend/hash_source.py +++ b/tools/frontend/hash_source.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/gui/generate_pyi.py b/tools/gui/generate_pyi.py index e4b58f76fd..ddc942cdaf 100644 --- a/tools/gui/generate_pyi.py +++ b/tools/gui/generate_pyi.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/modify_readme.py b/tools/modify_readme.py index 7287e23578..437cf98206 100644 --- a/tools/modify_readme.py +++ b/tools/modify_readme.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/packages/check-dependencies.py b/tools/packages/check-dependencies.py index b5bde41ab8..143eee8a6c 100644 --- a/tools/packages/check-dependencies.py +++ b/tools/packages/check-dependencies.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/packages/pipfiles/Pipfile3.10.max b/tools/packages/pipfiles/Pipfile3.10.max index 2fbf18ff20..143519b326 100644 --- a/tools/packages/pipfiles/Pipfile3.10.max +++ b/tools/packages/pipfiles/Pipfile3.10.max @@ -57,11 +57,11 @@ version = "==4.2.13" "pymongo" = {version="==4.10.1", extras=["srv"]} "sqlalchemy" = {version="==2.0.36"} "toml" = {version="==0.10.2"} -"boto3" = {version="==1.35.71"} +"boto3" = {version="==1.35.90"} "cookiecutter" = {version="==2.6.0"} "flask" = {version="==3.1.0"} "flask-cors" = {version="==5.0.0"} -"flask-socketio" = {version="==5.4.1"} +"flask-socketio" = {version="==5.5.0"} "markdown" = {version="==3.7"} "python-dotenv" = {version="==1.0.1"} "pytz" = {version="==2024.2"} @@ -71,12 +71,12 @@ version = "==4.2.13" "kthread" = {version="==0.2.3"} "gitignore-parser" = {version="==0.1.11"} "simple-websocket" = {version="==1.1.0"} -"twisted" = {version="==24.10.0"} -"deepdiff" = {version="==8.0.1"} +"twisted" = {version="==24.11.0"} +"deepdiff" = {version="==8.1.1"} "flask-restful" = {version="==0.3.10"} "passlib" = {version="==1.7.4"} -"marshmallow" = {version="==3.23.1"} -"apispec" = {version="==6.7.1", extras=["yaml"]} +"marshmallow" = {version="==3.23.2"} +"apispec" = {version="==6.8.0", extras=["yaml"]} "apispec-webframeworks" = {version="==1.2.0"} "watchdog" = {version="==6.0.0"} -"charset-normalizer" = {version="==3.4.0"} +"charset-normalizer" = {version="==3.4.1"} diff --git a/tools/packages/pipfiles/Pipfile3.11.max b/tools/packages/pipfiles/Pipfile3.11.max index 2fbf18ff20..143519b326 100644 --- a/tools/packages/pipfiles/Pipfile3.11.max +++ b/tools/packages/pipfiles/Pipfile3.11.max @@ -57,11 +57,11 @@ version = "==4.2.13" "pymongo" = {version="==4.10.1", extras=["srv"]} "sqlalchemy" = {version="==2.0.36"} "toml" = {version="==0.10.2"} -"boto3" = {version="==1.35.71"} +"boto3" = {version="==1.35.90"} "cookiecutter" = {version="==2.6.0"} "flask" = {version="==3.1.0"} "flask-cors" = {version="==5.0.0"} -"flask-socketio" = {version="==5.4.1"} +"flask-socketio" = {version="==5.5.0"} "markdown" = {version="==3.7"} "python-dotenv" = {version="==1.0.1"} "pytz" = {version="==2024.2"} @@ -71,12 +71,12 @@ version = "==4.2.13" "kthread" = {version="==0.2.3"} "gitignore-parser" = {version="==0.1.11"} "simple-websocket" = {version="==1.1.0"} -"twisted" = {version="==24.10.0"} -"deepdiff" = {version="==8.0.1"} +"twisted" = {version="==24.11.0"} +"deepdiff" = {version="==8.1.1"} "flask-restful" = {version="==0.3.10"} "passlib" = {version="==1.7.4"} -"marshmallow" = {version="==3.23.1"} -"apispec" = {version="==6.7.1", extras=["yaml"]} +"marshmallow" = {version="==3.23.2"} +"apispec" = {version="==6.8.0", extras=["yaml"]} "apispec-webframeworks" = {version="==1.2.0"} "watchdog" = {version="==6.0.0"} -"charset-normalizer" = {version="==3.4.0"} +"charset-normalizer" = {version="==3.4.1"} diff --git a/tools/packages/pipfiles/Pipfile3.12.max b/tools/packages/pipfiles/Pipfile3.12.max index 2fbf18ff20..143519b326 100644 --- a/tools/packages/pipfiles/Pipfile3.12.max +++ b/tools/packages/pipfiles/Pipfile3.12.max @@ -57,11 +57,11 @@ version = "==4.2.13" "pymongo" = {version="==4.10.1", extras=["srv"]} "sqlalchemy" = {version="==2.0.36"} "toml" = {version="==0.10.2"} -"boto3" = {version="==1.35.71"} +"boto3" = {version="==1.35.90"} "cookiecutter" = {version="==2.6.0"} "flask" = {version="==3.1.0"} "flask-cors" = {version="==5.0.0"} -"flask-socketio" = {version="==5.4.1"} +"flask-socketio" = {version="==5.5.0"} "markdown" = {version="==3.7"} "python-dotenv" = {version="==1.0.1"} "pytz" = {version="==2024.2"} @@ -71,12 +71,12 @@ version = "==4.2.13" "kthread" = {version="==0.2.3"} "gitignore-parser" = {version="==0.1.11"} "simple-websocket" = {version="==1.1.0"} -"twisted" = {version="==24.10.0"} -"deepdiff" = {version="==8.0.1"} +"twisted" = {version="==24.11.0"} +"deepdiff" = {version="==8.1.1"} "flask-restful" = {version="==0.3.10"} "passlib" = {version="==1.7.4"} -"marshmallow" = {version="==3.23.1"} -"apispec" = {version="==6.7.1", extras=["yaml"]} +"marshmallow" = {version="==3.23.2"} +"apispec" = {version="==6.8.0", extras=["yaml"]} "apispec-webframeworks" = {version="==1.2.0"} "watchdog" = {version="==6.0.0"} -"charset-normalizer" = {version="==3.4.0"} +"charset-normalizer" = {version="==3.4.1"} diff --git a/tools/packages/pipfiles/Pipfile3.9.max b/tools/packages/pipfiles/Pipfile3.9.max index 5d0cebea71..d3e2db53fb 100644 --- a/tools/packages/pipfiles/Pipfile3.9.max +++ b/tools/packages/pipfiles/Pipfile3.9.max @@ -57,11 +57,11 @@ version = "==4.2.13" "pymongo" = {version="==4.10.1", extras=["srv"]} "sqlalchemy" = {version="==2.0.36"} "toml" = {version="==0.10.2"} -"boto3" = {version="==1.35.71"} +"boto3" = {version="==1.35.90"} "cookiecutter" = {version="==2.6.0"} "flask" = {version="==3.1.0"} "flask-cors" = {version="==5.0.0"} -"flask-socketio" = {version="==5.4.1"} +"flask-socketio" = {version="==5.5.0"} "markdown" = {version="==3.7"} "python-dotenv" = {version="==1.0.1"} "pytz" = {version="==2024.2"} @@ -71,12 +71,12 @@ version = "==4.2.13" "kthread" = {version="==0.2.3"} "gitignore-parser" = {version="==0.1.11"} "simple-websocket" = {version="==1.1.0"} -"twisted" = {version="==24.10.0"} -"deepdiff" = {version="==8.0.1"} +"twisted" = {version="==24.11.0"} +"deepdiff" = {version="==8.1.1"} "flask-restful" = {version="==0.3.10"} "passlib" = {version="==1.7.4"} -"marshmallow" = {version="==3.23.1"} -"apispec" = {version="==6.7.1", extras=["yaml"]} +"marshmallow" = {version="==3.23.2"} +"apispec" = {version="==6.8.0", extras=["yaml"]} "apispec-webframeworks" = {version="==1.2.0"} "watchdog" = {version="==6.0.0"} -"charset-normalizer" = {version="==3.4.0"} +"charset-normalizer" = {version="==3.4.1"} diff --git a/tools/packages/taipy-common/setup.py b/tools/packages/taipy-common/setup.py index 35626c9a58..c2c33681f7 100644 --- a/tools/packages/taipy-common/setup.py +++ b/tools/packages/taipy-common/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/packages/taipy-common/setup.requirements.txt b/tools/packages/taipy-common/setup.requirements.txt index 5e5a224808..fe35cdbd97 100644 --- a/tools/packages/taipy-common/setup.requirements.txt +++ b/tools/packages/taipy-common/setup.requirements.txt @@ -1,2 +1,2 @@ -deepdiff>=6.7.0,<=8.0.1 +deepdiff>=6.7.0,<=8.1.1 toml>=0.10,<=0.10.2 diff --git a/tools/packages/taipy-core/setup.py b/tools/packages/taipy-core/setup.py index d86b11a862..b39d1594d9 100644 --- a/tools/packages/taipy-core/setup.py +++ b/tools/packages/taipy-core/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/packages/taipy-core/setup.requirements.txt b/tools/packages/taipy-core/setup.requirements.txt index 3f5ab4f1a6..c2f996d1e3 100644 --- a/tools/packages/taipy-core/setup.requirements.txt +++ b/tools/packages/taipy-core/setup.requirements.txt @@ -1,4 +1,4 @@ -boto3>=1.29.4,<=1.35.71 +boto3>=1.29.4,<=1.35.90 networkx>=2.6,<=3.4.2 openpyxl>=3.1.2,<=3.1.5 pandas>=1.3.5,<=2.2.3 diff --git a/tools/packages/taipy-gui/setup.py b/tools/packages/taipy-gui/setup.py index 4e662fea9e..f2497033a9 100644 --- a/tools/packages/taipy-gui/setup.py +++ b/tools/packages/taipy-gui/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/packages/taipy-gui/setup.requirements.txt b/tools/packages/taipy-gui/setup.requirements.txt index 00ebdcdd6e..afe306ead6 100644 --- a/tools/packages/taipy-gui/setup.requirements.txt +++ b/tools/packages/taipy-gui/setup.requirements.txt @@ -1,7 +1,7 @@ -charset-normalizer>=3.3.2,<=3.4.0 +charset-normalizer>=3.3.2,<=3.4.1 flask>=3.1.0,<=3.1.0 flask-cors>=5.0.0,<=5.0.0 -flask-socketio>=5.4.1,<=5.4.1 +flask-socketio>=5.4.1,<=5.5.0 gevent>=24.11.1,<=24.11.1 gevent-websocket>=0.10.1,<=0.10.1 gitignore-parser>=0.1,<=0.1.11 @@ -12,6 +12,6 @@ python-dotenv>=1.0.0,<=1.0.1 pytz>=2021.3,<=2024.2 simple-websocket>=0.10.1,<=1.1.0 taipy-common -twisted>=24.7.0,<=24.10.0 +twisted>=24.7.0,<=24.11.0 tzlocal>=3.0,<=5.2 watchdog>=4.0.0,<=6.0.0 diff --git a/tools/packages/taipy-rest/setup.py b/tools/packages/taipy-rest/setup.py index 97ab1cf1c4..8b47961f93 100644 --- a/tools/packages/taipy-rest/setup.py +++ b/tools/packages/taipy-rest/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/packages/taipy-rest/setup.requirements.txt b/tools/packages/taipy-rest/setup.requirements.txt index abaae17679..a237d51bbf 100644 --- a/tools/packages/taipy-rest/setup.requirements.txt +++ b/tools/packages/taipy-rest/setup.requirements.txt @@ -1,7 +1,7 @@ -apispec[yaml]>=6.3,<=6.7.1 +apispec[yaml]>=6.3,<=6.8.0 apispec-webframeworks>=0.5.2,<=1.2.0 flask>=3.1.0,<=3.1.0 flask-restful>=0.3.9,<=0.3.10 -marshmallow>=3.20.1,<=3.23.1 +marshmallow>=3.20.1,<=3.23.2 passlib>=1.7.4,<=1.7.4 taipy-core diff --git a/tools/packages/taipy-templates/setup.py b/tools/packages/taipy-templates/setup.py index e8df3ee104..be1d9f2fb3 100644 --- a/tools/packages/taipy-templates/setup.py +++ b/tools/packages/taipy-templates/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/packages/taipy/setup.py b/tools/packages/taipy/setup.py index 175d695353..5a0c60eb91 100644 --- a/tools/packages/taipy/setup.py +++ b/tools/packages/taipy/setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/build_package_structure.py b/tools/release/build_package_structure.py index 62fb9a7b16..da6648b872 100644 --- a/tools/release/build_package_structure.py +++ b/tools/release/build_package_structure.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/bump_version.py b/tools/release/bump_version.py index a8af3eab43..a27d8a72de 100644 --- a/tools/release/bump_version.py +++ b/tools/release/bump_version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/check_releases.py b/tools/release/check_releases.py index 036cf9e27a..0bad194794 100644 --- a/tools/release/check_releases.py +++ b/tools/release/check_releases.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/extract_from_setup.py b/tools/release/extract_from_setup.py index 9bae05c4fc..a9840a3321 100644 --- a/tools/release/extract_from_setup.py +++ b/tools/release/extract_from_setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/fetch_latest_versions.py b/tools/release/fetch_latest_versions.py index e493e0e09c..7e94e72621 100644 --- a/tools/release/fetch_latest_versions.py +++ b/tools/release/fetch_latest_versions.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/setup_project.py b/tools/release/setup_project.py index 73694cffa2..9b1ce95ae1 100644 --- a/tools/release/setup_project.py +++ b/tools/release/setup_project.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/setup_version.py b/tools/release/setup_version.py index d5d35e7d0a..d7b5fdd1a5 100644 --- a/tools/release/setup_version.py +++ b/tools/release/setup_version.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/update_setup.py b/tools/release/update_setup.py index 7f0f28794c..e5a1724570 100644 --- a/tools/release/update_setup.py +++ b/tools/release/update_setup.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/release/update_setup_requirements.py b/tools/release/update_setup_requirements.py index f93842df04..a7792c94f9 100644 --- a/tools/release/update_setup_requirements.py +++ b/tools/release/update_setup_requirements.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at diff --git a/tools/validate_taipy_install.py b/tools/validate_taipy_install.py index 15b34414f8..46d8c5e486 100644 --- a/tools/validate_taipy_install.py +++ b/tools/validate_taipy_install.py @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Avaiga Private Limited +# Copyright 2021-2025 Avaiga Private Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at