mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2025-03-13 15:02:57 +00:00
Merge branch 'main' into production
This commit is contained in:
commit
8bb815d5b3
51 changed files with 2242 additions and 1071 deletions
|
@ -2,7 +2,6 @@
|
|||
from django.contrib import admin
|
||||
from bookwyrm import models
|
||||
|
||||
admin.site.register(models.SiteSettings)
|
||||
admin.site.register(models.User)
|
||||
admin.site.register(models.FederatedServer)
|
||||
admin.site.register(models.Connector)
|
||||
|
|
|
@ -58,6 +58,13 @@ class Connector(AbstractConnector):
|
|||
Mapping("bio", formatter=get_description),
|
||||
]
|
||||
|
||||
def get_book_data(self, remote_id):
|
||||
data = get_data(remote_id)
|
||||
if data.get("type", {}).get("key") == "/type/redirect":
|
||||
remote_id = self.base_url + data.get("location")
|
||||
return get_data(remote_id)
|
||||
return data
|
||||
|
||||
def get_remote_id_from_data(self, data):
|
||||
"""format a url from an openlibrary id field"""
|
||||
try:
|
||||
|
@ -75,8 +82,11 @@ class Connector(AbstractConnector):
|
|||
except KeyError:
|
||||
raise ConnectorException("Invalid book data")
|
||||
url = "%s%s/editions" % (self.books_url, key)
|
||||
data = get_data(url)
|
||||
return pick_default_edition(data["entries"])
|
||||
data = self.get_book_data(url)
|
||||
edition = pick_default_edition(data["entries"])
|
||||
if not edition:
|
||||
raise ConnectorException("No editions for work")
|
||||
return edition
|
||||
|
||||
def get_work_from_edition_data(self, data):
|
||||
try:
|
||||
|
@ -84,7 +94,7 @@ class Connector(AbstractConnector):
|
|||
except (IndexError, KeyError):
|
||||
raise ConnectorException("No work found for edition")
|
||||
url = "%s%s" % (self.books_url, key)
|
||||
return get_data(url)
|
||||
return self.get_book_data(url)
|
||||
|
||||
def get_authors_from_data(self, data):
|
||||
"""parse author json and load or create authors"""
|
||||
|
@ -143,7 +153,7 @@ class Connector(AbstractConnector):
|
|||
def load_edition_data(self, olkey):
|
||||
"""query openlibrary for editions of a work"""
|
||||
url = "%s/works/%s/editions" % (self.books_url, olkey)
|
||||
return get_data(url)
|
||||
return self.get_book_data(url)
|
||||
|
||||
def expand_book_data(self, book):
|
||||
work = book
|
||||
|
|
|
@ -4,4 +4,7 @@ from bookwyrm import models
|
|||
|
||||
def site_settings(request): # pylint: disable=unused-argument
|
||||
"""include the custom info about the site"""
|
||||
return {"site": models.SiteSettings.objects.get()}
|
||||
return {
|
||||
"site": models.SiteSettings.objects.get(),
|
||||
"active_announcements": models.Announcement.active_announcements(),
|
||||
}
|
||||
|
|
|
@ -269,6 +269,12 @@ class SiteForm(CustomForm):
|
|||
exclude = []
|
||||
|
||||
|
||||
class AnnouncementForm(CustomForm):
|
||||
class Meta:
|
||||
model = models.Announcement
|
||||
exclude = ["remote_id"]
|
||||
|
||||
|
||||
class ListForm(CustomForm):
|
||||
class Meta:
|
||||
model = models.List
|
||||
|
|
56
bookwyrm/migrations/0075_announcement.py
Normal file
56
bookwyrm/migrations/0075_announcement.py
Normal file
|
@ -0,0 +1,56 @@
|
|||
# Generated by Django 3.2 on 2021-05-20 19:34
|
||||
|
||||
import bookwyrm.models.fields
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("bookwyrm", "0074_auto_20210511_1829"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Announcement",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("created_date", models.DateTimeField(auto_now_add=True)),
|
||||
("updated_date", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"remote_id",
|
||||
bookwyrm.models.fields.RemoteIdField(
|
||||
max_length=255,
|
||||
null=True,
|
||||
validators=[bookwyrm.models.fields.validate_remote_id],
|
||||
),
|
||||
),
|
||||
("preview", models.CharField(max_length=255)),
|
||||
("content", models.TextField(blank=True, null=True)),
|
||||
("event_date", models.DateTimeField(blank=True, null=True)),
|
||||
("start_date", models.DateTimeField(blank=True, null=True)),
|
||||
("end_date", models.DateTimeField(blank=True, null=True)),
|
||||
("active", models.BooleanField(default=True)),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"abstract": False,
|
||||
},
|
||||
),
|
||||
]
|
|
@ -25,6 +25,7 @@ from .federated_server import FederatedServer
|
|||
from .import_job import ImportJob, ImportItem
|
||||
|
||||
from .site import SiteSettings, SiteInvite, PasswordReset, InviteRequest
|
||||
from .announcement import Announcement
|
||||
|
||||
cls_members = inspect.getmembers(sys.modules[__name__], inspect.isclass)
|
||||
activity_models = {
|
||||
|
|
28
bookwyrm/models/announcement.py
Normal file
28
bookwyrm/models/announcement.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
""" admin announcements """
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.utils import timezone
|
||||
|
||||
from .base_model import BookWyrmModel
|
||||
|
||||
|
||||
class Announcement(BookWyrmModel):
|
||||
"""The admin has something to say"""
|
||||
|
||||
user = models.ForeignKey("User", on_delete=models.PROTECT)
|
||||
preview = models.CharField(max_length=255)
|
||||
content = models.TextField(null=True, blank=True)
|
||||
event_date = models.DateTimeField(blank=True, null=True)
|
||||
start_date = models.DateTimeField(blank=True, null=True)
|
||||
end_date = models.DateTimeField(blank=True, null=True)
|
||||
active = models.BooleanField(default=True)
|
||||
|
||||
@classmethod
|
||||
def active_announcements(cls):
|
||||
"""announcements that should be displayed"""
|
||||
now = timezone.now()
|
||||
return cls.objects.filter(
|
||||
Q(start_date__isnull=True) | Q(start_date__lte=now),
|
||||
Q(end_date__isnull=True) | Q(end_date__gte=now),
|
||||
active=True,
|
||||
)
|
|
@ -88,10 +88,11 @@ body {
|
|||
.transition-y.is-hidden {
|
||||
display: block !important;
|
||||
visibility: hidden !important;
|
||||
height: 0;
|
||||
width: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 0 !important;
|
||||
width: 0 !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.transition-x,
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
{% extends 'layout.html' %}
|
||||
{% load i18n %}
|
||||
{% load bookwyrm_tags %}
|
||||
{% load humanize %}
|
||||
{% load i18n %}{% load bookwyrm_tags %}{% load humanize %}{% load utilities %}
|
||||
|
||||
{% block title %}{{ book.title }}{% endblock %}
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{% spaceless %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
<dl>
|
||||
|
|
|
@ -88,6 +88,7 @@
|
|||
<div class="column is-half">
|
||||
<section class="block">
|
||||
<h2 class="title is-4">{% trans "Metadata" %}</h2>
|
||||
|
||||
<p class="mb-2">
|
||||
<label class="label" for="id_title">{% trans "Title:" %}</label>
|
||||
<input type="text" name="title" value="{{ form.title.value|default:'' }}" maxlength="255" class="input" required="" id="id_title">
|
||||
|
@ -117,11 +118,23 @@
|
|||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
|
||||
<p class="mb-2"><label class="label" for="id_series_number">{% trans "Series number:" %}</label> {{ form.series_number }} </p>
|
||||
<p class="mb-2">
|
||||
<label class="label" for="id_series_number">{% trans "Series number:" %}</label>
|
||||
{{ form.series_number }}
|
||||
</p>
|
||||
{% for error in form.series_number.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
|
||||
<p class="mb-2">
|
||||
<label class="label" for="id_languages">{% trans "Languages:" %}</label>
|
||||
{{ form.languages }}
|
||||
<span class="help">{% trans "Separate multiple values with commas." %}</span>
|
||||
</p>
|
||||
{% for error in form.languages.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
|
||||
<p class="mb-2">
|
||||
<label class="label" for="id_publishers">{% trans "Publisher:" %}</label>
|
||||
{{ form.publishers }}
|
||||
|
@ -216,18 +229,27 @@
|
|||
{% for error in form.isbn_13.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
|
||||
<p class="mb-2"><label class="label" for="id_isbn_10">{% trans "ISBN 10:" %}</label> {{ form.isbn_10 }} </p>
|
||||
{% for error in form.isbn_10.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
<p class="mb-2"><label class="label" for="id_openlibrary_key">{% trans "Openlibrary key:" %}</label> {{ form.openlibrary_key }} </p>
|
||||
|
||||
<p class="mb-2"><label class="label" for="id_openlibrary_key">{% trans "Openlibrary ID:" %}</label> {{ form.openlibrary_key }} </p>
|
||||
{% for error in form.openlibrary_key.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
|
||||
<p class="mb-2"><label class="label" for="id_inventaire_id">{% trans "Inventaire ID:" %}</label> {{ form.inventaire_id }} </p>
|
||||
{% for error in form.inventaire_id.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
|
||||
<p class="mb-2"><label class="label" for="id_oclc_number">{% trans "OCLC Number:" %}</label> {{ form.oclc_number }} </p>
|
||||
{% for error in form.oclc_number.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
|
||||
<p class="mb-2"><label class="label" for="id_asin">{% trans "ASIN:" %}</label> {{ form.asin }} </p>
|
||||
{% for error in form.ASIN.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{% extends 'layout.html' %}
|
||||
{% load i18n %}
|
||||
{% load i18n %}{% load utilities %}
|
||||
|
||||
{% block title %}{% blocktrans with book_title=work.title %}Editions of {{ book_title }}{% endblocktrans %}{% endblock %}
|
||||
{% block title %}{% blocktrans with book_title=work|book_title %}Editions of {{ book_title }}{% endblocktrans %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="block">
|
||||
<h1 class="title">{% blocktrans with work_path=work.local_path work_title=work.title %}Editions of <a href="{{ work_path }}">"{{ work_title }}"</a>{% endblocktrans %}</h1>
|
||||
<h1 class="title">{% blocktrans with work_path=work.local_path work_title=work|book_title %}Editions of <a href="{{ work_path }}">"{{ work_title }}"</a>{% endblocktrans %}</h1>
|
||||
</div>
|
||||
|
||||
{% include 'book/edition_filters.html' %}
|
||||
|
@ -22,7 +22,7 @@
|
|||
<div class="column my-3-mobile ml-3-tablet mr-auto">
|
||||
<h2 class="title is-5 mb-1">
|
||||
<a href="{{ book.local_path }}" class="has-text-black">
|
||||
{{ book.title }}
|
||||
{{ book|book_title }}
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends 'snippets/filters_panel/filter_field.html' %}
|
||||
{% load i18n %}
|
||||
{% load i18n %}{% load utilities %}
|
||||
|
||||
{% block filter %}
|
||||
<label class="label is-block" for="id_format">{% trans "Format:" %}</label>
|
||||
|
@ -8,7 +8,7 @@
|
|||
<option value="">{% trans "Any" %}</option>
|
||||
{% for format in formats %}{% if format %}
|
||||
<option value="{{ format }}" {% if request.GET.format == format %}selected{% endif %}>
|
||||
{{ format|title }}
|
||||
{{ format|book_title }}
|
||||
</option>
|
||||
{% endif %}{% endfor %}
|
||||
</select>
|
||||
|
|
|
@ -49,7 +49,3 @@
|
|||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
<script src="/static/js/localstorage.js"></script>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{% load layout %}
|
||||
{% load i18n %}
|
||||
{% load layout %}{% load i18n %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{% get_lang %}">
|
||||
<head>
|
||||
|
@ -182,6 +181,15 @@
|
|||
</div>
|
||||
</nav>
|
||||
|
||||
{% if request.user.is_authenticated and active_announcements.exists %}
|
||||
<div class="block is-flex-grow-1">
|
||||
<div class="container">
|
||||
{% for announcement in active_announcements %}
|
||||
{% include 'snippets/announcement.html' with announcement=announcement %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="section is-flex-grow-1">
|
||||
<div class="container">
|
||||
|
@ -230,6 +238,7 @@
|
|||
var csrf_token = '{{ csrf_token }}';
|
||||
</script>
|
||||
<script src="/static/js/bookwyrm.js"></script>
|
||||
<script src="/static/js/localstorage.js"></script>
|
||||
{% block scripts %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -28,9 +28,9 @@
|
|||
</div>
|
||||
<div class="column is-narrow">
|
||||
{% trans "Open" as button_text %}
|
||||
{% include 'snippets/toggle/open_button.html' with text=button_text small=True controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-down" pressed=forloop.first %}
|
||||
{% include 'snippets/toggle/open_button.html' with text=button_text controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-down" pressed=forloop.first %}
|
||||
{% trans "Close" as button_text %}
|
||||
{% include 'snippets/toggle/close_button.html' with text=button_text small=True controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-up" pressed=forloop.first %}
|
||||
{% include 'snippets/toggle/close_button.html' with text=button_text controls_text="more-results-panel" controls_uid=result_set.connector.identifier class="is-small" icon_with_text="arrow-up" pressed=forloop.first %}
|
||||
</div>
|
||||
</header>
|
||||
{% endif %}
|
||||
|
|
|
@ -43,6 +43,10 @@
|
|||
{% if perms.bookwyrm.edit_instance_settings %}
|
||||
<h2 class="menu-label">{% trans "Instance Settings" %}</h2>
|
||||
<ul class="menu-list">
|
||||
<li>
|
||||
{% url 'settings-announcements' as url %}
|
||||
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Announcements" %}</a>
|
||||
</li>
|
||||
<li>
|
||||
{% url 'settings-site' as url %}
|
||||
<a href="{{ url }}"{% if url in request.path %} class="is-active" aria-selected="true"{% endif %}>{% trans "Site Settings" %}</a>
|
||||
|
|
70
bookwyrm/templates/settings/announcement.html
Normal file
70
bookwyrm/templates/settings/announcement.html
Normal file
|
@ -0,0 +1,70 @@
|
|||
{% extends 'settings/admin_layout.html' %}
|
||||
{% load i18n %}{% load humanize %}
|
||||
{% block title %}{% trans "Announcement" %} - {{ announcement.preview }}{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
{% trans "Announcement" %}
|
||||
<a href="{% url 'settings-announcements' %}" class="has-text-weight-normal help">{% trans "Back to list" %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block edit-button %}
|
||||
{% trans "Edit Announcement" as button_text %}
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
{% include 'snippets/toggle/open_button.html' with controls_text="edit-announcement" icon_with_text="pencil" text=button_text focus="edit-announcement-header" %}
|
||||
</div>
|
||||
<form class="control" action="{% url 'settings-announcements-delete' announcement.id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="button is-danger">
|
||||
<span class="icon icon-x" aria-hidden="true"></span>
|
||||
<span>{% trans "Delete" %}</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
|
||||
<form name="edit-announcement" method="post" action="{% url 'settings-announcements' announcement.id %}" class="block">
|
||||
{% include 'settings/announcement_form.html' with controls_text="edit-announcement" %}
|
||||
</form>
|
||||
|
||||
<div class="block content">
|
||||
<dl>
|
||||
<div class="is-flex notification pt-1 pb-1 mb-0 {% if announcement in active_announcements %}is-success{% else %}is-danger{% endif %}">
|
||||
<dt class="mr-1 has-text-weight-bold">{% trans "Visible:" %}</dt>
|
||||
<dd>
|
||||
{% if announcement in active_announcements %}
|
||||
{% trans "True" %}
|
||||
{% else %}
|
||||
{% trans "False" %}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
{% if announcement.start_date %}
|
||||
<div class="is-flex notificationi pt-1 pb-1 mb-0 has-background-white">
|
||||
<dt class="mr-1 has-text-weight-bold">{% trans "Start date:" %}</dt>
|
||||
<dd>{{ announcement.start_date|naturalday }}</dd>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if announcement.end_date %}
|
||||
<div class="is-flex notification pt-1 pb-1 mb-0 has-background-white">
|
||||
<dt class="mr-1 has-text-weight-bold">{% trans "End date:" %}</dt>
|
||||
<dd>{{ announcement.end_date|naturalday }}</dd>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="is-flex notification pt-1 pb-1 has-background-white">
|
||||
<dt class="mr-1 has-text-weight-bold">{% trans "Active:" %}</dt>
|
||||
<dd>{{ announcement.active }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
<hr aria-hidden="true">
|
||||
|
||||
{% include 'snippets/announcement.html' with announcement=announcement pressed=True admin_mode=True %}
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
68
bookwyrm/templates/settings/announcement_form.html
Normal file
68
bookwyrm/templates/settings/announcement_form.html
Normal file
|
@ -0,0 +1,68 @@
|
|||
{% extends 'components/inline_form.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block header %}
|
||||
{% trans "Create Announcement" %}
|
||||
{% endblock %}
|
||||
|
||||
{% block form %}
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="user" value="{{ request.user.id }}">
|
||||
<p>
|
||||
<label class="label" for="id_preview">Preview:</label>
|
||||
{{ form.preview }}
|
||||
{% for error in form.preview.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
</p>
|
||||
<p>
|
||||
<label class="label" for="id_content">Content:</label>
|
||||
{{ form.content }}
|
||||
{% for error in form.content.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
</p>
|
||||
<p>
|
||||
<label class="label" for="id_event_date">Event date:</label>
|
||||
<input type="date" name="event_date" value="{{ form.event_date.value }}" class="input" id="id_event_date">
|
||||
{% for error in form.event_date.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
</p>
|
||||
<hr aria-hidden="true">
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<p>
|
||||
<label class="label" for="id_start_date">Start date:</label>
|
||||
<input type="date" name="start_date" class="input" id="id_start_date">
|
||||
{% for error in form.start_date.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="column">
|
||||
<p>
|
||||
<label class="label" for="id_end_date">End date:</label>
|
||||
<input type="date" name="end_date" class="input" id="id_end_date">
|
||||
{% for error in form.end_date.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="column is-narrow">
|
||||
<p>
|
||||
<label class="label" for="id_active">Active:</label>
|
||||
{{ form.active }}
|
||||
{% for error in form.active.errors %}
|
||||
<p class="help is-danger">{{ error | escape }}</p>
|
||||
{% endfor %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
<button type="submit" class="button is-primary">{% trans "Save" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
54
bookwyrm/templates/settings/announcements.html
Normal file
54
bookwyrm/templates/settings/announcements.html
Normal file
|
@ -0,0 +1,54 @@
|
|||
{% extends 'settings/admin_layout.html' %}
|
||||
{% load i18n %}{% load humanize %}
|
||||
{% block title %}{% trans "Announcements" %}{% endblock %}
|
||||
|
||||
{% block header %}{% trans "Announcements" %}{% endblock %}
|
||||
|
||||
{% block edit-button %}
|
||||
{% trans "Create Announcement" as button_text %}
|
||||
{% include 'snippets/toggle/open_button.html' with controls_text="create-announcement" icon_with_text="plus" text=button_text focus="create-announcement-header" %}
|
||||
</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
<form name="create-announcement" method="post" action="{% url 'settings-announcements' %}" class="block">
|
||||
{% include 'settings/announcement_form.html' with controls_text="create-announcement" %}
|
||||
</form>
|
||||
|
||||
<table class="table is-striped">
|
||||
<tr>
|
||||
<th>
|
||||
{% url 'settings-announcements' as url %}
|
||||
{% trans "Date added" as text %}
|
||||
{% include 'snippets/table-sort-header.html' with field="created_date" sort=sort text=text %}
|
||||
</th>
|
||||
<th>
|
||||
{% trans "Preview" as text %}
|
||||
{% include 'snippets/table-sort-header.html' with field="preview" sort=sort text=text %}
|
||||
</th>
|
||||
<th>
|
||||
{% trans "Start date" as text %}
|
||||
{% include 'snippets/table-sort-header.html' with field="start_date" sort=sort text=text %}
|
||||
</th>
|
||||
<th>
|
||||
{% trans "End date" as text %}
|
||||
{% include 'snippets/table-sort-header.html' with field="end_date" sort=sort text=text %}
|
||||
</th>
|
||||
<th>
|
||||
{% trans "Status" as text %}
|
||||
{% include 'snippets/table-sort-header.html' with field="active" sort=sort text=text %}
|
||||
</th>
|
||||
</tr>
|
||||
{% for announcement in announcements %}
|
||||
<tr>
|
||||
<td>{{ announcement.created_date|naturalday }}</td>
|
||||
<td><a href="{% url 'settings-announcements' announcement.id %}">{{ announcement.preview }}</a></td>
|
||||
<td>{{ announcement.start_date|naturaltime|default:'' }}</td>
|
||||
<td>{{ announcement.end_date|naturaltime|default:'' }}</td>
|
||||
<td>{% if announcement.active %}{% trans "active" %}{% else %}{% trans "inactive" %}{% endif %}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
{% include 'snippets/pagination.html' with page=announcements path=request.path %}
|
||||
{% endblock %}
|
|
@ -10,7 +10,7 @@
|
|||
{% if server.status == "blocked" %}<span class="icon icon-x has-text-danger is-size-5" title="{% trans 'Blocked' %}"><span class="is-sr-only">{% trans "Blocked" %}</span></span>
|
||||
{% endif %}
|
||||
|
||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to list" %}</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block panel %}
|
||||
|
|
38
bookwyrm/templates/snippets/announcement.html
Normal file
38
bookwyrm/templates/snippets/announcement.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
{% load humanize %}{% load i18n %}{% load utilities %}
|
||||
{% with announcement.id|uuid as uuid %}
|
||||
<aside
|
||||
class="notification mb-1 p-3{% if not admin_mode %} is-hidden{% endif %} transition-y"
|
||||
{% if not admin_mode %}data-hide="hide-announcement-{{ announcement.id }}"{% endif %}
|
||||
>
|
||||
<div class="columns mb-0">
|
||||
<div class="column pb-0">
|
||||
{% if announcement.event_date %}
|
||||
<strong>{{ announcement.event_date|naturalday|title }}:</strong>
|
||||
{% endif %}
|
||||
{{ announcement.preview }}
|
||||
</div>
|
||||
{% if announcement.content %}
|
||||
<div class="column is-narrow pb-0">
|
||||
{% trans "Open" as button_text %}
|
||||
{% include 'snippets/toggle/open_button.html' with text=button_text controls_text="announcement" class="is-small" controls_uid=uuid icon_with_text="arrow-down" %}
|
||||
{% trans "Close" as button_text %}
|
||||
{% include 'snippets/toggle/close_button.html' with text=button_text controls_text="announcement" class="is-small" controls_uid=uuid icon_with_text="arrow-up" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if announcement.content %}
|
||||
<div class="mb-2 mt-2 {% if not pressed %}is-hidden{% endif %}" id="announcement-{{ uuid }}">
|
||||
<div class="box is-shadowless mb-0">
|
||||
{{ announcement.content|safe }}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="is-flex mt-0 help">
|
||||
<p>{% blocktrans with user_path=announcement.user.local_path username=announcement.user.display_name %}Posted by <a href="{{ user_path }}">{{ username }}</a>{% endblocktrans %}</p>
|
||||
{% if not admin_mode %}
|
||||
<span class="mr-2 ml-2" aria-hidden="true">·</span>
|
||||
<a class="set-display" data-id="hide-announcement-{{ announcement.id }}" data-value="true">{% trans "Dismiss message" %}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</aside>
|
||||
{% endwith %}
|
|
@ -1,8 +1,8 @@
|
|||
{% load i18n %}
|
||||
{% load utilities %}
|
||||
{% if book.authors %}
|
||||
{% blocktrans with path=book.local_path title=book|title %}<a href="{{ path }}">{{ title }}</a> by {% endblocktrans %}{% include 'snippets/authors.html' with book=book %}
|
||||
{% blocktrans with path=book.local_path title=book|book_title %}<a href="{{ path }}">{{ title }}</a> by {% endblocktrans %}{% include 'snippets/authors.html' with book=book %}
|
||||
{% else %}
|
||||
<a href="{{ book.local_path }}">{{ book|title }}</a>
|
||||
<a href="{{ book.local_path }}">{{ book|book_title }}</a>
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
{% if status.book %}
|
||||
{% if status.status_type == 'GeneratedNote' or status.status_type == 'Rating' %}
|
||||
<a href="{{ status.book.local_path }}">{{ status.book|title }}</a>{% if status.status_type == 'Rating' %}: {% include 'snippets/stars.html' with rating=status.rating %}
|
||||
<a href="{{ status.book.local_path }}">{{ status.book|book_title }}</a>{% if status.status_type == 'Rating' %}: {% include 'snippets/stars.html' with rating=status.rating %}
|
||||
<span
|
||||
itemprop="reviewRating"
|
||||
itemscope
|
||||
|
@ -59,7 +59,7 @@
|
|||
|
||||
{% if status.book %}
|
||||
{% if status.status_type == 'GeneratedNote' or status.status_type == 'Rating' %}
|
||||
<a href="{{ status.book.local_path }}">{{ status.book|title }}</a>{% if status.status_type == 'Rating' %}:
|
||||
<a href="{{ status.book.local_path }}">{{ status.book|book_title }}</a>{% if status.status_type == 'Rating' %}:
|
||||
<span
|
||||
itemprop="reviewRating"
|
||||
itemscope
|
||||
|
@ -78,7 +78,7 @@
|
|||
{% endif %}
|
||||
{% elif status.mention_books %}
|
||||
<a href="{{ status.mention_books.first.local_path }}">
|
||||
{{ status.mention_books.first.title }}
|
||||
{{ status.mention_books.first|book_title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% include 'snippets/stars.html' with rating=status.rating %}
|
||||
|
@ -87,7 +87,7 @@
|
|||
{% include 'snippets/book_titleby.html' with book=status.book %}
|
||||
{% endif %}
|
||||
{% elif status.mention_books %}
|
||||
<a href="{{ status.mention_books.first.local_path }}">{{ status.mention_books.first|title }}</a>
|
||||
<a href="{{ status.mention_books.first.local_path }}">{{ status.mention_books.first|book_title }}</a>
|
||||
{% endif %}
|
||||
|
||||
</h3>
|
||||
|
|
|
@ -18,7 +18,7 @@ def get_user_identifier(user):
|
|||
return user.localname if user.localname else user.username
|
||||
|
||||
|
||||
@register.filter(name="title")
|
||||
@register.filter(name="book_title")
|
||||
def get_title(book):
|
||||
"""display the subtitle if the title is short"""
|
||||
if not book:
|
||||
|
|
137
bookwyrm/tests/views/test_announcements.py
Normal file
137
bookwyrm/tests/views/test_announcements.py
Normal file
|
@ -0,0 +1,137 @@
|
|||
""" test for app action functionality """
|
||||
from django.template.response import TemplateResponse
|
||||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
from bookwyrm import forms, models, views
|
||||
|
||||
|
||||
class AnnouncementViews(TestCase):
|
||||
"""every response to a get request, html or json"""
|
||||
|
||||
def setUp(self):
|
||||
"""we need basic test data and mocks"""
|
||||
self.factory = RequestFactory()
|
||||
self.local_user = models.User.objects.create_user(
|
||||
"mouse@local.com",
|
||||
"mouse@mouse.mouse",
|
||||
"password",
|
||||
local=True,
|
||||
localname="mouse",
|
||||
)
|
||||
models.SiteSettings.objects.create()
|
||||
|
||||
def test_announcements_page(self):
|
||||
"""there are so many views, this just makes sure it LOADS"""
|
||||
models.Announcement.objects.create(preview="hi", user=self.local_user)
|
||||
|
||||
view = views.Announcements.as_view()
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
request.user.is_superuser = True
|
||||
|
||||
result = view(request)
|
||||
|
||||
self.assertIsInstance(result, TemplateResponse)
|
||||
result.render()
|
||||
self.assertEqual(result.status_code, 200)
|
||||
|
||||
def test_announcements_page_empty(self):
|
||||
"""there are so many views, this just makes sure it LOADS"""
|
||||
view = views.Announcements.as_view()
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
request.user.is_superuser = True
|
||||
|
||||
result = view(request)
|
||||
|
||||
self.assertIsInstance(result, TemplateResponse)
|
||||
result.render()
|
||||
self.assertEqual(result.status_code, 200)
|
||||
|
||||
def test_announcement_page(self):
|
||||
"""there are so many views, this just makes sure it LOADS"""
|
||||
announcement = models.Announcement.objects.create(
|
||||
preview="hi", user=self.local_user
|
||||
)
|
||||
|
||||
view = views.Announcement.as_view()
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
request.user.is_superuser = True
|
||||
|
||||
result = view(request, announcement.id)
|
||||
|
||||
self.assertIsInstance(result, TemplateResponse)
|
||||
result.render()
|
||||
self.assertEqual(result.status_code, 200)
|
||||
|
||||
def test_create_announcement(self):
|
||||
"""create a new announcement"""
|
||||
view = views.Announcements.as_view()
|
||||
form = forms.AnnouncementForm()
|
||||
form.data["preview"] = "hi hi"
|
||||
form.data["start_date"] = "2021-05-20"
|
||||
form.data["user"] = self.local_user.id
|
||||
|
||||
request = self.factory.post("", form.data)
|
||||
request.user = self.local_user
|
||||
request.user.is_superuser = True
|
||||
|
||||
view(request)
|
||||
|
||||
announcement = models.Announcement.objects.get()
|
||||
self.assertEqual(announcement.preview, "hi hi")
|
||||
self.assertEqual(announcement.start_date.year, 2021)
|
||||
self.assertEqual(announcement.start_date.month, 5)
|
||||
self.assertEqual(announcement.start_date.day, 20)
|
||||
|
||||
def test_edit_announcement(self):
|
||||
"""edit an announcement"""
|
||||
announcement = models.Announcement.objects.create(
|
||||
preview="hi", user=self.local_user
|
||||
)
|
||||
view = views.Announcement.as_view()
|
||||
form = forms.AnnouncementForm(instance=announcement)
|
||||
form.data["preview"] = "hi hi"
|
||||
form.data["start_date"] = "2021-05-20"
|
||||
form.data["user"] = self.local_user.id
|
||||
|
||||
request = self.factory.post("", form.data)
|
||||
request.user = self.local_user
|
||||
request.user.is_superuser = True
|
||||
|
||||
view(request, announcement.id)
|
||||
|
||||
announcement.refresh_from_db()
|
||||
self.assertEqual(announcement.preview, "hi hi")
|
||||
self.assertEqual(announcement.start_date.year, 2021)
|
||||
self.assertEqual(announcement.start_date.month, 5)
|
||||
self.assertEqual(announcement.start_date.day, 20)
|
||||
|
||||
def test_delete_announcement(self):
|
||||
"""delete an announcement"""
|
||||
announcement = models.Announcement.objects.create(
|
||||
preview="hi", user=self.local_user
|
||||
)
|
||||
view = views.delete_announcement
|
||||
|
||||
request = self.factory.post("")
|
||||
request.user = self.local_user
|
||||
request.user.is_superuser = True
|
||||
|
||||
view(request, announcement.id)
|
||||
|
||||
self.assertFalse(models.Announcement.objects.exists())
|
||||
|
||||
def test_view_announcement(self):
|
||||
"""display announcement on other pages"""
|
||||
view = views.User.as_view()
|
||||
request = self.factory.get("")
|
||||
request.user = self.local_user
|
||||
|
||||
result = view(request, self.local_user.localname)
|
||||
|
||||
self.assertIsInstance(result, TemplateResponse)
|
||||
result.render()
|
||||
self.assertEqual(result.status_code, 200)
|
|
@ -53,6 +53,17 @@ class Views(TestCase):
|
|||
self.assertEqual(data[0]["title"], "Test Book")
|
||||
self.assertEqual(data[0]["key"], "https://%s/book/%d" % (DOMAIN, self.book.id))
|
||||
|
||||
def test_search_no_query(self):
|
||||
"""just the search page"""
|
||||
view = views.Search.as_view()
|
||||
# we need a connector for this, sorry
|
||||
request = self.factory.get("")
|
||||
with patch("bookwyrm.views.search.is_api_request") as is_api:
|
||||
is_api.return_value = False
|
||||
response = view(request)
|
||||
self.assertIsInstance(response, TemplateResponse)
|
||||
response.render()
|
||||
|
||||
def test_search_books(self):
|
||||
"""searches remote connectors"""
|
||||
view = views.Search.as_view()
|
||||
|
|
|
@ -56,6 +56,21 @@ urlpatterns = [
|
|||
),
|
||||
# admin
|
||||
re_path(r"^settings/site-settings/?$", views.Site.as_view(), name="settings-site"),
|
||||
re_path(
|
||||
r"^settings/announcements/?$",
|
||||
views.Announcements.as_view(),
|
||||
name="settings-announcements",
|
||||
),
|
||||
re_path(
|
||||
r"^settings/announcements/(?P<announcement_id>\d+)/?$",
|
||||
views.Announcement.as_view(),
|
||||
name="settings-announcements",
|
||||
),
|
||||
re_path(
|
||||
r"^settings/announcements/(?P<announcement_id>\d+)/delete/?$",
|
||||
views.delete_announcement,
|
||||
name="settings-announcements-delete",
|
||||
),
|
||||
re_path(
|
||||
r"^settings/email-preview/?$",
|
||||
views.site.email_preview,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
""" make sure all our nice views are available """
|
||||
from .announcements import Announcements, Announcement, delete_announcement
|
||||
from .authentication import Login, Register, Logout
|
||||
from .author import Author, EditAuthor
|
||||
from .block import Block, unblock
|
||||
|
|
97
bookwyrm/views/announcements.py
Normal file
97
bookwyrm/views/announcements.py
Normal file
|
@ -0,0 +1,97 @@
|
|||
""" make announcements """
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.core.paginator import Paginator
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views import View
|
||||
|
||||
from bookwyrm import forms, models
|
||||
from bookwyrm.settings import PAGE_LENGTH
|
||||
|
||||
|
||||
# pylint: disable=no-self-use
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
@method_decorator(
|
||||
permission_required("bookwyrm.edit_instance_settings", raise_exception=True),
|
||||
name="dispatch",
|
||||
)
|
||||
class Announcements(View):
|
||||
"""tell everyone"""
|
||||
|
||||
def get(self, request):
|
||||
"""view and create announcements"""
|
||||
announcements = models.Announcement.objects
|
||||
|
||||
sort = request.GET.get("sort", "-created_date")
|
||||
sort_fields = [
|
||||
"created_date",
|
||||
"preview",
|
||||
"start_date",
|
||||
"end_date",
|
||||
"active",
|
||||
]
|
||||
if sort in sort_fields + ["-{:s}".format(f) for f in sort_fields]:
|
||||
announcements = announcements.order_by(sort)
|
||||
data = {
|
||||
"announcements": Paginator(announcements, PAGE_LENGTH).get_page(
|
||||
request.GET.get("page")
|
||||
),
|
||||
"form": forms.AnnouncementForm(),
|
||||
"sort": sort,
|
||||
}
|
||||
return TemplateResponse(request, "settings/announcements.html", data)
|
||||
|
||||
def post(self, request):
|
||||
"""edit the site settings"""
|
||||
form = forms.AnnouncementForm(request.POST)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
# reset the create form
|
||||
form = forms.AnnouncementForm()
|
||||
data = {
|
||||
"announcements": Paginator(
|
||||
models.Announcement.objects.all(), PAGE_LENGTH
|
||||
).get_page(request.GET.get("page")),
|
||||
"form": form,
|
||||
}
|
||||
return TemplateResponse(request, "settings/announcements.html", data)
|
||||
|
||||
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
@method_decorator(
|
||||
permission_required("bookwyrm.edit_instance_settings", raise_exception=True),
|
||||
name="dispatch",
|
||||
)
|
||||
class Announcement(View):
|
||||
"""edit an announcement"""
|
||||
|
||||
def get(self, request, announcement_id):
|
||||
"""view announcement"""
|
||||
announcement = get_object_or_404(models.Announcement, id=announcement_id)
|
||||
data = {
|
||||
"announcement": announcement,
|
||||
"form": forms.AnnouncementForm(instance=announcement),
|
||||
}
|
||||
return TemplateResponse(request, "settings/announcement.html", data)
|
||||
|
||||
def post(self, request, announcement_id):
|
||||
"""edit announcement"""
|
||||
announcement = get_object_or_404(models.Announcement, id=announcement_id)
|
||||
form = forms.AnnouncementForm(request.POST, instance=announcement)
|
||||
if form.is_valid():
|
||||
announcement = form.save()
|
||||
data = {
|
||||
"announcement": announcement,
|
||||
"form": form,
|
||||
}
|
||||
return TemplateResponse(request, "settings/announcement.html", data)
|
||||
|
||||
|
||||
@login_required
|
||||
@permission_required("bookwyrm.edit_instance_settings", raise_exception=True)
|
||||
def delete_announcement(_, announcement_id):
|
||||
"""delete announcement"""
|
||||
announcement = get_object_or_404(models.Announcement, id=announcement_id)
|
||||
announcement.delete()
|
||||
return redirect("settings-announcements")
|
|
@ -319,7 +319,10 @@ def upload_cover(request, book_id):
|
|||
|
||||
def set_cover_from_url(url):
|
||||
"""load it from a url"""
|
||||
image_file = get_image(url)
|
||||
try:
|
||||
image_file = get_image(url)
|
||||
except: # pylint: disable=bare-except
|
||||
return None
|
||||
if not image_file:
|
||||
return None
|
||||
image_name = str(uuid4()) + "." + url.split(".")[-1]
|
||||
|
|
|
@ -120,9 +120,9 @@ class GetStartedUsers(View):
|
|||
)
|
||||
|
||||
if user_results.count() < 5:
|
||||
suggested_users = get_suggested_users(request.user)
|
||||
user_results = list(user_results) + list(get_suggested_users(request.user))
|
||||
|
||||
data = {
|
||||
"suggested_users": list(user_results) + list(suggested_users),
|
||||
"suggested_users": user_results,
|
||||
}
|
||||
return TemplateResponse(request, "get_started/users.html", data)
|
||||
|
|
|
@ -7,6 +7,7 @@ from django.http import HttpResponseBadRequest
|
|||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views import View
|
||||
|
||||
from bookwyrm import forms, models
|
||||
|
@ -62,8 +63,8 @@ class Import(View):
|
|||
include_reviews,
|
||||
privacy,
|
||||
)
|
||||
except (UnicodeDecodeError, ValueError):
|
||||
return HttpResponseBadRequest("Not a valid csv file")
|
||||
except (UnicodeDecodeError, ValueError, KeyError):
|
||||
return HttpResponseBadRequest(_("Not a valid csv file"))
|
||||
|
||||
importer.start_import(job)
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ class PasswordResetRequest(View):
|
|||
"""create a password reset token"""
|
||||
email = request.POST.get("email")
|
||||
try:
|
||||
user = models.User.objects.get(email=email)
|
||||
user = models.User.objects.get(email=email, email__isnull=False)
|
||||
except models.User.DoesNotExist:
|
||||
data = {"error": _("No user with that email address was found.")}
|
||||
return TemplateResponse(request, "password_reset_request.html", data)
|
||||
|
|
|
@ -7,8 +7,8 @@ from .helpers import get_user_from_username, privacy_filter
|
|||
class RssFeed(Feed):
|
||||
"""serialize user's posts in rss feed"""
|
||||
|
||||
description_template = "snippets/rss_content.html"
|
||||
title_template = "snippets/rss_title.html"
|
||||
description_template = "rss/content.html"
|
||||
title_template = "rss/title.html"
|
||||
|
||||
def get_object(self, request, username):
|
||||
"""the user who's posts get serialized"""
|
||||
|
|
|
@ -36,7 +36,7 @@ class Search(View):
|
|||
)
|
||||
return JsonResponse([r.json() for r in book_results], safe=False)
|
||||
|
||||
if not search_type:
|
||||
if query and not search_type:
|
||||
search_type = "user" if "@" in query else "book"
|
||||
|
||||
endpoints = {
|
||||
|
|
|
@ -21,7 +21,7 @@ from .reading import edit_readthrough
|
|||
class CreateStatus(View):
|
||||
"""the view for *posting*"""
|
||||
|
||||
def get(self, request):
|
||||
def get(self, request, status_type): # pylint: disable=unused-argument
|
||||
"""compose view (used for delete-and-redraft"""
|
||||
book = get_object_or_404(models.Edition, id=request.GET.get("book"))
|
||||
data = {"book": book}
|
||||
|
|
|
@ -95,7 +95,7 @@ class Followers(View):
|
|||
data = {
|
||||
"user": user,
|
||||
"is_self": request.user.id == user.id,
|
||||
"follow_list": paginated.page(request.GET.get("page", 1)),
|
||||
"follow_list": paginated.get_page(request.GET.get("page")),
|
||||
}
|
||||
return TemplateResponse(request, "user/relationships/followers.html", data)
|
||||
|
||||
|
@ -114,7 +114,7 @@ class Following(View):
|
|||
data = {
|
||||
"user": user,
|
||||
"is_self": request.user.id == user.id,
|
||||
"follow_list": paginated.page(request.GET.get("page", 1)),
|
||||
"follow_list": paginated.get_page(request.GET.get("page")),
|
||||
}
|
||||
return TemplateResponse(request, "user/relationships/following.html", data)
|
||||
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: 0.0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-14 15:12-0700\n"
|
||||
"POT-Creation-Date: 2021-05-20 14:40-0700\n"
|
||||
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
|
||||
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
|
||||
"Language-Team: English <LL@li.org>\n"
|
||||
|
@ -47,29 +47,29 @@ msgstr ""
|
|||
msgid "Unlimited"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:293
|
||||
#: bookwyrm/forms.py:299
|
||||
msgid "List Order"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:294
|
||||
#: bookwyrm/forms.py:300
|
||||
msgid "Book Title"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:295 bookwyrm/templates/snippets/create_status_form.html:34
|
||||
#: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:84
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:115
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:297 bookwyrm/templates/lists/list.html:101
|
||||
#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
|
||||
msgid "Sort By"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:301
|
||||
#: bookwyrm/forms.py:307
|
||||
msgid "Ascending"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/forms.py:302
|
||||
#: bookwyrm/forms.py:308
|
||||
msgid "Descending"
|
||||
msgstr ""
|
||||
|
||||
|
@ -83,7 +83,7 @@ msgstr ""
|
|||
msgid "%(value)s is not a valid username"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:156
|
||||
#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
|
||||
msgid "username"
|
||||
msgstr ""
|
||||
|
||||
|
@ -136,34 +136,34 @@ msgstr ""
|
|||
msgid "Edit Author"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/author.html:33
|
||||
#: bookwyrm/templates/author/author.html:32
|
||||
#: bookwyrm/templates/author/edit_author.html:38
|
||||
msgid "Aliases:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/author.html:39
|
||||
#: bookwyrm/templates/author/author.html:38
|
||||
msgid "Born:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/author.html:45
|
||||
#: bookwyrm/templates/author/author.html:44
|
||||
msgid "Died:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/author.html:52
|
||||
#: bookwyrm/templates/author/author.html:51
|
||||
msgid "Wikipedia"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/author.html:56
|
||||
#: bookwyrm/templates/book/book.html:81
|
||||
#: bookwyrm/templates/author/author.html:55
|
||||
#: bookwyrm/templates/book/book.html:78
|
||||
msgid "View on OpenLibrary"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/author.html:61
|
||||
#: bookwyrm/templates/book/book.html:84
|
||||
#: bookwyrm/templates/author/author.html:60
|
||||
#: bookwyrm/templates/book/book.html:81
|
||||
msgid "View on Inventaire"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/author.html:75
|
||||
#: bookwyrm/templates/author/author.html:74
|
||||
#, python-format
|
||||
msgid "Books by %(name)s"
|
||||
msgstr ""
|
||||
|
@ -200,8 +200,9 @@ msgid "Name:"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:40
|
||||
#: bookwyrm/templates/book/edit_book.html:128
|
||||
#: bookwyrm/templates/book/edit_book.html:165
|
||||
#: bookwyrm/templates/book/edit_book.html:132
|
||||
#: bookwyrm/templates/book/edit_book.html:141
|
||||
#: bookwyrm/templates/book/edit_book.html:178
|
||||
msgid "Separate multiple values with commas."
|
||||
msgstr ""
|
||||
|
||||
|
@ -226,11 +227,11 @@ msgid "Author Identifiers"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:74
|
||||
#: bookwyrm/templates/book/edit_book.html:223
|
||||
msgid "Openlibrary key:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:79
|
||||
#: bookwyrm/templates/book/edit_book.html:243
|
||||
msgid "Inventaire ID:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -243,12 +244,13 @@ msgid "Goodreads key:"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:98
|
||||
#: bookwyrm/templates/book/book.html:127
|
||||
#: bookwyrm/templates/book/edit_book.html:241
|
||||
#: bookwyrm/templates/book/book.html:124
|
||||
#: bookwyrm/templates/book/edit_book.html:263
|
||||
#: bookwyrm/templates/lists/form.html:42
|
||||
#: bookwyrm/templates/preferences/edit_user.html:70
|
||||
#: bookwyrm/templates/settings/announcement_form.html:65
|
||||
#: bookwyrm/templates/settings/edit_server.html:68
|
||||
#: bookwyrm/templates/settings/federated_server.html:94
|
||||
#: bookwyrm/templates/settings/federated_server.html:98
|
||||
#: bookwyrm/templates/settings/site.html:97
|
||||
#: bookwyrm/templates/snippets/readthrough.html:77
|
||||
#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42
|
||||
|
@ -259,11 +261,11 @@ msgid "Save"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/author/edit_author.html:99
|
||||
#: bookwyrm/templates/book/book.html:128 bookwyrm/templates/book/book.html:180
|
||||
#: bookwyrm/templates/book/book.html:125 bookwyrm/templates/book/book.html:174
|
||||
#: bookwyrm/templates/book/cover_modal.html:32
|
||||
#: bookwyrm/templates/book/edit_book.html:242
|
||||
#: bookwyrm/templates/book/edit_book.html:264
|
||||
#: bookwyrm/templates/moderation/report_modal.html:34
|
||||
#: bookwyrm/templates/settings/federated_server.html:95
|
||||
#: bookwyrm/templates/settings/federated_server.html:99
|
||||
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17
|
||||
#: bookwyrm/templates/snippets/goal_form.html:32
|
||||
#: bookwyrm/templates/snippets/readthrough.html:78
|
||||
|
@ -274,102 +276,98 @@ msgstr ""
|
|||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:33
|
||||
#: bookwyrm/templates/book/book.html:31
|
||||
#: bookwyrm/templates/discover/large-book.html:25
|
||||
#: bookwyrm/templates/discover/small-book.html:19
|
||||
msgid "by"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:41 bookwyrm/templates/book/book.html:42
|
||||
#: bookwyrm/templates/book/book.html:39 bookwyrm/templates/book/book.html:40
|
||||
msgid "Edit Book"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:60
|
||||
#: bookwyrm/templates/book/book.html:57
|
||||
#: bookwyrm/templates/book/cover_modal.html:5
|
||||
msgid "Add cover"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:64
|
||||
#: bookwyrm/templates/book/book.html:61
|
||||
msgid "Failed to load cover"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:104
|
||||
#: bookwyrm/templates/book/book.html:101
|
||||
#, python-format
|
||||
msgid "(%(review_count)s review)"
|
||||
msgid_plural "(%(review_count)s reviews)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:116
|
||||
#: bookwyrm/templates/book/book.html:113
|
||||
msgid "Add Description"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:123
|
||||
#: bookwyrm/templates/book/edit_book.html:107
|
||||
#: bookwyrm/templates/book/book.html:120
|
||||
#: bookwyrm/templates/book/edit_book.html:108
|
||||
#: bookwyrm/templates/lists/form.html:12
|
||||
msgid "Description:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:137
|
||||
#: bookwyrm/templates/book/book.html:134
|
||||
#, python-format
|
||||
msgid "<a href=\"%(path)s/editions\">%(count)s editions</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:145
|
||||
#: bookwyrm/templates/book/book.html:142
|
||||
#, python-format
|
||||
msgid "This edition is on your <a href=\"%(path)s\">%(shelf_name)s</a> shelf."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:151
|
||||
#: bookwyrm/templates/book/book.html:148
|
||||
#, python-format
|
||||
msgid "A <a href=\"%(book_path)s\">different edition</a> of this book is on your <a href=\"%(shelf_path)s\">%(shelf_name)s</a> shelf."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:162
|
||||
#: bookwyrm/templates/book/book.html:159
|
||||
msgid "Your reading activity"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:165
|
||||
#: bookwyrm/templates/book/book.html:162
|
||||
msgid "Add read dates"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:170
|
||||
msgid "You don't have any reading activity for this book."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:177
|
||||
#: bookwyrm/templates/book/book.html:171
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:203
|
||||
#: bookwyrm/templates/book/book.html:181
|
||||
msgid "You don't have any reading activity for this book."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:200
|
||||
msgid "Reviews"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:208
|
||||
#: bookwyrm/templates/book/book.html:205
|
||||
msgid "Your reviews"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:214
|
||||
#: bookwyrm/templates/book/book.html:211
|
||||
msgid "Your comments"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:220
|
||||
#: bookwyrm/templates/book/book.html:217
|
||||
msgid "Your quotes"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:255
|
||||
msgid "rated it"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:276
|
||||
#: bookwyrm/templates/book/book.html:253
|
||||
msgid "Subjects"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:288
|
||||
#: bookwyrm/templates/book/book.html:265
|
||||
msgid "Places"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:299 bookwyrm/templates/layout.html:65
|
||||
#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
|
||||
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
|
||||
#: bookwyrm/templates/search/layout.html:25
|
||||
#: bookwyrm/templates/search/layout.html:50
|
||||
|
@ -377,37 +375,37 @@ msgstr ""
|
|||
msgid "Lists"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:310
|
||||
#: bookwyrm/templates/book/book.html:287
|
||||
msgid "Add to list"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book.html:320
|
||||
#: bookwyrm/templates/book/book.html:297
|
||||
#: bookwyrm/templates/book/cover_modal.html:31
|
||||
#: bookwyrm/templates/lists/list.html:164
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book_identifiers.html:8
|
||||
#: bookwyrm/templates/book/book_identifiers.html:7
|
||||
msgid "ISBN:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book_identifiers.html:15
|
||||
#: bookwyrm/templates/book/edit_book.html:227
|
||||
#: bookwyrm/templates/book/book_identifiers.html:14
|
||||
#: bookwyrm/templates/book/edit_book.html:248
|
||||
msgid "OCLC Number:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/book_identifiers.html:22
|
||||
#: bookwyrm/templates/book/edit_book.html:231
|
||||
#: bookwyrm/templates/book/book_identifiers.html:21
|
||||
#: bookwyrm/templates/book/edit_book.html:253
|
||||
msgid "ASIN:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/cover_modal.html:17
|
||||
#: bookwyrm/templates/book/edit_book.html:179
|
||||
#: bookwyrm/templates/book/edit_book.html:192
|
||||
msgid "Upload cover:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/cover_modal.html:23
|
||||
#: bookwyrm/templates/book/edit_book.html:185
|
||||
#: bookwyrm/templates/book/edit_book.html:198
|
||||
msgid "Load cover from url:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -463,81 +461,89 @@ msgstr ""
|
|||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:92
|
||||
#: bookwyrm/templates/book/edit_book.html:93
|
||||
msgid "Title:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:100
|
||||
#: bookwyrm/templates/book/edit_book.html:101
|
||||
msgid "Subtitle:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:113
|
||||
#: bookwyrm/templates/book/edit_book.html:114
|
||||
msgid "Series:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:120
|
||||
#: bookwyrm/templates/book/edit_book.html:122
|
||||
msgid "Series number:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:126
|
||||
#: bookwyrm/templates/book/edit_book.html:130
|
||||
msgid "Languages:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:139
|
||||
msgid "Publisher:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:135
|
||||
#: bookwyrm/templates/book/edit_book.html:148
|
||||
msgid "First published date:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:143
|
||||
#: bookwyrm/templates/book/edit_book.html:156
|
||||
msgid "Published date:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:152
|
||||
#: bookwyrm/templates/book/edit_book.html:165
|
||||
msgid "Authors"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:158
|
||||
#: bookwyrm/templates/book/edit_book.html:171
|
||||
#, python-format
|
||||
msgid "Remove <a href=\"%(path)s\">%(name)s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:163
|
||||
#: bookwyrm/templates/book/edit_book.html:176
|
||||
msgid "Add Authors:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:164
|
||||
#: bookwyrm/templates/book/edit_book.html:177
|
||||
msgid "John Doe, Jane Smith"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:170
|
||||
#: bookwyrm/templates/book/edit_book.html:183
|
||||
#: bookwyrm/templates/user/shelf/shelf.html:77
|
||||
msgid "Cover"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:198
|
||||
#: bookwyrm/templates/book/edit_book.html:211
|
||||
msgid "Physical Properties"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:199
|
||||
#: bookwyrm/templates/book/edit_book.html:212
|
||||
#: bookwyrm/templates/book/format_filter.html:5
|
||||
msgid "Format:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:207
|
||||
#: bookwyrm/templates/book/edit_book.html:220
|
||||
msgid "Pages:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:214
|
||||
#: bookwyrm/templates/book/edit_book.html:227
|
||||
msgid "Book Identifiers"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:215
|
||||
#: bookwyrm/templates/book/edit_book.html:228
|
||||
msgid "ISBN 13:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:219
|
||||
#: bookwyrm/templates/book/edit_book.html:233
|
||||
msgid "ISBN 10:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/edit_book.html:238
|
||||
msgid "Openlibrary ID:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/editions.html:4
|
||||
#, python-format
|
||||
msgid "Editions of %(book_title)s"
|
||||
|
@ -592,12 +598,17 @@ msgstr ""
|
|||
msgid "Published by %(publisher)s."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/book/rating.html:13
|
||||
msgid "rated it"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/components/inline_form.html:8
|
||||
#: bookwyrm/templates/components/modal.html:11
|
||||
#: bookwyrm/templates/feed/feed_layout.html:69
|
||||
#: bookwyrm/templates/get_started/layout.html:19
|
||||
#: bookwyrm/templates/get_started/layout.html:52
|
||||
#: bookwyrm/templates/search/book.html:32
|
||||
#: bookwyrm/templates/snippets/announcement.html:18
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
|
@ -619,7 +630,7 @@ msgstr ""
|
|||
|
||||
#: bookwyrm/templates/directory/directory.html:4
|
||||
#: bookwyrm/templates/directory/directory.html:9
|
||||
#: bookwyrm/templates/layout.html:93
|
||||
#: bookwyrm/templates/layout.html:92
|
||||
msgid "Directory"
|
||||
msgstr ""
|
||||
|
||||
|
@ -633,6 +644,7 @@ msgid "You can opt-out at any time in your <a href=\"%(path)s\">profile settings
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/directory/directory.html:29
|
||||
#: bookwyrm/templates/snippets/announcement.html:34
|
||||
#: bookwyrm/templates/snippets/goal_card.html:22
|
||||
msgid "Dismiss message"
|
||||
msgstr ""
|
||||
|
@ -723,7 +735,7 @@ msgid "Join %(name)s"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/discover/landing_layout.html:51
|
||||
#: bookwyrm/templates/login.html:48
|
||||
#: bookwyrm/templates/login.html:51
|
||||
msgid "This instance is closed"
|
||||
msgstr ""
|
||||
|
||||
|
@ -819,7 +831,7 @@ msgid "Direct Messages with <a href=\"%(path)s\">%(username)s</a>"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/direct_messages.html:10
|
||||
#: bookwyrm/templates/layout.html:88
|
||||
#: bookwyrm/templates/layout.html:87
|
||||
msgid "Direct Messages"
|
||||
msgstr ""
|
||||
|
||||
|
@ -875,7 +887,7 @@ msgid "Updates"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/feed/feed_layout.html:10
|
||||
#: bookwyrm/templates/layout.html:59
|
||||
#: bookwyrm/templates/layout.html:58
|
||||
#: bookwyrm/templates/user/shelf/books_header.html:3
|
||||
msgid "Your books"
|
||||
msgstr ""
|
||||
|
@ -949,7 +961,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/get_started/books.html:17
|
||||
#: bookwyrm/templates/get_started/users.html:18
|
||||
#: bookwyrm/templates/get_started/users.html:19
|
||||
#: bookwyrm/templates/layout.html:38 bookwyrm/templates/layout.html:39
|
||||
#: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
|
||||
#: bookwyrm/templates/lists/list.html:124
|
||||
#: bookwyrm/templates/search/layout.html:4
|
||||
#: bookwyrm/templates/search/layout.html:9
|
||||
|
@ -1078,7 +1090,7 @@ msgid "%(username)s's %(year)s Books"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
|
||||
#: bookwyrm/templates/layout.html:98
|
||||
#: bookwyrm/templates/layout.html:97
|
||||
msgid "Import Books"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1179,7 +1191,7 @@ msgid "Imported"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:12
|
||||
#: bookwyrm/templates/login.html:43
|
||||
#: bookwyrm/templates/login.html:46
|
||||
msgid "Create an Account"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1204,23 +1216,23 @@ msgstr ""
|
|||
msgid "Matching Books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:34
|
||||
#: bookwyrm/templates/layout.html:33
|
||||
msgid "Search for a book or user"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:48 bookwyrm/templates/layout.html:49
|
||||
#: bookwyrm/templates/layout.html:47 bookwyrm/templates/layout.html:48
|
||||
msgid "Main navigation menu"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:62
|
||||
#: bookwyrm/templates/layout.html:61
|
||||
msgid "Feed"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:103
|
||||
#: bookwyrm/templates/layout.html:102
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:112
|
||||
#: bookwyrm/templates/layout.html:111
|
||||
#: bookwyrm/templates/settings/admin_layout.html:31
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:15
|
||||
#: bookwyrm/templates/settings/manage_invites.html:3
|
||||
|
@ -1228,61 +1240,61 @@ msgstr ""
|
|||
msgid "Invites"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:119
|
||||
#: bookwyrm/templates/layout.html:118
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:126
|
||||
#: bookwyrm/templates/layout.html:125
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:134 bookwyrm/templates/layout.html:135
|
||||
#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
|
||||
#: bookwyrm/templates/notifications.html:6
|
||||
#: bookwyrm/templates/notifications.html:11
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:155 bookwyrm/templates/layout.html:159
|
||||
#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
|
||||
#: bookwyrm/templates/login.html:17
|
||||
#: bookwyrm/templates/snippets/register_form.html:4
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:160
|
||||
#: bookwyrm/templates/layout.html:159
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:161 bookwyrm/templates/login.html:36
|
||||
#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
|
||||
msgid "Forgot your password?"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:164 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
|
||||
#: bookwyrm/templates/login.html:33
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:172
|
||||
#: bookwyrm/templates/layout.html:171
|
||||
msgid "Join"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:198
|
||||
#: bookwyrm/templates/layout.html:206
|
||||
msgid "About this server"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:202
|
||||
#: bookwyrm/templates/layout.html:210
|
||||
msgid "Contact site admin"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:206
|
||||
#: bookwyrm/templates/layout.html:214
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:213
|
||||
#: bookwyrm/templates/layout.html:221
|
||||
#, python-format
|
||||
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/layout.html:217
|
||||
#: bookwyrm/templates/layout.html:225
|
||||
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
|
||||
msgstr ""
|
||||
|
||||
|
@ -1353,6 +1365,7 @@ msgstr ""
|
|||
#: bookwyrm/templates/lists/form.html:31
|
||||
#: bookwyrm/templates/moderation/reports.html:25
|
||||
#: bookwyrm/templates/search/book.html:30
|
||||
#: bookwyrm/templates/snippets/announcement.html:16
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1436,11 +1449,11 @@ msgstr ""
|
|||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/login.html:49
|
||||
#: bookwyrm/templates/login.html:52
|
||||
msgid "Contact an administrator to get an invite"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/login.html:59
|
||||
#: bookwyrm/templates/login.html:63
|
||||
msgid "More about this site"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1778,31 +1791,118 @@ msgid "Instance Settings"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:48
|
||||
#: bookwyrm/templates/settings/announcements.html:3
|
||||
#: bookwyrm/templates/settings/announcements.html:5
|
||||
msgid "Announcements"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:52
|
||||
#: bookwyrm/templates/settings/site.html:4
|
||||
#: bookwyrm/templates/settings/site.html:6
|
||||
msgid "Site Settings"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:51
|
||||
#: bookwyrm/templates/settings/admin_layout.html:55
|
||||
#: bookwyrm/templates/settings/site.html:13
|
||||
msgid "Instance Info"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:52
|
||||
#: bookwyrm/templates/settings/admin_layout.html:56
|
||||
#: bookwyrm/templates/settings/site.html:39
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:53
|
||||
#: bookwyrm/templates/settings/admin_layout.html:57
|
||||
#: bookwyrm/templates/settings/site.html:59
|
||||
msgid "Footer Content"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/admin_layout.html:54
|
||||
#: bookwyrm/templates/settings/admin_layout.html:58
|
||||
#: bookwyrm/templates/settings/site.html:81
|
||||
msgid "Registration"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:3
|
||||
#: bookwyrm/templates/settings/announcement.html:6
|
||||
msgid "Announcement"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:7
|
||||
#: bookwyrm/templates/settings/federated_server.html:13
|
||||
msgid "Back to list"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:11
|
||||
msgid "Edit Announcement"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:20
|
||||
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:15
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:35
|
||||
msgid "Visible:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:38
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:40
|
||||
msgid "False"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:47
|
||||
msgid "Start date:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:54
|
||||
msgid "End date:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement.html:60
|
||||
msgid "Active:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcement_form.html:5
|
||||
#: bookwyrm/templates/settings/announcements.html:8
|
||||
msgid "Create Announcement"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcements.html:22
|
||||
msgid "Date added"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcements.html:26
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcements.html:30
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcements.html:34
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcements.html:38
|
||||
#: bookwyrm/templates/settings/federation.html:30
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:44
|
||||
#: bookwyrm/templates/settings/status_filter.html:5
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:34
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcements.html:48
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/announcements.html:48
|
||||
msgid "inactive"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:3
|
||||
#: bookwyrm/templates/settings/edit_server.html:6
|
||||
#: bookwyrm/templates/settings/edit_server.html:20
|
||||
|
@ -1814,7 +1914,6 @@ msgid "Add server"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:7
|
||||
#: bookwyrm/templates/settings/federated_server.html:13
|
||||
#: bookwyrm/templates/settings/server_blocklist.html:7
|
||||
msgid "Back to server list"
|
||||
msgstr ""
|
||||
|
@ -1829,7 +1928,7 @@ msgid "Instance:"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:37
|
||||
#: bookwyrm/templates/settings/federated_server.html:30
|
||||
#: bookwyrm/templates/settings/federated_server.html:31
|
||||
#: bookwyrm/templates/user_admin/user_info.html:34
|
||||
msgid "Status:"
|
||||
msgstr ""
|
||||
|
@ -1840,13 +1939,13 @@ msgid "Blocked"
|
|||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:48
|
||||
#: bookwyrm/templates/settings/federated_server.html:22
|
||||
#: bookwyrm/templates/settings/federated_server.html:23
|
||||
#: bookwyrm/templates/user_admin/user_info.html:26
|
||||
msgid "Software:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/edit_server.html:55
|
||||
#: bookwyrm/templates/settings/federated_server.html:26
|
||||
#: bookwyrm/templates/settings/federated_server.html:27
|
||||
#: bookwyrm/templates/user_admin/user_info.html:30
|
||||
msgid "Version:"
|
||||
msgstr ""
|
||||
|
@ -1859,88 +1958,81 @@ msgstr ""
|
|||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:37
|
||||
#: bookwyrm/templates/settings/federated_server.html:39
|
||||
#: bookwyrm/templates/user/layout.html:56
|
||||
msgid "Activity"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:40
|
||||
#: bookwyrm/templates/settings/federated_server.html:43
|
||||
msgid "Users:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:43
|
||||
#: bookwyrm/templates/settings/federated_server.html:50
|
||||
#: bookwyrm/templates/settings/federated_server.html:46
|
||||
#: bookwyrm/templates/settings/federated_server.html:53
|
||||
msgid "View all"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:47
|
||||
#: bookwyrm/templates/settings/federated_server.html:50
|
||||
msgid "Reports:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:54
|
||||
#: bookwyrm/templates/settings/federated_server.html:57
|
||||
msgid "Followed by us:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:60
|
||||
#: bookwyrm/templates/settings/federated_server.html:63
|
||||
msgid "Followed by them:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:66
|
||||
#: bookwyrm/templates/settings/federated_server.html:69
|
||||
msgid "Blocked by us:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:78
|
||||
#: bookwyrm/templates/settings/federated_server.html:82
|
||||
#: bookwyrm/templates/user_admin/user_info.html:39
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:81
|
||||
#: bookwyrm/templates/settings/federated_server.html:85
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:101
|
||||
#: bookwyrm/templates/settings/federated_server.html:105
|
||||
#: bookwyrm/templates/user_admin/user_moderation_actions.html:3
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:105
|
||||
#: bookwyrm/templates/settings/federated_server.html:109
|
||||
#: bookwyrm/templates/snippets/block_button.html:5
|
||||
msgid "Block"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:106
|
||||
#: bookwyrm/templates/settings/federated_server.html:110
|
||||
msgid "All users from this instance will be deactivated."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:111
|
||||
#: bookwyrm/templates/settings/federated_server.html:115
|
||||
#: bookwyrm/templates/snippets/block_button.html:10
|
||||
msgid "Un-block"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federated_server.html:112
|
||||
#: bookwyrm/templates/settings/federated_server.html:116
|
||||
msgid "All users from this instance will be re-activated."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:20
|
||||
#: bookwyrm/templates/settings/federation.html:19
|
||||
#: bookwyrm/templates/user_admin/server_filter.html:5
|
||||
msgid "Server name"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:24
|
||||
#: bookwyrm/templates/settings/federation.html:23
|
||||
msgid "Date federated"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:28
|
||||
#: bookwyrm/templates/settings/federation.html:27
|
||||
msgid "Software"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/federation.html:31
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:44
|
||||
#: bookwyrm/templates/settings/status_filter.html:5
|
||||
#: bookwyrm/templates/user_admin/user_admin.html:34
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:4
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:11
|
||||
#: bookwyrm/templates/settings/manage_invite_requests.html:25
|
||||
|
@ -2124,6 +2216,11 @@ msgstr ""
|
|||
msgid "Registration closed text:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/announcement.html:31
|
||||
#, python-format
|
||||
msgid "Posted by <a href=\"%(user_path)s\">%(username)s</a>"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/book_cover.html:31
|
||||
msgid "No cover"
|
||||
msgstr ""
|
||||
|
@ -2229,11 +2326,6 @@ msgstr ""
|
|||
msgid "You are deleting this readthrough and its %(count)s associated progress updates."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:15
|
||||
#: bookwyrm/templates/snippets/follow_request_buttons.html:12
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/snippets/fav_button.html:9
|
||||
#: bookwyrm/templates/snippets/fav_button.html:11
|
||||
msgid "Like"
|
||||
|
@ -2682,16 +2774,16 @@ msgstr ""
|
|||
msgid "Edit profile"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/user.html:34
|
||||
#: bookwyrm/templates/user/user.html:33
|
||||
#, python-format
|
||||
msgid "View all %(size)s"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/user.html:47
|
||||
#: bookwyrm/templates/user/user.html:46
|
||||
msgid "View all books"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/templates/user/user.html:60
|
||||
#: bookwyrm/templates/user/user.html:59
|
||||
msgid "User Activity"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2794,11 +2886,15 @@ msgstr ""
|
|||
msgid "Access level:"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/password.py:30 bookwyrm/views/password.py:35
|
||||
#: bookwyrm/views/import_data.py:67
|
||||
msgid "Not a valid csv file"
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/password.py:32
|
||||
msgid "No user with that email address was found."
|
||||
msgstr ""
|
||||
|
||||
#: bookwyrm/views/password.py:44
|
||||
#: bookwyrm/views/password.py:41
|
||||
#, python-format
|
||||
msgid "A password reset link sent to %s"
|
||||
msgstr ""
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -8,5 +8,9 @@
|
|||
"stylelint-config-standard": "^21.0.0",
|
||||
"stylelint-order": "^4.1.0",
|
||||
"watch": "^1.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"merge": "2.1.1",
|
||||
"postcss": "8.2.10"
|
||||
}
|
||||
}
|
||||
|
|
418
yarn.lock
418
yarn.lock
|
@ -16,25 +16,25 @@
|
|||
dependencies:
|
||||
"@babel/highlight" "^7.12.13"
|
||||
|
||||
"@babel/compat-data@^7.13.12":
|
||||
version "7.13.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1"
|
||||
integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==
|
||||
"@babel/compat-data@^7.13.15":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919"
|
||||
integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==
|
||||
|
||||
"@babel/core@>=7.9.0":
|
||||
version "7.13.14"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.14.tgz#8e46ebbaca460a63497c797e574038ab04ae6d06"
|
||||
integrity sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==
|
||||
version "7.14.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38"
|
||||
integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.12.13"
|
||||
"@babel/generator" "^7.13.9"
|
||||
"@babel/helper-compilation-targets" "^7.13.13"
|
||||
"@babel/helper-module-transforms" "^7.13.14"
|
||||
"@babel/helpers" "^7.13.10"
|
||||
"@babel/parser" "^7.13.13"
|
||||
"@babel/generator" "^7.14.3"
|
||||
"@babel/helper-compilation-targets" "^7.13.16"
|
||||
"@babel/helper-module-transforms" "^7.14.2"
|
||||
"@babel/helpers" "^7.14.0"
|
||||
"@babel/parser" "^7.14.3"
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/traverse" "^7.13.13"
|
||||
"@babel/types" "^7.13.14"
|
||||
"@babel/traverse" "^7.14.2"
|
||||
"@babel/types" "^7.14.2"
|
||||
convert-source-map "^1.7.0"
|
||||
debug "^4.1.0"
|
||||
gensync "^1.0.0-beta.2"
|
||||
|
@ -42,33 +42,33 @@
|
|||
semver "^6.3.0"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.13.9":
|
||||
version "7.13.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39"
|
||||
integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==
|
||||
"@babel/generator@^7.14.2", "@babel/generator@^7.14.3":
|
||||
version "7.14.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
|
||||
integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.13.0"
|
||||
"@babel/types" "^7.14.2"
|
||||
jsesc "^2.5.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/helper-compilation-targets@^7.13.13":
|
||||
version "7.13.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5"
|
||||
integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==
|
||||
"@babel/helper-compilation-targets@^7.13.16":
|
||||
version "7.13.16"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c"
|
||||
integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.13.12"
|
||||
"@babel/compat-data" "^7.13.15"
|
||||
"@babel/helper-validator-option" "^7.12.17"
|
||||
browserslist "^4.14.5"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/helper-function-name@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
|
||||
integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==
|
||||
"@babel/helper-function-name@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
|
||||
integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
|
||||
dependencies:
|
||||
"@babel/helper-get-function-arity" "^7.12.13"
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/types" "^7.12.13"
|
||||
"@babel/types" "^7.14.2"
|
||||
|
||||
"@babel/helper-get-function-arity@^7.12.13":
|
||||
version "7.12.13"
|
||||
|
@ -91,19 +91,19 @@
|
|||
dependencies:
|
||||
"@babel/types" "^7.13.12"
|
||||
|
||||
"@babel/helper-module-transforms@^7.13.14":
|
||||
version "7.13.14"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef"
|
||||
integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==
|
||||
"@babel/helper-module-transforms@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
|
||||
integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
|
||||
dependencies:
|
||||
"@babel/helper-module-imports" "^7.13.12"
|
||||
"@babel/helper-replace-supers" "^7.13.12"
|
||||
"@babel/helper-simple-access" "^7.13.12"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
"@babel/helper-validator-identifier" "^7.12.11"
|
||||
"@babel/helper-validator-identifier" "^7.14.0"
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/traverse" "^7.13.13"
|
||||
"@babel/types" "^7.13.14"
|
||||
"@babel/traverse" "^7.14.2"
|
||||
"@babel/types" "^7.14.2"
|
||||
|
||||
"@babel/helper-optimise-call-expression@^7.12.13":
|
||||
version "7.12.13"
|
||||
|
@ -113,14 +113,14 @@
|
|||
"@babel/types" "^7.12.13"
|
||||
|
||||
"@babel/helper-replace-supers@^7.13.12":
|
||||
version "7.13.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804"
|
||||
integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==
|
||||
version "7.14.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600"
|
||||
integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA==
|
||||
dependencies:
|
||||
"@babel/helper-member-expression-to-functions" "^7.13.12"
|
||||
"@babel/helper-optimise-call-expression" "^7.12.13"
|
||||
"@babel/traverse" "^7.13.0"
|
||||
"@babel/types" "^7.13.12"
|
||||
"@babel/traverse" "^7.14.2"
|
||||
"@babel/types" "^7.14.2"
|
||||
|
||||
"@babel/helper-simple-access@^7.13.12":
|
||||
version "7.13.12"
|
||||
|
@ -136,38 +136,38 @@
|
|||
dependencies:
|
||||
"@babel/types" "^7.12.13"
|
||||
|
||||
"@babel/helper-validator-identifier@^7.12.11":
|
||||
version "7.12.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
|
||||
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
||||
"@babel/helper-validator-identifier@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
|
||||
integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
|
||||
|
||||
"@babel/helper-validator-option@^7.12.17":
|
||||
version "7.12.17"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
|
||||
integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
|
||||
|
||||
"@babel/helpers@^7.13.10":
|
||||
version "7.13.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8"
|
||||
integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==
|
||||
"@babel/helpers@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
|
||||
integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
|
||||
dependencies:
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/traverse" "^7.13.0"
|
||||
"@babel/types" "^7.13.0"
|
||||
"@babel/traverse" "^7.14.0"
|
||||
"@babel/types" "^7.14.0"
|
||||
|
||||
"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
|
||||
version "7.13.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
|
||||
integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
|
||||
integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.12.11"
|
||||
"@babel/helper-validator-identifier" "^7.14.0"
|
||||
chalk "^2.0.0"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@^7.12.13", "@babel/parser@^7.13.13":
|
||||
version "7.13.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df"
|
||||
integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==
|
||||
"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3":
|
||||
version "7.14.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298"
|
||||
integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==
|
||||
|
||||
"@babel/template@^7.12.13":
|
||||
version "7.12.13"
|
||||
|
@ -178,33 +178,32 @@
|
|||
"@babel/parser" "^7.12.13"
|
||||
"@babel/types" "^7.12.13"
|
||||
|
||||
"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13":
|
||||
version "7.13.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.13.tgz#39aa9c21aab69f74d948a486dd28a2dbdbf5114d"
|
||||
integrity sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==
|
||||
"@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
|
||||
integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.12.13"
|
||||
"@babel/generator" "^7.13.9"
|
||||
"@babel/helper-function-name" "^7.12.13"
|
||||
"@babel/generator" "^7.14.2"
|
||||
"@babel/helper-function-name" "^7.14.2"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
"@babel/parser" "^7.13.13"
|
||||
"@babel/types" "^7.13.13"
|
||||
"@babel/parser" "^7.14.2"
|
||||
"@babel/types" "^7.14.2"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.13.14":
|
||||
version "7.13.14"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d"
|
||||
integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==
|
||||
"@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3"
|
||||
integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.12.11"
|
||||
lodash "^4.17.19"
|
||||
"@babel/helper-validator-identifier" "^7.14.0"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@eslint/eslintrc@^0.4.0":
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547"
|
||||
integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==
|
||||
"@eslint/eslintrc@^0.4.1":
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14"
|
||||
integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==
|
||||
dependencies:
|
||||
ajv "^6.12.4"
|
||||
debug "^4.1.1"
|
||||
|
@ -300,9 +299,9 @@ ajv@^6.10.0, ajv@^6.12.4:
|
|||
uri-js "^4.2.2"
|
||||
|
||||
ajv@^8.0.1:
|
||||
version "8.0.2"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.0.2.tgz#1396e27f208ed56dd5638ab5a251edeb1c91d402"
|
||||
integrity sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==
|
||||
version "8.5.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b"
|
||||
integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.1"
|
||||
json-schema-traverse "^1.0.0"
|
||||
|
@ -374,9 +373,14 @@ bail@^1.0.0:
|
|||
integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||
|
||||
balanced-match@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9"
|
||||
integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
|
@ -394,23 +398,15 @@ braces@^3.0.1:
|
|||
fill-range "^7.0.1"
|
||||
|
||||
browserslist@^4.12.0, browserslist@^4.14.5:
|
||||
version "4.16.3"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717"
|
||||
integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==
|
||||
version "4.16.6"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
|
||||
integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001181"
|
||||
colorette "^1.2.1"
|
||||
electron-to-chromium "^1.3.649"
|
||||
caniuse-lite "^1.0.30001219"
|
||||
colorette "^1.2.2"
|
||||
electron-to-chromium "^1.3.723"
|
||||
escalade "^3.1.1"
|
||||
node-releases "^1.1.70"
|
||||
|
||||
call-bind@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
||||
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
get-intrinsic "^1.0.2"
|
||||
node-releases "^1.1.71"
|
||||
|
||||
callsites@^3.0.0:
|
||||
version "3.1.0"
|
||||
|
@ -431,10 +427,10 @@ camelcase@^5.3.1:
|
|||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
||||
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
|
||||
|
||||
caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181:
|
||||
version "1.0.30001205"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001205.tgz#d79bf6a6fb13196b4bb46e5143a22ca0242e0ef8"
|
||||
integrity sha512-TL1GrS5V6LElbitPazidkBMD9sa448bQDDLrumDqaggmKFcuU2JW1wTOHJPukAcOMtEmLcmDJEzfRrf+GjM0Og==
|
||||
caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
|
||||
version "1.0.30001228"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa"
|
||||
integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==
|
||||
|
||||
chalk@^2.0.0, chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
|
@ -445,10 +441,10 @@ chalk@^2.0.0, chalk@^2.4.2:
|
|||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
chalk@^4.0.0, chalk@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
|
||||
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
|
||||
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
|
||||
integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
|
||||
dependencies:
|
||||
ansi-styles "^4.1.0"
|
||||
supports-color "^7.1.0"
|
||||
|
@ -499,7 +495,7 @@ color-name@~1.1.4:
|
|||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
colorette@^1.2.1:
|
||||
colorette@^1.2.1, colorette@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
|
||||
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
|
||||
|
@ -594,9 +590,9 @@ domelementtype@1, domelementtype@^1.3.1:
|
|||
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
||||
|
||||
domelementtype@^2.0.1:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
|
||||
integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
|
||||
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
|
||||
|
||||
domhandler@^2.3.0:
|
||||
version "2.4.2"
|
||||
|
@ -613,10 +609,10 @@ domutils@^1.5.1:
|
|||
dom-serializer "0"
|
||||
domelementtype "1"
|
||||
|
||||
electron-to-chromium@^1.3.649:
|
||||
version "1.3.703"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.703.tgz#6d9b9a75c42a40775f5930329e642b22b227317f"
|
||||
integrity sha512-SVBVhNB+4zPL+rvtWLw7PZQkw/Eqj1HQZs22xtcqW36+xoifzEOEEDEpkxSMfB6RFeSIOcG00w6z5mSqLr1Y6w==
|
||||
electron-to-chromium@^1.3.723:
|
||||
version "1.3.735"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.735.tgz#fa1a8660f2790662291cb2136f0e446a444cdfdc"
|
||||
integrity sha512-cp7MWzC3NseUJV2FJFgaiesdrS+A8ZUjX5fLAxdRlcaPDkaPGFplX930S5vf84yqDp4LjuLdKouWuVOTwUfqHQ==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
|
@ -678,17 +674,17 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
|
|||
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
|
||||
|
||||
eslint-visitor-keys@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
|
||||
integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
|
||||
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
||||
|
||||
eslint@^7.23.0:
|
||||
version "7.23.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.23.0.tgz#8d029d252f6e8cf45894b4bee08f5493f8e94325"
|
||||
integrity sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==
|
||||
version "7.26.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6"
|
||||
integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==
|
||||
dependencies:
|
||||
"@babel/code-frame" "7.12.11"
|
||||
"@eslint/eslintrc" "^0.4.0"
|
||||
"@eslint/eslintrc" "^0.4.1"
|
||||
ajv "^6.10.0"
|
||||
chalk "^4.0.0"
|
||||
cross-spawn "^7.0.2"
|
||||
|
@ -881,15 +877,6 @@ gensync@^1.0.0-beta.2:
|
|||
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
||||
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
||||
|
||||
get-intrinsic@^1.0.2:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
|
||||
integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
has "^1.0.3"
|
||||
has-symbols "^1.0.1"
|
||||
|
||||
get-stdin@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
|
||||
|
@ -903,9 +890,9 @@ glob-parent@^5.0.0, glob-parent@^5.1.0:
|
|||
is-glob "^4.0.1"
|
||||
|
||||
glob@^7.1.3:
|
||||
version "7.1.6"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
|
||||
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
|
||||
version "7.1.7"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
|
||||
integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
|
@ -943,13 +930,13 @@ globals@^12.1.0:
|
|||
type-fest "^0.8.1"
|
||||
|
||||
globals@^13.6.0:
|
||||
version "13.7.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795"
|
||||
integrity sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==
|
||||
version "13.8.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3"
|
||||
integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==
|
||||
dependencies:
|
||||
type-fest "^0.20.2"
|
||||
|
||||
globby@^11.0.2:
|
||||
globby@^11.0.3:
|
||||
version "11.0.3"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"
|
||||
integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==
|
||||
|
@ -988,11 +975,6 @@ has-flag@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||
|
||||
has-symbols@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
||||
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
||||
|
||||
has@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||
|
@ -1001,9 +983,9 @@ has@^1.0.3:
|
|||
function-bind "^1.1.1"
|
||||
|
||||
hosted-git-info@^2.1.4:
|
||||
version "2.8.8"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
|
||||
integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
|
||||
version "2.8.9"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
|
||||
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
|
||||
|
||||
hosted-git-info@^4.0.1:
|
||||
version "4.0.2"
|
||||
|
@ -1062,11 +1044,6 @@ indent-string@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
|
||||
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
|
||||
|
||||
indexes-of@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
|
||||
integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
|
||||
|
||||
inflight@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||
|
@ -1103,22 +1080,15 @@ is-arrayish@^0.2.1:
|
|||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
||||
|
||||
is-boolean-object@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0"
|
||||
integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
|
||||
is-buffer@^2.0.0:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
|
||||
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
|
||||
|
||||
is-core-module@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
|
||||
integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
|
||||
integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
|
||||
dependencies:
|
||||
has "^1.0.3"
|
||||
|
||||
|
@ -1149,11 +1119,6 @@ is-hexadecimal@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
|
||||
integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
|
||||
|
||||
is-number-object@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197"
|
||||
integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==
|
||||
|
||||
is-number@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||
|
@ -1174,11 +1139,6 @@ is-regexp@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
|
||||
integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==
|
||||
|
||||
is-string@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
|
||||
integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
|
||||
|
||||
is-typedarray@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
||||
|
@ -1274,22 +1234,17 @@ lodash.clonedeep@^4.5.0:
|
|||
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
||||
integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
|
||||
|
||||
lodash.flatten@^4.4.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
|
||||
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
|
||||
|
||||
lodash.truncate@^4.4.2:
|
||||
version "4.4.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
|
||||
integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
|
||||
|
||||
lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21:
|
||||
lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
log-symbols@^4.0.0:
|
||||
log-symbols@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
|
||||
integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
|
||||
|
@ -1315,9 +1270,9 @@ map-obj@^1.0.0:
|
|||
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
|
||||
|
||||
map-obj@^4.0.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.0.tgz#0e8bc823e2aaca8a0942567d12ed14f389eec153"
|
||||
integrity sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7"
|
||||
integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==
|
||||
|
||||
mathml-tag-names@^2.1.3:
|
||||
version "2.1.3"
|
||||
|
@ -1375,6 +1330,11 @@ merge2@^1.3.0:
|
|||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||
|
||||
merge@2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98"
|
||||
integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==
|
||||
|
||||
merge@^1.2.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
||||
|
@ -1388,13 +1348,13 @@ micromark@~2.11.0:
|
|||
debug "^4.0.0"
|
||||
parse-entities "^2.0.0"
|
||||
|
||||
micromatch@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
|
||||
integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
|
||||
micromatch@^4.0.2, micromatch@^4.0.4:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
|
||||
integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
|
||||
dependencies:
|
||||
braces "^3.0.1"
|
||||
picomatch "^2.0.5"
|
||||
picomatch "^2.2.3"
|
||||
|
||||
min-indent@^1.0.0:
|
||||
version "1.0.1"
|
||||
|
@ -1427,15 +1387,20 @@ ms@2.1.2:
|
|||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
||||
nanoid@^3.1.22:
|
||||
version "3.1.23"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
|
||||
integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
|
||||
|
||||
natural-compare@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
||||
|
||||
node-releases@^1.1.70:
|
||||
version "1.1.71"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
|
||||
integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
|
||||
node-releases@^1.1.71:
|
||||
version "1.1.72"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
|
||||
integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
|
||||
|
||||
normalize-package-data@^2.5.0:
|
||||
version "2.5.0"
|
||||
|
@ -1564,10 +1529,10 @@ path-type@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||
|
||||
picomatch@^2.0.5, picomatch@^2.2.1:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
||||
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
|
||||
picomatch@^2.2.1, picomatch@^2.2.3:
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
|
||||
integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==
|
||||
|
||||
postcss-html@^0.36.0:
|
||||
version "0.36.0"
|
||||
|
@ -1615,14 +1580,12 @@ postcss-scss@^2.1.1:
|
|||
dependencies:
|
||||
postcss "^7.0.6"
|
||||
|
||||
postcss-selector-parser@^6.0.4:
|
||||
version "6.0.4"
|
||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
|
||||
integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
|
||||
postcss-selector-parser@^6.0.5:
|
||||
version "6.0.6"
|
||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
|
||||
integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
|
||||
dependencies:
|
||||
cssesc "^3.0.0"
|
||||
indexes-of "^1.0.1"
|
||||
uniq "^1.0.1"
|
||||
util-deprecate "^1.0.2"
|
||||
|
||||
postcss-sorting@^5.0.1:
|
||||
|
@ -1643,6 +1606,15 @@ postcss-value-parser@^4.1.0:
|
|||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
|
||||
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
|
||||
|
||||
postcss@8.2.10:
|
||||
version "8.2.10"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b"
|
||||
integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==
|
||||
dependencies:
|
||||
colorette "^1.2.2"
|
||||
nanoid "^3.1.22"
|
||||
source-map "^0.6.1"
|
||||
|
||||
postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6:
|
||||
version "7.0.35"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
|
||||
|
@ -1878,9 +1850,9 @@ spdx-expression-parse@^3.0.0:
|
|||
spdx-license-ids "^3.0.0"
|
||||
|
||||
spdx-license-ids@^3.0.0:
|
||||
version "3.0.7"
|
||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65"
|
||||
integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz#eb1e97ad99b11bf3f82a3b71a0472dd9a00f2ecf"
|
||||
integrity sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g==
|
||||
|
||||
specificity@^0.4.1:
|
||||
version "0.4.1"
|
||||
|
@ -1954,15 +1926,15 @@ stylelint-order@^4.1.0:
|
|||
postcss-sorting "^5.0.1"
|
||||
|
||||
stylelint@^13.12.0:
|
||||
version "13.12.0"
|
||||
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.12.0.tgz#cceb922be0d0c7b7b6926271eea2b90cb924733e"
|
||||
integrity sha512-P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==
|
||||
version "13.13.1"
|
||||
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.13.1.tgz#fca9c9f5de7990ab26a00f167b8978f083a18f3c"
|
||||
integrity sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==
|
||||
dependencies:
|
||||
"@stylelint/postcss-css-in-js" "^0.37.2"
|
||||
"@stylelint/postcss-markdown" "^0.36.2"
|
||||
autoprefixer "^9.8.6"
|
||||
balanced-match "^1.0.0"
|
||||
chalk "^4.1.0"
|
||||
balanced-match "^2.0.0"
|
||||
chalk "^4.1.1"
|
||||
cosmiconfig "^7.0.0"
|
||||
debug "^4.3.1"
|
||||
execall "^2.0.0"
|
||||
|
@ -1971,7 +1943,7 @@ stylelint@^13.12.0:
|
|||
file-entry-cache "^6.0.1"
|
||||
get-stdin "^8.0.0"
|
||||
global-modules "^2.0.0"
|
||||
globby "^11.0.2"
|
||||
globby "^11.0.3"
|
||||
globjoin "^0.1.4"
|
||||
html-tags "^3.1.0"
|
||||
ignore "^5.1.8"
|
||||
|
@ -1979,10 +1951,10 @@ stylelint@^13.12.0:
|
|||
imurmurhash "^0.1.4"
|
||||
known-css-properties "^0.21.0"
|
||||
lodash "^4.17.21"
|
||||
log-symbols "^4.0.0"
|
||||
log-symbols "^4.1.0"
|
||||
mathml-tag-names "^2.1.3"
|
||||
meow "^9.0.0"
|
||||
micromatch "^4.0.2"
|
||||
micromatch "^4.0.4"
|
||||
normalize-selector "^0.2.0"
|
||||
postcss "^7.0.35"
|
||||
postcss-html "^0.36.0"
|
||||
|
@ -1992,7 +1964,7 @@ stylelint@^13.12.0:
|
|||
postcss-safe-parser "^4.0.2"
|
||||
postcss-sass "^0.4.4"
|
||||
postcss-scss "^2.1.1"
|
||||
postcss-selector-parser "^6.0.4"
|
||||
postcss-selector-parser "^6.0.5"
|
||||
postcss-syntax "^0.36.2"
|
||||
postcss-value-parser "^4.1.0"
|
||||
resolve-from "^5.0.0"
|
||||
|
@ -2003,8 +1975,8 @@ stylelint@^13.12.0:
|
|||
style-search "^0.1.0"
|
||||
sugarss "^2.0.0"
|
||||
svg-tags "^1.0.0"
|
||||
table "^6.0.7"
|
||||
v8-compile-cache "^2.2.0"
|
||||
table "^6.6.0"
|
||||
v8-compile-cache "^2.3.0"
|
||||
write-file-atomic "^3.0.3"
|
||||
|
||||
sugarss@^2.0.0:
|
||||
|
@ -2040,20 +2012,17 @@ svg-tags@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
|
||||
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
|
||||
|
||||
table@^6.0.4, table@^6.0.7:
|
||||
version "6.0.9"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-6.0.9.tgz#790a12bf1e09b87b30e60419bafd6a1fd85536fb"
|
||||
integrity sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==
|
||||
table@^6.0.4, table@^6.6.0:
|
||||
version "6.7.1"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
|
||||
integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
|
||||
dependencies:
|
||||
ajv "^8.0.1"
|
||||
is-boolean-object "^1.1.0"
|
||||
is-number-object "^1.0.4"
|
||||
is-string "^1.0.5"
|
||||
lodash.clonedeep "^4.5.0"
|
||||
lodash.flatten "^4.4.0"
|
||||
lodash.truncate "^4.4.2"
|
||||
slice-ansi "^4.0.0"
|
||||
string-width "^4.2.0"
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
text-table@^0.2.0:
|
||||
version "0.2.0"
|
||||
|
@ -2128,11 +2097,6 @@ unified@^9.1.0:
|
|||
trough "^1.0.0"
|
||||
vfile "^4.0.0"
|
||||
|
||||
uniq@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
|
||||
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
|
||||
|
||||
unist-util-find-all-after@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6"
|
||||
|
@ -2164,7 +2128,7 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
||||
|
||||
v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
|
||||
v8-compile-cache@^2.0.3, v8-compile-cache@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
||||
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
|
||||
|
|
Loading…
Reference in a new issue