mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-29 20:30:39 +00:00 
			
		
		
		
	Merge branch 'master' into pui-feature-plugin
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/workflows/scorecard.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/scorecard.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -67,6 +67,6 @@ jobs: | |||||||
|  |  | ||||||
|       # Upload the results to GitHub's code scanning dashboard. |       # Upload the results to GitHub's code scanning dashboard. | ||||||
|       - name: "Upload to code-scanning" |       - name: "Upload to code-scanning" | ||||||
|         uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 |         uses: github/codeql-action/upload-sarif@294a9d92911152fe08befb9ec03e240add280cb3 # v3.26.8 | ||||||
|         with: |         with: | ||||||
|           sarif_file: results.sarif |           sarif_file: results.sarif | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/workflows/translations.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/translations.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -51,7 +51,7 @@ jobs: | |||||||
|           git reset --hard |           git reset --hard | ||||||
|           git reset HEAD~ |           git reset HEAD~ | ||||||
|       - name: crowdin action |       - name: crowdin action | ||||||
|         uses: crowdin/github-action@cf0ccf9a71f614e66e011d461ea11e5dbabb93ca # pin@v2 |         uses: crowdin/github-action@95d6e895e871c3c7acf0cfb962f296baa41e63c6 # pin@v2 | ||||||
|         with: |         with: | ||||||
|           upload_sources: true |           upload_sources: true | ||||||
|           upload_translations: false |           upload_translations: false | ||||||
|   | |||||||
| @@ -313,9 +313,9 @@ mkdocs-macros-plugin==1.2.0 \ | |||||||
|     --hash=sha256:3e442f8f37aa69710a69b5389e6b6cd0f54f4fcaee354aa57a61735ba8f97d27 \ |     --hash=sha256:3e442f8f37aa69710a69b5389e6b6cd0f54f4fcaee354aa57a61735ba8f97d27 \ | ||||||
|     --hash=sha256:7603b85cb336d669e29a8a9cc3af8b90767ffdf6021b3e023d5ec2e0a1f927a7 |     --hash=sha256:7603b85cb336d669e29a8a9cc3af8b90767ffdf6021b3e023d5ec2e0a1f927a7 | ||||||
|     # via -r docs/requirements.in |     # via -r docs/requirements.in | ||||||
| mkdocs-material==9.5.34 \ | mkdocs-material==9.5.36 \ | ||||||
|     --hash=sha256:1e60ddf716cfb5679dfd65900b8a25d277064ed82d9a53cd5190e3f894df7840 \ |     --hash=sha256:140456f761320f72b399effc073fa3f8aac744c77b0970797c201cae2f6c967f \ | ||||||
|     --hash=sha256:54caa8be708de2b75167fd4d3b9f3d949579294f49cb242515d4653dbee9227e |     --hash=sha256:36734c1fd9404bea74236242ba3359b267fc930c7233b9fd086b0898825d0ac9 | ||||||
|     # via -r docs/requirements.in |     # via -r docs/requirements.in | ||||||
| mkdocs-material-extensions==1.3.1 \ | mkdocs-material-extensions==1.3.1 \ | ||||||
|     --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ |     --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ | ||||||
|   | |||||||
| @@ -1,16 +1,20 @@ | |||||||
| """InvenTree API version information.""" | """InvenTree API version information.""" | ||||||
|  |  | ||||||
| # InvenTree API version | # InvenTree API version | ||||||
| INVENTREE_API_VERSION = 258 | INVENTREE_API_VERSION = 259 | ||||||
|  |  | ||||||
| """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" | """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" | ||||||
|  |  | ||||||
|  |  | ||||||
| INVENTREE_API_TEXT = """ | INVENTREE_API_TEXT = """ | ||||||
|  |  | ||||||
| v258 - 2024-09-20 : https://github.com/inventree/InvenTree/pull/8137 | v259 - 2024-09-20 : https://github.com/inventree/InvenTree/pull/8137 | ||||||
|     - Implements new API endpoint for enabling custom UI features via plugins |     - Implements new API endpoint for enabling custom UI features via plugins | ||||||
|  |  | ||||||
|  | v258 - 2024-09-24 : https://github.com/inventree/InvenTree/pull/8163 | ||||||
|  |     - Enhances the existing PartScheduling API endpoint | ||||||
|  |     - Adds a formal DRF serializer to the endpoint | ||||||
|  |  | ||||||
| v257 - 2024-09-22 : https://github.com/inventree/InvenTree/pull/8150 | v257 - 2024-09-22 : https://github.com/inventree/InvenTree/pull/8150 | ||||||
|     - Adds API endpoint for reporting barcode scan history |     - Adds API endpoint for reporting barcode scan history | ||||||
|  |  | ||||||
|   | |||||||
| @@ -559,7 +559,7 @@ class PartScheduling(RetrieveAPI): | |||||||
|     """ |     """ | ||||||
|  |  | ||||||
|     queryset = Part.objects.all() |     queryset = Part.objects.all() | ||||||
|     serializer_class = EmptySerializer |     serializer_class = part_serializers.PartSchedulingSerializer | ||||||
|  |  | ||||||
|     def retrieve(self, request, *args, **kwargs): |     def retrieve(self, request, *args, **kwargs): | ||||||
|         """Return scheduling information for the referenced Part instance.""" |         """Return scheduling information for the referenced Part instance.""" | ||||||
| @@ -567,23 +567,24 @@ class PartScheduling(RetrieveAPI): | |||||||
|  |  | ||||||
|         schedule = [] |         schedule = [] | ||||||
|  |  | ||||||
|         def add_schedule_entry( |         def add_schedule_entry(date, quantity, title, instance, speculative_quantity=0): | ||||||
|             date, quantity, title, label, url, speculative_quantity=0 |             """Add a new entry to the schedule list. | ||||||
|         ): |  | ||||||
|             """Check if a scheduled entry should be added. |  | ||||||
|  |  | ||||||
|             Rules: |             Arguments: | ||||||
|             - date must be non-null |                 - date: The date of the scheduled event | ||||||
|             - date cannot be in the "past" |                 - quantity: The quantity of stock to be added or removed | ||||||
|             - quantity must not be zero |                 - title: The title of the scheduled event | ||||||
|  |                 - instance: The associated model instance (e.g. SalesOrder object) | ||||||
|  |                 - speculative_quantity: A speculative quantity to be added or removed | ||||||
|             """ |             """ | ||||||
|             schedule.append({ |             schedule.append({ | ||||||
|                 'date': date, |                 'date': date, | ||||||
|                 'quantity': quantity, |                 'quantity': quantity, | ||||||
|                 'speculative_quantity': speculative_quantity, |                 'speculative_quantity': speculative_quantity, | ||||||
|                 'title': title, |                 'title': title, | ||||||
|                 'label': label, |                 'label': str(instance.reference), | ||||||
|                 'url': url, |                 'model': instance.__class__.__name__.lower(), | ||||||
|  |                 'model_id': instance.pk, | ||||||
|             }) |             }) | ||||||
|  |  | ||||||
|         # Add purchase order (incoming stock) information |         # Add purchase order (incoming stock) information | ||||||
| @@ -600,11 +601,7 @@ class PartScheduling(RetrieveAPI): | |||||||
|             quantity = line.part.base_quantity(line_quantity) |             quantity = line.part.base_quantity(line_quantity) | ||||||
|  |  | ||||||
|             add_schedule_entry( |             add_schedule_entry( | ||||||
|                 target_date, |                 target_date, quantity, _('Incoming Purchase Order'), line.order | ||||||
|                 quantity, |  | ||||||
|                 _('Incoming Purchase Order'), |  | ||||||
|                 str(line.order), |  | ||||||
|                 line.order.get_absolute_url(), |  | ||||||
|             ) |             ) | ||||||
|  |  | ||||||
|         # Add sales order (outgoing stock) information |         # Add sales order (outgoing stock) information | ||||||
| @@ -618,11 +615,7 @@ class PartScheduling(RetrieveAPI): | |||||||
|             quantity = max(line.quantity - line.shipped, 0) |             quantity = max(line.quantity - line.shipped, 0) | ||||||
|  |  | ||||||
|             add_schedule_entry( |             add_schedule_entry( | ||||||
|                 target_date, |                 target_date, -quantity, _('Outgoing Sales Order'), line.order | ||||||
|                 -quantity, |  | ||||||
|                 _('Outgoing Sales Order'), |  | ||||||
|                 str(line.order), |  | ||||||
|                 line.order.get_absolute_url(), |  | ||||||
|             ) |             ) | ||||||
|  |  | ||||||
|         # Add build orders (incoming stock) information |         # Add build orders (incoming stock) information | ||||||
| @@ -634,11 +627,7 @@ class PartScheduling(RetrieveAPI): | |||||||
|             quantity = max(build.quantity - build.completed, 0) |             quantity = max(build.quantity - build.completed, 0) | ||||||
|  |  | ||||||
|             add_schedule_entry( |             add_schedule_entry( | ||||||
|                 build.target_date, |                 build.target_date, quantity, _('Stock produced by Build Order'), build | ||||||
|                 quantity, |  | ||||||
|                 _('Stock produced by Build Order'), |  | ||||||
|                 str(build), |  | ||||||
|                 build.get_absolute_url(), |  | ||||||
|             ) |             ) | ||||||
|  |  | ||||||
|         """ |         """ | ||||||
| @@ -721,8 +710,7 @@ class PartScheduling(RetrieveAPI): | |||||||
|                     build.target_date, |                     build.target_date, | ||||||
|                     -part_allocated_quantity, |                     -part_allocated_quantity, | ||||||
|                     _('Stock required for Build Order'), |                     _('Stock required for Build Order'), | ||||||
|                     str(build), |                     build, | ||||||
|                     build.get_absolute_url(), |  | ||||||
|                     speculative_quantity=speculative_quantity, |                     speculative_quantity=speculative_quantity, | ||||||
|                 ) |                 ) | ||||||
|  |  | ||||||
| @@ -742,9 +730,13 @@ class PartScheduling(RetrieveAPI): | |||||||
|             return -1 if date_1 < date_2 else 1 |             return -1 if date_1 < date_2 else 1 | ||||||
|  |  | ||||||
|         # Sort by incrementing date values |         # Sort by incrementing date values | ||||||
|         schedule = sorted(schedule, key=functools.cmp_to_key(compare)) |         schedules = sorted(schedule, key=functools.cmp_to_key(compare)) | ||||||
|  |  | ||||||
|         return Response(schedule) |         serializers = part_serializers.PartSchedulingSerializer( | ||||||
|  |             schedules, many=True, context={'request': request} | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         return Response(serializers.data) | ||||||
|  |  | ||||||
|  |  | ||||||
| class PartRequirements(RetrieveAPI): | class PartRequirements(RetrieveAPI): | ||||||
|   | |||||||
| @@ -244,6 +244,39 @@ class PartInternalPriceSerializer(InvenTree.serializers.InvenTreeModelSerializer | |||||||
|     ) |     ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class PartSchedulingSerializer(serializers.Serializer): | ||||||
|  |     """Serializer class for a PartScheduling entry.""" | ||||||
|  |  | ||||||
|  |     class Meta: | ||||||
|  |         """Metaclass options for this serializer.""" | ||||||
|  |  | ||||||
|  |         fields = [ | ||||||
|  |             'date', | ||||||
|  |             'quantity', | ||||||
|  |             'speculative_quantity', | ||||||
|  |             'title', | ||||||
|  |             'label', | ||||||
|  |             'model', | ||||||
|  |             'model_id', | ||||||
|  |         ] | ||||||
|  |  | ||||||
|  |     date = serializers.DateField(label=_('Date'), required=True, allow_null=True) | ||||||
|  |  | ||||||
|  |     quantity = serializers.FloatField(label=_('Quantity'), required=True) | ||||||
|  |  | ||||||
|  |     speculative_quantity = serializers.FloatField( | ||||||
|  |         label=_('Speculative Quantity'), required=False | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  |     title = serializers.CharField(label=_('Title'), required=True) | ||||||
|  |  | ||||||
|  |     label = serializers.CharField(label=_('Label'), required=True) | ||||||
|  |  | ||||||
|  |     model = serializers.CharField(label=_('Model'), required=True) | ||||||
|  |  | ||||||
|  |     model_id = serializers.IntegerField(label=_('Model ID'), required=True) | ||||||
|  |  | ||||||
|  |  | ||||||
| class PartThumbSerializer(serializers.Serializer): | class PartThumbSerializer(serializers.Serializer): | ||||||
|     """Serializer for the 'image' field of the Part model. |     """Serializer for the 'image' field of the Part model. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3078,10 +3078,26 @@ function loadPartSchedulingChart(canvas_id, part_id) { | |||||||
|                         quantity_string += makeIconBadge('fa-question-circle icon-blue', '{% trans "Speculative" %}'); |                         quantity_string += makeIconBadge('fa-question-circle icon-blue', '{% trans "Speculative" %}'); | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|  |                     let url = '#'; | ||||||
|  |  | ||||||
|  |                     switch (entry.model) { | ||||||
|  |                     case 'salesorder': | ||||||
|  |                         url = `/order/sales-order/${entry.model_id}/`; | ||||||
|  |                         break; | ||||||
|  |                     case 'purchaseorder': | ||||||
|  |                         url = `/order/purchase-order/${entry.model_id}/`; | ||||||
|  |                         break; | ||||||
|  |                     case 'build': | ||||||
|  |                         url = `/build/${entry.model_id}/`; | ||||||
|  |                         break; | ||||||
|  |                     default: | ||||||
|  |                         break; | ||||||
|  |                     } | ||||||
|  |  | ||||||
|                     // Add an entry to the scheduling table |                     // Add an entry to the scheduling table | ||||||
|                     table_html += ` |                     table_html += ` | ||||||
|                         <tr> |                         <tr> | ||||||
|                             <td><a href="${entry.url}">${entry.label}</a></td> |                             <td><a href="${url}">${entry.label}</a></td> | ||||||
|                             <td>${entry.title}</td> |                             <td>${entry.title}</td> | ||||||
|                             <td>${date_string}</td> |                             <td>${date_string}</td> | ||||||
|                             <td>${quantity_string}</td> |                             <td>${quantity_string}</td> | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								src/backend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										24
									
								
								src/backend/package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -5,7 +5,7 @@ | |||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "eslint": "^9.10.0", |         "eslint": "^9.11.0", | ||||||
|         "eslint-config-google": "^0.14.0" |         "eslint-config-google": "^0.14.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| @@ -86,9 +86,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint/js": { |     "node_modules/@eslint/js": { | ||||||
|       "version": "9.10.0", |       "version": "9.11.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.11.0.tgz", | ||||||
|       "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", |       "integrity": "sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==", | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "^18.18.0 || ^20.9.0 || >=21.1.0" |         "node": "^18.18.0 || ^20.9.0 || >=21.1.0" | ||||||
|       } |       } | ||||||
| @@ -102,9 +102,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint/plugin-kit": { |     "node_modules/@eslint/plugin-kit": { | ||||||
|       "version": "0.1.0", |       "version": "0.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", | ||||||
|       "integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==", |       "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "levn": "^0.4.1" |         "levn": "^0.4.1" | ||||||
|       }, |       }, | ||||||
| @@ -333,16 +333,16 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/eslint": { |     "node_modules/eslint": { | ||||||
|       "version": "9.10.0", |       "version": "9.11.0", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.11.0.tgz", | ||||||
|       "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==", |       "integrity": "sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@eslint-community/eslint-utils": "^4.2.0", |         "@eslint-community/eslint-utils": "^4.2.0", | ||||||
|         "@eslint-community/regexpp": "^4.11.0", |         "@eslint-community/regexpp": "^4.11.0", | ||||||
|         "@eslint/config-array": "^0.18.0", |         "@eslint/config-array": "^0.18.0", | ||||||
|         "@eslint/eslintrc": "^3.1.0", |         "@eslint/eslintrc": "^3.1.0", | ||||||
|         "@eslint/js": "9.10.0", |         "@eslint/js": "9.11.0", | ||||||
|         "@eslint/plugin-kit": "^0.1.0", |         "@eslint/plugin-kit": "^0.2.0", | ||||||
|         "@humanwhocodes/module-importer": "^1.0.1", |         "@humanwhocodes/module-importer": "^1.0.1", | ||||||
|         "@humanwhocodes/retry": "^0.3.0", |         "@humanwhocodes/retry": "^0.3.0", | ||||||
|         "@nodelib/fs.walk": "^1.2.8", |         "@nodelib/fs.walk": "^1.2.8", | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "eslint": "^9.10.0", |     "eslint": "^9.11.0", | ||||||
|     "eslint-config-google": "^0.14.0" |     "eslint-config-google": "^0.14.0" | ||||||
|   }, |   }, | ||||||
|   "type": "module" |   "type": "module" | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ | |||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@codemirror/autocomplete": "^6.18.1", |         "@codemirror/autocomplete": "^6.18.1", | ||||||
|         "@codemirror/lang-liquid": "^6.2.1", |         "@codemirror/lang-liquid": "^6.2.1", | ||||||
|         "@codemirror/language": "^6.10.2", |         "@codemirror/language": "^6.10.3", | ||||||
|         "@codemirror/lint": "^6.8.1", |         "@codemirror/lint": "^6.8.1", | ||||||
|         "@codemirror/search": "^6.5.6", |         "@codemirror/search": "^6.5.6", | ||||||
|         "@codemirror/state": "^6.4.1", |         "@codemirror/state": "^6.4.1", | ||||||
| @@ -37,11 +37,11 @@ | |||||||
|         "@mantine/notifications": "^7.12.2", |         "@mantine/notifications": "^7.12.2", | ||||||
|         "@mantine/spotlight": "^7.12.2", |         "@mantine/spotlight": "^7.12.2", | ||||||
|         "@mantine/vanilla-extract": "^7.12.2", |         "@mantine/vanilla-extract": "^7.12.2", | ||||||
|         "@sentry/react": "^8.30.0", |         "@sentry/react": "^8.31.0", | ||||||
|         "@tabler/icons-react": "^3.17.0", |         "@tabler/icons-react": "^3.17.0", | ||||||
|         "@tanstack/react-query": "^5.56.2", |         "@tanstack/react-query": "^5.56.2", | ||||||
|         "@uiw/codemirror-theme-vscode": "^4.23.2", |         "@uiw/codemirror-theme-vscode": "^4.23.3", | ||||||
|         "@uiw/react-codemirror": "^4.23.2", |         "@uiw/react-codemirror": "^4.23.3", | ||||||
|         "@uiw/react-split": "^5.9.3", |         "@uiw/react-split": "^5.9.3", | ||||||
|         "@vanilla-extract/css": "^1.15.5", |         "@vanilla-extract/css": "^1.15.5", | ||||||
|         "axios": "^1.7.7", |         "axios": "^1.7.7", | ||||||
| @@ -60,7 +60,7 @@ | |||||||
|         "react-hook-form": "^7.53.0", |         "react-hook-form": "^7.53.0", | ||||||
|         "react-is": "^18.3.1", |         "react-is": "^18.3.1", | ||||||
|         "react-router-dom": "^6.26.2", |         "react-router-dom": "^6.26.2", | ||||||
|         "react-select": "^5.8.0", |         "react-select": "^5.8.1", | ||||||
|         "react-simplemde-editor": "^5.2.0", |         "react-simplemde-editor": "^5.2.0", | ||||||
|         "react-window": "^1.8.10", |         "react-window": "^1.8.10", | ||||||
|         "recharts": "^2.12.7", |         "recharts": "^2.12.7", | ||||||
| @@ -71,13 +71,13 @@ | |||||||
|         "@babel/core": "^7.25.2", |         "@babel/core": "^7.25.2", | ||||||
|         "@babel/preset-react": "^7.24.7", |         "@babel/preset-react": "^7.24.7", | ||||||
|         "@babel/preset-typescript": "^7.24.7", |         "@babel/preset-typescript": "^7.24.7", | ||||||
|         "@codecov/vite-plugin": "^1.1.0", |         "@codecov/vite-plugin": "^1.2.0", | ||||||
|         "@lingui/cli": "^4.11.4", |         "@lingui/cli": "^4.11.4", | ||||||
|         "@lingui/macro": "^4.11.4", |         "@lingui/macro": "^4.11.4", | ||||||
|         "@playwright/test": "^1.47.1", |         "@playwright/test": "^1.47.2", | ||||||
|         "@types/node": "^22.5.5", |         "@types/node": "^22.6.0", | ||||||
|         "@types/qrcode": "^1.5.5", |         "@types/qrcode": "^1.5.5", | ||||||
|         "@types/react": "^18.3.6", |         "@types/react": "^18.3.8", | ||||||
|         "@types/react-dom": "^18.3.0", |         "@types/react-dom": "^18.3.0", | ||||||
|         "@types/react-grid-layout": "^1.3.5", |         "@types/react-grid-layout": "^1.3.5", | ||||||
|         "@types/react-router-dom": "^5.3.3", |         "@types/react-router-dom": "^5.3.3", | ||||||
| @@ -85,10 +85,10 @@ | |||||||
|         "@vanilla-extract/vite-plugin": "^4.0.15", |         "@vanilla-extract/vite-plugin": "^4.0.15", | ||||||
|         "@vitejs/plugin-react": "^4.3.1", |         "@vitejs/plugin-react": "^4.3.1", | ||||||
|         "babel-plugin-macros": "^3.1.0", |         "babel-plugin-macros": "^3.1.0", | ||||||
|         "nyc": "^17.0.0", |         "nyc": "^17.1.0", | ||||||
|         "rollup-plugin-license": "^3.5.2", |         "rollup-plugin-license": "^3.5.3", | ||||||
|         "typescript": "^5.6.2", |         "typescript": "^5.6.2", | ||||||
|         "vite": "^5.4.6", |         "vite": "^5.4.7", | ||||||
|         "vite-plugin-babel-macros": "^1.0.6", |         "vite-plugin-babel-macros": "^1.0.6", | ||||||
|         "vite-plugin-istanbul": "^6.0.2" |         "vite-plugin-istanbul": "^6.0.2" | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -95,6 +95,7 @@ export enum ApiEndpoints { | |||||||
|   part_thumbs_list = 'part/thumbs/', |   part_thumbs_list = 'part/thumbs/', | ||||||
|   part_pricing_get = 'part/:id/pricing/', |   part_pricing_get = 'part/:id/pricing/', | ||||||
|   part_serial_numbers = 'part/:id/serial-numbers/', |   part_serial_numbers = 'part/:id/serial-numbers/', | ||||||
|  |   part_scheduling = 'part/:id/scheduling/', | ||||||
|   part_pricing_internal = 'part/internal-price/', |   part_pricing_internal = 'part/internal-price/', | ||||||
|   part_pricing_sale = 'part/sale-price/', |   part_pricing_sale = 'part/sale-price/', | ||||||
|   part_stocktake_list = 'part/stocktake/', |   part_stocktake_list = 'part/stocktake/', | ||||||
|   | |||||||
| @@ -104,6 +104,7 @@ import { SalesOrderTable } from '../../tables/sales/SalesOrderTable'; | |||||||
| import { StockItemTable } from '../../tables/stock/StockItemTable'; | import { StockItemTable } from '../../tables/stock/StockItemTable'; | ||||||
| import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable'; | import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable'; | ||||||
| import PartPricingPanel from './PartPricingPanel'; | import PartPricingPanel from './PartPricingPanel'; | ||||||
|  | import PartSchedulingDetail from './PartSchedulingDetail'; | ||||||
| import PartStocktakeDetail from './PartStocktakeDetail'; | import PartStocktakeDetail from './PartStocktakeDetail'; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -705,7 +706,7 @@ export default function PartDetail() { | |||||||
|         name: 'scheduling', |         name: 'scheduling', | ||||||
|         label: t`Scheduling`, |         label: t`Scheduling`, | ||||||
|         icon: <IconCalendarStats />, |         icon: <IconCalendarStats />, | ||||||
|         content: <PlaceholderPanel />, |         content: part ? <PartSchedulingDetail part={part} /> : <Skeleton />, | ||||||
|         hidden: !userSettings.isSet('DISPLAY_SCHEDULE_TAB') |         hidden: !userSettings.isSet('DISPLAY_SCHEDULE_TAB') | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|   | |||||||
							
								
								
									
										312
									
								
								src/frontend/src/pages/part/PartSchedulingDetail.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										312
									
								
								src/frontend/src/pages/part/PartSchedulingDetail.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,312 @@ | |||||||
|  | import { t } from '@lingui/macro'; | ||||||
|  | import { ChartTooltipProps, LineChart } from '@mantine/charts'; | ||||||
|  | import { | ||||||
|  |   Anchor, | ||||||
|  |   Center, | ||||||
|  |   Divider, | ||||||
|  |   DrawerOverlay, | ||||||
|  |   Loader, | ||||||
|  |   Paper, | ||||||
|  |   SimpleGrid, | ||||||
|  |   Text | ||||||
|  | } from '@mantine/core'; | ||||||
|  | import { ReactNode, useMemo } from 'react'; | ||||||
|  | import { useNavigate } from 'react-router-dom'; | ||||||
|  |  | ||||||
|  | import { formatDate } from '../../defaults/formatters'; | ||||||
|  | import { ApiEndpoints } from '../../enums/ApiEndpoints'; | ||||||
|  | import { navigateToLink } from '../../functions/navigation'; | ||||||
|  | import { getDetailUrl } from '../../functions/urls'; | ||||||
|  | import { useTable } from '../../hooks/UseTable'; | ||||||
|  | import { apiUrl } from '../../states/ApiState'; | ||||||
|  | import { TableColumn } from '../../tables/Column'; | ||||||
|  | import { DateColumn, DescriptionColumn } from '../../tables/ColumnRenderers'; | ||||||
|  | import { InvenTreeTable } from '../../tables/InvenTreeTable'; | ||||||
|  | import { TableHoverCard } from '../../tables/TableHoverCard'; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Render a tooltip for the chart, with correct date information | ||||||
|  |  */ | ||||||
|  | function ChartTooltip({ label, payload }: ChartTooltipProps) { | ||||||
|  |   if (!payload) { | ||||||
|  |     return null; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if (label && typeof label == 'number') { | ||||||
|  |     label = formatDate(new Date(label).toISOString()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   const scheduled = payload.find((item) => item.name == 'scheduled'); | ||||||
|  |   const minimum = payload.find((item) => item.name == 'minimum'); | ||||||
|  |   const maximum = payload.find((item) => item.name == 'maximum'); | ||||||
|  |  | ||||||
|  |   return ( | ||||||
|  |     <Paper px="md" py="sm" withBorder shadow="md" radius="md"> | ||||||
|  |       <Text key="title">{label}</Text> | ||||||
|  |       <Divider /> | ||||||
|  |       <Text key="maximum" c={maximum?.color} fz="sm"> | ||||||
|  |         {t`Maximum`} : {maximum?.value} | ||||||
|  |       </Text> | ||||||
|  |       <Text key="scheduled" c={scheduled?.color} fz="sm"> | ||||||
|  |         {t`Scheduled`} : {scheduled?.value} | ||||||
|  |       </Text> | ||||||
|  |       <Text key="minimum" c={minimum?.color} fz="sm"> | ||||||
|  |         {t`Minimum`} : {minimum?.value} | ||||||
|  |       </Text> | ||||||
|  |     </Paper> | ||||||
|  |   ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default function PartSchedulingDetail({ part }: { part: any }) { | ||||||
|  |   const table = useTable('part-scheduling'); | ||||||
|  |   const navigate = useNavigate(); | ||||||
|  |  | ||||||
|  |   const tableColumns: TableColumn[] = useMemo(() => { | ||||||
|  |     return [ | ||||||
|  |       { | ||||||
|  |         accessor: 'label', | ||||||
|  |         switchable: false, | ||||||
|  |         title: t`Order`, | ||||||
|  |         render: (record: any) => { | ||||||
|  |           const url = getDetailUrl(record.model, record.model_id); | ||||||
|  |  | ||||||
|  |           if (url) { | ||||||
|  |             return ( | ||||||
|  |               <Anchor | ||||||
|  |                 href="#" | ||||||
|  |                 onClick={(event: any) => navigateToLink(url, navigate, event)} | ||||||
|  |               > | ||||||
|  |                 {record.label} | ||||||
|  |               </Anchor> | ||||||
|  |             ); | ||||||
|  |           } else { | ||||||
|  |             return record.label; | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       DescriptionColumn({ | ||||||
|  |         accessor: 'title', | ||||||
|  |         switchable: false | ||||||
|  |       }), | ||||||
|  |       DateColumn({ | ||||||
|  |         sortable: false, | ||||||
|  |         switchable: false | ||||||
|  |       }), | ||||||
|  |       { | ||||||
|  |         accessor: 'quantity', | ||||||
|  |         title: t`Quantity`, | ||||||
|  |         switchable: false, | ||||||
|  |         render: (record: any) => { | ||||||
|  |           let q = record.quantity; | ||||||
|  |           let extra: ReactNode[] = []; | ||||||
|  |  | ||||||
|  |           if (record.speculative_quantity != 0) { | ||||||
|  |             q = record.speculative_quantity; | ||||||
|  |             extra.push( | ||||||
|  |               <Text | ||||||
|  |                 size="sm" | ||||||
|  |                 key={'speculative'} | ||||||
|  |               >{t`Quantity is speculative`}</Text> | ||||||
|  |             ); | ||||||
|  |           } | ||||||
|  |  | ||||||
|  |           if (!record.date) { | ||||||
|  |             extra.push( | ||||||
|  |               <Text | ||||||
|  |                 key={'null-date'} | ||||||
|  |                 size="sm" | ||||||
|  |               >{t`No date available for provided quantity`}</Text> | ||||||
|  |             ); | ||||||
|  |           } else if (new Date(record.date) < new Date()) { | ||||||
|  |             extra.push( | ||||||
|  |               <Text size="sm" key={'past-date'}>{t`Date is in the past`}</Text> | ||||||
|  |             ); | ||||||
|  |           } | ||||||
|  |  | ||||||
|  |           return ( | ||||||
|  |             <TableHoverCard | ||||||
|  |               value={<Text key="quantity">{q}</Text>} | ||||||
|  |               title={t`Scheduled Quantity`} | ||||||
|  |               extra={extra} | ||||||
|  |             /> | ||||||
|  |           ); | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     ]; | ||||||
|  |   }, []); | ||||||
|  |  | ||||||
|  |   const chartData = useMemo(() => { | ||||||
|  |     /* Rebuild chart data whenever the table data changes. | ||||||
|  |      * Note: We assume that the data is provided in increasing date order, | ||||||
|  |      *       with "null" date entries placed first. | ||||||
|  |      */ | ||||||
|  |  | ||||||
|  |     const today = new Date(); | ||||||
|  |     today.setHours(0, 0, 0, 0); | ||||||
|  |  | ||||||
|  |     // Date bounds | ||||||
|  |     let min_date: Date = new Date(); | ||||||
|  |     let max_date: Date = new Date(); | ||||||
|  |  | ||||||
|  |     // Track stock scheduling throughout time | ||||||
|  |     let stock = part.in_stock ?? 0; | ||||||
|  |     let stock_min = stock; | ||||||
|  |     let stock_max = stock; | ||||||
|  |  | ||||||
|  |     // First, iterate through each entry and find any entries without an associated date, or in the past | ||||||
|  |     table.records.forEach((record) => { | ||||||
|  |       let q = record.quantity + record.speculative_quantity; | ||||||
|  |  | ||||||
|  |       if (record.date == null || new Date(record.date) < today) { | ||||||
|  |         if (q < 0) { | ||||||
|  |           stock_min += q; | ||||||
|  |         } else { | ||||||
|  |           stock_max += q; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |  | ||||||
|  |     // Construct initial chart entry (for today) | ||||||
|  |     let entries: any[] = [ | ||||||
|  |       { | ||||||
|  |         // date: formatDate(today.toISOString()), | ||||||
|  |         date: today.valueOf(), | ||||||
|  |         delta: 0, | ||||||
|  |         scheduled: stock, | ||||||
|  |         minimum: stock_min, | ||||||
|  |         maximum: stock_max, | ||||||
|  |         low_stock: part.minimum_stock | ||||||
|  |       } | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |     table.records.forEach((record) => { | ||||||
|  |       let q = record.quantity + record.speculative_quantity; | ||||||
|  |  | ||||||
|  |       if (!record.date) { | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       const date = new Date(record.date); | ||||||
|  |  | ||||||
|  |       // In the past? Ignore this entry | ||||||
|  |       if (date < today) { | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       // Update date limits | ||||||
|  |  | ||||||
|  |       if (date < min_date) { | ||||||
|  |         min_date = date; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       if (date > max_date) { | ||||||
|  |         max_date = date; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       // Update stock levels | ||||||
|  |       stock += record.quantity; | ||||||
|  |  | ||||||
|  |       stock_min += record.quantity; | ||||||
|  |       stock_max += record.quantity; | ||||||
|  |  | ||||||
|  |       // Speculative quantities expand the expected stock range | ||||||
|  |       if (record.speculative_quantity < 0) { | ||||||
|  |         stock_min += record.speculative_quantity; | ||||||
|  |       } else if (record.speculative_quantity > 0) { | ||||||
|  |         stock_max += record.speculative_quantity; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       entries.push({ | ||||||
|  |         ...record, | ||||||
|  |         date: new Date(record.date).valueOf(), | ||||||
|  |         scheduled: stock, | ||||||
|  |         minimum: stock_min, | ||||||
|  |         maximum: stock_max, | ||||||
|  |         low_stock: part.minimum_stock | ||||||
|  |       }); | ||||||
|  |     }); | ||||||
|  |  | ||||||
|  |     return entries; | ||||||
|  |   }, [part, table.records]); | ||||||
|  |  | ||||||
|  |   // Calculate the date limits of the chart | ||||||
|  |   const chartLimits: number[] = useMemo(() => { | ||||||
|  |     let min_date = new Date(); | ||||||
|  |     let max_date = new Date(); | ||||||
|  |  | ||||||
|  |     if (chartData.length > 0) { | ||||||
|  |       min_date = new Date(chartData[0].date); | ||||||
|  |       max_date = new Date(chartData[chartData.length - 1].date); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     // Expand limits by one day on either side | ||||||
|  |     min_date.setDate(min_date.getDate() - 1); | ||||||
|  |     max_date.setDate(max_date.getDate() + 1); | ||||||
|  |  | ||||||
|  |     return [min_date.valueOf(), max_date.valueOf()]; | ||||||
|  |   }, [chartData]); | ||||||
|  |  | ||||||
|  |   return ( | ||||||
|  |     <> | ||||||
|  |       <SimpleGrid cols={2}> | ||||||
|  |         <InvenTreeTable | ||||||
|  |           url={apiUrl(ApiEndpoints.part_scheduling, part.pk)} | ||||||
|  |           tableState={table} | ||||||
|  |           columns={tableColumns} | ||||||
|  |           props={{ | ||||||
|  |             enableSearch: false | ||||||
|  |           }} | ||||||
|  |         /> | ||||||
|  |         {table.isLoading ? ( | ||||||
|  |           <Center> | ||||||
|  |             <Loader /> | ||||||
|  |           </Center> | ||||||
|  |         ) : ( | ||||||
|  |           <LineChart | ||||||
|  |             data={chartData} | ||||||
|  |             dataKey="date" | ||||||
|  |             withLegend | ||||||
|  |             withYAxis | ||||||
|  |             tooltipProps={{ | ||||||
|  |               content: ({ label, payload }) => ( | ||||||
|  |                 <ChartTooltip label={label} payload={payload} /> | ||||||
|  |               ) | ||||||
|  |             }} | ||||||
|  |             yAxisLabel={t`Expected Quantity`} | ||||||
|  |             xAxisLabel={t`Date`} | ||||||
|  |             xAxisProps={{ | ||||||
|  |               domain: [chartLimits[0], chartLimits[1]], | ||||||
|  |               scale: 'time', | ||||||
|  |               type: 'number', | ||||||
|  |               tickFormatter: (value: number) => { | ||||||
|  |                 return formatDate(new Date(value).toISOString()); | ||||||
|  |               } | ||||||
|  |             }} | ||||||
|  |             series={[ | ||||||
|  |               { | ||||||
|  |                 name: 'scheduled', | ||||||
|  |                 label: t`Scheduled`, | ||||||
|  |                 color: 'blue.6' | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 name: 'minimum', | ||||||
|  |                 label: t`Minimum`, | ||||||
|  |                 color: 'yellow.6' | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 name: 'maximum', | ||||||
|  |                 label: t`Maximum`, | ||||||
|  |                 color: 'teal.6' | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 name: 'low_stock', | ||||||
|  |                 label: t`Low Stock`, | ||||||
|  |                 color: 'red.6' | ||||||
|  |               } | ||||||
|  |             ]} | ||||||
|  |           /> | ||||||
|  |         )} | ||||||
|  |       </SimpleGrid> | ||||||
|  |     </> | ||||||
|  |   ); | ||||||
|  | } | ||||||
| @@ -500,7 +500,7 @@ export function InvenTreeTable<T extends Record<string, any>>({ | |||||||
|       }); |       }); | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   const { data, isFetching, refetch } = useQuery({ |   const { data, isFetching, isLoading, refetch } = useQuery({ | ||||||
|     queryKey: [ |     queryKey: [ | ||||||
|       tableState.page, |       tableState.page, | ||||||
|       props.params, |       props.params, | ||||||
| @@ -515,8 +515,13 @@ export function InvenTreeTable<T extends Record<string, any>>({ | |||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   useEffect(() => { |   useEffect(() => { | ||||||
|     tableState.setIsLoading(isFetching); |     tableState.setIsLoading( | ||||||
|   }, [isFetching]); |       isFetching || | ||||||
|  |         isLoading || | ||||||
|  |         tableOptionQuery.isFetching || | ||||||
|  |         tableOptionQuery.isLoading | ||||||
|  |     ); | ||||||
|  |   }, [isFetching, isLoading, tableOptionQuery]); | ||||||
|  |  | ||||||
|   // Update tableState.records when new data received |   // Update tableState.records when new data received | ||||||
|   useEffect(() => { |   useEffect(() => { | ||||||
|   | |||||||
| @@ -356,10 +356,10 @@ | |||||||
|     "@babel/helper-validator-identifier" "^7.24.7" |     "@babel/helper-validator-identifier" "^7.24.7" | ||||||
|     to-fast-properties "^2.0.0" |     to-fast-properties "^2.0.0" | ||||||
|  |  | ||||||
| "@codecov/bundler-plugin-core@^1.1.0": | "@codecov/bundler-plugin-core@^1.2.0": | ||||||
|   version "1.1.0" |   version "1.2.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@codecov/bundler-plugin-core/-/bundler-plugin-core-1.1.0.tgz#46886d6fff7d6462ee2c71c3821362fdcf24da78" |   resolved "https://registry.yarnpkg.com/@codecov/bundler-plugin-core/-/bundler-plugin-core-1.2.0.tgz#4a896dd3bd9f9f98a60519aadcf8e3daff37ae5d" | ||||||
|   integrity sha512-moetKC32uLQh09X3HNCsNzr+ZVdCoGE11eEH65wEuVb1P6p28W52EjhamrZcl76X1DkthETRPiw7DJQ9hyA+AA== |   integrity sha512-ublUP5V0tW6oDnaJ1UBWvEmVAkvMmPNEwWkpF+WwJSCBWNLvWrkSwG84S3Gt5Xbnh17xEyAxXBmNzF+mXVXBgw== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@actions/core" "^1.10.1" |     "@actions/core" "^1.10.1" | ||||||
|     "@actions/github" "^6.0.0" |     "@actions/github" "^6.0.0" | ||||||
| @@ -368,12 +368,12 @@ | |||||||
|     unplugin "^1.10.1" |     unplugin "^1.10.1" | ||||||
|     zod "^3.22.4" |     zod "^3.22.4" | ||||||
|  |  | ||||||
| "@codecov/vite-plugin@^1.1.0": | "@codecov/vite-plugin@^1.2.0": | ||||||
|   version "1.1.0" |   version "1.2.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@codecov/vite-plugin/-/vite-plugin-1.1.0.tgz#0379f95002de88601d18805456b8e5e161653ee7" |   resolved "https://registry.yarnpkg.com/@codecov/vite-plugin/-/vite-plugin-1.2.0.tgz#341949ed25a8d20805a565ce5e68c7914567b0c8" | ||||||
|   integrity sha512-X/Fw/uF56+nkjhF3CL6kEmcdCj56fAJYdJh4Divyv/4pjze1MTfrYOv82DmzOmeJho8lxM0e0NvzPaiLdgRPrw== |   integrity sha512-hX3VDomMYRNWDgLTRu7mzGn902ei6tiKa3S9qDrwQwVHdsBw22J47towlpxf3g92QWMOKrkWgEpQrU50h9PWzg== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@codecov/bundler-plugin-core" "^1.1.0" |     "@codecov/bundler-plugin-core" "^1.2.0" | ||||||
|     unplugin "^1.10.1" |     unplugin "^1.10.1" | ||||||
|  |  | ||||||
| "@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.18.1": | "@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.18.1": | ||||||
| @@ -449,10 +449,10 @@ | |||||||
|     "@lezer/highlight" "^1.0.0" |     "@lezer/highlight" "^1.0.0" | ||||||
|     "@lezer/lr" "^1.3.1" |     "@lezer/lr" "^1.3.1" | ||||||
|  |  | ||||||
| "@codemirror/language@^6.0.0", "@codemirror/language@^6.10.2", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0": | "@codemirror/language@^6.0.0", "@codemirror/language@^6.10.3", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0": | ||||||
|   version "6.10.2" |   version "6.10.3" | ||||||
|   resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.2.tgz#4056dc219619627ffe995832eeb09cea6060be61" |   resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.3.tgz#eb25fc5ade19032e7bf1dcaa957804e5f1660585" | ||||||
|   integrity sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA== |   integrity sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@codemirror/state" "^6.0.0" |     "@codemirror/state" "^6.0.0" | ||||||
|     "@codemirror/view" "^6.23.0" |     "@codemirror/view" "^6.23.0" | ||||||
| @@ -1416,179 +1416,179 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@octokit/openapi-types" "^22.2.0" |     "@octokit/openapi-types" "^22.2.0" | ||||||
|  |  | ||||||
| "@playwright/test@^1.47.1": | "@playwright/test@^1.47.2": | ||||||
|   version "1.47.1" |   version "1.47.2" | ||||||
|   resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.47.1.tgz#568a46229a5aef54b74977297a7946bb5ac4b67b" |   resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.47.2.tgz#dbe7051336bfc5cc599954214f9111181dbc7475" | ||||||
|   integrity sha512-dbWpcNQZ5nj16m+A5UNScYx7HX5trIy7g4phrcitn+Nk83S32EBX/CLU4hiF4RGKX/yRc93AAqtfaXB7JWBd4Q== |   integrity sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     playwright "1.47.1" |     playwright "1.47.2" | ||||||
|  |  | ||||||
| "@remix-run/router@1.19.2": | "@remix-run/router@1.19.2": | ||||||
|   version "1.19.2" |   version "1.19.2" | ||||||
|   resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.2.tgz#0c896535473291cb41f152c180bedd5680a3b273" |   resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.2.tgz#0c896535473291cb41f152c180bedd5680a3b273" | ||||||
|   integrity sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA== |   integrity sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA== | ||||||
|  |  | ||||||
| "@rollup/rollup-android-arm-eabi@4.21.2": | "@rollup/rollup-android-arm-eabi@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz#0412834dc423d1ff7be4cb1fc13a86a0cd262c11" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5" | ||||||
|   integrity sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg== |   integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w== | ||||||
|  |  | ||||||
| "@rollup/rollup-android-arm64@4.21.2": | "@rollup/rollup-android-arm64@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz#baf1a014b13654f3b9e835388df9caf8c35389cb" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb" | ||||||
|   integrity sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA== |   integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA== | ||||||
|  |  | ||||||
| "@rollup/rollup-darwin-arm64@4.21.2": | "@rollup/rollup-darwin-arm64@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz#0a2c364e775acdf1172fe3327662eec7c46e55b1" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b" | ||||||
|   integrity sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q== |   integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q== | ||||||
|  |  | ||||||
| "@rollup/rollup-darwin-x64@4.21.2": | "@rollup/rollup-darwin-x64@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz#a972db75890dfab8df0da228c28993220a468c42" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791" | ||||||
|   integrity sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w== |   integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-arm-gnueabihf@4.21.2": | "@rollup/rollup-linux-arm-gnueabihf@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz#1609d0630ef61109dd19a278353e5176d92e30a1" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232" | ||||||
|   integrity sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w== |   integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-arm-musleabihf@4.21.2": | "@rollup/rollup-linux-arm-musleabihf@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz#3c1dca5f160aa2e79e4b20ff6395eab21804f266" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa" | ||||||
|   integrity sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w== |   integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-arm64-gnu@4.21.2": | "@rollup/rollup-linux-arm64-gnu@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz#c2fe376e8b04eafb52a286668a8df7c761470ac7" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15" | ||||||
|   integrity sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw== |   integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-arm64-musl@4.21.2": | "@rollup/rollup-linux-arm64-musl@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz#e62a4235f01e0f66dbba587c087ca6db8008ec80" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820" | ||||||
|   integrity sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w== |   integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-powerpc64le-gnu@4.21.2": | "@rollup/rollup-linux-powerpc64le-gnu@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz#24b3457e75ee9ae5b1c198bd39eea53222a74e54" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e" | ||||||
|   integrity sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ== |   integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-riscv64-gnu@4.21.2": | "@rollup/rollup-linux-riscv64-gnu@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz#38edfba9620fe2ca8116c97e02bd9f2d606bde09" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128" | ||||||
|   integrity sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg== |   integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-s390x-gnu@4.21.2": | "@rollup/rollup-linux-s390x-gnu@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz#a3bfb8bc5f1e802f8c76cff4a4be2e9f9ac36a18" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc" | ||||||
|   integrity sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ== |   integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-x64-gnu@4.21.2": | "@rollup/rollup-linux-x64-gnu@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz#0dadf34be9199fcdda44b5985a086326344f30ad" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0" | ||||||
|   integrity sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw== |   integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg== | ||||||
|  |  | ||||||
| "@rollup/rollup-linux-x64-musl@4.21.2": | "@rollup/rollup-linux-x64-musl@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz#7b7deddce240400eb87f2406a445061b4fed99a8" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f" | ||||||
|   integrity sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg== |   integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g== | ||||||
|  |  | ||||||
| "@rollup/rollup-win32-arm64-msvc@4.21.2": | "@rollup/rollup-win32-arm64-msvc@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz#a0ca0c5149c2cfb26fab32e6ba3f16996fbdb504" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0" | ||||||
|   integrity sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ== |   integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw== | ||||||
|  |  | ||||||
| "@rollup/rollup-win32-ia32-msvc@4.21.2": | "@rollup/rollup-win32-ia32-msvc@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz#aae2886beec3024203dbb5569db3a137bc385f8e" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422" | ||||||
|   integrity sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw== |   integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g== | ||||||
|  |  | ||||||
| "@rollup/rollup-win32-x64-msvc@4.21.2": | "@rollup/rollup-win32-x64-msvc@4.22.4": | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz#e4291e3c1bc637083f87936c333cdbcad22af63b" |   resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202" | ||||||
|   integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA== |   integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q== | ||||||
|  |  | ||||||
| "@sentry-internal/browser-utils@8.30.0": | "@sentry-internal/browser-utils@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.30.0.tgz#eb68c79556ffb864eb5924a53affde52f2b77362" |   resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.31.0.tgz#7c2c2916dfe77f771fbc0a9f73c9447aff9039f1" | ||||||
|   integrity sha512-pwX+awNWaxSOAsBLVLqc1+Hw+Fm1Nci9mbKFA6Ed5YzCG049PnBVQwugpmx2dcyyCqJpORhcIqb9jHdCkYmCiA== |   integrity sha512-Bq7TFMhPr1PixRGYkB/6ar9ws7sj224XzQ+hgpz6OxGEc9fQakvD8t/Nn7dp14k3FI/hcBRA6BBvpOKUUuPgGA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry/core" "8.30.0" |     "@sentry/core" "8.31.0" | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|     "@sentry/utils" "8.30.0" |     "@sentry/utils" "8.31.0" | ||||||
|  |  | ||||||
| "@sentry-internal/feedback@8.30.0": | "@sentry-internal/feedback@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.30.0.tgz#6f78a245298502e4cc5ce77313dde6965abfecfe" |   resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.31.0.tgz#36135365eb1f4226ed4f5c4446263eef2461dc6e" | ||||||
|   integrity sha512-ParFRxQY6helxkwUDmro77Wc5uSIC6rZos88jYMrYwFmoTJaNWf4lDzPyECfdSiSYyzSMZk4dorSUN85Ul7DCg== |   integrity sha512-R3LcC2IaTe8lgi5AU9h0rMgyVPpaTiMSLRhRlVeQPVmAKCz8pSG/um13q37t0BsXpTaImW9yYQ71Aj6h6IrShQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry/core" "8.30.0" |     "@sentry/core" "8.31.0" | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|     "@sentry/utils" "8.30.0" |     "@sentry/utils" "8.31.0" | ||||||
|  |  | ||||||
| "@sentry-internal/replay-canvas@8.30.0": | "@sentry-internal/replay-canvas@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.30.0.tgz#3630eec14d23b1fd368d8c331ee695aa5bb41425" |   resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.31.0.tgz#368d2169757c7254634ca968a6ce8262f18f3b03" | ||||||
|   integrity sha512-y/QqcvchhtMlVA6eOZicIfTxtZarazQZJuFW0018ynPxBTiuuWSxMCLqduulXUYsFejfD8/eKHb3BpCIFdDYjg== |   integrity sha512-ConyrhWozx4HluRj0+9teN4XTC1ndXjxMdJQvDnbLFsQhCCEdwUfaZVshV1CFe9T08Bfyjruaw33yR7pDXYktw== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry-internal/replay" "8.30.0" |     "@sentry-internal/replay" "8.31.0" | ||||||
|     "@sentry/core" "8.30.0" |     "@sentry/core" "8.31.0" | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|     "@sentry/utils" "8.30.0" |     "@sentry/utils" "8.31.0" | ||||||
|  |  | ||||||
| "@sentry-internal/replay@8.30.0": | "@sentry-internal/replay@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.30.0.tgz#6a4a8bd551a16ea5f77f913acbccd88061868c84" |   resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.31.0.tgz#0ee6b0c9f7b62caf8282576d53e1b6801449e495" | ||||||
|   integrity sha512-/KFre+BrovPCiovgAu5N1ErJtkDVzkJA5hV3Jw011AlxRWxrmPwu6+9sV9/rn3tqYAGyq6IggYqeIOHhLh1Ihg== |   integrity sha512-r8hmFDwWxeAxpdzBCRWTKQ/QHl8QanFw8XfM0fvFes/H1d/b43Vwc/IiUnsYoMOdooIP8hJFGDKlfq+Y5uVVGA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry-internal/browser-utils" "8.30.0" |     "@sentry-internal/browser-utils" "8.31.0" | ||||||
|     "@sentry/core" "8.30.0" |     "@sentry/core" "8.31.0" | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|     "@sentry/utils" "8.30.0" |     "@sentry/utils" "8.31.0" | ||||||
|  |  | ||||||
| "@sentry/browser@8.30.0": | "@sentry/browser@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.30.0.tgz#3c6d5ef62d7daca2873b47f59b136c33941b56de" |   resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.31.0.tgz#9c1452e05046d50f74229961590286bdb5fb22ac" | ||||||
|   integrity sha512-M+tKqawH9S3CqlAIcqdZcHbcsNQkEa9MrPqPCYvXco3C4LRpNizJP2XwBiGQY2yK+fOSvbaWpPtlI938/wuRZQ== |   integrity sha512-LZK0uLPGB4Al+qWc1eaad+H/1SR6CY9a0V2XWpUbNAT3+VkEo0Z/78bW1kb43N0cok87hNPOe+c66SfwdxphVQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry-internal/browser-utils" "8.30.0" |     "@sentry-internal/browser-utils" "8.31.0" | ||||||
|     "@sentry-internal/feedback" "8.30.0" |     "@sentry-internal/feedback" "8.31.0" | ||||||
|     "@sentry-internal/replay" "8.30.0" |     "@sentry-internal/replay" "8.31.0" | ||||||
|     "@sentry-internal/replay-canvas" "8.30.0" |     "@sentry-internal/replay-canvas" "8.31.0" | ||||||
|     "@sentry/core" "8.30.0" |     "@sentry/core" "8.31.0" | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|     "@sentry/utils" "8.30.0" |     "@sentry/utils" "8.31.0" | ||||||
|  |  | ||||||
| "@sentry/core@8.30.0": | "@sentry/core@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.30.0.tgz#f929e42e9a537bfa3eb6024082714e9ab98d822b" |   resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.31.0.tgz#09435534967c4f7254ea1015ef2b3a3bfed18434" | ||||||
|   integrity sha512-CJ/FuWLw0QEKGKXGL/nm9eaOdajEcmPekLuHAuOCxID7N07R9l9laz3vFbAkUZ97GGDv3sYrJZgywfY3Moropg== |   integrity sha512-5zsMBOML18e5a/ZoR5XpcYF59e2kSxb6lTg13u52f/+NA27EPgxKgXim5dz6L/6+0cizgwwmFaZFGJiFc2qoAA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|     "@sentry/utils" "8.30.0" |     "@sentry/utils" "8.31.0" | ||||||
|  |  | ||||||
| "@sentry/react@^8.30.0": | "@sentry/react@^8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.30.0.tgz#fe24964d3f5e963749d8a11b45332cea85bd9ac4" |   resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.31.0.tgz#d39d8f6d6ebd7e9dba088f7c25e520ce2dcdb09a" | ||||||
|   integrity sha512-ktQjXs87jdsxW0YrHci3sb6zcSzhMECWnrTVU/KGZF8UoDsk4P4xRCknijd2SSmDIjSkwzUAANR43UkCi4BTQg== |   integrity sha512-geMQNbkJMGREC1TpSWn1Yr+hGOERO13gPqh3aQBpTF0GEDXbmVwX2U/+6wqXCVICGbKujDroReRBRLqk3fmWSA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry/browser" "8.30.0" |     "@sentry/browser" "8.31.0" | ||||||
|     "@sentry/core" "8.30.0" |     "@sentry/core" "8.31.0" | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|     "@sentry/utils" "8.30.0" |     "@sentry/utils" "8.31.0" | ||||||
|     hoist-non-react-statics "^3.3.2" |     hoist-non-react-statics "^3.3.2" | ||||||
|  |  | ||||||
| "@sentry/types@8.30.0": | "@sentry/types@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.30.0.tgz#5f5011f5b16bafd30a039ca5e8c337e948c703fb" |   resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.31.0.tgz#b1ca002df2c8840c3b491ceb019925ff504306f8" | ||||||
|   integrity sha512-kgWW2BCjBmVlSQRG32GonHEVyeDbys74xf9mLPvynwHTgw3+NUlNAlEdu05xnb2ow4bCTHfbkS5G1zRgyv5k4Q== |   integrity sha512-prRM/n5nlP+xQZSpdEkSR8BwwZtgsLk0NbI8eCjTMu2isVlrlggop8pVaJb7y9HmElVtDA1Q6y4u8TD2htQKFQ== | ||||||
|  |  | ||||||
| "@sentry/utils@8.30.0": | "@sentry/utils@8.31.0": | ||||||
|   version "8.30.0" |   version "8.31.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.30.0.tgz#2343dd8593ea83890b3e0d792ed3fa257955a26b" |   resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.31.0.tgz#56d44250f685bcc56cbf2f8837ffa88ed7e754a2" | ||||||
|   integrity sha512-wZxU2HWlzsnu8214Xy7S7cRIuD6h8Z5DnnkojJfX0i0NLooepZQk2824el1Q13AakLb7/S8CHSHXOMnCtoSduw== |   integrity sha512-9W2LZ9QIHKc0HSyH/7UmTolc01Q4vX/qMSZk7i1noinlkQtnRUmTP39r1DSITjKCrDHj6zvB/J1RPDUoRcTXxQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@sentry/types" "8.30.0" |     "@sentry/types" "8.31.0" | ||||||
|  |  | ||||||
| "@sinclair/typebox@^0.27.8": | "@sinclair/typebox@^0.27.8": | ||||||
|   version "0.27.8" |   version "0.27.8" | ||||||
| @@ -1744,10 +1744,10 @@ | |||||||
|   resolved "https://registry.yarnpkg.com/@types/marked/-/marked-4.3.2.tgz#e2e0ad02ebf5626bd215c5bae2aff6aff0ce9eac" |   resolved "https://registry.yarnpkg.com/@types/marked/-/marked-4.3.2.tgz#e2e0ad02ebf5626bd215c5bae2aff6aff0ce9eac" | ||||||
|   integrity sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w== |   integrity sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w== | ||||||
|  |  | ||||||
| "@types/node@*", "@types/node@^22.5.5": | "@types/node@*", "@types/node@^22.6.0": | ||||||
|   version "22.5.5" |   version "22.6.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.5.tgz#52f939dd0f65fc552a4ad0b392f3c466cc5d7a44" |   resolved "https://registry.yarnpkg.com/@types/node/-/node-22.6.0.tgz#b604c9a628760221905c1b272fd6aee661f45042" | ||||||
|   integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA== |   integrity sha512-QyR8d5bmq+eR72TwQDfujwShHMcIrWIYsaQFtXRE58MHPTEKUNxjxvl0yS0qPMds5xbSDWtp7ZpvGFtd7dfMdQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     undici-types "~6.19.2" |     undici-types "~6.19.2" | ||||||
|  |  | ||||||
| @@ -1813,10 +1813,10 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@types/react" "*" |     "@types/react" "*" | ||||||
|  |  | ||||||
| "@types/react@*", "@types/react@^18.3.6": | "@types/react@*", "@types/react@^18.3.8": | ||||||
|   version "18.3.6" |   version "18.3.8" | ||||||
|   resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.6.tgz#1cb5895c5ea0d99d8bc7d659e42f72713cbd3942" |   resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.8.tgz#1672ab19993f8aca7c7dc844c07d5d9e467d5a79" | ||||||
|   integrity sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg== |   integrity sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@types/prop-types" "*" |     "@types/prop-types" "*" | ||||||
|     csstype "^3.0.2" |     csstype "^3.0.2" | ||||||
| @@ -1845,10 +1845,10 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@types/yargs-parser" "*" |     "@types/yargs-parser" "*" | ||||||
|  |  | ||||||
| "@uiw/codemirror-extensions-basic-setup@4.23.2": | "@uiw/codemirror-extensions-basic-setup@4.23.3": | ||||||
|   version "4.23.2" |   version "4.23.3" | ||||||
|   resolved "https://registry.yarnpkg.com/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.23.2.tgz#90772ca73424d797bfae94aaa9a1b61ce0203c6c" |   resolved "https://registry.yarnpkg.com/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.23.3.tgz#f2dec646a6a1a6072b8b73e67372cb9cd178537e" | ||||||
|   integrity sha512-eacivkj7wzskl2HBYs4rfN0CbYlsSQh5ADtOYWTpc8Txm4ONw8RTi4/rxF6Ks2vdaovizewU5QaHximbxoNTrw== |   integrity sha512-nEMjgbCyeLx+UQgOGAAoUWYFE34z5TlyaKNszuig/BddYFDb0WKcgmC37bDFxR2dZssf3K/lwGWLpXnGKXePbA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@codemirror/autocomplete" "^6.0.0" |     "@codemirror/autocomplete" "^6.0.0" | ||||||
|     "@codemirror/commands" "^6.0.0" |     "@codemirror/commands" "^6.0.0" | ||||||
| @@ -1858,32 +1858,32 @@ | |||||||
|     "@codemirror/state" "^6.0.0" |     "@codemirror/state" "^6.0.0" | ||||||
|     "@codemirror/view" "^6.0.0" |     "@codemirror/view" "^6.0.0" | ||||||
|  |  | ||||||
| "@uiw/codemirror-theme-vscode@^4.23.2": | "@uiw/codemirror-theme-vscode@^4.23.3": | ||||||
|   version "4.23.2" |   version "4.23.3" | ||||||
|   resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-vscode/-/codemirror-theme-vscode-4.23.2.tgz#7599ce4edf718d60fed23f2b034f5a444052b9ee" |   resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-vscode/-/codemirror-theme-vscode-4.23.3.tgz#7d7132d6a923cb3493e8e24d4fad79a06c26d7d1" | ||||||
|   integrity sha512-SpXlCOCtuu8zTiTO6Cs8Oa5/czItZ59t5MfocJmjOFVN3C22VIR0oXqi375fTl+YS9Mw2+TaOSuIzuzkXH1OEQ== |   integrity sha512-HrJmrbF0VUfE16Gt6K5czJZVl2RpcadnWDA8Lz2aQO25myNt8K1GgsP8GJ/ss7Z413i+Z2irzi6Wjq5YK9IA7g== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@uiw/codemirror-themes" "4.23.2" |     "@uiw/codemirror-themes" "4.23.3" | ||||||
|  |  | ||||||
| "@uiw/codemirror-themes@4.23.2": | "@uiw/codemirror-themes@4.23.3": | ||||||
|   version "4.23.2" |   version "4.23.3" | ||||||
|   resolved "https://registry.yarnpkg.com/@uiw/codemirror-themes/-/codemirror-themes-4.23.2.tgz#67c40eed4675fa803289068f54ef4f97e1cd31d1" |   resolved "https://registry.yarnpkg.com/@uiw/codemirror-themes/-/codemirror-themes-4.23.3.tgz#5ee8cc289532c7950a725d2eda74d670b693897e" | ||||||
|   integrity sha512-g8x+oPqgbzxXSkHhRf7e1AM1mI9/Nl3URReS89pHitRKv8MZNrE+ey+HE8ycfNXRUatrb6zTSRV3M75uoZwNYw== |   integrity sha512-oUq2qoj+hMrR34Xhbp7S1P2elPtySWyzij97IwsZAdGZD/yS+c9+2yRSMYqtaWh7D9M4sJmwgU1lZibmwLZOfQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@codemirror/language" "^6.0.0" |     "@codemirror/language" "^6.0.0" | ||||||
|     "@codemirror/state" "^6.0.0" |     "@codemirror/state" "^6.0.0" | ||||||
|     "@codemirror/view" "^6.0.0" |     "@codemirror/view" "^6.0.0" | ||||||
|  |  | ||||||
| "@uiw/react-codemirror@^4.23.2": | "@uiw/react-codemirror@^4.23.3": | ||||||
|   version "4.23.2" |   version "4.23.3" | ||||||
|   resolved "https://registry.yarnpkg.com/@uiw/react-codemirror/-/react-codemirror-4.23.2.tgz#0b9078d0fc086ca7b75a3aa0eb3942c42919c156" |   resolved "https://registry.yarnpkg.com/@uiw/react-codemirror/-/react-codemirror-4.23.3.tgz#2febc96478e206d704a8810306b9beab1ee76af1" | ||||||
|   integrity sha512-MmFL6P5V1Mr81JLkJyWNedfxENKdRhsvyU7Izji9wp337m8dqRAz7rCF5XWarGKx+iQ7q2H5ryl07nLqKLSvtQ== |   integrity sha512-TBBLUbeqXmfQSfO+f3rPNOAb+QXbSm7KPB64FHQWLGg2WJNbpOhjLOWMyL+C4ZP3aSCNc2Y5aftEK1vp3wCKTA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/runtime" "^7.18.6" |     "@babel/runtime" "^7.18.6" | ||||||
|     "@codemirror/commands" "^6.1.0" |     "@codemirror/commands" "^6.1.0" | ||||||
|     "@codemirror/state" "^6.1.1" |     "@codemirror/state" "^6.1.1" | ||||||
|     "@codemirror/theme-one-dark" "^6.0.0" |     "@codemirror/theme-one-dark" "^6.0.0" | ||||||
|     "@uiw/codemirror-extensions-basic-setup" "4.23.2" |     "@uiw/codemirror-extensions-basic-setup" "4.23.3" | ||||||
|     codemirror "^6.0.0" |     codemirror "^6.0.0" | ||||||
|  |  | ||||||
| "@uiw/react-split@^5.9.3": | "@uiw/react-split@^5.9.3": | ||||||
| @@ -2782,10 +2782,10 @@ fast-equals@^5.0.1: | |||||||
|   resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" |   resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" | ||||||
|   integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ== |   integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ== | ||||||
|  |  | ||||||
| fdir@6.1.1: | fdir@6.3.0: | ||||||
|   version "6.1.1" |   version "6.3.0" | ||||||
|   resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.1.1.tgz#316b58145a05223b75c8b371e80bb3bad8f1441e" |   resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.3.0.tgz#fcca5a23ea20e767b15e081ee13b3e6488ee0bb0" | ||||||
|   integrity sha512-QfKBVg453Dyn3mr0Q0O+Tkr1r79lOTAKSi9f/Ot4+qVEwxWhav2Z+SudrG9vQjM2aYRMQQZ2/Q1zdA8ACM1pDg== |   integrity sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ== | ||||||
|  |  | ||||||
| figures@^3.0.0: | figures@^3.0.0: | ||||||
|   version "3.2.0" |   version "3.2.0" | ||||||
| @@ -2851,6 +2851,14 @@ foreground-child@^2.0.0: | |||||||
|     cross-spawn "^7.0.0" |     cross-spawn "^7.0.0" | ||||||
|     signal-exit "^3.0.2" |     signal-exit "^3.0.2" | ||||||
|  |  | ||||||
|  | foreground-child@^3.3.0: | ||||||
|  |   version "3.3.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" | ||||||
|  |   integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== | ||||||
|  |   dependencies: | ||||||
|  |     cross-spawn "^7.0.0" | ||||||
|  |     signal-exit "^4.0.1" | ||||||
|  |  | ||||||
| form-data@^4.0.0: | form-data@^4.0.0: | ||||||
|   version "4.0.0" |   version "4.0.0" | ||||||
|   resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" |   resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" | ||||||
| @@ -3475,10 +3483,10 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: | |||||||
|   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" |   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" | ||||||
|   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== |   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== | ||||||
|  |  | ||||||
| nyc@^17.0.0: | nyc@^17.1.0: | ||||||
|   version "17.0.0" |   version "17.1.0" | ||||||
|   resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.0.0.tgz#d8943407584242a448a70290b15bb72207fac9fd" |   resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.1.0.tgz#b6349a401a62ffeb912bd38ea9a018839fdb6eb1" | ||||||
|   integrity sha512-ISp44nqNCaPugLLGGfknzQwSwt10SSS5IMoPR7GLoMAyS18Iw5js8U7ga2VF9lYuMZ42gOHr3UddZw4WZltxKg== |   integrity sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@istanbuljs/load-nyc-config" "^1.0.0" |     "@istanbuljs/load-nyc-config" "^1.0.0" | ||||||
|     "@istanbuljs/schema" "^0.1.2" |     "@istanbuljs/schema" "^0.1.2" | ||||||
| @@ -3487,7 +3495,7 @@ nyc@^17.0.0: | |||||||
|     decamelize "^1.2.0" |     decamelize "^1.2.0" | ||||||
|     find-cache-dir "^3.2.0" |     find-cache-dir "^3.2.0" | ||||||
|     find-up "^4.1.0" |     find-up "^4.1.0" | ||||||
|     foreground-child "^2.0.0" |     foreground-child "^3.3.0" | ||||||
|     get-package-type "^0.1.0" |     get-package-type "^0.1.0" | ||||||
|     glob "^7.1.6" |     glob "^7.1.6" | ||||||
|     istanbul-lib-coverage "^3.0.0" |     istanbul-lib-coverage "^3.0.0" | ||||||
| @@ -3694,17 +3702,17 @@ pkg-up@^3.1.0: | |||||||
|   dependencies: |   dependencies: | ||||||
|     find-up "^3.0.0" |     find-up "^3.0.0" | ||||||
|  |  | ||||||
| playwright-core@1.47.1: | playwright-core@1.47.2: | ||||||
|   version "1.47.1" |   version "1.47.2" | ||||||
|   resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.47.1.tgz#bb45bdfb0d48412c535501aa3805867282857df8" |   resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.47.2.tgz#7858da9377fa32a08be46ba47d7523dbd9460a4e" | ||||||
|   integrity sha512-i1iyJdLftqtt51mEk6AhYFaAJCDx0xQ/O5NU8EKaWFgMjItPVma542Nh/Aq8aLCjIJSzjaiEQGW/nyqLkGF1OQ== |   integrity sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ== | ||||||
|  |  | ||||||
| playwright@1.47.1: | playwright@1.47.2: | ||||||
|   version "1.47.1" |   version "1.47.2" | ||||||
|   resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.47.1.tgz#cdc1116f5265b8d2ff7be0d8942d49900634dc6c" |   resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.47.2.tgz#155688aa06491ee21fb3e7555b748b525f86eb20" | ||||||
|   integrity sha512-SUEKi6947IqYbKxRiqnbUobVZY4bF1uu+ZnZNJX9DfU1tlf2UhWfvVjLf01pQx9URsOr18bFVUKXmanYWhbfkw== |   integrity sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     playwright-core "1.47.1" |     playwright-core "1.47.2" | ||||||
|   optionalDependencies: |   optionalDependencies: | ||||||
|     fsevents "2.3.2" |     fsevents "2.3.2" | ||||||
|  |  | ||||||
| @@ -3899,10 +3907,10 @@ react-router@6.26.2: | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@remix-run/router" "1.19.2" |     "@remix-run/router" "1.19.2" | ||||||
|  |  | ||||||
| react-select@^5.8.0: | react-select@^5.8.1: | ||||||
|   version "5.8.0" |   version "5.8.1" | ||||||
|   resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.0.tgz#bd5c467a4df223f079dd720be9498076a3f085b5" |   resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.1.tgz#3284a93b7633b5e893306b2a8007ea0f793e62b9" | ||||||
|   integrity sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA== |   integrity sha512-RT1CJmuc+ejqm5MPgzyZujqDskdvB9a9ZqrdnVLsvAHjJ3Tj0hELnLeVPQlmYdVKCdCpxanepl6z7R5KhXhWzg== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/runtime" "^7.12.0" |     "@babel/runtime" "^7.12.0" | ||||||
|     "@emotion/cache" "^11.4.0" |     "@emotion/cache" "^11.4.0" | ||||||
| @@ -4076,13 +4084,13 @@ rimraf@^3.0.0: | |||||||
|   dependencies: |   dependencies: | ||||||
|     glob "^7.1.3" |     glob "^7.1.3" | ||||||
|  |  | ||||||
| rollup-plugin-license@^3.5.2: | rollup-plugin-license@^3.5.3: | ||||||
|   version "3.5.2" |   version "3.5.3" | ||||||
|   resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-3.5.2.tgz#958f52cfde78a38ce328c0e66632a4394ebe7d1d" |   resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-3.5.3.tgz#b02ffa4fd4c81464db450d06478e03e5605d9d5f" | ||||||
|   integrity sha512-NNeXBcE6RyQdZdSC8Vxe8Cheax2aUa/K0Ok6JDZwr9isjkSDer4aMg0sovas1Ua76ojLZX1BrNQ6ZFspztKkZQ== |   integrity sha512-r3wImZSo2d6sEk9BRJtlzeI/upjyjnpthy06Fdl0EzqRrlg3ULb9KQR7xHJI0zuayW/8bchEXSF5dO6dha4OyA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     commenting "~1.1.0" |     commenting "~1.1.0" | ||||||
|     fdir "6.1.1" |     fdir "6.3.0" | ||||||
|     lodash "~4.17.21" |     lodash "~4.17.21" | ||||||
|     magic-string "~0.30.0" |     magic-string "~0.30.0" | ||||||
|     moment "~2.30.1" |     moment "~2.30.1" | ||||||
| @@ -4091,28 +4099,28 @@ rollup-plugin-license@^3.5.2: | |||||||
|     spdx-satisfies "~5.0.1" |     spdx-satisfies "~5.0.1" | ||||||
|  |  | ||||||
| rollup@^4.20.0: | rollup@^4.20.0: | ||||||
|   version "4.21.2" |   version "4.22.4" | ||||||
|   resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.2.tgz#f41f277a448d6264e923dd1ea179f0a926aaf9b7" |   resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f" | ||||||
|   integrity sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw== |   integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@types/estree" "1.0.5" |     "@types/estree" "1.0.5" | ||||||
|   optionalDependencies: |   optionalDependencies: | ||||||
|     "@rollup/rollup-android-arm-eabi" "4.21.2" |     "@rollup/rollup-android-arm-eabi" "4.22.4" | ||||||
|     "@rollup/rollup-android-arm64" "4.21.2" |     "@rollup/rollup-android-arm64" "4.22.4" | ||||||
|     "@rollup/rollup-darwin-arm64" "4.21.2" |     "@rollup/rollup-darwin-arm64" "4.22.4" | ||||||
|     "@rollup/rollup-darwin-x64" "4.21.2" |     "@rollup/rollup-darwin-x64" "4.22.4" | ||||||
|     "@rollup/rollup-linux-arm-gnueabihf" "4.21.2" |     "@rollup/rollup-linux-arm-gnueabihf" "4.22.4" | ||||||
|     "@rollup/rollup-linux-arm-musleabihf" "4.21.2" |     "@rollup/rollup-linux-arm-musleabihf" "4.22.4" | ||||||
|     "@rollup/rollup-linux-arm64-gnu" "4.21.2" |     "@rollup/rollup-linux-arm64-gnu" "4.22.4" | ||||||
|     "@rollup/rollup-linux-arm64-musl" "4.21.2" |     "@rollup/rollup-linux-arm64-musl" "4.22.4" | ||||||
|     "@rollup/rollup-linux-powerpc64le-gnu" "4.21.2" |     "@rollup/rollup-linux-powerpc64le-gnu" "4.22.4" | ||||||
|     "@rollup/rollup-linux-riscv64-gnu" "4.21.2" |     "@rollup/rollup-linux-riscv64-gnu" "4.22.4" | ||||||
|     "@rollup/rollup-linux-s390x-gnu" "4.21.2" |     "@rollup/rollup-linux-s390x-gnu" "4.22.4" | ||||||
|     "@rollup/rollup-linux-x64-gnu" "4.21.2" |     "@rollup/rollup-linux-x64-gnu" "4.22.4" | ||||||
|     "@rollup/rollup-linux-x64-musl" "4.21.2" |     "@rollup/rollup-linux-x64-musl" "4.22.4" | ||||||
|     "@rollup/rollup-win32-arm64-msvc" "4.21.2" |     "@rollup/rollup-win32-arm64-msvc" "4.22.4" | ||||||
|     "@rollup/rollup-win32-ia32-msvc" "4.21.2" |     "@rollup/rollup-win32-ia32-msvc" "4.22.4" | ||||||
|     "@rollup/rollup-win32-x64-msvc" "4.21.2" |     "@rollup/rollup-win32-x64-msvc" "4.22.4" | ||||||
|     fsevents "~2.3.2" |     fsevents "~2.3.2" | ||||||
|  |  | ||||||
| run-async@^2.4.0: | run-async@^2.4.0: | ||||||
| @@ -4181,6 +4189,11 @@ signal-exit@^3.0.2: | |||||||
|   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" |   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" | ||||||
|   integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== |   integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== | ||||||
|  |  | ||||||
|  | signal-exit@^4.0.1: | ||||||
|  |   version "4.1.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" | ||||||
|  |   integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== | ||||||
|  |  | ||||||
| source-map-js@^1.2.0: | source-map-js@^1.2.0: | ||||||
|   version "1.2.1" |   version "1.2.1" | ||||||
|   resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" |   resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" | ||||||
| @@ -4596,10 +4609,10 @@ vite-plugin-istanbul@^6.0.2: | |||||||
|     source-map "^0.7.4" |     source-map "^0.7.4" | ||||||
|     test-exclude "^6.0.0" |     test-exclude "^6.0.0" | ||||||
|  |  | ||||||
| vite@^5.0.0, vite@^5.0.11, vite@^5.4.6: | vite@^5.0.0, vite@^5.0.11, vite@^5.4.7: | ||||||
|   version "5.4.6" |   version "5.4.7" | ||||||
|   resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.6.tgz#85a93a1228a7fb5a723ca1743e337a2588ed008f" |   resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.7.tgz#d226f57c08b61379e955f3836253ed3efb2dcf00" | ||||||
|   integrity sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q== |   integrity sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     esbuild "^0.21.3" |     esbuild "^0.21.3" | ||||||
|     postcss "^8.4.43" |     postcss "^8.4.43" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user