mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 04:50:36 +03:00
Refactoring: setup isort for backend
This commit is contained in:
parent
f669a3054b
commit
9e4f7ca2f2
17
.vscode/settings.json
vendored
17
.vscode/settings.json
vendored
|
@ -4,12 +4,23 @@
|
|||
".pytest_cache/": true
|
||||
},
|
||||
"typescript.tsdk": "rsconcept/frontend/node_modules/typescript/lib",
|
||||
"isort.args": [
|
||||
"--line-length",
|
||||
"100",
|
||||
"--multi-line",
|
||||
"3",
|
||||
"--project",
|
||||
"apps"
|
||||
],
|
||||
"eslint.workingDirectories": ["rsconcept/frontend"],
|
||||
"[python]": {
|
||||
"editor.formatOnType": true,
|
||||
"editor.formatOnSave": false,
|
||||
"editor.defaultFormatter": "ms-python.autopep8",
|
||||
"editor.tabSize": 4,
|
||||
"editor.insertSpaces": true
|
||||
// "editor.defaultFormatter": "ms-python.autopep8"
|
||||
"editor.insertSpaces": true,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports": "explicit"
|
||||
}
|
||||
},
|
||||
"python.testing.unittestArgs": ["-v", "-s", "./tests", "-p", "test*.py"],
|
||||
"python.testing.pytestEnabled": false,
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
import copy
|
||||
from typing import Generic, Iterable, Optional, TypeVar
|
||||
|
||||
|
||||
ItemType = TypeVar("ItemType")
|
||||
|
||||
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
''' Models: Constituenta. '''
|
||||
import re
|
||||
|
||||
from django.db.models import (
|
||||
CASCADE, ForeignKey, Model, PositiveIntegerField, TextChoices,
|
||||
TextField, CharField, JSONField
|
||||
)
|
||||
from django.core.validators import MinValueValidator
|
||||
from django.db.models import (
|
||||
CASCADE,
|
||||
CharField,
|
||||
ForeignKey,
|
||||
JSONField,
|
||||
Model,
|
||||
PositiveIntegerField,
|
||||
TextChoices,
|
||||
TextField
|
||||
)
|
||||
from django.urls import reverse
|
||||
|
||||
from ..utils import apply_pattern
|
||||
|
||||
|
||||
_REF_ENTITY_PATTERN = re.compile(r'@{([^0-9\-].*?)\|.*?}')
|
||||
_GLOBAL_ID_PATTERN = re.compile(r'([XCSADFPT][0-9]+)') # cspell:disable-line
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
''' Models: Editor. '''
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from django.db.models import (
|
||||
Model, ForeignKey,
|
||||
CASCADE, DateTimeField
|
||||
)
|
||||
from django.db.models import CASCADE, DateTimeField, ForeignKey, Model
|
||||
|
||||
from apps.users.models import User
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .LibraryItem import LibraryItem
|
||||
|
||||
|
|
|
@ -1,14 +1,21 @@
|
|||
''' Models: LibraryItem. '''
|
||||
from django.db import transaction
|
||||
from django.db.models import (
|
||||
SET_NULL, ForeignKey, Model,
|
||||
TextChoices, TextField, BooleanField, CharField, DateTimeField
|
||||
SET_NULL,
|
||||
BooleanField,
|
||||
CharField,
|
||||
DateTimeField,
|
||||
ForeignKey,
|
||||
Model,
|
||||
TextChoices,
|
||||
TextField
|
||||
)
|
||||
|
||||
from apps.users.models import User
|
||||
from .Version import Version
|
||||
from .Subscription import Subscription
|
||||
|
||||
from .Editor import Editor
|
||||
from .Subscription import Subscription
|
||||
from .Version import Version
|
||||
|
||||
|
||||
class LibraryItemType(TextChoices):
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
''' Models: LibraryTemplate. '''
|
||||
from django.db.models import (
|
||||
CASCADE, ForeignKey, Model
|
||||
)
|
||||
from django.db.models import CASCADE, ForeignKey, Model
|
||||
|
||||
|
||||
class LibraryTemplate(Model):
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
''' Models: Subscription. '''
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from django.db.models import (
|
||||
CASCADE, ForeignKey, Model
|
||||
)
|
||||
from django.db.models import CASCADE, ForeignKey, Model
|
||||
|
||||
from apps.users.models import User
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .LibraryItem import LibraryItem
|
||||
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
''' Models: Version. '''
|
||||
from django.db.models import (
|
||||
CASCADE, ForeignKey, Model,
|
||||
TextField, CharField, DateTimeField, JSONField
|
||||
CASCADE,
|
||||
CharField,
|
||||
DateTimeField,
|
||||
ForeignKey,
|
||||
JSONField,
|
||||
Model,
|
||||
TextField
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
from .api_RSForm import RSForm
|
||||
from .Constituenta import Constituenta, CstType, _empty_forms
|
||||
from .LibraryItem import User, LibraryItem, LibraryItemType
|
||||
from .LibraryTemplate import LibraryTemplate
|
||||
from .Version import Version
|
||||
from .Editor import Editor
|
||||
from .LibraryItem import LibraryItem, LibraryItemType, User
|
||||
from .LibraryTemplate import LibraryTemplate
|
||||
from .Subscription import Subscription
|
||||
from .Version import Version
|
||||
|
|
|
@ -2,21 +2,17 @@
|
|||
from copy import deepcopy
|
||||
from typing import Optional, Union, cast
|
||||
|
||||
from cctext import Entity, Resolver, TermForm, extract_entities, split_grams
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
from django.db.models import QuerySet
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from cctext import (
|
||||
Resolver,
|
||||
Entity,
|
||||
extract_entities,
|
||||
split_grams,
|
||||
TermForm
|
||||
)
|
||||
from .. import messages as msg
|
||||
from ..graph import Graph
|
||||
from .api_RSLanguage import (
|
||||
extract_globals,
|
||||
get_type_prefix,
|
||||
generate_structure,
|
||||
get_type_prefix,
|
||||
guess_type,
|
||||
infer_template,
|
||||
is_base_set,
|
||||
|
@ -24,14 +20,10 @@ from .api_RSLanguage import (
|
|||
is_simple_expression,
|
||||
split_template
|
||||
)
|
||||
from .Constituenta import Constituenta, CstType
|
||||
from .LibraryItem import LibraryItem, LibraryItemType
|
||||
from .Constituenta import CstType, Constituenta
|
||||
from .Version import Version
|
||||
|
||||
from ..graph import Graph
|
||||
from .. import messages as msg
|
||||
|
||||
|
||||
_INSERT_LAST: int = -1
|
||||
|
||||
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
''' Models: Definitions and utility function for RSLanguage. '''
|
||||
import json
|
||||
import re
|
||||
from enum import IntEnum, unique
|
||||
from typing import Set, Tuple, cast
|
||||
from enum import IntEnum , unique
|
||||
|
||||
import pyconcept
|
||||
|
||||
from .. import messages as msg
|
||||
from .Constituenta import CstType
|
||||
|
||||
|
||||
_RE_GLOBALS = r'[XCSADFPT]\d+' # cspell:disable-line
|
||||
_RE_TEMPLATE = r'R\d+'
|
||||
_RE_COMPLEX_SYMBOLS = r'[∀∃×ℬ;|:]'
|
||||
|
|
|
@ -1,39 +1,35 @@
|
|||
''' REST API: Serializers. '''
|
||||
|
||||
from .basics import (
|
||||
TextSerializer,
|
||||
ExpressionSerializer,
|
||||
ExpressionParseSerializer,
|
||||
ResolverSerializer,
|
||||
ASTNodeSerializer,
|
||||
WordFormSerializer,
|
||||
MultiFormSerializer
|
||||
ExpressionParseSerializer,
|
||||
ExpressionSerializer,
|
||||
MultiFormSerializer,
|
||||
ResolverSerializer,
|
||||
TextSerializer,
|
||||
WordFormSerializer
|
||||
)
|
||||
from .data_access import (
|
||||
LibraryItemSerializer,
|
||||
LibraryItemCloneSerializer,
|
||||
RSFormSerializer,
|
||||
RSFormParseSerializer,
|
||||
VersionSerializer,
|
||||
VersionCreateSerializer,
|
||||
CstSerializer,
|
||||
CstTargetSerializer,
|
||||
CstMoveSerializer,
|
||||
CstSubstituteSerializer,
|
||||
CstCreateSerializer,
|
||||
CstRenameSerializer,
|
||||
CstListSerializer,
|
||||
InlineSynthesisSerializer
|
||||
CstMoveSerializer,
|
||||
CstRenameSerializer,
|
||||
CstSerializer,
|
||||
CstSubstituteSerializer,
|
||||
CstTargetSerializer,
|
||||
InlineSynthesisSerializer,
|
||||
LibraryItemCloneSerializer,
|
||||
LibraryItemSerializer,
|
||||
RSFormParseSerializer,
|
||||
RSFormSerializer,
|
||||
VersionCreateSerializer,
|
||||
VersionSerializer
|
||||
)
|
||||
from .io_files import FileSerializer, RSFormTRSSerializer, RSFormUploadSerializer
|
||||
from .io_pyconcept import PyConceptAdapter
|
||||
from .schema_typing import (
|
||||
NewCstResponse,
|
||||
NewMultiCstResponse,
|
||||
NewVersionResponse,
|
||||
ResultTextResponse
|
||||
)
|
||||
from .io_pyconcept import PyConceptAdapter
|
||||
from .io_files import (
|
||||
FileSerializer,
|
||||
RSFormUploadSerializer,
|
||||
RSFormTRSSerializer
|
||||
)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
''' Basic serializers that do not interact with database. '''
|
||||
from typing import cast
|
||||
from rest_framework import serializers
|
||||
|
||||
from cctext import Resolver, Reference, ReferenceType, EntityReference, SyntacticReference
|
||||
from cctext import EntityReference, Reference, ReferenceType, Resolver, SyntacticReference
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
class ExpressionSerializer(serializers.Serializer):
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
''' Serializers for persistent data manipulation. '''
|
||||
from typing import Optional, cast
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.db import transaction
|
||||
from rest_framework import serializers
|
||||
from rest_framework.serializers import PrimaryKeyRelatedField as PKField
|
||||
|
||||
from .basics import CstParseSerializer
|
||||
|
||||
from .io_pyconcept import PyConceptAdapter
|
||||
|
||||
from ..models import Constituenta, LibraryItem, RSForm, Version, CstType
|
||||
from .. import messages as msg
|
||||
from ..models import Constituenta, CstType, LibraryItem, RSForm, Version
|
||||
from .basics import CstParseSerializer
|
||||
from .io_pyconcept import PyConceptAdapter
|
||||
|
||||
|
||||
class LibraryItemSerializer(serializers.ModelSerializer):
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
''' Serializers for file interaction. '''
|
||||
from rest_framework import serializers
|
||||
from django.db import transaction
|
||||
from rest_framework import serializers
|
||||
|
||||
from ..utils import fix_old_references
|
||||
from ..models import Constituenta, LibraryItem, RSForm
|
||||
from .. import messages as msg
|
||||
from ..models import Constituenta, LibraryItem, RSForm
|
||||
from ..utils import fix_old_references
|
||||
|
||||
_CST_TYPE = 'constituenta'
|
||||
_TRS_TYPE = 'rsform'
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
''' Data adapter to interface with pyconcept module. '''
|
||||
import json
|
||||
from typing import Optional, cast, Union
|
||||
from typing import Optional, Union, cast
|
||||
|
||||
import pyconcept
|
||||
|
||||
from ..models import RSForm
|
||||
from .. import messages as msg
|
||||
from ..models import RSForm
|
||||
|
||||
|
||||
class PyConceptAdapter:
|
||||
|
|
|
@ -3,6 +3,7 @@ from rest_framework import serializers
|
|||
|
||||
from .data_access import RSFormParseSerializer
|
||||
|
||||
|
||||
class ResultTextResponse(serializers.Serializer):
|
||||
''' Serializer: Text result of a function call. '''
|
||||
result = serializers.CharField()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
''' Tests. '''
|
||||
from .t_imports import *
|
||||
from .s_views import *
|
||||
from .s_models.t_RSForm import *
|
||||
from .t_serializers import *
|
||||
from .s_views import *
|
||||
from .t_graph import *
|
||||
from .t_imports import *
|
||||
from .t_serializers import *
|
||||
from .t_utils import *
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
''' Tests for REST API. '''
|
||||
from .t_Constituenta import *
|
||||
from .t_LibraryItem import *
|
||||
from .t_Editor import *
|
||||
from .t_Subscription import *
|
||||
from .t_LibraryItem import *
|
||||
from .t_RSForm import *
|
||||
from .t_Subscription import *
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
''' Testing models: Constituenta. '''
|
||||
from django.test import TestCase
|
||||
from django.db.utils import IntegrityError
|
||||
from django.forms import ValidationError
|
||||
from django.test import TestCase
|
||||
|
||||
from apps.rsform.models import (
|
||||
Constituenta, CstType,
|
||||
LibraryItem, LibraryItemType
|
||||
)
|
||||
from apps.rsform.models import Constituenta, CstType, LibraryItem, LibraryItemType
|
||||
|
||||
|
||||
class TestConstituenta(TestCase):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
''' Testing models: Editor. '''
|
||||
from django.test import TestCase
|
||||
|
||||
from apps.rsform.models import LibraryItem, LibraryItemType, User, Editor
|
||||
from apps.rsform.models import Editor, LibraryItem, LibraryItemType, User
|
||||
|
||||
|
||||
class TestEditor(TestCase):
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
''' Testing models: LibraryItem. '''
|
||||
from django.test import TestCase
|
||||
|
||||
from apps.rsform.models import (
|
||||
LibraryItem, LibraryItemType, Subscription,
|
||||
User
|
||||
)
|
||||
from apps.rsform.models import LibraryItem, LibraryItemType, Subscription, User
|
||||
|
||||
|
||||
class TestLibraryItem(TestCase):
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
''' Testing models: api_RSForm. '''
|
||||
from django.test import TestCase
|
||||
from django.forms import ValidationError
|
||||
from django.test import TestCase
|
||||
|
||||
from apps.rsform.models import (
|
||||
RSForm, Constituenta, CstType,
|
||||
User
|
||||
)
|
||||
from apps.rsform.models import Constituenta, CstType, RSForm, User
|
||||
|
||||
|
||||
class TestRSForm(TestCase):
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
''' Testing imported pyconcept functionality '''
|
||||
from unittest import TestCase
|
||||
import json
|
||||
from unittest import TestCase as RegularTest
|
||||
|
||||
import pyconcept as pc
|
||||
import json
|
||||
|
||||
|
||||
class TestIntegrations(TestCase):
|
||||
class TestIntegrations(RegularTest):
|
||||
|
||||
|
||||
def test_convert_to_ascii(self):
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
''' Testing serializers '''
|
||||
from django.test import TestCase
|
||||
|
||||
from apps.rsform.serializers import ExpressionSerializer
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
''' Unit tests: utils. '''
|
||||
import unittest
|
||||
import re
|
||||
import unittest
|
||||
|
||||
from apps.rsform.utils import apply_pattern, fix_old_references
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
from apps.rsform.models import LibraryItem
|
||||
|
||||
|
||||
def response_contains(response, item: LibraryItem) -> bool:
|
||||
''' Check if response contains specific item. '''
|
||||
return any(x for x in response.data if x['id'] == item.pk)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
''' Routing: RSForms for conceptual schemas. '''
|
||||
from django.urls import path, include
|
||||
from django.urls import include, path
|
||||
from rest_framework import routers
|
||||
|
||||
from . import views
|
||||
|
||||
library_router = routers.SimpleRouter(trailing_slash=False)
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
''' Utility functions '''
|
||||
import json
|
||||
from io import BytesIO
|
||||
import re
|
||||
from io import BytesIO
|
||||
from zipfile import ZipFile
|
||||
from rest_framework.permissions import BasePermission, IsAuthenticated
|
||||
|
||||
from rest_framework.permissions import BasePermission, IsAuthenticated
|
||||
|
||||
# Name for JSON inside Exteor files archive
|
||||
EXTEOR_INNER_FILENAME = 'document.json'
|
||||
|
|
|
@ -1,29 +1,8 @@
|
|||
''' REST API: Endpoint processors. '''
|
||||
from .library import (
|
||||
LibraryActiveView,
|
||||
LibraryAdminView,
|
||||
LibraryTemplatesView,
|
||||
LibraryViewSet
|
||||
)
|
||||
from .cctext import generate_lexeme, inflect, parse_text
|
||||
from .constituents import ConstituentAPIView
|
||||
from .versions import (
|
||||
VersionViewset,
|
||||
create_version,
|
||||
export_file,
|
||||
retrieve_version
|
||||
)
|
||||
from .rsforms import (
|
||||
RSFormViewSet, TrsImportView,
|
||||
create_rsform
|
||||
)
|
||||
from .library import LibraryActiveView, LibraryAdminView, LibraryTemplatesView, LibraryViewSet
|
||||
from .operations import inline_synthesis
|
||||
from .cctext import (
|
||||
parse_text,
|
||||
generate_lexeme,
|
||||
inflect
|
||||
)
|
||||
from .rslang import (
|
||||
convert_to_ascii,
|
||||
convert_to_math,
|
||||
parse_expression
|
||||
)
|
||||
from .rsforms import RSFormViewSet, TrsImportView, create_rsform
|
||||
from .rslang import convert_to_ascii, convert_to_math, parse_expression
|
||||
from .versions import VersionViewset, create_version, export_file, retrieve_version
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
''' Endpoints for cctext. '''
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.request import Request
|
||||
import cctext as ct
|
||||
from drf_spectacular.utils import extend_schema
|
||||
from rest_framework import status as c
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
import cctext as ct
|
||||
from .. import serializers as s
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
''' Endpoints for Constituenta. '''
|
||||
from rest_framework import generics, permissions
|
||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
||||
from rest_framework import generics, permissions
|
||||
|
||||
from .. import models as m
|
||||
from .. import serializers as s
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
''' Endpoints for library. '''
|
||||
from copy import deepcopy
|
||||
from typing import cast
|
||||
|
||||
from django.db import transaction
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from django.db.models import Q
|
||||
from rest_framework import viewsets, filters, generics, permissions
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.request import Request
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
||||
from rest_framework import filters, generics, permissions
|
||||
from rest_framework import status as c
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
from .. import models as m
|
||||
from .. import serializers as s
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
''' Endpoints for RSForm. '''
|
||||
from typing import cast
|
||||
|
||||
from django.db import transaction
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.request import Request
|
||||
from drf_spectacular.utils import extend_schema
|
||||
from rest_framework import status as c
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
from .. import models as m
|
||||
from .. import serializers as s
|
||||
|
||||
|
||||
@extend_schema(
|
||||
summary='Inline synthesis: merge one schema into another',
|
||||
tags=['Operations'],
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
''' Endpoints for RSForm. '''
|
||||
import json
|
||||
from typing import cast, Union
|
||||
from django.db import transaction
|
||||
from django.http import HttpResponse
|
||||
from rest_framework import views, viewsets, generics, permissions
|
||||
from rest_framework.decorators import action, api_view
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.request import Request
|
||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
||||
from rest_framework import status as c
|
||||
from typing import Union, cast
|
||||
|
||||
import pyconcept
|
||||
from django.db import transaction
|
||||
from django.http import HttpResponse
|
||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework import status as c
|
||||
from rest_framework import views, viewsets
|
||||
from rest_framework.decorators import action, api_view
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
from .. import messages as msg
|
||||
from .. import models as m
|
||||
from .. import serializers as s
|
||||
from .. import utils
|
||||
from .. import messages as msg
|
||||
|
||||
|
||||
@extend_schema(tags=['RSForm'])
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
''' Endpoints pyconcept formal language parsing. '''
|
||||
import json
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.request import Request
|
||||
from drf_spectacular.utils import extend_schema
|
||||
from rest_framework import status as c
|
||||
|
||||
import pyconcept
|
||||
from drf_spectacular.utils import extend_schema
|
||||
from rest_framework import status as c
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
from .. import serializers as s
|
||||
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
''' Endpoints for versions. '''
|
||||
from typing import cast
|
||||
|
||||
from django.http import HttpResponse
|
||||
from rest_framework import generics, permissions, viewsets
|
||||
from rest_framework.decorators import action, api_view, permission_classes
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.request import Request
|
||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework import status as c
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.decorators import action, api_view, permission_classes
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
from .. import models as m
|
||||
from .. import serializers as s
|
||||
|
|
|
@ -8,4 +8,4 @@ class UsersConfig(AppConfig):
|
|||
name = 'apps.users'
|
||||
|
||||
def ready(self):
|
||||
import apps.users.signals # pylint: disable=unused-import,import-outside-toplevel
|
||||
import apps.users.signals # pylint: disable=unused-import,import-outside-toplevel
|
||||
|
|
|
@ -4,8 +4,9 @@ from django.contrib.auth.password_validation import validate_password
|
|||
from rest_framework import serializers
|
||||
|
||||
from apps.rsform.models import Subscription
|
||||
from . import models
|
||||
|
||||
from . import messages as msg
|
||||
from . import models
|
||||
|
||||
|
||||
class NonFieldErrorSerializer(serializers.Serializer):
|
||||
|
|
|
@ -3,9 +3,7 @@ from django.core.mail import send_mail
|
|||
from django.dispatch import receiver
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.html import strip_tags
|
||||
|
||||
from django_rest_passwordreset.signals import reset_password_token_created # type: ignore
|
||||
|
||||
from django_rest_passwordreset.signals import reset_password_token_created # type: ignore
|
||||
|
||||
_EMAIL_NOREPLY = 'noreply.portal@yandex.ru'
|
||||
_EMAIL_SUBJECT = 'Восстановление пароля КонцептПортал'
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
''' Tests. '''
|
||||
from .t_views import *
|
||||
from .t_serializers import *
|
||||
from .t_views import *
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
''' Testing serializers '''
|
||||
from rest_framework.test import APITestCase, APIRequestFactory, APIClient
|
||||
from rest_framework.test import APIClient, APIRequestFactory, APITestCase
|
||||
|
||||
from apps.users.models import User
|
||||
from apps.users.serializers import LoginSerializer
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
''' Testing views '''
|
||||
from rest_framework.test import APITestCase, APIClient
|
||||
from rest_framework.test import APIClient, APITestCase
|
||||
|
||||
from apps.users.models import User
|
||||
from apps.rsform.models import LibraryItem, LibraryItemType
|
||||
from apps.users.models import User
|
||||
|
||||
|
||||
class TestUserAPIViews(APITestCase):
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
''' Routing: User profile and Authorization. '''
|
||||
from django.urls import path
|
||||
from django_rest_passwordreset.views import reset_password_confirm # type: ignore
|
||||
from django_rest_passwordreset.views import reset_password_request_token # type: ignore
|
||||
from django_rest_passwordreset.views import reset_password_validate_token # type: ignore
|
||||
from . import views
|
||||
from django_rest_passwordreset.views import reset_password_confirm # type: ignore
|
||||
from django_rest_passwordreset.views import reset_password_request_token # type: ignore
|
||||
from django_rest_passwordreset.views import reset_password_validate_token # type: ignore
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
path('api/auth', views.AuthAPIView.as_view()),
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
''' REST API: User profile and Authorization. '''
|
||||
from django.contrib.auth import login, logout
|
||||
|
||||
from rest_framework import status as c
|
||||
from rest_framework import permissions, views, generics
|
||||
from rest_framework.response import Response
|
||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework import status as c
|
||||
from rest_framework import views
|
||||
from rest_framework.response import Response
|
||||
|
||||
from . import serializers as s
|
||||
from . import models as m
|
||||
from . import serializers as s
|
||||
|
||||
|
||||
class LoginAPIView(views.APIView):
|
||||
|
|
|
@ -10,11 +10,12 @@ For the full list of settings and their values, see
|
|||
https://docs.djangoproject.com/en/4.1/ref/settings/
|
||||
'''
|
||||
|
||||
import sys
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def _get_secret(key: str, default):
|
||||
value = os.environ.get(key, default)
|
||||
if os.path.isfile(value):
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
''' Main URL router '''
|
||||
from django.contrib import admin
|
||||
from django.urls import path, include
|
||||
from django.conf import settings
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib import admin
|
||||
from django.urls import include, path
|
||||
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path('admin', admin.site.urls),
|
||||
path('api/', include('apps.rsform.urls')),
|
||||
|
|
417
rsconcept/frontend/package-lock.json
generated
417
rsconcept/frontend/package-lock.json
generated
|
@ -12,7 +12,7 @@
|
|||
"@tanstack/react-table": "^8.17.3",
|
||||
"@uiw/codemirror-themes": "^4.22.1",
|
||||
"@uiw/react-codemirror": "^4.22.1",
|
||||
"axios": "^1.6.8",
|
||||
"axios": "^1.7.2",
|
||||
"clsx": "^2.1.1",
|
||||
"framer-motion": "^10.18.0",
|
||||
"js-file-download": "^0.4.12",
|
||||
|
@ -28,18 +28,18 @@
|
|||
"react-tabs": "^6.0.2",
|
||||
"react-toastify": "^9.1.3",
|
||||
"react-tooltip": "^5.26.4",
|
||||
"reagraph": "^4.17.4",
|
||||
"reagraph": "^4.18.1",
|
||||
"use-debounce": "^10.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@lezer/generator": "^1.7.0",
|
||||
"@types/jest": "^29.5.12",
|
||||
"@types/node": "^20.12.12",
|
||||
"@types/react": "^18.3.2",
|
||||
"@types/react": "^18.3.3",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||
"@typescript-eslint/parser": "^6.21.0",
|
||||
"@vitejs/plugin-react": "^4.2.1",
|
||||
"@vitejs/plugin-react": "^4.3.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
|
@ -49,7 +49,7 @@
|
|||
"jest": "^29.7.0",
|
||||
"postcss": "^8.4.38",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"ts-jest": "^29.1.2",
|
||||
"ts-jest": "^29.1.3",
|
||||
"typescript": "^5.4.5",
|
||||
"vite": "^4.5.3"
|
||||
}
|
||||
|
@ -81,12 +81,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
"version": "7.24.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
|
||||
"integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz",
|
||||
"integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/highlight": "^7.24.2",
|
||||
"@babel/highlight": "^7.24.6",
|
||||
"picocolors": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -94,30 +94,30 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/compat-data": {
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz",
|
||||
"integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz",
|
||||
"integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/core": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz",
|
||||
"integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz",
|
||||
"integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": "^2.2.0",
|
||||
"@babel/code-frame": "^7.24.2",
|
||||
"@babel/generator": "^7.24.5",
|
||||
"@babel/helper-compilation-targets": "^7.23.6",
|
||||
"@babel/helper-module-transforms": "^7.24.5",
|
||||
"@babel/helpers": "^7.24.5",
|
||||
"@babel/parser": "^7.24.5",
|
||||
"@babel/template": "^7.24.0",
|
||||
"@babel/traverse": "^7.24.5",
|
||||
"@babel/types": "^7.24.5",
|
||||
"@babel/code-frame": "^7.24.6",
|
||||
"@babel/generator": "^7.24.6",
|
||||
"@babel/helper-compilation-targets": "^7.24.6",
|
||||
"@babel/helper-module-transforms": "^7.24.6",
|
||||
"@babel/helpers": "^7.24.6",
|
||||
"@babel/parser": "^7.24.6",
|
||||
"@babel/template": "^7.24.6",
|
||||
"@babel/traverse": "^7.24.6",
|
||||
"@babel/types": "^7.24.6",
|
||||
"convert-source-map": "^2.0.0",
|
||||
"debug": "^4.1.0",
|
||||
"gensync": "^1.0.0-beta.2",
|
||||
|
@ -142,12 +142,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz",
|
||||
"integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz",
|
||||
"integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.5",
|
||||
"@babel/types": "^7.24.6",
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.25",
|
||||
"jsesc": "^2.5.1"
|
||||
|
@ -157,25 +157,25 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/helper-annotate-as-pure": {
|
||||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
|
||||
"integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz",
|
||||
"integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.22.5"
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-compilation-targets": {
|
||||
"version": "7.23.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
|
||||
"integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz",
|
||||
"integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/compat-data": "^7.23.5",
|
||||
"@babel/helper-validator-option": "^7.23.5",
|
||||
"@babel/compat-data": "^7.24.6",
|
||||
"@babel/helper-validator-option": "^7.24.6",
|
||||
"browserslist": "^4.22.2",
|
||||
"lru-cache": "^5.1.1",
|
||||
"semver": "^6.3.1"
|
||||
|
@ -194,62 +194,62 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/helper-environment-visitor": {
|
||||
"version": "7.22.20",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
|
||||
"integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz",
|
||||
"integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-function-name": {
|
||||
"version": "7.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
|
||||
"integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz",
|
||||
"integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.22.15",
|
||||
"@babel/types": "^7.23.0"
|
||||
"@babel/template": "^7.24.6",
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-hoist-variables": {
|
||||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
|
||||
"integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz",
|
||||
"integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.22.5"
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-module-imports": {
|
||||
"version": "7.24.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
|
||||
"integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz",
|
||||
"integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.0"
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-module-transforms": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
|
||||
"integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz",
|
||||
"integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-environment-visitor": "^7.22.20",
|
||||
"@babel/helper-module-imports": "^7.24.3",
|
||||
"@babel/helper-simple-access": "^7.24.5",
|
||||
"@babel/helper-split-export-declaration": "^7.24.5",
|
||||
"@babel/helper-validator-identifier": "^7.24.5"
|
||||
"@babel/helper-environment-visitor": "^7.24.6",
|
||||
"@babel/helper-module-imports": "^7.24.6",
|
||||
"@babel/helper-simple-access": "^7.24.6",
|
||||
"@babel/helper-split-export-declaration": "^7.24.6",
|
||||
"@babel/helper-validator-identifier": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
|
@ -259,86 +259,85 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/helper-plugin-utils": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
|
||||
"integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz",
|
||||
"integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-simple-access": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
|
||||
"integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz",
|
||||
"integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.5"
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-split-export-declaration": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
|
||||
"integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz",
|
||||
"integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.5"
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
|
||||
"integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz",
|
||||
"integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
|
||||
"integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz",
|
||||
"integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-option": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
|
||||
"integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz",
|
||||
"integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helpers": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz",
|
||||
"integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz",
|
||||
"integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.24.0",
|
||||
"@babel/traverse": "^7.24.5",
|
||||
"@babel/types": "^7.24.5"
|
||||
"@babel/template": "^7.24.6",
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/highlight": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
|
||||
"integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz",
|
||||
"integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.24.5",
|
||||
"@babel/helper-validator-identifier": "^7.24.6",
|
||||
"chalk": "^2.4.2",
|
||||
"js-tokens": "^4.0.0",
|
||||
"picocolors": "^1.0.0"
|
||||
|
@ -348,9 +347,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz",
|
||||
"integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz",
|
||||
"integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==",
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
|
@ -425,12 +424,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-jsx": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz",
|
||||
"integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz",
|
||||
"integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.24.0"
|
||||
"@babel/helper-plugin-utils": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
|
@ -534,13 +533,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-typescript": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz",
|
||||
"integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz",
|
||||
"integrity": "sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.24.0"
|
||||
"@babel/helper-plugin-utils": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
|
@ -550,13 +549,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-transform-react-jsx-self": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.5.tgz",
|
||||
"integrity": "sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz",
|
||||
"integrity": "sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.24.5"
|
||||
"@babel/helper-plugin-utils": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
|
@ -566,13 +565,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-transform-react-jsx-source": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz",
|
||||
"integrity": "sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz",
|
||||
"integrity": "sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.24.0"
|
||||
"@babel/helper-plugin-utils": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
|
@ -582,9 +581,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz",
|
||||
"integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz",
|
||||
"integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
|
@ -594,33 +593,33 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/template": {
|
||||
"version": "7.24.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
|
||||
"integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz",
|
||||
"integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.23.5",
|
||||
"@babel/parser": "^7.24.0",
|
||||
"@babel/types": "^7.24.0"
|
||||
"@babel/code-frame": "^7.24.6",
|
||||
"@babel/parser": "^7.24.6",
|
||||
"@babel/types": "^7.24.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
|
||||
"integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz",
|
||||
"integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.24.2",
|
||||
"@babel/generator": "^7.24.5",
|
||||
"@babel/helper-environment-visitor": "^7.22.20",
|
||||
"@babel/helper-function-name": "^7.23.0",
|
||||
"@babel/helper-hoist-variables": "^7.22.5",
|
||||
"@babel/helper-split-export-declaration": "^7.24.5",
|
||||
"@babel/parser": "^7.24.5",
|
||||
"@babel/types": "^7.24.5",
|
||||
"@babel/code-frame": "^7.24.6",
|
||||
"@babel/generator": "^7.24.6",
|
||||
"@babel/helper-environment-visitor": "^7.24.6",
|
||||
"@babel/helper-function-name": "^7.24.6",
|
||||
"@babel/helper-hoist-variables": "^7.24.6",
|
||||
"@babel/helper-split-export-declaration": "^7.24.6",
|
||||
"@babel/parser": "^7.24.6",
|
||||
"@babel/types": "^7.24.6",
|
||||
"debug": "^4.3.1",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
|
@ -629,13 +628,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz",
|
||||
"integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
|
||||
"version": "7.24.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz",
|
||||
"integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.24.1",
|
||||
"@babel/helper-validator-identifier": "^7.24.5",
|
||||
"@babel/helper-string-parser": "^7.24.6",
|
||||
"@babel/helper-validator-identifier": "^7.24.6",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -694,9 +693,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@codemirror/lint": {
|
||||
"version": "6.7.1",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.7.1.tgz",
|
||||
"integrity": "sha512-rELba6QJD20/bNXWP/cKTGLrwVEcpa2ViwULCV03ONcY1Je85++7sczVRUlnE4TJMjatx3IJTz6HX4NXi+moXw==",
|
||||
"version": "6.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.0.tgz",
|
||||
"integrity": "sha512-lsFofvaw0lnPRJlQylNsC4IRt/1lI4OD/yYslrSGVndOJfStc58v+8p9dgGiD90ktOfL7OhBWns1ZETYgz0EJA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.0.0",
|
||||
|
@ -2939,9 +2938,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@types/babel__traverse": {
|
||||
"version": "7.20.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
|
||||
"integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
|
||||
"version": "7.20.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
|
||||
"integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -3048,9 +3047,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/react": {
|
||||
"version": "18.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz",
|
||||
"integrity": "sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==",
|
||||
"version": "18.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz",
|
||||
"integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
|
@ -3106,9 +3105,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/three": {
|
||||
"version": "0.164.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/three/-/three-0.164.0.tgz",
|
||||
"integrity": "sha512-SFDofn9dJVrE+1DKta7xj7lc4ru7B3S3yf10NsxOserW57aQlB6GxtAS1UK5To3LfEMN5HUHMu3n5v+M5rApgA==",
|
||||
"version": "0.164.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/three/-/three-0.164.1.tgz",
|
||||
"integrity": "sha512-dR/trWDhyaNqJV38rl1TonlCA9DpnX7OPYDWD81bmBGn/+uEc3+zNalFxQcV4FlPTeDBhCY3SFWKvK6EJwL88g==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
|
@ -3438,17 +3437,17 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@vitejs/plugin-react": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz",
|
||||
"integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==",
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.0.tgz",
|
||||
"integrity": "sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.23.5",
|
||||
"@babel/plugin-transform-react-jsx-self": "^7.23.3",
|
||||
"@babel/plugin-transform-react-jsx-source": "^7.23.3",
|
||||
"@babel/core": "^7.24.5",
|
||||
"@babel/plugin-transform-react-jsx-self": "^7.24.5",
|
||||
"@babel/plugin-transform-react-jsx-source": "^7.24.1",
|
||||
"@types/babel__core": "^7.20.5",
|
||||
"react-refresh": "^0.14.0"
|
||||
"react-refresh": "^0.14.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.18.0 || >=16.0.0"
|
||||
|
@ -3593,6 +3592,7 @@
|
|||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
|
||||
"integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
|
||||
"deprecated": "This package is no longer supported.",
|
||||
"license": "ISC",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
|
@ -3672,9 +3672,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
|
||||
"integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
|
||||
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
|
@ -3952,13 +3952,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fill-range": "^7.0.1"
|
||||
"fill-range": "^7.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
|
@ -4074,9 +4074,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001620",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
|
||||
"integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
|
||||
"version": "1.0.30001621",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz",
|
||||
"integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
|
@ -4876,9 +4876,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.774",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz",
|
||||
"integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==",
|
||||
"version": "1.4.782",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.782.tgz",
|
||||
"integrity": "sha512-JUfU61e8tr+i5Y1FKXcKs+Xe+rJ+CEqm4cgv1kMihPE2EvYHmYyVr3Im/+1+Z5B29Be2EEGCZCwAc6Tazdl1Yg==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/ellipsize": {
|
||||
|
@ -5472,9 +5472,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -5699,6 +5699,7 @@
|
|||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
|
||||
"integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
|
||||
"deprecated": "This package is no longer supported.",
|
||||
"license": "ISC",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
|
@ -6172,6 +6173,7 @@
|
|||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
||||
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
|
||||
"devOptional": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
|
@ -6436,9 +6438,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/jackspeak": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
|
||||
"integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
|
||||
"integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
|
||||
"dev": true,
|
||||
"license": "BlueOak-1.0.0",
|
||||
"dependencies": {
|
||||
|
@ -8456,13 +8458,13 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||
"version": "4.0.7",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
|
||||
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"braces": "^3.0.2",
|
||||
"braces": "^3.0.3",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -8733,6 +8735,7 @@
|
|||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
|
||||
"integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
|
||||
"deprecated": "This package is no longer supported.",
|
||||
"license": "ISC",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
|
@ -9243,9 +9246,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/postcss-selector-parser": {
|
||||
"version": "6.0.16",
|
||||
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
|
||||
"integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
|
||||
"integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -9752,9 +9755,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/reagraph": {
|
||||
"version": "4.17.4",
|
||||
"resolved": "https://registry.npmjs.org/reagraph/-/reagraph-4.17.4.tgz",
|
||||
"integrity": "sha512-tQ19t4k3rRCRVShxUosyzNKCmlcxy3dGOw2P+0qQWgK8L8H5GCI77aNIXDWu3P20VfD134SYvpY2/oYhj9ojdw==",
|
||||
"version": "4.18.1",
|
||||
"resolved": "https://registry.npmjs.org/reagraph/-/reagraph-4.18.1.tgz",
|
||||
"integrity": "sha512-a6EAQ3nAHQoemF6UQLZ+xaXvROZuqhxCUYiViNPl+dnn/Few8kyrMselpUlyC/QTtfk1XiCsFnz1aCyI0GNFWQ==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@react-spring/three": "9.6.1",
|
||||
|
@ -10377,17 +10380,17 @@
|
|||
}
|
||||
},
|
||||
"node_modules/sucrase/node_modules/glob": {
|
||||
"version": "10.3.15",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz",
|
||||
"integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==",
|
||||
"version": "10.4.1",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
|
||||
"integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"foreground-child": "^3.1.0",
|
||||
"jackspeak": "^2.3.6",
|
||||
"minimatch": "^9.0.1",
|
||||
"minipass": "^7.0.4",
|
||||
"path-scurry": "^1.11.0"
|
||||
"jackspeak": "^3.1.2",
|
||||
"minimatch": "^9.0.4",
|
||||
"minipass": "^7.1.2",
|
||||
"path-scurry": "^1.11.1"
|
||||
},
|
||||
"bin": {
|
||||
"glob": "dist/esm/bin.mjs"
|
||||
|
@ -10399,10 +10402,26 @@
|
|||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/sucrase/node_modules/minimatch": {
|
||||
"version": "9.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
|
||||
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/sucrase/node_modules/minipass": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
|
||||
"integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
|
||||
"version": "7.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
|
||||
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"engines": {
|
||||
|
@ -10724,9 +10743,9 @@
|
|||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/ts-jest": {
|
||||
"version": "29.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
|
||||
"integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
|
||||
"version": "29.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.3.tgz",
|
||||
"integrity": "sha512-6L9qz3ginTd1NKhOxmkP0qU3FyKjj5CPoY+anszfVn6Pmv/RIKzhiMCsH7Yb7UvJR9I2A64rm4zQl531s2F1iw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -10743,10 +10762,11 @@
|
|||
"ts-jest": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.10.0 || ^18.0.0 || >=20.0.0"
|
||||
"node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": ">=7.0.0-beta.0 <8",
|
||||
"@jest/transform": "^29.0.0",
|
||||
"@jest/types": "^29.0.0",
|
||||
"babel-jest": "^29.0.0",
|
||||
"jest": "^29.0.0",
|
||||
|
@ -10756,6 +10776,9 @@
|
|||
"@babel/core": {
|
||||
"optional": true
|
||||
},
|
||||
"@jest/transform": {
|
||||
"optional": true
|
||||
},
|
||||
"@jest/types": {
|
||||
"optional": true
|
||||
},
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
"@tanstack/react-table": "^8.17.3",
|
||||
"@uiw/codemirror-themes": "^4.22.1",
|
||||
"@uiw/react-codemirror": "^4.22.1",
|
||||
"axios": "^1.6.8",
|
||||
"axios": "^1.7.2",
|
||||
"clsx": "^2.1.1",
|
||||
"framer-motion": "^10.18.0",
|
||||
"js-file-download": "^0.4.12",
|
||||
|
@ -32,18 +32,18 @@
|
|||
"react-tabs": "^6.0.2",
|
||||
"react-toastify": "^9.1.3",
|
||||
"react-tooltip": "^5.26.4",
|
||||
"reagraph": "^4.17.4",
|
||||
"reagraph": "^4.18.1",
|
||||
"use-debounce": "^10.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@lezer/generator": "^1.7.0",
|
||||
"@types/jest": "^29.5.12",
|
||||
"@types/node": "^20.12.12",
|
||||
"@types/react": "^18.3.2",
|
||||
"@types/react": "^18.3.3",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||
"@typescript-eslint/parser": "^6.21.0",
|
||||
"@vitejs/plugin-react": "^4.2.1",
|
||||
"@vitejs/plugin-react": "^4.3.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
|
@ -53,7 +53,7 @@
|
|||
"jest": "^29.7.0",
|
||||
"postcss": "^8.4.38",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"ts-jest": "^29.1.2",
|
||||
"ts-jest": "^29.1.3",
|
||||
"typescript": "^5.4.5",
|
||||
"vite": "^4.5.3"
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue
Block a user