Compare commits

...

3 Commits

Author SHA1 Message Date
ec7182319d membershipworks: Avoid duplicating Transactions with NULL sid field
All checks were successful
Ruff / ruff (push) Successful in 1m0s
Test / test (push) Successful in 3m57s
Treat NULL in Transaction.sid as non-distinct in the UNIQUE constraint
2024-12-06 15:08:20 -05:00
01c469b0ce Bump dependencies 2024-12-06 02:12:50 -05:00
86b1ac42b2 doorcontrol: Fix setting is_26bit in hid.Credential.from_code() 2024-12-06 02:09:50 -05:00
8 changed files with 343 additions and 276 deletions

View File

@ -8,19 +8,19 @@ repos:
- id: check-added-large-files - id: check-added-large-files
- repo: https://github.com/Riverside-Healthcare/djLint - repo: https://github.com/Riverside-Healthcare/djLint
rev: v1.36.0 rev: v1.36.3
hooks: hooks:
- id: djlint-django - id: djlint-django
- id: djlint-reformat-django - id: djlint-reformat-django
- repo: https://github.com/astral-sh/ruff-pre-commit - repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.2 rev: v0.8.2
hooks: hooks:
- id: ruff - id: ruff
- id: ruff-format - id: ruff-format
- repo: https://github.com/pdm-project/pdm - repo: https://github.com/pdm-project/pdm
rev: 2.20.0.post1 rev: 2.21.0
hooks: hooks:
- id: pdm-lock-check - id: pdm-lock-check

View File

@ -43,7 +43,7 @@ class Credential:
) )
bits[6] = cls.even_parity(bits) bits[6] = cls.even_parity(bits)
bits[31] = cls.odd_parity(bits) bits[31] = cls.odd_parity(bits)
return cls(bitstring.Bits(bits)) return cls(bitstring.Bits(bits), is_26bit=True)
@classmethod @classmethod
def from_26bit_hex(cls, hex_code: str) -> "Credential": def from_26bit_hex(cls, hex_code: str) -> "Credential":

View File

@ -0,0 +1,44 @@
# Generated by Django 5.1.4 on 2024-12-06 19:44
import itertools
from django.db import migrations, models
def remove_duplicates(apps, schema_editor):
Transaction = apps.get_model("membershipworks", "Transaction")
for _, group in itertools.groupby(
Transaction.objects.filter(sid=None), key=lambda t: t.timestamp
):
dupes = list(group)
first_in_group = dupes.pop()
for t in dupes:
if any(
getattr(t, field.name) != getattr(first_in_group, field.name)
for field in Transaction._meta.get_fields()
if field.name != "id"
):
raise Exception("Transaction doesn't match!")
t.delete()
class Migration(migrations.Migration):
dependencies = [
("membershipworks", "0005_historicalmember_nfc_card_number_and_more"),
]
operations = [
migrations.RunPython(remove_duplicates, atomic=True),
migrations.RemoveConstraint(
model_name="transaction",
name="unique_sid_timestamp",
),
migrations.AddConstraint(
model_name="transaction",
constraint=models.UniqueConstraint(
fields=("sid", "timestamp"),
name="unique_sid_timestamp",
nulls_distinct=False,
),
),
]

View File

@ -377,7 +377,11 @@ class Transaction(BaseModel):
class Meta: class Meta:
db_table = "transactions" db_table = "transactions"
constraints = [ constraints = [
models.UniqueConstraint("sid", "timestamp", name="unique_sid_timestamp") models.UniqueConstraint(
fields=["sid", "timestamp"],
name="unique_sid_timestamp",
nulls_distinct=False,
)
] ]
def __str__(self): def __str__(self):

View File

@ -13,10 +13,10 @@
"@types/jquery": "^3.5.32", "@types/jquery": "^3.5.32",
"@types/tabulator-tables": "^6.2.3", "@types/tabulator-tables": "^6.2.3",
"globby": "^14.0.2", "globby": "^14.0.2",
"prettier": "^3.3.3", "prettier": "^3.4.2",
"sass": "^1.80.6", "sass": "^1.82.0",
"typescript": "^5.6.3", "typescript": "^5.7.2",
"vite": "^5.4.10" "vite": "^6.0.3"
}, },
"dependencies": { "dependencies": {
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",

66
pdm.lock generated
View File

@ -5,7 +5,7 @@
groups = ["default", "debug", "dev", "lint", "server", "typing"] groups = ["default", "debug", "dev", "lint", "server", "typing"]
strategy = ["inherit_metadata"] strategy = ["inherit_metadata"]
lock_version = "4.5.0" lock_version = "4.5.0"
content_hash = "sha256:6ff29c3c933c9e42658874ca80b75ba25f6df9ad51917b7b145630d7a3cbf772" content_hash = "sha256:47e7818f755b3b8636d346c37afd7287cec977605c1bcdb3eccbb78e6e2823af"
[[metadata.targets]] [[metadata.targets]]
requires_python = "==3.11.*" requires_python = "==3.11.*"
@ -374,7 +374,7 @@ files = [
[[package]] [[package]]
name = "django" name = "django"
version = "5.1.3" version = "5.1.4"
requires_python = ">=3.10" requires_python = ">=3.10"
summary = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." summary = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
groups = ["default", "debug", "dev", "typing"] groups = ["default", "debug", "dev", "typing"]
@ -385,8 +385,8 @@ dependencies = [
"tzdata; sys_platform == \"win32\"", "tzdata; sys_platform == \"win32\"",
] ]
files = [ files = [
{file = "Django-5.1.3-py3-none-any.whl", hash = "sha256:8b38a9a12da3ae00cb0ba72da985ec4b14de6345046b1e174b1fd7254398f818"}, {file = "Django-5.1.4-py3-none-any.whl", hash = "sha256:236e023f021f5ce7dee5779de7b286565fdea5f4ab86bae5338e3f7b69896cf0"},
{file = "Django-5.1.3.tar.gz", hash = "sha256:c0fa0e619c39325a169208caef234f90baa925227032ad3f44842ba14d75234a"}, {file = "Django-5.1.4.tar.gz", hash = "sha256:de450c09e91879fa5a307f696e57c851955c910a438a35e6b4c895e86bedc82a"},
] ]
[[package]] [[package]]
@ -483,7 +483,7 @@ files = [
[[package]] [[package]]
name = "django-db-views" name = "django-db-views"
version = "0.1.8" version = "0.1.9"
summary = "Handle database views. Allow to create migrations for database views. View migrations using django code. They can be reversed. Changes in model view definition are detected automatically. Support almost all options as regular makemigrations command" summary = "Handle database views. Allow to create migrations for database views. View migrations using django code. They can be reversed. Changes in model view definition are detected automatically. Support almost all options as regular makemigrations command"
groups = ["default"] groups = ["default"]
marker = "python_version == \"3.11\"" marker = "python_version == \"3.11\""
@ -492,8 +492,8 @@ dependencies = [
"six", "six",
] ]
files = [ files = [
{file = "django_db_views-0.1.8-py2.py3-none-any.whl", hash = "sha256:089c9f193c265f956c0f06d0695b54ff57343bbb25f6c5d546f816e7cb9b456c"}, {file = "django_db_views-0.1.9-py2.py3-none-any.whl", hash = "sha256:54c1c5eeb94e9161938e7e78ae0515ab9808589d24319c4a3dfd8bb8d7a06c17"},
{file = "django_db_views-0.1.8.tar.gz", hash = "sha256:b737b01b782d859a90f4d579147a5fa34f4b5376606443abe35c5fdc00313bcc"}, {file = "django_db_views-0.1.9.tar.gz", hash = "sha256:50d77790605d33e2c7ad8d550eb3dd9dd9fc57d775f70021ba637498e6944729"},
] ]
[[package]] [[package]]
@ -886,7 +886,7 @@ files = [
[[package]] [[package]]
name = "djlint" name = "djlint"
version = "1.36.1" version = "1.36.3"
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "HTML Template Linter and Formatter" summary = "HTML Template Linter and Formatter"
groups = ["lint"] groups = ["lint"]
@ -904,9 +904,9 @@ dependencies = [
"tqdm>=4.62.2", "tqdm>=4.62.2",
] ]
files = [ files = [
{file = "djlint-1.36.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:001e5124b0ebab60a2044134abd11ff11dee772e7c3caaa2c8d12eb5d3b1f1dc"}, {file = "djlint-1.36.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c2e0dd1f26eb472b8c84eb70d6482877b6497a1fd031d7534864088f016d5ea"},
{file = "djlint-1.36.1-py3-none-any.whl", hash = "sha256:950782b396dd82b74622c09d7e4c52328e56a3b03c8ac790c319708e5caa0686"}, {file = "djlint-1.36.3-py3-none-any.whl", hash = "sha256:0c05cd5b76785de2c41a2420c06ffd112800bfc0f9c0f399cc7cea7c42557f4c"},
{file = "djlint-1.36.1.tar.gz", hash = "sha256:f7260637ed72c270fa6dd4a87628e1a21c49b24a46df52e4e26f44d4934fb97c"}, {file = "djlint-1.36.3.tar.gz", hash = "sha256:d85735da34bc7ac93ad8ef9b4822cc2a23d5f0ce33f25438737b8dca1d404f78"},
] ]
[[package]] [[package]]
@ -1172,7 +1172,7 @@ files = [
[[package]] [[package]]
name = "hypothesis" name = "hypothesis"
version = "6.119.4" version = "6.122.1"
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "A library for property-based testing" summary = "A library for property-based testing"
groups = ["dev"] groups = ["dev"]
@ -1183,13 +1183,13 @@ dependencies = [
"sortedcontainers<3.0.0,>=2.1.0", "sortedcontainers<3.0.0,>=2.1.0",
] ]
files = [ files = [
{file = "hypothesis-6.119.4-py3-none-any.whl", hash = "sha256:333958da7855048850c3d2b6a929d44a3c89ca9eafcfddcacc3570140915eba5"}, {file = "hypothesis-6.122.1-py3-none-any.whl", hash = "sha256:59e52da0f2529b40f0b7bd0c3c61d8b3fe3337102800bf3534c53d4a8bdf8a6d"},
{file = "hypothesis-6.119.4.tar.gz", hash = "sha256:1a7d12709c0e96c1d85aca76d1594b34b5958623e00511592eba674acd4f3392"}, {file = "hypothesis-6.122.1.tar.gz", hash = "sha256:23280e802eef88316b02cb32205d74b5bf2e3de4a378e2579a8974117c512b83"},
] ]
[[package]] [[package]]
name = "hypothesis" name = "hypothesis"
version = "6.119.4" version = "6.122.1"
extras = ["django"] extras = ["django"]
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "A library for property-based testing" summary = "A library for property-based testing"
@ -1197,11 +1197,11 @@ groups = ["dev"]
marker = "python_version == \"3.11\"" marker = "python_version == \"3.11\""
dependencies = [ dependencies = [
"django>=4.2", "django>=4.2",
"hypothesis==6.119.4", "hypothesis==6.122.1",
] ]
files = [ files = [
{file = "hypothesis-6.119.4-py3-none-any.whl", hash = "sha256:333958da7855048850c3d2b6a929d44a3c89ca9eafcfddcacc3570140915eba5"}, {file = "hypothesis-6.122.1-py3-none-any.whl", hash = "sha256:59e52da0f2529b40f0b7bd0c3c61d8b3fe3337102800bf3534c53d4a8bdf8a6d"},
{file = "hypothesis-6.119.4.tar.gz", hash = "sha256:1a7d12709c0e96c1d85aca76d1594b34b5958623e00511592eba674acd4f3392"}, {file = "hypothesis-6.122.1.tar.gz", hash = "sha256:23280e802eef88316b02cb32205d74b5bf2e3de4a378e2579a8974117c512b83"},
] ]
[[package]] [[package]]
@ -1218,7 +1218,7 @@ files = [
[[package]] [[package]]
name = "ipython" name = "ipython"
version = "8.29.0" version = "8.30.0"
requires_python = ">=3.10" requires_python = ">=3.10"
summary = "IPython: Productive Interactive Computing" summary = "IPython: Productive Interactive Computing"
groups = ["dev"] groups = ["dev"]
@ -1237,8 +1237,8 @@ dependencies = [
"typing-extensions>=4.6; python_version < \"3.12\"", "typing-extensions>=4.6; python_version < \"3.12\"",
] ]
files = [ files = [
{file = "ipython-8.29.0-py3-none-any.whl", hash = "sha256:0188a1bd83267192123ccea7f4a8ed0a78910535dbaa3f37671dca76ebd429c8"}, {file = "ipython-8.30.0-py3-none-any.whl", hash = "sha256:85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321"},
{file = "ipython-8.29.0.tar.gz", hash = "sha256:40b60e15b22591450eef73e40a027cf77bd652e757523eebc5bd7c7c498290eb"}, {file = "ipython-8.30.0.tar.gz", hash = "sha256:cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e"},
] ]
[[package]] [[package]]
@ -1448,13 +1448,13 @@ files = [
[[package]] [[package]]
name = "nh3" name = "nh3"
version = "0.2.18" version = "0.2.19"
summary = "Python bindings to the ammonia HTML sanitization library." summary = "Python bindings to the ammonia HTML sanitization library."
groups = ["default"] groups = ["default"]
marker = "python_version == \"3.11\"" marker = "python_version == \"3.11\""
files = [ files = [
{file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307"}, {file = "nh3-0.2.19-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8eb7affc590e542fa7981ef508cd1644f62176bcd10d4429890fc629b47f0bc"},
{file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, {file = "nh3-0.2.19.tar.gz", hash = "sha256:790056b54c068ff8dceb443eaefb696b84beff58cca6c07afd754d17692a4804"},
] ]
[[package]] [[package]]
@ -1952,14 +1952,14 @@ files = [
[[package]] [[package]]
name = "ruff" name = "ruff"
version = "0.8.0" version = "0.8.2"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "An extremely fast Python linter and code formatter, written in Rust." summary = "An extremely fast Python linter and code formatter, written in Rust."
groups = ["lint"] groups = ["lint"]
marker = "python_version == \"3.11\"" marker = "python_version == \"3.11\""
files = [ files = [
{file = "ruff-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87a8e86bae0dbd749c815211ca11e3a7bd559b9710746c559ed63106d382bd9c"}, {file = "ruff-0.8.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fe716592ae8a376c2673fdfc1f5c0c193a6d0411f90a496863c99cd9e2ae25d"},
{file = "ruff-0.8.0.tar.gz", hash = "sha256:a7ccfe6331bf8c8dad715753e157457faf7351c2b69f62f32c165c2dbcbacd44"}, {file = "ruff-0.8.2.tar.gz", hash = "sha256:b84f4f414dda8ac7f75075c1fa0b905ac0ff25361f42e6d5da681a465e0f78e5"},
] ]
[[package]] [[package]]
@ -2260,14 +2260,14 @@ files = [
[[package]] [[package]]
name = "types-markdown" name = "types-markdown"
version = "3.7.0.20240822" version = "3.7.0.20241204"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Typing stubs for Markdown" summary = "Typing stubs for Markdown"
groups = ["typing"] groups = ["typing"]
marker = "python_version == \"3.11\"" marker = "python_version == \"3.11\""
files = [ files = [
{file = "types-Markdown-3.7.0.20240822.tar.gz", hash = "sha256:183557c9f4f865bdefd8f5f96a38145c31819271cde111d35557c3bd2069e78d"}, {file = "types_Markdown-3.7.0.20241204-py3-none-any.whl", hash = "sha256:f96146c367ea9c82bfe9903559d72706555cc2a1a3474c58ebba03b418ab18da"},
{file = "types_Markdown-3.7.0.20240822-py3-none-any.whl", hash = "sha256:bec91c410aaf2470ffdb103e38438fbcc53689b00133f19e64869eb138432ad7"}, {file = "types_markdown-3.7.0.20241204.tar.gz", hash = "sha256:ecca2b25cd23163fd28ed5ba34d183d731da03e8a5ed3a20b60daded304c5410"},
] ]
[[package]] [[package]]
@ -2300,14 +2300,14 @@ files = [
[[package]] [[package]]
name = "types-python-dateutil" name = "types-python-dateutil"
version = "2.9.0.20241003" version = "2.9.0.20241206"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Typing stubs for python-dateutil" summary = "Typing stubs for python-dateutil"
groups = ["typing"] groups = ["typing"]
marker = "python_version == \"3.11\"" marker = "python_version == \"3.11\""
files = [ files = [
{file = "types-python-dateutil-2.9.0.20241003.tar.gz", hash = "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446"}, {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"},
{file = "types_python_dateutil-2.9.0.20241003-py3-none-any.whl", hash = "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d"}, {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"},
] ]
[[package]] [[package]]

483
pnpm-lock.yaml generated
View File

@ -34,155 +34,161 @@ importers:
specifier: ^14.0.2 specifier: ^14.0.2
version: 14.0.2 version: 14.0.2
prettier: prettier:
specifier: ^3.3.3 specifier: ^3.4.2
version: 3.3.3 version: 3.4.2
sass: sass:
specifier: ^1.80.6 specifier: ^1.82.0
version: 1.80.6 version: 1.82.0
typescript: typescript:
specifier: ^5.6.3 specifier: ^5.7.2
version: 5.6.3 version: 5.7.2
vite: vite:
specifier: ^5.4.10 specifier: ^6.0.3
version: 5.4.10(sass@1.80.6) version: 6.0.3(sass@1.82.0)
packages: packages:
'@esbuild/aix-ppc64@0.21.5': '@esbuild/aix-ppc64@0.24.0':
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [ppc64] cpu: [ppc64]
os: [aix] os: [aix]
'@esbuild/android-arm64@0.21.5': '@esbuild/android-arm64@0.24.0':
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@esbuild/android-arm@0.21.5': '@esbuild/android-arm@0.24.0':
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@esbuild/android-x64@0.21.5': '@esbuild/android-x64@0.24.0':
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [android] os: [android]
'@esbuild/darwin-arm64@0.21.5': '@esbuild/darwin-arm64@0.24.0':
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@esbuild/darwin-x64@0.21.5': '@esbuild/darwin-x64@0.24.0':
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@esbuild/freebsd-arm64@0.21.5': '@esbuild/freebsd-arm64@0.24.0':
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@esbuild/freebsd-x64@0.21.5': '@esbuild/freebsd-x64@0.24.0':
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@esbuild/linux-arm64@0.21.5': '@esbuild/linux-arm64@0.24.0':
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@esbuild/linux-arm@0.21.5': '@esbuild/linux-arm@0.24.0':
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@esbuild/linux-ia32@0.21.5': '@esbuild/linux-ia32@0.24.0':
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [linux] os: [linux]
'@esbuild/linux-loong64@0.21.5': '@esbuild/linux-loong64@0.24.0':
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
'@esbuild/linux-mips64el@0.21.5': '@esbuild/linux-mips64el@0.24.0':
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [mips64el] cpu: [mips64el]
os: [linux] os: [linux]
'@esbuild/linux-ppc64@0.21.5': '@esbuild/linux-ppc64@0.24.0':
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@esbuild/linux-riscv64@0.21.5': '@esbuild/linux-riscv64@0.24.0':
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@esbuild/linux-s390x@0.21.5': '@esbuild/linux-s390x@0.24.0':
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@esbuild/linux-x64@0.21.5': '@esbuild/linux-x64@0.24.0':
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@esbuild/netbsd-x64@0.21.5': '@esbuild/netbsd-x64@0.24.0':
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [netbsd] os: [netbsd]
'@esbuild/openbsd-x64@0.21.5': '@esbuild/openbsd-arm64@0.24.0':
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
'@esbuild/openbsd-x64@0.24.0':
resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
'@esbuild/sunos-x64@0.21.5': '@esbuild/sunos-x64@0.24.0':
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [sunos] os: [sunos]
'@esbuild/win32-arm64@0.21.5': '@esbuild/win32-arm64@0.24.0':
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@esbuild/win32-ia32@0.21.5': '@esbuild/win32-ia32@0.24.0':
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@esbuild/win32-x64@0.21.5': '@esbuild/win32-x64@0.24.0':
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
engines: {node: '>=12'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -283,93 +289,93 @@ packages:
'@popperjs/core@2.11.8': '@popperjs/core@2.11.8':
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
'@rollup/rollup-android-arm-eabi@4.24.4': '@rollup/rollup-android-arm-eabi@4.28.0':
resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==} resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@rollup/rollup-android-arm64@4.24.4': '@rollup/rollup-android-arm64@4.28.0':
resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==} resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rollup/rollup-darwin-arm64@4.24.4': '@rollup/rollup-darwin-arm64@4.28.0':
resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==} resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rollup/rollup-darwin-x64@4.24.4': '@rollup/rollup-darwin-x64@4.28.0':
resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==} resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rollup/rollup-freebsd-arm64@4.24.4': '@rollup/rollup-freebsd-arm64@4.28.0':
resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==} resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-freebsd-x64@4.24.4': '@rollup/rollup-freebsd-x64@4.28.0':
resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==} resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.24.4': '@rollup/rollup-linux-arm-gnueabihf@4.28.0':
resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.24.4': '@rollup/rollup-linux-arm-musleabihf@4.28.0':
resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.24.4': '@rollup/rollup-linux-arm64-gnu@4.28.0':
resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-musl@4.24.4': '@rollup/rollup-linux-arm64-musl@4.28.0':
resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.24.4': '@rollup/rollup-linux-powerpc64le-gnu@4.28.0':
resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.24.4': '@rollup/rollup-linux-riscv64-gnu@4.28.0':
resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.24.4': '@rollup/rollup-linux-s390x-gnu@4.28.0':
resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-gnu@4.24.4': '@rollup/rollup-linux-x64-gnu@4.28.0':
resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-musl@4.24.4': '@rollup/rollup-linux-x64-musl@4.28.0':
resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.24.4': '@rollup/rollup-win32-arm64-msvc@4.28.0':
resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.24.4': '@rollup/rollup-win32-ia32-msvc@4.28.0':
resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==} resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-msvc@4.24.4': '@rollup/rollup-win32-x64-msvc@4.28.0':
resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==} resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -413,9 +419,9 @@ packages:
engines: {node: '>=0.10'} engines: {node: '>=0.10'}
hasBin: true hasBin: true
esbuild@0.21.5: esbuild@0.24.0:
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
engines: {node: '>=12'} engines: {node: '>=18'}
hasBin: true hasBin: true
fast-glob@3.3.2: fast-glob@3.3.2:
@ -446,8 +452,8 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'} engines: {node: '>= 4'}
immutable@4.3.7: immutable@5.0.3:
resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==}
is-extglob@2.1.1: is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
@ -469,8 +475,8 @@ packages:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
nanoid@3.3.7: nanoid@3.3.8:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
@ -488,12 +494,12 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
postcss@8.4.47: postcss@8.4.49:
resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
prettier@3.3.3: prettier@3.4.2:
resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
@ -508,16 +514,16 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'} engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
rollup@4.24.4: rollup@4.28.0:
resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
run-parallel@1.2.0: run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
sass@1.80.6: sass@1.82.0:
resolution: {integrity: sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==} resolution: {integrity: sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
hasBin: true hasBin: true
@ -536,8 +542,8 @@ packages:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'} engines: {node: '>=8.0'}
typescript@5.6.3: typescript@5.7.2:
resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
@ -545,22 +551,27 @@ packages:
resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
vite@5.4.10: vite@6.0.3:
resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
jiti: '>=1.21.0'
less: '*' less: '*'
lightningcss: ^1.21.0 lightningcss: ^1.21.0
sass: '*' sass: '*'
sass-embedded: '*' sass-embedded: '*'
stylus: '*' stylus: '*'
sugarss: '*' sugarss: '*'
terser: ^5.4.0 terser: ^5.16.0
tsx: ^4.8.1
yaml: ^2.4.2
peerDependenciesMeta: peerDependenciesMeta:
'@types/node': '@types/node':
optional: true optional: true
jiti:
optional: true
less: less:
optional: true optional: true
lightningcss: lightningcss:
@ -575,76 +586,83 @@ packages:
optional: true optional: true
terser: terser:
optional: true optional: true
tsx:
optional: true
yaml:
optional: true
snapshots: snapshots:
'@esbuild/aix-ppc64@0.21.5': '@esbuild/aix-ppc64@0.24.0':
optional: true optional: true
'@esbuild/android-arm64@0.21.5': '@esbuild/android-arm64@0.24.0':
optional: true optional: true
'@esbuild/android-arm@0.21.5': '@esbuild/android-arm@0.24.0':
optional: true optional: true
'@esbuild/android-x64@0.21.5': '@esbuild/android-x64@0.24.0':
optional: true optional: true
'@esbuild/darwin-arm64@0.21.5': '@esbuild/darwin-arm64@0.24.0':
optional: true optional: true
'@esbuild/darwin-x64@0.21.5': '@esbuild/darwin-x64@0.24.0':
optional: true optional: true
'@esbuild/freebsd-arm64@0.21.5': '@esbuild/freebsd-arm64@0.24.0':
optional: true optional: true
'@esbuild/freebsd-x64@0.21.5': '@esbuild/freebsd-x64@0.24.0':
optional: true optional: true
'@esbuild/linux-arm64@0.21.5': '@esbuild/linux-arm64@0.24.0':
optional: true optional: true
'@esbuild/linux-arm@0.21.5': '@esbuild/linux-arm@0.24.0':
optional: true optional: true
'@esbuild/linux-ia32@0.21.5': '@esbuild/linux-ia32@0.24.0':
optional: true optional: true
'@esbuild/linux-loong64@0.21.5': '@esbuild/linux-loong64@0.24.0':
optional: true optional: true
'@esbuild/linux-mips64el@0.21.5': '@esbuild/linux-mips64el@0.24.0':
optional: true optional: true
'@esbuild/linux-ppc64@0.21.5': '@esbuild/linux-ppc64@0.24.0':
optional: true optional: true
'@esbuild/linux-riscv64@0.21.5': '@esbuild/linux-riscv64@0.24.0':
optional: true optional: true
'@esbuild/linux-s390x@0.21.5': '@esbuild/linux-s390x@0.24.0':
optional: true optional: true
'@esbuild/linux-x64@0.21.5': '@esbuild/linux-x64@0.24.0':
optional: true optional: true
'@esbuild/netbsd-x64@0.21.5': '@esbuild/netbsd-x64@0.24.0':
optional: true optional: true
'@esbuild/openbsd-x64@0.21.5': '@esbuild/openbsd-arm64@0.24.0':
optional: true optional: true
'@esbuild/sunos-x64@0.21.5': '@esbuild/openbsd-x64@0.24.0':
optional: true optional: true
'@esbuild/win32-arm64@0.21.5': '@esbuild/sunos-x64@0.24.0':
optional: true optional: true
'@esbuild/win32-ia32@0.21.5': '@esbuild/win32-arm64@0.24.0':
optional: true optional: true
'@esbuild/win32-x64@0.21.5': '@esbuild/win32-ia32@0.24.0':
optional: true
'@esbuild/win32-x64@0.24.0':
optional: true optional: true
'@nodelib/fs.scandir@2.1.5': '@nodelib/fs.scandir@2.1.5':
@ -722,58 +740,58 @@ snapshots:
'@popperjs/core@2.11.8': {} '@popperjs/core@2.11.8': {}
'@rollup/rollup-android-arm-eabi@4.24.4': '@rollup/rollup-android-arm-eabi@4.28.0':
optional: true optional: true
'@rollup/rollup-android-arm64@4.24.4': '@rollup/rollup-android-arm64@4.28.0':
optional: true optional: true
'@rollup/rollup-darwin-arm64@4.24.4': '@rollup/rollup-darwin-arm64@4.28.0':
optional: true optional: true
'@rollup/rollup-darwin-x64@4.24.4': '@rollup/rollup-darwin-x64@4.28.0':
optional: true optional: true
'@rollup/rollup-freebsd-arm64@4.24.4': '@rollup/rollup-freebsd-arm64@4.28.0':
optional: true optional: true
'@rollup/rollup-freebsd-x64@4.24.4': '@rollup/rollup-freebsd-x64@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.24.4': '@rollup/rollup-linux-arm-gnueabihf@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-arm-musleabihf@4.24.4': '@rollup/rollup-linux-arm-musleabihf@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-gnu@4.24.4': '@rollup/rollup-linux-arm64-gnu@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-musl@4.24.4': '@rollup/rollup-linux-arm64-musl@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.24.4': '@rollup/rollup-linux-powerpc64le-gnu@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-riscv64-gnu@4.24.4': '@rollup/rollup-linux-riscv64-gnu@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-s390x-gnu@4.24.4': '@rollup/rollup-linux-s390x-gnu@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-x64-gnu@4.24.4': '@rollup/rollup-linux-x64-gnu@4.28.0':
optional: true optional: true
'@rollup/rollup-linux-x64-musl@4.24.4': '@rollup/rollup-linux-x64-musl@4.28.0':
optional: true optional: true
'@rollup/rollup-win32-arm64-msvc@4.24.4': '@rollup/rollup-win32-arm64-msvc@4.28.0':
optional: true optional: true
'@rollup/rollup-win32-ia32-msvc@4.24.4': '@rollup/rollup-win32-ia32-msvc@4.28.0':
optional: true optional: true
'@rollup/rollup-win32-x64-msvc@4.24.4': '@rollup/rollup-win32-x64-msvc@4.28.0':
optional: true optional: true
'@sindresorhus/merge-streams@2.3.0': {} '@sindresorhus/merge-streams@2.3.0': {}
@ -809,31 +827,32 @@ snapshots:
detect-libc@1.0.3: detect-libc@1.0.3:
optional: true optional: true
esbuild@0.21.5: esbuild@0.24.0:
optionalDependencies: optionalDependencies:
'@esbuild/aix-ppc64': 0.21.5 '@esbuild/aix-ppc64': 0.24.0
'@esbuild/android-arm': 0.21.5 '@esbuild/android-arm': 0.24.0
'@esbuild/android-arm64': 0.21.5 '@esbuild/android-arm64': 0.24.0
'@esbuild/android-x64': 0.21.5 '@esbuild/android-x64': 0.24.0
'@esbuild/darwin-arm64': 0.21.5 '@esbuild/darwin-arm64': 0.24.0
'@esbuild/darwin-x64': 0.21.5 '@esbuild/darwin-x64': 0.24.0
'@esbuild/freebsd-arm64': 0.21.5 '@esbuild/freebsd-arm64': 0.24.0
'@esbuild/freebsd-x64': 0.21.5 '@esbuild/freebsd-x64': 0.24.0
'@esbuild/linux-arm': 0.21.5 '@esbuild/linux-arm': 0.24.0
'@esbuild/linux-arm64': 0.21.5 '@esbuild/linux-arm64': 0.24.0
'@esbuild/linux-ia32': 0.21.5 '@esbuild/linux-ia32': 0.24.0
'@esbuild/linux-loong64': 0.21.5 '@esbuild/linux-loong64': 0.24.0
'@esbuild/linux-mips64el': 0.21.5 '@esbuild/linux-mips64el': 0.24.0
'@esbuild/linux-ppc64': 0.21.5 '@esbuild/linux-ppc64': 0.24.0
'@esbuild/linux-riscv64': 0.21.5 '@esbuild/linux-riscv64': 0.24.0
'@esbuild/linux-s390x': 0.21.5 '@esbuild/linux-s390x': 0.24.0
'@esbuild/linux-x64': 0.21.5 '@esbuild/linux-x64': 0.24.0
'@esbuild/netbsd-x64': 0.21.5 '@esbuild/netbsd-x64': 0.24.0
'@esbuild/openbsd-x64': 0.21.5 '@esbuild/openbsd-arm64': 0.24.0
'@esbuild/sunos-x64': 0.21.5 '@esbuild/openbsd-x64': 0.24.0
'@esbuild/win32-arm64': 0.21.5 '@esbuild/sunos-x64': 0.24.0
'@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-arm64': 0.24.0
'@esbuild/win32-x64': 0.21.5 '@esbuild/win32-ia32': 0.24.0
'@esbuild/win32-x64': 0.24.0
fast-glob@3.3.2: fast-glob@3.3.2:
dependencies: dependencies:
@ -869,7 +888,7 @@ snapshots:
ignore@5.3.2: {} ignore@5.3.2: {}
immutable@4.3.7: {} immutable@5.0.3: {}
is-extglob@2.1.1: {} is-extglob@2.1.1: {}
@ -886,7 +905,7 @@ snapshots:
braces: 3.0.3 braces: 3.0.3
picomatch: 2.3.1 picomatch: 2.3.1
nanoid@3.3.7: {} nanoid@3.3.8: {}
node-addon-api@7.1.1: node-addon-api@7.1.1:
optional: true optional: true
@ -897,13 +916,13 @@ snapshots:
picomatch@2.3.1: {} picomatch@2.3.1: {}
postcss@8.4.47: postcss@8.4.49:
dependencies: dependencies:
nanoid: 3.3.7 nanoid: 3.3.8
picocolors: 1.1.1 picocolors: 1.1.1
source-map-js: 1.2.1 source-map-js: 1.2.1
prettier@3.3.3: {} prettier@3.4.2: {}
queue-microtask@1.2.3: {} queue-microtask@1.2.3: {}
@ -911,38 +930,38 @@ snapshots:
reusify@1.0.4: {} reusify@1.0.4: {}
rollup@4.24.4: rollup@4.28.0:
dependencies: dependencies:
'@types/estree': 1.0.6 '@types/estree': 1.0.6
optionalDependencies: optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.24.4 '@rollup/rollup-android-arm-eabi': 4.28.0
'@rollup/rollup-android-arm64': 4.24.4 '@rollup/rollup-android-arm64': 4.28.0
'@rollup/rollup-darwin-arm64': 4.24.4 '@rollup/rollup-darwin-arm64': 4.28.0
'@rollup/rollup-darwin-x64': 4.24.4 '@rollup/rollup-darwin-x64': 4.28.0
'@rollup/rollup-freebsd-arm64': 4.24.4 '@rollup/rollup-freebsd-arm64': 4.28.0
'@rollup/rollup-freebsd-x64': 4.24.4 '@rollup/rollup-freebsd-x64': 4.28.0
'@rollup/rollup-linux-arm-gnueabihf': 4.24.4 '@rollup/rollup-linux-arm-gnueabihf': 4.28.0
'@rollup/rollup-linux-arm-musleabihf': 4.24.4 '@rollup/rollup-linux-arm-musleabihf': 4.28.0
'@rollup/rollup-linux-arm64-gnu': 4.24.4 '@rollup/rollup-linux-arm64-gnu': 4.28.0
'@rollup/rollup-linux-arm64-musl': 4.24.4 '@rollup/rollup-linux-arm64-musl': 4.28.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.24.4 '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0
'@rollup/rollup-linux-riscv64-gnu': 4.24.4 '@rollup/rollup-linux-riscv64-gnu': 4.28.0
'@rollup/rollup-linux-s390x-gnu': 4.24.4 '@rollup/rollup-linux-s390x-gnu': 4.28.0
'@rollup/rollup-linux-x64-gnu': 4.24.4 '@rollup/rollup-linux-x64-gnu': 4.28.0
'@rollup/rollup-linux-x64-musl': 4.24.4 '@rollup/rollup-linux-x64-musl': 4.28.0
'@rollup/rollup-win32-arm64-msvc': 4.24.4 '@rollup/rollup-win32-arm64-msvc': 4.28.0
'@rollup/rollup-win32-ia32-msvc': 4.24.4 '@rollup/rollup-win32-ia32-msvc': 4.28.0
'@rollup/rollup-win32-x64-msvc': 4.24.4 '@rollup/rollup-win32-x64-msvc': 4.28.0
fsevents: 2.3.3 fsevents: 2.3.3
run-parallel@1.2.0: run-parallel@1.2.0:
dependencies: dependencies:
queue-microtask: 1.2.3 queue-microtask: 1.2.3
sass@1.80.6: sass@1.82.0:
dependencies: dependencies:
chokidar: 4.0.1 chokidar: 4.0.1
immutable: 4.3.7 immutable: 5.0.3
source-map-js: 1.2.1 source-map-js: 1.2.1
optionalDependencies: optionalDependencies:
'@parcel/watcher': 2.5.0 '@parcel/watcher': 2.5.0
@ -957,15 +976,15 @@ snapshots:
dependencies: dependencies:
is-number: 7.0.0 is-number: 7.0.0
typescript@5.6.3: {} typescript@5.7.2: {}
unicorn-magic@0.1.0: {} unicorn-magic@0.1.0: {}
vite@5.4.10(sass@1.80.6): vite@6.0.3(sass@1.82.0):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.24.0
postcss: 8.4.47 postcss: 8.4.49
rollup: 4.24.4 rollup: 4.28.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.3 fsevents: 2.3.3
sass: 1.80.6 sass: 1.82.0

View File

@ -68,8 +68,8 @@ entry-points."djangoq.errorreporters".admin_email = "cmsmanage.django_q2_admin_e
dev = [ dev = [
"coverage~=7.6", "coverage~=7.6",
"django-extensions~=3.2", "django-extensions~=3.2",
"hypothesis[django]~=6.119", "hypothesis[django]~=6.122",
"ipython~=8.29", "ipython~=8.30",
"tblib~=3.0", "tblib~=3.0",
] ]
debug = [ debug = [