diff --git a/backend/api/account/client/serializers.py b/backend/api/account/client/serializers.py index b5f6a5f..d5563f2 100644 --- a/backend/api/account/client/serializers.py +++ b/backend/api/account/client/serializers.py @@ -227,10 +227,10 @@ class PricingSerializer(serializers.ModelSerializer): class Meta: model = Pricing - fields = ['plan', 'price', 'features', 'isPopular'] + fields = ['plan', 'price', 'features', 'isPopular', 'duration', 'duration_hours'] def get_features(self, obj): - return list(obj.membershipfeatures_set.values_list('feature', flat=True)) + return list(obj.features.values_list('name', flat=True)) def to_representation(self, instance): # преобразуем данные перед отправкой на фронтенд diff --git a/backend/sitemanagement/admin.py b/backend/sitemanagement/admin.py index 6f1b54c..a501ff4 100644 --- a/backend/sitemanagement/admin.py +++ b/backend/sitemanagement/admin.py @@ -1,21 +1,17 @@ from django.contrib import admin from .models import * +@admin.register(Feature) +class FeatureAdmin(admin.ModelAdmin): + list_display = ['name'] + search_fields = ['name'] -class FeatureInline(admin.TabularInline): - model = MembershipFeatures - list_display = ['features'] # поля в списке - list_filter = ['features'] # фильтры справа - search_fields = ['features'] # поля для поиска - extra = 0 - can_delete = False - verbose_name = 'Параметр тарифных планов' - verbose_name_plural = 'Параметры тарифных планов' - +@admin.register(Pricing) class PricingAdmin(admin.ModelAdmin): - inlines = [FeatureInline] - + list_display = ['plan', 'price', 'is_popular', 'duration'] + list_filter = ['is_popular'] + search_fields = ['plan'] + filter_horizontal = ['features'] admin.site.register(FAQ) admin.site.register(News) -admin.site.register(Pricing, PricingAdmin) diff --git a/backend/sitemanagement/migrations/0012_pricing_duration_pricing_duration_hours_and_more.py b/backend/sitemanagement/migrations/0012_pricing_duration_pricing_duration_hours_and_more.py new file mode 100644 index 0000000..0150ae4 --- /dev/null +++ b/backend/sitemanagement/migrations/0012_pricing_duration_pricing_duration_hours_and_more.py @@ -0,0 +1,37 @@ +# Generated by Django 5.2.1 on 2025-05-30 09:41 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('routes', '0010_route_highlight_end_dt'), + ('sitemanagement', '0011_transactions'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='pricing', + name='duration', + field=models.CharField(default='7 дней', max_length=10, verbose_name='Длительность подписки (в днях)'), + ), + migrations.AddField( + model_name='pricing', + name='duration_hours', + field=models.IntegerField(default=168, max_length=8, verbose_name='Длительность подписки (в часах)'), + ), + migrations.CreateModel( + name='RoutePromotionLog', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('action_type', models.CharField(choices=[('highlight', 'Выделение'), ('rising', 'Поднятие')], max_length=20)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('route', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='promotion_logs', to='routes.route')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/backend/sitemanagement/migrations/0013_alter_pricing_duration_alter_pricing_duration_hours.py b/backend/sitemanagement/migrations/0013_alter_pricing_duration_alter_pricing_duration_hours.py new file mode 100644 index 0000000..e0c076b --- /dev/null +++ b/backend/sitemanagement/migrations/0013_alter_pricing_duration_alter_pricing_duration_hours.py @@ -0,0 +1,23 @@ +# Generated by Django 5.2.1 on 2025-05-30 09:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sitemanagement', '0012_pricing_duration_pricing_duration_hours_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='pricing', + name='duration', + field=models.CharField(default='7 дней', verbose_name='Длительность подписки (в днях)'), + ), + migrations.AlterField( + model_name='pricing', + name='duration_hours', + field=models.IntegerField(default=168, verbose_name='Длительность подписки (в часах)'), + ), + ] diff --git a/backend/sitemanagement/migrations/0014_rename_membershipfeatures_membershipfeature.py b/backend/sitemanagement/migrations/0014_rename_membershipfeatures_membershipfeature.py new file mode 100644 index 0000000..1984ea4 --- /dev/null +++ b/backend/sitemanagement/migrations/0014_rename_membershipfeatures_membershipfeature.py @@ -0,0 +1,17 @@ +# Generated by Django 5.2.1 on 2025-05-30 09:50 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('sitemanagement', '0013_alter_pricing_duration_alter_pricing_duration_hours'), + ] + + operations = [ + migrations.RenameModel( + old_name='MembershipFeatures', + new_name='MembershipFeature', + ), + ] diff --git a/backend/sitemanagement/migrations/0015_alter_membershipfeature_options.py b/backend/sitemanagement/migrations/0015_alter_membershipfeature_options.py new file mode 100644 index 0000000..f4dd208 --- /dev/null +++ b/backend/sitemanagement/migrations/0015_alter_membershipfeature_options.py @@ -0,0 +1,17 @@ +# Generated by Django 5.2.1 on 2025-05-30 09:52 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('sitemanagement', '0014_rename_membershipfeatures_membershipfeature'), + ] + + operations = [ + migrations.AlterModelOptions( + name='membershipfeature', + options={'verbose_name': 'Свойство подписки', 'verbose_name_plural': 'Свойства подписки'}, + ), + ] diff --git a/backend/sitemanagement/migrations/0016_feature_pricing_features_delete_membershipfeature.py b/backend/sitemanagement/migrations/0016_feature_pricing_features_delete_membershipfeature.py new file mode 100644 index 0000000..874d288 --- /dev/null +++ b/backend/sitemanagement/migrations/0016_feature_pricing_features_delete_membershipfeature.py @@ -0,0 +1,32 @@ +# Generated by Django 5.2.1 on 2025-05-30 10:01 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sitemanagement', '0015_alter_membershipfeature_options'), + ] + + operations = [ + migrations.CreateModel( + name='Feature', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, verbose_name='Название свойства')), + ], + options={ + 'verbose_name': 'Свойство', + 'verbose_name_plural': 'Свойства', + }, + ), + migrations.AddField( + model_name='pricing', + name='features', + field=models.ManyToManyField(related_name='pricing_plans', to='sitemanagement.feature', verbose_name='Свойства'), + ), + migrations.DeleteModel( + name='MembershipFeature', + ), + ] diff --git a/backend/sitemanagement/models.py b/backend/sitemanagement/models.py index 516bc49..eea88c7 100644 --- a/backend/sitemanagement/models.py +++ b/backend/sitemanagement/models.py @@ -64,7 +64,10 @@ class Pricing(models.Model): plan = models.CharField(max_length=10, choices=account_types) price = models.IntegerField() is_popular = models.BooleanField(default=False) - + duration = models.CharField(default='7 дней', verbose_name='Длительность подписки (в днях)') + duration_hours = models.IntegerField(default=168, verbose_name='Длительность подписки (в часах)') + features = models.ManyToManyField('Feature', related_name='pricing_plans', verbose_name='Свойства') + class Meta: verbose_name = 'Тарифный план' verbose_name_plural = 'Тарифные планы' @@ -72,10 +75,16 @@ class Pricing(models.Model): def __str__(self): return self.plan -class MembershipFeatures(models.Model): - plan = models.ForeignKey(Pricing, on_delete=models.CASCADE, verbose_name=('Тарифный план')) - feature = models.CharField(max_length=255) +class Feature(models.Model): + name = models.CharField(max_length=255, verbose_name='Название свойства') + class Meta: + verbose_name = 'Свойство' + verbose_name_plural = 'Свойства' + + def __str__(self): + return self.name + class Transactions(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Пользователь') amount = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='Сумма') diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 5709eec..6989074 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1587,9 +1587,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.52.tgz", - "integrity": "sha512-2aj++KfxubvW/Lc0YyXE3OEW7Es8TWn1MsRzYgcOGyTNQxi0L8rxQUCZ7ZbyOBWZQD5I63PV9egZWMsapVaklg==", + "version": "20.17.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.55.tgz", + "integrity": "sha512-ESpPDUEtW1a9nueMQtcTq/5iY/7osurPpBpFKH2VAyREKdzoFRRod6Oms0SSTfV7u52CcH7b6dFVnjfPD8fxWg==", "dev": true, "license": "MIT", "dependencies": { @@ -1915,9 +1915,9 @@ } }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.7.tgz", - "integrity": "sha512-3sRvuOUJPnr55HM6SXQhYiWB4QZtVDFtJT7xu1asdXxuR4C3wHX6ORp3byP3DIMwOFbNrcPSPcDzvdikS/pMqA==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.8.tgz", + "integrity": "sha512-rsRK8T7yxraNRDmpFLZCWqpea6OlXPNRRCjWMx24O1V86KFol7u2gj9zJCv6zB1oJjtnzWceuqdnCgOipFcJPA==", "cpu": [ "arm64" ], @@ -1929,9 +1929,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.7.tgz", - "integrity": "sha512-Xh3eNqnJOuIbaGv5QynH12Vf9mRPdHkiJlbisAUt7oywCwAcLTz+g9KP4Bww9m9b2//+xrew52dIZa56VRrl+w==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.8.tgz", + "integrity": "sha512-16yEMWa+Olqkk8Kl6Bu0ltT5OgEedkSAsxcz1B3yEctrDYp3EMBu/5PPAGhWVGnwhtf3hNe3y15gfYBAjOv5tQ==", "cpu": [ "x64" ], @@ -1943,9 +1943,9 @@ ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.7.tgz", - "integrity": "sha512-FC5vAxd0GD4CqPDuSooesyXTiCJY9V7ow72u8sIXdf3v8NWj6ceNG9cPE0GFUQUk++tqf+Yp01W79BBvQ31lEA==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.8.tgz", + "integrity": "sha512-ST4uqF6FmdZQgv+Q73FU1uHzppeT4mhX3IIEmHlLObrv5Ep50olWRz0iQ4PWovadjHMTAmpuJAGaAuCZYb7UAQ==", "cpu": [ "x64" ], @@ -1957,9 +1957,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.7.tgz", - "integrity": "sha512-oSNFKV3j/VeCkl1cQP6KpDevAWtEfEIA6nkEN56etQgG6gLSEndJahvV1RDRKE18VSgKkXtYtFr3WM9L3Zlo1g==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.8.tgz", + "integrity": "sha512-Z/A/4Rm2VWku2g25C3tVb986fY6unx5jaaCFpx1pbAj0OKkyuJ5wcQLHvNbIcJ9qhiYwXfrkB7JNlxrAbg7YFg==", "cpu": [ "arm" ], @@ -1971,9 +1971,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.7.tgz", - "integrity": "sha512-bqP4jd4luBxEKOXjo4zGcmEtJephzA/AqtXf1LcO7YwtesDgPMAedJNZt2DJIgGc4JT99Prx5JLkPzoGYQZJ/w==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.8.tgz", + "integrity": "sha512-HN0p7o38qKmDo3bZUiQa6gP7Qhf0sKgJZtRfSHi6JL2Gi4NaUVF0EO1sQ1RHbeQ4VvfjUGMh3QE5dxEh06BgQQ==", "cpu": [ "arm" ], @@ -1985,9 +1985,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.7.tgz", - "integrity": "sha512-dKA6SesiVtGYADa8rJrWraoyfyna5I68hJI0Ge+y2bEVTKh2ObghwaLcgv0OR0Fo4XimpioB6FpvGezrvMJX4g==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.8.tgz", + "integrity": "sha512-HsoVqDBt9G69AN0KWeDNJW+7i8KFlwxrbbnJffgTGpiZd6Jw+Q95sqkXp8y458KhKduKLmXfVZGnKBTNxAgPjw==", "cpu": [ "arm64" ], @@ -1999,9 +1999,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.7.tgz", - "integrity": "sha512-m6t6ylCxusfcXTszyxtkel1CRZZrB7LAd/TP48iggmNdE7+a1YByLr226TCBz0rJz7oxNnwUVw6ICHyV7zwVLA==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.8.tgz", + "integrity": "sha512-VfR2yTDUbUvn+e/Aw22CC9fQg9zdShHAfwWctNBdOk7w9CHWl2OtYlcMvjzMAns8QxoHQoqn3/CEnZ4Ts7hfrA==", "cpu": [ "arm64" ], @@ -2013,9 +2013,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.7.tgz", - "integrity": "sha512-Km4qNXKDHIFbFXhETEoRCtIIsyUldSZ3KU7zr/Id+MvBMyTsXZ5AMCVnbKEcoaLf7AjBnwbEFHnqGUOXKnS88g==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.8.tgz", + "integrity": "sha512-xUauVQNz4uDgs4UJJiUAwMe3N0PA0wvtImh7V0IFu++UKZJhssXbKHBRR4ecUJpUHCX2bc4Wc8sGsB6P+7BANg==", "cpu": [ "ppc64" ], @@ -2027,9 +2027,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.7.tgz", - "integrity": "sha512-pDBwW3n2RUD7VN1OSh1/MM/yYA7QyrbonNZcFhW79lpZFIekzIjYL83V2rZ1Lo0KYaI4iejwQTFOZoT7fRwPjw==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.8.tgz", + "integrity": "sha512-GqyIB+CuSHGhhc8ph5RrurtNetYJjb6SctSHafqmdGcRuGi6uyTMR8l18hMEhZFsXdFMc/MpInPLvmNV22xn+A==", "cpu": [ "riscv64" ], @@ -2041,9 +2041,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.7.tgz", - "integrity": "sha512-0IQeRiDD8OHpj/ekf36ePRqd7i7X4k/SCcv9+XBJ5VNHKSuStsMRTVhMstRS3JSU7/c0R7OlZmj96vtpTSSazg==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.8.tgz", + "integrity": "sha512-eEU3rWIFRv60xaAbtsgwHNWRZGD7cqkpCvNtio/f1TjEE3HfKLzPNB24fA9X/8ZXQrGldE65b7UKK3PmO4eWIQ==", "cpu": [ "riscv64" ], @@ -2055,9 +2055,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.7.tgz", - "integrity": "sha512-d0LCgzLsdsqYz4fxvBSZyo6TZZab6oUvGmfTtdwk/P9KCrpge8swsLvzK2cJVLHMSreyV6iknVBlBFNIkd9tgQ==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.8.tgz", + "integrity": "sha512-GVLI0f4I4TlLqEUoOFvTWedLsJEdvsD0+sxhdvQ5s+N+m2DSynTs8h9jxR0qQbKlpHWpc2Ortz3z48NHRT4l+w==", "cpu": [ "s390x" ], @@ -2069,9 +2069,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.7.tgz", - "integrity": "sha512-cbspezCWjpslXCnij/4cWXoJj9l39mqL09/QltGqS8yfNmOk+U3E4IQiiqaNTeg+c9VJFCSx10MvBx49usUMFg==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.8.tgz", + "integrity": "sha512-GX1pZ/4ncUreB0Rlp1l7bhKAZ8ZmvDIgXdeb5V2iK0eRRF332+6gRfR/r5LK88xfbtOpsmRHU6mQ4N8ZnwvGEA==", "cpu": [ "x64" ], @@ -2083,9 +2083,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.7.tgz", - "integrity": "sha512-Q04EorD1iwqNs9x/OywI/DPUUGvWmgx5zQ/TnD0eFokDsDMtgsaRgcuNA3dc84F6lZC08dqmj1zdXddPfkC0YQ==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.8.tgz", + "integrity": "sha512-n1N84MnsvDupzVuYqJGj+2pb9s8BI1A5RgXHvtVFHedGZVBCFjDpQVRlmsFMt6xZiKwDPaqsM16O/1isCUGt7w==", "cpu": [ "x64" ], @@ -2097,9 +2097,9 @@ ] }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.7.tgz", - "integrity": "sha512-N70EZMr7LtYGkfqKHFSVAjJ/ZkNaWg+7qa4irCr91PHbeo9K0WtLXFcAqLoMXy9AU1HU8wXszu2QPFnM8Q9MMQ==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.8.tgz", + "integrity": "sha512-x94WnaU5g+pCPDVedfnXzoG6lCOF2xFGebNwhtbJCWfceE94Zj8aysSxdxotlrZrxnz5D3ijtyFUYtpz04n39Q==", "cpu": [ "wasm32" ], @@ -2114,9 +2114,9 @@ } }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.7.tgz", - "integrity": "sha512-jL52Di0GqihzIknxMpEFh+BKS5V99Suuai3XlrMwOg8NPM1aQYEHIJID3Nua0+MomcAmEX+Zj4db8yPjTYSljA==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.8.tgz", + "integrity": "sha512-vst2u8EJZ5L6jhJ6iLis3w9rg16aYqRxQuBAMYQRVrPMI43693hLP7DuqyOBRKgsQXy9/jgh204k0ViHkqQgdg==", "cpu": [ "arm64" ], @@ -2128,9 +2128,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.7.tgz", - "integrity": "sha512-ZFiuMqGqh0oeq3aaMGKI8rZ2A3+2H8RTWTjnZkRCC5L3aE0pqhHB2q/7BGU7lEvWVv4mpvV/HvGBDPdyf6fB5w==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.8.tgz", + "integrity": "sha512-yb3LZOLMFqnA+/ShlE1E5bpYPGDsA590VHHJPB+efnyowT776GJXBoh82em6O9WmYBUq57YblGTcMYAFBm72HA==", "cpu": [ "ia32" ], @@ -2142,9 +2142,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.7.tgz", - "integrity": "sha512-jHIsTNlnZrY3uPUJ12sSy6t20Li6FJkOlI/eoTpO8cgQGh/EfbEwdiJto9V85RYR05GpPgdnClfT+loU2WpoNA==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.8.tgz", + "integrity": "sha512-hHKFx+opG5BA3/owMXon8ypwSotBGTdblG6oda/iOu9+OEYnk0cxD2uIcGyGT8jCK578kV+xMrNxqbn8Zjlpgw==", "cpu": [ "x64" ], @@ -6785,9 +6785,9 @@ "license": "MIT" }, "node_modules/unrs-resolver": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.7.tgz", - "integrity": "sha512-KAJIrBeQXgI6futKlN0aZOG1aViGX1X37EFUYqcBWTPVatjeqoydHITsNuxUe6CRo/UTdwMvteSf4A7R4cAlxA==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.8.tgz", + "integrity": "sha512-2zsXwyOXmCX9nGz4vhtZRYhe30V78heAv+KDc21A/KMdovGHbZcixeD5JHEF0DrFXzdytwuzYclcPbvp8A3Jlw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6795,26 +6795,26 @@ "napi-postinstall": "^0.2.2" }, "funding": { - "url": "https://github.com/sponsors/JounQin" + "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-darwin-arm64": "1.7.7", - "@unrs/resolver-binding-darwin-x64": "1.7.7", - "@unrs/resolver-binding-freebsd-x64": "1.7.7", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.7.7", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.7.7", - "@unrs/resolver-binding-linux-arm64-gnu": "1.7.7", - "@unrs/resolver-binding-linux-arm64-musl": "1.7.7", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.7.7", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.7.7", - "@unrs/resolver-binding-linux-riscv64-musl": "1.7.7", - "@unrs/resolver-binding-linux-s390x-gnu": "1.7.7", - "@unrs/resolver-binding-linux-x64-gnu": "1.7.7", - "@unrs/resolver-binding-linux-x64-musl": "1.7.7", - "@unrs/resolver-binding-wasm32-wasi": "1.7.7", - "@unrs/resolver-binding-win32-arm64-msvc": "1.7.7", - "@unrs/resolver-binding-win32-ia32-msvc": "1.7.7", - "@unrs/resolver-binding-win32-x64-msvc": "1.7.7" + "@unrs/resolver-binding-darwin-arm64": "1.7.8", + "@unrs/resolver-binding-darwin-x64": "1.7.8", + "@unrs/resolver-binding-freebsd-x64": "1.7.8", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.7.8", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.7.8", + "@unrs/resolver-binding-linux-arm64-gnu": "1.7.8", + "@unrs/resolver-binding-linux-arm64-musl": "1.7.8", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.7.8", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.7.8", + "@unrs/resolver-binding-linux-riscv64-musl": "1.7.8", + "@unrs/resolver-binding-linux-s390x-gnu": "1.7.8", + "@unrs/resolver-binding-linux-x64-gnu": "1.7.8", + "@unrs/resolver-binding-linux-x64-musl": "1.7.8", + "@unrs/resolver-binding-wasm32-wasi": "1.7.8", + "@unrs/resolver-binding-win32-arm64-msvc": "1.7.8", + "@unrs/resolver-binding-win32-ia32-msvc": "1.7.8", + "@unrs/resolver-binding-win32-x64-msvc": "1.7.8" } }, "node_modules/uri-js": {