diff --git a/.env.dev b/.env.dev index 5b686560067818991668b0947fca99fc585d9817..d4833ab01cadafabfb1c2b1c8102971a4a06216d 100644 --- a/.env.dev +++ b/.env.dev @@ -7,7 +7,7 @@ C_FORCE_ROOT=true FUNKWHALE_HOSTNAME=localhost FUNKWHALE_PROTOCOL=http PYTHONDONTWRITEBYTECODE=true -WEBPACK_DEVSERVER_PORT=8080 +VUE_PORT=8080 MUSIC_DIRECTORY_PATH=/music BROWSABLE_API_ENABLED=True FORWARDED_PROTO=http diff --git a/.gitignore b/.gitignore index d5870db7e67b69103605caae09627fb2466f2ab3..3983381664a8bb1981f013c945ca42d9aea65f7a 100644 --- a/.gitignore +++ b/.gitignore @@ -72,16 +72,17 @@ api/media api/staticfiles api/static api/.pytest_cache - +api/celerybeat-* # Front +oldfront/node_modules/ front/static/translations front/node_modules/ front/dist/ front/npm-debug.log* front/yarn-debug.log* front/yarn-error.log* -front/test/unit/coverage -front/test/e2e/reports +front/tests/unit/coverage +front/tests/e2e/reports front/selenium-debug.log docs/_build diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 57e258e9387f3225ffbfd576e828d84fb048db71..4ddde5b79e6568b12e49ef6d37af368b481ac9b9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -156,7 +156,6 @@ test_api: tags: - docker - test_front: stage: test image: node:9 @@ -166,7 +165,7 @@ test_front: - branches script: - yarn install - - yarn run unit + - yarn test:unit cache: key: "funkwhale__front_dependencies" paths: @@ -179,7 +178,6 @@ test_front: tags: - docker - build_front: stage: build image: node:9 @@ -192,8 +190,8 @@ build_front: - yarn run i18n-compile # this is to ensure we don't have any errors in the output, # cf https://code.eliotberriot.com/funkwhale/funkwhale/issues/169 - - yarn run build | tee /dev/stderr | (! grep -i 'ERROR in') - - chmod -R 750 dist + - yarn build | tee /dev/stderr | (! grep -i 'ERROR in') + - chmod -R 755 dist cache: key: "funkwhale__front_dependencies" paths: @@ -210,7 +208,6 @@ build_front: tags: - docker - pages: stage: test image: python:3.6 diff --git a/CHANGELOG b/CHANGELOG index e5c811fc80694768b804b176c7f2689fab3e4a71..9ef9fd667ccda74cfca125db195c0b89ff127e8d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,7 +10,82 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog. .. towncrier -0.16 (unreleased) +0.16.1 (2018-08-19) +------------------- + +Upgrade instructions are available at +https://docs.funkwhale.audio/upgrading.html + +Features: + +- Make funkwhale themable by loading external stylesheets (#456) + +Enhancements: + +- Add link to admin on "Staff member" button (#202) +- Can now add a description to radios and better radio cards (#331) +- Display track duration in track tables (#461) +- More permissive default permissions for front-end files (#388) +- Simpler configuration and toolchain for the front-end using vue-cli (!375) +- Use Howler to manage audio instead of our own dirty/untested code (#392) + + +Bugfixes: + +- Fix alignment issue on top bar in Admin tabs (#395) +- Fix Apache2 permission issue preventing `/media` folder from being served + correctly (#389) +- Fix loading on browse page lists causing them to go down, and dimming over + the top bar (#468) +- Fixed (again): administration section not showing up in sidebar after login + (#245) +- Fixed audio mimetype not showing up on track detail and list (#459) +- Fixed broken audio playback on Chrome and invisible volume control (#390) +- Fixed broken federation import on big imports due to missing transaction + logic (#397) +- Fixed crash on artist pages when no cover is available (#457) +- Fixed favorited status of tracks not appearing in interface (#398) +- Fixed invitation code not prefilled in form when accessing invitation link + (#476) +- Fixed typos in scheduled tasks configuration (#487) +- Removed release date error in case of empty date (#478) +- Removed white on white artist button on hover, on Album page (#393) +- Smarter date parsing during import by replacing arrow with pendulum (#376) +- Display public playlists properly for anonymous users (#488) + + +i18n: + +- Added portuguese, spanish and german translations + + +Custom themes for Funkwhale +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you ever wanted to give a custom look and feel to your instance, this is now possible. + +Check https://docs.funkwhale.audio/configuration.html#theming if you want to know more! + + +Fix Apache2 configuration file for media block [Manual action required] +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The permission scope on the current Apache2 configuration file is too narrow, preventing thumbnails from being served. + +On Apache2 setups, you have to replace the following line:: + + <Directory /srv/funkwhale/data/media/albums> + +with:: + + <Directory /srv/funkwhale/data/media> + +You can now restart your server:: + + sudo systemctl restart apache2 + + +0.16 (2018-07-22) ----------------- Upgrade instructions are available at @@ -232,7 +307,7 @@ In the end, the ``volumes`` directives of your containers should look like that: Removed Cacheops dependency ---------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^ We removed one of our dependency named django-cacheops. It was unly used in a few places, and not playing nice with other dependencies. diff --git a/CONTRIBUTING b/CONTRIBUTING.rst similarity index 98% rename from CONTRIBUTING rename to CONTRIBUTING.rst index 18d877b66868865a1bd187f1d76e51aaf3803be4..86832841d46c9faec137f5999f23160b9d5861d5 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING.rst @@ -23,7 +23,7 @@ As the front-end can work with any Funkwhale server, you can work with the front and make it talk with an existing instance (like the demo one, or you own instance, if you have one). If even that is too much for you, you can also make your changes without any development environment, -and open a merge request. We will be able to to review your work easily by spawning automatically a +and open a merge request. We will be able to review your work easily by spawning automatically a live version of your changes, thanks to Gitlab Review apps. Setup front-end only development environment @@ -43,7 +43,7 @@ Setup front-end only development environment 4. Launch the development server:: # this will serve the front-end on http://localhost:8000 - WEBPACK_DEVSERVER_PORT=8000 yarn dev + VUE_PORT=8000 yarn serve 5. Make the front-end talk with an existing server (like https://demo.funkwhale.audio), by clicking on the corresponding link in the footer @@ -264,7 +264,7 @@ When working on federation with traefik, ensure you have this in your ``env``:: # This will ensure we don't bind any port on the host, and thus enable # multiple instances of funkwhale to be spawned concurrently. - WEBPACK_DEVSERVER_PORT_BINDING= + VUE_PORT_BINDING= # This disable certificate verification EXTERNAL_REQUESTS_VERIFY_SSL=false # this ensure you don't have incorrect urls pointing to http resources @@ -466,12 +466,12 @@ Running tests To run the front-end test suite, use the following command:: - docker-compose -f dev.yml run --rm front yarn run unit + docker-compose -f dev.yml run --rm front yarn test:unit We also support a "watch and test" mode were we continually relaunch tests when changes are recorded on the file system:: - docker-compose -f dev.yml run --rm front yarn run unit-watch + docker-compose -f dev.yml run --rm front yarn test:unit -w The latter is especially useful when you are debugging failing tests. diff --git a/README.rst b/README.rst index d882a35c8b660922b10cb5a53be44f9cd2e3733d..093a4773cdb39a218845b16d701a370d569855c3 100644 --- a/README.rst +++ b/README.rst @@ -26,7 +26,7 @@ Contribute ---------- Contribution guidelines as well as development installation instructions -are outlined in `CONTRIBUTING <CONTRIBUTING>`_. +are outlined in `CONTRIBUTING <CONTRIBUTING.rst>`_. Translate ^^^^^^^^^ diff --git a/api/config/settings/common.py b/api/config/settings/common.py index 013c7ae431af6cb3abab4381673dc1d15c8845bc..1141579785c539aa5de11150afe3fb58b52aa3d0 100644 --- a/api/config/settings/common.py +++ b/api/config/settings/common.py @@ -344,9 +344,9 @@ CELERY_BROKER_URL = env( # Your common stuff: Below this line define 3rd party library settings CELERY_TASK_DEFAULT_RATE_LIMIT = 1 CELERY_TASK_TIME_LIMIT = 300 -CELERYBEAT_SCHEDULE = { +CELERY_BEAT_SCHEDULE = { "federation.clean_music_cache": { - "task": "funkwhale_api.federation.tasks.clean_music_cache", + "task": "federation.clean_music_cache", "schedule": crontab(hour="*/2"), "options": {"expires": 60 * 2}, } diff --git a/api/funkwhale_api/__init__.py b/api/funkwhale_api/__init__.py index 7c227503395ae908b0041881131563252b1c461e..4b0303cdc2451744bf1d1514e09ccbd0337dd7a5 100644 --- a/api/funkwhale_api/__init__.py +++ b/api/funkwhale_api/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -__version__ = "0.16" +__version__ = "0.16.1" __version_info__ = tuple( [ int(num) if num.isdigit() else num diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py index fc694c598d49668799a2af4fd81588f216195898..304253aa0716e1d14669a3829395f986ad8f93da 100644 --- a/api/funkwhale_api/federation/serializers.py +++ b/api/funkwhale_api/federation/serializers.py @@ -796,6 +796,8 @@ class LibraryTrackActionSerializer(common_serializers.ActionSerializer): jobs.append(job) music_models.ImportJob.objects.bulk_create(jobs) - music_tasks.import_batch_run.delay(import_batch_id=batch.pk) + funkwhale_utils.on_commit( + music_tasks.import_batch_run.delay, import_batch_id=batch.pk + ) return {"batch": {"id": batch.pk}} diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py index d2534f6b241ad3e7b6cc98fa8e1e0c49f41f0450..9aa08820ac6e069ff38cd75d95eef79c11c8bd23 100644 --- a/api/funkwhale_api/music/metadata.py +++ b/api/funkwhale_api/music/metadata.py @@ -1,5 +1,6 @@ -import arrow +import datetime import mutagen +import pendulum from django import forms NODEFAULT = object() @@ -101,6 +102,11 @@ class FirstUUIDField(forms.UUIDField): return super().to_python(value) +def get_date(value): + parsed = pendulum.parse(str(value)) + return datetime.date(parsed.year, parsed.month, parsed.day) + + VALIDATION = { "musicbrainz_artistid": FirstUUIDField(), "musicbrainz_albumid": FirstUUIDField(), @@ -118,7 +124,7 @@ CONF = { "title": {}, "artist": {}, "album": {}, - "date": {"field": "date", "to_application": lambda v: arrow.get(v).date()}, + "date": {"field": "date", "to_application": get_date}, "musicbrainz_albumid": {}, "musicbrainz_artistid": {}, "musicbrainz_recordingid": {"field": "musicbrainz_trackid"}, @@ -134,7 +140,7 @@ CONF = { "title": {}, "artist": {}, "album": {}, - "date": {"field": "date", "to_application": lambda v: arrow.get(v).date()}, + "date": {"field": "date", "to_application": get_date}, "musicbrainz_albumid": {"field": "MusicBrainz Album Id"}, "musicbrainz_artistid": {"field": "MusicBrainz Artist Id"}, "musicbrainz_recordingid": {"field": "MusicBrainz Track Id"}, @@ -148,10 +154,7 @@ CONF = { "title": {"field": "TIT2"}, "artist": {"field": "TPE1"}, "album": {"field": "TALB"}, - "date": { - "field": "TDRC", - "to_application": lambda v: arrow.get(str(v)).date(), - }, + "date": {"field": "TDRC", "to_application": get_date}, "musicbrainz_albumid": {"field": "MusicBrainz Album Id"}, "musicbrainz_artistid": {"field": "MusicBrainz Artist Id"}, "musicbrainz_recordingid": { @@ -172,10 +175,7 @@ CONF = { "title": {}, "artist": {}, "album": {}, - "date": { - "field": "date", - "to_application": lambda v: arrow.get(str(v)).date(), - }, + "date": {"field": "date", "to_application": get_date}, "musicbrainz_albumid": {}, "musicbrainz_artistid": {}, "musicbrainz_recordingid": {"field": "musicbrainz_trackid"}, diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py index c8dd61313df9e94d392847c5855efe783c2e6775..8e1577ea672576a228e353d0781aaff699775695 100644 --- a/api/funkwhale_api/music/models.py +++ b/api/funkwhale_api/music/models.py @@ -1,11 +1,10 @@ -import datetime import os import shutil import tempfile import uuid -import arrow import markdown +import pendulum from django.conf import settings from django.core.files import File from django.core.files.base import ContentFile @@ -125,9 +124,7 @@ def import_artist(v): def parse_date(v): - if len(v) == 4: - return datetime.date(int(v), 1, 1) - d = arrow.get(v).date() + d = pendulum.parse(v).date() return d @@ -147,7 +144,7 @@ class AlbumQuerySet(models.QuerySet): class Album(APIModelMixin): title = models.CharField(max_length=255) artist = models.ForeignKey(Artist, related_name="albums", on_delete=models.CASCADE) - release_date = models.DateField(null=True) + release_date = models.DateField(null=True, blank=True) release_group_id = models.UUIDField(null=True, blank=True) cover = VersatileImageField( upload_to="albums/covers/%Y/%m/%d", null=True, blank=True diff --git a/api/requirements/base.txt b/api/requirements/base.txt index e4a85d99fae020cf9d64ede59500d3e96132cb20..bb441ac38d99fa721cdd01da2ef2ead289f75db1 100644 --- a/api/requirements/base.txt +++ b/api/requirements/base.txt @@ -35,7 +35,7 @@ djangorestframework>=3.7,<3.8 djangorestframework-jwt>=1.11,<1.12 oauth2client<4 google-api-python-client>=1.6,<1.7 -arrow>=0.12,<0.13 +pendulum>=2,<3 persisting-theory>=0.2,<0.3 django-versatileimagefield>=1.9,<1.10 django-filter>=1.1,<1.2 diff --git a/api/tests/federation/test_actors.py b/api/tests/federation/test_actors.py index 736ec8bf2fb9ea6f4d2a0dd01cd2b8ff326c349a..1244533de785ca227fdaf47258cd25aa10448703 100644 --- a/api/tests/federation/test_actors.py +++ b/api/tests/federation/test_actors.py @@ -1,4 +1,4 @@ -import arrow +import pendulum import pytest from django.urls import reverse from django.utils import timezone @@ -455,7 +455,7 @@ def test_library_actor_handle_create_audio(mocker, factories): assert lt.title == a["metadata"]["recording"]["title"] assert lt.artist_name == a["metadata"]["artist"]["name"] assert lt.album_title == a["metadata"]["release"]["title"] - assert lt.published_date == arrow.get(a["published"]) + assert lt.published_date == pendulum.parse(a["published"]) def test_library_actor_handle_create_audio_autoimport(mocker, factories): @@ -494,7 +494,7 @@ def test_library_actor_handle_create_audio_autoimport(mocker, factories): assert lt.title == a["metadata"]["recording"]["title"] assert lt.artist_name == a["metadata"]["artist"]["name"] assert lt.album_title == a["metadata"]["release"]["title"] - assert lt.published_date == arrow.get(a["published"]) + assert lt.published_date == pendulum.parse(a["published"]) batch = music_models.ImportBatch.objects.latest("id") diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py index 6b14656ba988834a3ce2e05a2321f2b897c48105..b42c843ee6e402e19a8c32d88ba816fc2f5421fd 100644 --- a/api/tests/federation/test_serializers.py +++ b/api/tests/federation/test_serializers.py @@ -1,4 +1,4 @@ -import arrow +import pendulum import pytest from django.core.paginator import Paginator @@ -492,7 +492,7 @@ def test_activity_pub_audio_serializer_to_library_track(factories): assert lt.title == audio["metadata"]["recording"]["title"] assert lt.artist_name == audio["metadata"]["artist"]["name"] assert lt.album_title == audio["metadata"]["release"]["title"] - assert lt.published_date == arrow.get(audio["published"]) + assert lt.published_date == pendulum.parse(audio["published"]) def test_activity_pub_audio_serializer_to_library_track_no_duplicate(factories): diff --git a/api/tests/federation/test_views.py b/api/tests/federation/test_views.py index 3a67a9f2a5e781ffe38805ccb1475d4e8d52236b..4f1f471d85174a7f5fad7224c5471de6603b44e2 100644 --- a/api/tests/federation/test_views.py +++ b/api/tests/federation/test_views.py @@ -12,6 +12,7 @@ from funkwhale_api.federation import ( views, webfinger, ) +from funkwhale_api.music import tasks as music_tasks @pytest.mark.parametrize( @@ -398,7 +399,7 @@ def test_library_track_action_import(factories, superuser_api_client, mocker): lt2 = factories["federation.LibraryTrack"](library=lt1.library) lt3 = factories["federation.LibraryTrack"]() factories["federation.LibraryTrack"](library=lt3.library) - mocked_run = mocker.patch("funkwhale_api.music.tasks.import_batch_run.delay") + mocked_run = mocker.patch("funkwhale_api.common.utils.on_commit") payload = { "objects": "all", @@ -416,7 +417,9 @@ def test_library_track_action_import(factories, superuser_api_client, mocker): assert batch.jobs.count() == 2 for i, job in enumerate(batch.jobs.all()): assert job.library_track == imported_lts[i] - mocked_run.assert_called_once_with(import_batch_id=batch.pk) + mocked_run.assert_called_once_with( + music_tasks.import_batch_run.delay, import_batch_id=batch.pk + ) def test_local_actor_detail(factories, api_client): diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py index fbdf5b81fcbca1532c6716466a5bade62c776d0a..1dfe927a07cde6e69f059d2a50f125a082331198 100644 --- a/api/tests/music/test_metadata.py +++ b/api/tests/music/test_metadata.py @@ -122,3 +122,11 @@ def test_mbid_clean_keeps_only_first(field_name): result = field.to_python("/".join([u1, u2])) assert str(result) == u1 + + +@pytest.mark.parametrize( + "raw,expected", + [("2017", datetime.date(2017, 1, 1)), ("2017-12-31", datetime.date(2017, 12, 31))], +) +def test_date_parsing(raw, expected): + assert metadata.get_date(raw) == expected diff --git a/deploy/apache.conf b/deploy/apache.conf index b74e04b33387a265b730d7d58a315ca4b95079b0..e3a570db00444393076bb0580dc0469259079bb1 100644 --- a/deploy/apache.conf +++ b/deploy/apache.conf @@ -111,7 +111,7 @@ Define MUSIC_DIRECTORY_PATH /srv/funkwhale/data/music Require all granted </Directory> - <Directory /srv/funkwhale/data/media/albums> + <Directory /srv/funkwhale/data/media> Options FollowSymLinks AllowOverride None Require all granted diff --git a/dev.yml b/dev.yml index 5dccfeca3be8123ea8babfe430c11124cc955c8b..1d9cbba203a2c898cdb83977256760d48153ff5a 100644 --- a/dev.yml +++ b/dev.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: front: @@ -8,22 +8,22 @@ services: - .env environment: - "HOST=0.0.0.0" - - "WEBPACK_DEVSERVER_PORT=${WEBPACK_DEVSERVER_PORT-8080}" + - "VUE_PORT=${VUE_PORT-8080}" ports: - - "${WEBPACK_DEVSERVER_PORT_BINDING-8080:}${WEBPACK_DEVSERVER_PORT-8080}" + - "${VUE_PORT_BINDING-8080:}${VUE_PORT-8080}" volumes: - - './front:/app' - - '/app/node_modules' - - './po:/po' + - "./front:/app" + - "/app/node_modules" + - "./po:/po" networks: - federation - internal labels: traefik.backend: "${COMPOSE_PROJECT_NAME-node1}" traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME-node1}.funkwhale.test,${NODE_IP-127.0.0.1}" - traefik.enable: 'true' - traefik.federation.protocol: 'http' - traefik.federation.port: "${WEBPACK_DEVSERVER_PORT-8080}" + traefik.enable: "true" + traefik.federation.protocol: "http" + traefik.federation.port: "${VUE_PORT-8080}" postgres: env_file: @@ -53,9 +53,9 @@ services: context: ./api dockerfile: docker/Dockerfile.test links: - - postgres - - redis - command: celery -A funkwhale_api.taskapp worker -l debug + - postgres + - redis + command: celery -A funkwhale_api.taskapp worker -l debug -B environment: - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}" - "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test" @@ -98,7 +98,7 @@ services: - .env image: nginx environment: - - "WEBPACK_DEVSERVER_PORT=${WEBPACK_DEVSERVER_PORT-8080}" + - "VUE_PORT=${VUE_PORT-8080}" - "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME- }" - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}" links: @@ -120,20 +120,20 @@ services: volumes: - ".:/app/" ports: - - '35730:35730' - - '8001:8001' + - "35730:35730" + - "8001:8001" api-docs: image: swaggerapi/swagger-ui environment: - "API_URL=/swagger.yml" ports: - - '8002:8080' + - "8002:8080" volumes: - "./docs/swagger.yml:/usr/share/nginx/html/swagger.yml" networks: - internal: + ? internal federation: external: name: federation diff --git a/docker/nginx/entrypoint.sh b/docker/nginx/entrypoint.sh index ea6a3322dd4af976caba9394a1a9678d2074fd25..9914a7aae91b79d696d2006ccebf6ef5f8718004 100755 --- a/docker/nginx/entrypoint.sh +++ b/docker/nginx/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/bash -eux -FORWARDED_PORT="$WEBPACK_DEVSERVER_PORT" +FORWARDED_PORT="$VUE_PORT" COMPOSE_PROJECT_NAME="${COMPOSE_PROJECT_NAME// /}" if [ -n "$COMPOSE_PROJECT_NAME" ]; then echo diff --git a/docs/configuration.rst b/docs/configuration.rst index 3e7b5aa25df89add324d1aab753b2303504c9efb..6874476974dc250e2110f3e9bf80e057178dfdf8 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -158,3 +158,79 @@ permissions are: There is no dedicated interface to manage users permissions, but superusers can login on the Django's admin at ``/api/admin/`` and grant permissions to users at ``/api/admin/users/user/``. + +Theming +------- + +Funkwhale supports custom themes, which are great if you want to personnalize the +look and feel of your instance. Theming is achieved by declaring +additionnal stylesheets you want to load in the front-end. + +Customize the settings +^^^^^^^^^^^^^^^^^^^^^^ + +In order to know what stylesheets to load, the front-end requests the following +url: ``https://your.instance/settings.json``. On typical deployments, this url +returns a 404 error, which is simply ignored. + +However, if you return the appropriate payload on this url, you can make the magic +work. We will store the necessary files in the ``/srv/funkwhale/custom`` directory: + +.. code-block:: shell + + cd /srv/funkwhale/ + mkdir custom + cat <<EOF > custom/settings.json + { + "additionalStylesheets": ["/custom/custom.css"] + } + EOF + cat <<EOF > custom/custom.css + body { + background-color: red; + } + EOF + +By executing the previous commands, you will end up with two files in your ``/srv/funkwhale/custom`` +directory: + +- ``settings.json`` will tell the front-end what stylesheets you want to load (``/custom/custom.css`` in this example) +- ``custom.css`` will hold your custom CSS + +The last step to make this work is to ensure both files are served by the reverse proxy. + +On nginx, add the following snippet to your vhost config:: + + location /settings.json { + alias /srv/funkwhale/custom/settings.json; + } + location /custom { + alias /srv/funkwhale/custom; + } + +On apache, use the following one:: + + Alias /settings.json /srv/funkwhale/custom/settings.json + Alias /custom /srv/funkwhale/custom + + <Directory "/srv/funkwhale/custom"> + Options FollowSymLinks + AllowOverride None + Require all granted + </Directory> + +Once done, reload your reverse proxy, refresh Funkwhale in your web browser, and you should see +a red background. + +.. note:: + + You can reference external urls as well in ``settings.json``, simply use + the full urls. Be especially careful with external urls as they may affect your users + privacy. + +.. warning:: + + Loading additional stylesheets and CSS rules can affect the performance and + usability of your instance. If you encounter issues with the interfaces and use + custom stylesheets, try to disable those to ensure the issue is not caused + by your customizations. diff --git a/docs/contributing.rst b/docs/contributing.rst index 0e5a08ecf3ce63619bc358bebbc98a8af2ea6331..e582053ea018c369be05aae96cf730744f1dc616 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -1 +1 @@ -.. include:: ../CONTRIBUTING +.. include:: ../CONTRIBUTING.rst diff --git a/front/.babelrc b/front/.babelrc deleted file mode 100644 index 13f0e47164f125ba9c5c06be376293308239e05c..0000000000000000000000000000000000000000 --- a/front/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "presets": [ - ["env", { "modules": false }], - "stage-2" - ], - "plugins": ["transform-runtime"], - "comments": false, - "env": { - "test": { - "presets": ["env", "stage-2"], - "plugins": [ "istanbul" ] - } - } -} diff --git a/front/.eslintignore b/front/.eslintignore deleted file mode 100644 index 34af3774f3127d054d30ac5452f8afc08cdd0291..0000000000000000000000000000000000000000 --- a/front/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/front/.eslintrc.js b/front/.eslintrc.js deleted file mode 100644 index 67c085d60401799f3034456860b7a5309134e74f..0000000000000000000000000000000000000000 --- a/front/.eslintrc.js +++ /dev/null @@ -1,27 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 - } -} diff --git a/front/.gitignore b/front/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..185e6631928dca2f51224e61a3861cc88fa2b74e --- /dev/null +++ b/front/.gitignore @@ -0,0 +1,21 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/front/.postcssrc.js b/front/.postcssrc.js deleted file mode 100644 index ea9a5ab8752c93dc8bc2849afdfae95d56378c17..0000000000000000000000000000000000000000 --- a/front/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserlist" field in package.json - "autoprefixer": {} - } -} diff --git a/front/Dockerfile b/front/Dockerfile index 69771c326d6fc61ae8a9b57e590d9a5c6b54eda6..43c968012b26741f70ca2ebb97cec4607fbb7f9c 100644 --- a/front/Dockerfile +++ b/front/Dockerfile @@ -5,9 +5,9 @@ RUN curl -L -o /usr/local/bin/jq https://github.com/stedolan/jq/releases/downloa EXPOSE 8080 WORKDIR /app/ -ADD package.json . +ADD package.json yarn.lock ./ RUN yarn install COPY . . -CMD ["npm", "run", "dev"] +CMD ["yarn", "serve"] diff --git a/front/babel.config.js b/front/babel.config.js new file mode 100644 index 0000000000000000000000000000000000000000..ba179669a123909a9728283fd9c004c65adb90c5 --- /dev/null +++ b/front/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/app' + ] +} diff --git a/front/build/build.js b/front/build/build.js deleted file mode 100644 index 6b8add100ca5fd2525fcd19744fd7a91a6f9bd77..0000000000000000000000000000000000000000 --- a/front/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')() - -process.env.NODE_ENV = 'production' - -var ora = require('ora') -var rm = require('rimraf') -var path = require('path') -var chalk = require('chalk') -var webpack = require('webpack') -var config = require('../config') -var webpackConfig = require('./webpack.prod.conf') - -var spinner = ora('building for production...') -spinner.start() - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err - webpack(webpackConfig, function (err, stats) { - spinner.stop() - if (err) throw err - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n') - - console.log(chalk.cyan(' Build complete.\n')) - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )) - }) -}) diff --git a/front/build/check-versions.js b/front/build/check-versions.js deleted file mode 100644 index 100f3a0fe362d0c0f9bb159a10f89f1857211dac..0000000000000000000000000000000000000000 --- a/front/build/check-versions.js +++ /dev/null @@ -1,48 +0,0 @@ -var chalk = require('chalk') -var semver = require('semver') -var packageConfig = require('../package.json') -var shell = require('shelljs') -function exec (cmd) { - return require('child_process').execSync(cmd).toString().trim() -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -] - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }) -} - -module.exports = function () { - var warnings = [] - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i] - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ) - } - } - - if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i] - console.log(' ' + warning) - } - console.log() - process.exit(1) - } -} diff --git a/front/build/dev-client.js b/front/build/dev-client.js deleted file mode 100644 index 18aa1e21952b9468dd5a7e603eb9966d037d2f1a..0000000000000000000000000000000000000000 --- a/front/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill') -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload() - } -}) diff --git a/front/build/dev-server.js b/front/build/dev-server.js deleted file mode 100644 index 634a6d41e76af052331174198af1fd5e0669fd06..0000000000000000000000000000000000000000 --- a/front/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')() - -var config = require('../config') -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) -} - -var opn = require('opn') -var path = require('path') -var express = require('express') -var webpack = require('webpack') -var proxyMiddleware = require('http-proxy-middleware') -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf') - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port -var host = process.env.HOST || config.dev.host -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable - -var app = express() -var compiler = webpack(webpackConfig) - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}) - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: () => {} -}) -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }) - cb() - }) -}) - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context] - if (typeof options === 'string') { - options = { target: options } - } - app.use(proxyMiddleware(options.filter || context, options)) -}) - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()) - -// serve webpack bundle output -app.use(devMiddleware) - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware) - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) -app.use(staticPath, express.static('./static')) - -var uri = 'http://' + host + ':' + port - -var _resolve -var readyPromise = new Promise(resolve => { - _resolve = resolve -}) - -console.log('> Starting dev server...') -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n') - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri) - } - _resolve() -}) - -var server = app.listen(port, host) - -module.exports = { - ready: readyPromise, - close: () => { - server.close() - } -} diff --git a/front/build/utils.js b/front/build/utils.js deleted file mode 100644 index b1d54b4d6c551623d769be0d02a2a4fefda192c2..0000000000000000000000000000000000000000 --- a/front/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path') -var config = require('../config') -var ExtractTextPlugin = require('extract-text-webpack-plugin') - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory - return path.posix.join(assetsSubDirectory, _path) -} - -exports.cssLoaders = function (options) { - options = options || {} - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - } - - // generate loader string to be used with extract text plugin - function generateLoaders (loader, loaderOptions) { - var loaders = [cssLoader] - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }) - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }) - } else { - return ['vue-style-loader'].concat(loaders) - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - } -} - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = [] - var loaders = exports.cssLoaders(options) - for (var extension in loaders) { - var loader = loaders[extension] - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }) - } - return output -} diff --git a/front/build/vue-loader.conf.js b/front/build/vue-loader.conf.js deleted file mode 100644 index 7aee79bae4eedd776cd8155db07eba7f51a6316a..0000000000000000000000000000000000000000 --- a/front/build/vue-loader.conf.js +++ /dev/null @@ -1,12 +0,0 @@ -var utils = require('./utils') -var config = require('../config') -var isProduction = process.env.NODE_ENV === 'production' - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }) -} diff --git a/front/build/webpack.base.conf.js b/front/build/webpack.base.conf.js deleted file mode 100644 index f47b326bffa49a1e1b384532c584a7f493a12811..0000000000000000000000000000000000000000 --- a/front/build/webpack.base.conf.js +++ /dev/null @@ -1,67 +0,0 @@ -var path = require('path') -var utils = require('./utils') -var config = require('../config') -var vueLoaderConfig = require('./vue-loader.conf') - -function resolve (dir) { - return path.join(__dirname, '..', dir) -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -} diff --git a/front/build/webpack.dev.conf.js b/front/build/webpack.dev.conf.js deleted file mode 100644 index 5470402d0377c4c399febfc48aa6b3585e33c6a2..0000000000000000000000000000000000000000 --- a/front/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -var merge = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) -}) - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}) diff --git a/front/build/webpack.prod.conf.js b/front/build/webpack.prod.conf.js deleted file mode 100644 index 99713cc4230bae2c5f8b62492bb91e439d79eba1..0000000000000000000000000000000000000000 --- a/front/build/webpack.prod.conf.js +++ /dev/null @@ -1,124 +0,0 @@ -var path = require('path') -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -var merge = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var CopyWebpackPlugin = require('copy-webpack-plugin') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var ExtractTextPlugin = require('extract-text-webpack-plugin') -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ) - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}) - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin') - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ) -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin - webpackConfig.plugins.push(new BundleAnalyzerPlugin()) -} - -module.exports = webpackConfig diff --git a/front/build/webpack.test.conf.js b/front/build/webpack.test.conf.js deleted file mode 100644 index d6c8c8dd31f7d8fe1d5f2f6eb5aed9c1d7962f31..0000000000000000000000000000000000000000 --- a/front/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils') -var webpack = require('webpack') -var merge = require('webpack-merge') -var baseConfig = require('./webpack.base.conf') - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}) - -// no need for app entry during tests -delete webpackConfig.entry - -module.exports = webpackConfig diff --git a/front/config/dev.env.js b/front/config/dev.env.js deleted file mode 100644 index efead7c840a15f2a06ed28fcf1304293a9b704e0..0000000000000000000000000000000000000000 --- a/front/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge') -var prodEnv = require('./prod.env') - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}) diff --git a/front/config/index.js b/front/config/index.js deleted file mode 100644 index d10f35e9146258cc4b2271ca2270bd6ae09b4c98..0000000000000000000000000000000000000000 --- a/front/config/index.js +++ /dev/null @@ -1,65 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path') - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: false, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: parseInt(process.env.WEBPACK_DEVSERVER_PORT), - host: '127.0.0.1', - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: { - '**': { - target: 'http://nginx:6001', - changeOrigin: true, - ws: true, - filter: function (pathname, req) { - let proxified = ['rest', '.well-known', 'staticfiles', 'media', 'federation', 'api'] - let matches = proxified.filter(e => { - return pathname.match(`^/${e}`) - }) - return matches.length > 0 - } - }, - // '/.well-known': { - // target: 'http://nginx:6001', - // changeOrigin: true - // }, - // '/media': { - // target: 'http://nginx:6001', - // changeOrigin: true, - // }, - // '/staticfiles': { - // target: 'http://nginx:6001', - // changeOrigin: true, - // }, - - }, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -} diff --git a/front/config/prod.env.js b/front/config/prod.env.js deleted file mode 100644 index 40cf48973416fbe1cfaa181e54821b51730f5398..0000000000000000000000000000000000000000 --- a/front/config/prod.env.js +++ /dev/null @@ -1,5 +0,0 @@ -let url = process.env.INSTANCE_URL || '/' -module.exports = { - NODE_ENV: '"production"', - INSTANCE_URL: `"${url}"` -} diff --git a/front/config/test.env.js b/front/config/test.env.js deleted file mode 100644 index 89f90deb22e1d04723f4ec859ef976fc5f4c2761..0000000000000000000000000000000000000000 --- a/front/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge') -var devEnv = require('./dev.env') - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}) diff --git a/front/index.html b/front/index.html deleted file mode 100644 index da815d61914ac3753686b60147c5f673ba846a78..0000000000000000000000000000000000000000 --- a/front/index.html +++ /dev/null @@ -1,13 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <title>Funkwhale</title> - <link rel="shortcut icon" type="image/png" href="/static/favicon.png"/> - <meta name="viewport" content="width=device-width, initial-scale=1"> - </head> - <body> - <div id="app"></div> - <!-- built files will be auto injected --> - </body> -</html> diff --git a/front/locales/ar/LC_MESSAGES/app.po b/front/locales/ar/LC_MESSAGES/app.po index b027ab1eea4c7c012f9632b91059eff25477a0e0..20ec268818889401e1aca6d540845f7ef6d54438 100644 --- a/front/locales/ar/LC_MESSAGES/app.po +++ b/front/locales/ar/LC_MESSAGES/app.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Arabic (FunkWhale)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-22 15:50+0000\n" +"PO-Revision-Date: 2018-07-24 19:50+0000\n" "Last-Translator: ButterflyOfFire <butterflyoffire+funkwhale@protonmail.com>\n" "Language-Team: Arabic <https://translate.funkwhale.audio/projects/funkwhale/" "funkwhale/front/ar/>\n" @@ -81,19 +81,19 @@ msgstr[5] "%{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹" #: front/src/components/common/Duration.vue:2 msgid "%{ hours } h %{ minutes } min" -msgstr "" +msgstr "%{ hours } سا %{ minutes } د" #: front/src/components/common/Duration.vue:5 msgid "%{ minutes } min" -msgstr "" +msgstr "%{ minutes } د" #: front/src/components/activity/Like.vue:7 msgid "%{ user } favorited a track" -msgstr "" +msgstr "Ø£ÙØ¹Ø¬Ùب %{ user } بمقطع" #: front/src/components/activity/Listen.vue:7 msgid "%{ user } listened to a track" -msgstr "" +msgstr "قام %{ user } بالاستماع إلى مَقطَع" #: front/src/components/auth/Profile.vue:49 msgid "%{ username }'s profile" @@ -131,9 +131,8 @@ msgstr[4] "%{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹" msgstr[5] "%{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹" #: front/src/components/About.vue:5 -#, fuzzy msgid "About %{ instance }" -msgstr "عن مثيل الخادوم هذا" +msgstr "عن %{ instance }" #: front/src/App.vue:54 msgid "About Funkwhale" @@ -146,11 +145,11 @@ msgstr "عن مثيل الخادوم هذا" #: front/src/components/manage/library/RequestsTable.vue:28 #: front/src/components/manage/library/RequestsTable.vue:62 msgid "Accepted" -msgstr "" +msgstr "تم قبوله" #: front/src/components/auth/SubsonicTokenForm.vue:111 msgid "Access disabled" -msgstr "" +msgstr "Ø¹ÙØ·Ù‘Ù„ Ø§Ù„Ù†ÙØ§Ø°" #: front/src/components/Home.vue:109 msgid "Access your music from a clean interface that focus on what really matters" @@ -502,7 +501,7 @@ msgstr "" #: front/src/components/auth/Settings.vue:98 msgid "Changing your password will have the following consequences" -msgstr "" +msgstr "سو٠ينجرّ ما يلي عند تعديل كلمتك السرية" #: front/src/App.vue:4 msgid "Choose your instance" @@ -615,9 +614,8 @@ msgid "Creation date" msgstr "تاريخ الإنشاء" #: front/src/components/auth/Settings.vue:54 -#, fuzzy msgid "Current avatar" -msgstr "المَقطَع Ø§Ù„ØØ§Ù„ÙŠ" +msgstr "الصورة الرمزية Ø§Ù„ØØ§Ù„ية" #: front/src/components/playlists/PlaylistModal.vue:8 msgid "Current track" @@ -701,9 +699,8 @@ msgid "Do you want to delete the playlist \"%{ playlist }\"?" msgstr "متأكّد Ù…ÙÙ† أنك تريد ØØ°Ù قائمة Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية \"%{ playlist }\" ØŸ" #: front/src/views/radios/Detail.vue:26 -#, fuzzy msgid "Do you want to delete the radio \"%{ radio }\"?" -msgstr "أتريد ØÙ‚ا ØØ°Ù إذاعة \"{{ radio }}\" ØŸ" +msgstr "أتريد ØÙ‚ا ØØ°Ù إذاعة \"%{ radio }\" ØŸ" #: front/src/components/common/ActionTable.vue:29 msgid "Do you want to launch %{ action } on %{ count } element?" @@ -908,7 +905,7 @@ msgstr "Ø§Ù„ÙØ¯ÙŠØ±Ø§Ù„ية" #: front/src/views/federation/LibraryDetail.vue:3 msgid "File mirroring" -msgstr "" +msgstr "النسخ المتماثل Ù„Ù„Ù…Ù„ÙØ§Øª" #: front/src/components/library/import/FileUpload.vue:43 msgid "File name" @@ -1037,7 +1034,7 @@ msgstr "جلب البيانات الوصÙية ذات الصّلة" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "ساعدنا على ترجمة ÙØ§Ù†Ùƒ وايل" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1192,9 +1189,8 @@ msgid "Instance information" msgstr "معلومات عن مثيل الخادوم" #: front/src/components/library/Radios.vue:9 -#, fuzzy msgid "Instance radios" -msgstr "معلومات عن مثيل الخادوم" +msgstr "إذاعات مثيل الخادوم" #: front/src/views/admin/Settings.vue:75 msgid "Instance settings" @@ -1395,6 +1391,13 @@ msgid "" " </a>\n" " project, which you can think about as the Wikipedia of music." msgstr "" +"البيانات الوصÙية هي الم البيانات المتعلقة بالموسيقى التي تريد استيرادها. Ùˆ " +"هي ØªØØªÙˆÙŠ Ø¹Ù„Ù‰ معلومات عن الÙنانين Ùˆ الألبومات Ùˆ Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية. Ùˆ بغرض " +"إنشاء مكتبة بها جودة، ÙŠÙØ³ØªØØ³Ù† جلب البيانات Ù…ÙÙ† \n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>\n" +" مشروع بمثابة ويكيبيديا للموسيقى." #: front/src/components/Sidebar.vue:48 #: src/components/library/import/Main.vue:18 @@ -1498,6 +1501,8 @@ msgstr "الكلمة السرية الجديدة" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." msgstr "" +"ØÙŠÙ†Ù…ا تتم عملية إرسال ÙƒØ§ÙØ© Ù…Ù„ÙØ§ØªÙƒØŒ إضغط على الزر التالي للتØÙ‚Ù‚ Ù…ÙÙ† ØØ§Ù„Ø© " +"الإستيراد." #: front/src/components/federation/LibraryCard.vue:21 #: front/src/components/manage/users/InvitationsTable.vue:20 @@ -1683,6 +1688,8 @@ msgstr "الرجاء التأكّد Ù…ÙÙ† ØµØØ© اسم المستخدÙÙ… Ùˆ #: front/src/components/auth/Settings.vue:46 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." msgstr "" +"نسق PNG أو GIF أو JPG. Ø§Ù„ØØ¬Ù… الأقصى 2 ميغابيت. سيتم تغيير ØØ¬Ù…ها إلى 400×400 " +"بكسل." #: front/src/components/library/import/Main.vue:26 msgid "Previous step" @@ -1722,18 +1729,16 @@ msgid "Radio Builder" msgstr "Ù…ÙÙ†Ø´ÙØ¦ الإذاعات Ùˆ الراديو" #: front/src/components/library/radios/Builder.vue:15 -#, fuzzy msgid "Radio created" -msgstr "إسم الإذاعة" +msgstr "تم إنشاء الإذاعة" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" msgstr "إسم الإذاعة" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "إسم الإذاعة" +msgstr "تم ØªØØ¯ÙŠØ« الإذاعة" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 @@ -1746,12 +1751,11 @@ msgstr "Ø£ØØ¯Ø« الأنشطة على مثيل الخادوم هذا" #: front/src/components/library/Home.vue:24 msgid "Recently added" -msgstr "" +msgstr "تمت Ø¥Ø¶Ø§ÙØªÙ‡Ø§ مؤخرا" #: front/src/components/library/Home.vue:11 -#, fuzzy msgid "Recently favorited" -msgstr "ÙÙŠ Ø§Ù„Ù…ÙØ¶Ù„Ø©" +msgstr "تمت Ø¥Ø¶Ø§ÙØªÙ‡Ø§ إلى Ø§Ù„Ù…ÙØ¶Ù„Ø© ØØ¯ÙŠØ«Ø§" #: front/src/components/library/Home.vue:6 msgid "Recently listened" @@ -1787,9 +1791,8 @@ msgid "Remove" msgstr "ØØ°Ù" #: front/src/components/auth/Settings.vue:58 -#, fuzzy msgid "Remove avatar" -msgstr "ØØ°Ù" +msgstr "ØØ°Ù الصورة الرمزية" #: front/src/components/favorites/TrackFavoriteIcon.vue:19 msgid "Remove from favorites" @@ -2257,9 +2260,8 @@ msgid "Tracks available in this library" msgstr "Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ المتوÙّرة ÙÙŠ هذه المكتبة" #: front/src/components/library/Artist.vue:54 -#, fuzzy msgid "Tracks by this artist" -msgstr "Ù…ÙÙ† ألبومات هذا الÙنان" +msgstr "Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ لهذا الÙنان" #: front/src/components/instance/Stats.vue:25 msgid "Tracks favorited" @@ -2275,7 +2277,7 @@ msgstr "" #: front/src/components/manage/library/FilesTable.vue:41 msgid "Type" -msgstr "" +msgstr "النوع" #: front/src/components/About.vue:15 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." @@ -2294,9 +2296,8 @@ msgid "Unmute" msgstr "إلغاء الكتم" #: front/src/components/auth/Settings.vue:50 -#, fuzzy msgid "Update avatar" -msgstr "ØªØØ¯ÙŠØ« قائمة Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية" +msgstr "ØªØØ¯ÙŠØ« الصورة الرمزية" #: front/src/components/playlists/Form.vue:33 msgid "Update playlist" @@ -2317,7 +2318,7 @@ msgstr "أرسل" #: front/src/components/auth/Settings.vue:45 msgid "Upload a new avatar" -msgstr "" +msgstr "إرسال صورة رمزية جديدة" #: front/src/components/library/import/Main.vue:7 msgid "Uploaded files or external source" @@ -2349,7 +2350,7 @@ msgstr "" #: front/src/components/manage/users/InvitationsTable.vue:49 msgid "Used" -msgstr "" +msgstr "Ù…ÙØ³ØªØ®Ø¯ÙŽÙ…" #: front/src/components/manage/library/RequestsTable.vue:47 msgid "User" @@ -2360,9 +2361,8 @@ msgid "User activity" msgstr "نشاط المستخدÙÙ…" #: front/src/components/library/Radios.vue:20 -#, fuzzy msgid "User radios" -msgstr "المستخدÙمون" +msgstr "إذاعات المستخدÙمين" #: front/src/components/auth/Signup.vue:19 #: front/src/components/manage/users/UsersTable.vue:37 @@ -2394,24 +2394,23 @@ msgstr "إطّلع عليه على ميوزيك براينز" #: front/src/components/playlists/PlaylistModal.vue:20 msgid "We cannot add the track to a playlist" -msgstr "" +msgstr "لا يمكننا Ø¥Ø¶Ø§ÙØ© المَقطَع إلى قائمة التشغيل" #: front/src/components/playlists/Form.vue:14 msgid "We cannot create the playlist" -msgstr "" +msgstr "لا يمكننا إنشاء قائمة التشغيل" #: front/src/components/auth/Signup.vue:13 msgid "We cannot create your account" -msgstr "" +msgstr "لا يمكننا إنشاء ØØ³Ø§Ø¨Ùƒ" #: front/src/components/auth/Login.vue:7 msgid "We cannot log you in" -msgstr "" +msgstr "تعذر علينا تسجيل دخولك" #: front/src/components/auth/Settings.vue:38 -#, fuzzy msgid "We cannot save your avatar" -msgstr "تعذّر علينا ØÙظ إعداداتك" +msgstr "تعذّر علينا ØÙظ صورتك الرمزية" #: front/src/components/auth/Settings.vue:14 msgid "We cannot save your settings" @@ -2431,7 +2430,7 @@ msgstr "نعتقد أنّ الاستماع إلى الموسيقى ينبغي Ø£ #: front/src/components/PageNotFound.vue:10 msgid "We're sorry, the page you asked for does not exist:" -msgstr "" +msgstr "المعذرة، إنّ Ø§Ù„ØµÙØØ© التي قمت بطلبها غير موجودة :" #: front/src/components/requests/Form.vue:21 msgid "We've received your request, you'll get some groove soon ;)" @@ -2463,15 +2462,15 @@ msgstr "نعم" #: front/src/components/auth/Logout.vue:8 msgid "Yes, log me out!" -msgstr "" +msgstr "نعم، أؤكد الخروج !" #: front/src/components/auth/Logout.vue:7 msgid "You are currently logged in as %{ username }" -msgstr "" +msgstr "أنت متّصل ØØ§Ù„يا Ø¨ØµÙØ© %{ username }" #: front/src/components/library/import/Main.vue:111 msgid "You can also skip this step and enter metadata manually." -msgstr "" +msgstr "يمكنك طبعًا تخطي هذه الخطوة Ùˆ إدخال البيانات الوصÙية يدويًا." #: front/src/components/Home.vue:136 msgid "You can invite friends and family to your instance so they can enjoy your music" @@ -2487,7 +2486,7 @@ msgstr "" #: front/src/components/Sidebar.vue:156 msgid "You have a radio playing" -msgstr "" +msgstr "إنك تستمع إلى إذاعة" #: front/src/App.vue:6 msgid "You need to select an instance in order to continue" diff --git a/front/locales/de/LC_MESSAGES/app.po b/front/locales/de/LC_MESSAGES/app.po new file mode 100644 index 0000000000000000000000000000000000000000..56926040cc1938886a182ff5a5cafd7c1ddf839e --- /dev/null +++ b/front/locales/de/LC_MESSAGES/app.po @@ -0,0 +1,2511 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the front package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: front 1.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-22 14:12+0200\n" +"PO-Revision-Date: 2018-07-27 15:49+0000\n" +"Last-Translator: jovuit <jo.vuitton@gmail.com>\n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 2.20\n" + +#: front/src/components/playlists/PlaylistModal.vue:9 +msgid "\"%{ title }\", by %{ artist }" +msgstr "\"%{ title }\", von %{ artist }" + +#: front/src/components/Sidebar.vue:24 +msgid "(%{ index } of %{ length })" +msgstr "(%{ index } von %{ length })" + +#: front/src/components/Sidebar.vue:22 +msgid "(empty)" +msgstr "(leer)" + +#: front/src/components/common/ActionTable.vue:43 +#: front/src/components/common/ActionTable.vue:51 +msgid "%{ count } on %{ total } selected" +msgid_plural "%{ count } on %{ total } selected" +msgstr[0] "%{ count } von %{ total } ausgewählt" +msgstr[1] "%{ count } von %{ total } ausgewählt" + +#: front/src/components/Sidebar.vue:116 src/views/federation/LibraryDetail.vue:87 +msgid "%{ count } track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count } Track" +msgstr[1] "%{ count } Tracks" + +#: front/src/components/library/Artist.vue:13 +msgid "%{ count } track in %{ albumsCount } albums" +msgid_plural "%{ count } tracks in %{ albumsCount } albums" +msgstr[0] "%{ count } Track in %{ albumsCount } Alben" +msgstr[1] "%{ count } Tracks in %{ albumsCount } Alben" + +#: front/src/components/library/radios/Builder.vue:76 +msgid "%{ count } track matching combined filters" +msgid_plural "%{ count } tracks matching combined filters" +msgstr[0] "%{ count } Track trifft die ausgewählten Filter" +msgstr[1] "%{ count } Tracks treffen die ausgewählten Filter" + +#: front/src/components/playlists/Card.vue:18 +msgid "%{ count} track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count} Track" +msgstr[1] "%{ count} Tracks" + +#: front/src/components/common/Duration.vue:2 +msgid "%{ hours } h %{ minutes } min" +msgstr "%{ hours } h %{ minutes } min" + +#: front/src/components/common/Duration.vue:5 +msgid "%{ minutes } min" +msgstr "%{ minutes } min" + +#: front/src/components/activity/Like.vue:7 +msgid "%{ user } favorited a track" +msgstr "%{ user } hat einen Track zu seinen Favoriten hinzugefügt" + +#: front/src/components/activity/Listen.vue:7 +msgid "%{ user } listened to a track" +msgstr "%{ user } hat einen Track angehört" + +#: front/src/components/auth/Profile.vue:49 +msgid "%{ username }'s profile" +msgstr "Profil von %{ username }" + +#: front/src/components/audio/artist/Card.vue:41 +msgid "1 album" +msgid_plural "%{ count } albums" +msgstr[0] "1 Album" +msgstr[1] "%{ count } Alben" + +#: front/src/components/favorites/List.vue:10 +msgid "1 favorite" +msgid_plural "%{ count } favorites" +msgstr[0] "1 Favorit" +msgstr[1] "%{ count } Favoriten" + +#: front/src/components/audio/album/Card.vue:54 +#: front/src/components/federation/LibraryCard.vue:25 +msgid "1 track" +msgid_plural "%{ count } tracks" +msgstr[0] "1 Track" +msgstr[1] "%{ count } Tracks" + +#: front/src/components/About.vue:5 +msgid "About %{ instance }" +msgstr "Über %{ instance }" + +#: front/src/App.vue:54 +msgid "About Funkwhale" +msgstr "Über Funkwhale" + +#: front/src/App.vue:32 src/components/About.vue:8 src/components/About.vue:55 +msgid "About this instance" +msgstr "Über diese Instanz" + +#: front/src/components/manage/library/RequestsTable.vue:28 +#: front/src/components/manage/library/RequestsTable.vue:62 +msgid "Accepted" +msgstr "Bestätigt" + +#: front/src/components/auth/SubsonicTokenForm.vue:111 +msgid "Access disabled" +msgstr "Zugriff ausgeschaltet" + +#: front/src/components/Home.vue:109 +#, fuzzy +msgid "Access your music from a clean interface that focus on what really matters" +msgstr "" +"Greife deiner Musik zu durch eine klare Oberfläche, die auf das Wichtigste " +"fokusiert" + +#: front/src/views/admin/users/UsersDetail.vue:54 +msgid "Account active" +msgstr "Konto aktiv" + +#: front/src/components/auth/Settings.vue:5 +msgid "Account settings" +msgstr "Kontoeinstellungen" + +#: front/src/components/auth/Settings.vue:257 +msgid "Account Settings" +msgstr "Kontoeinstellungen" + +#: front/src/components/manage/users/UsersTable.vue:39 +msgid "Account status" +msgstr "Kontostatus" + +#: front/src/views/auth/PasswordReset.vue:14 +msgid "Account's email" +msgstr "Konto's Email" + +#: front/src/components/common/ActionTable.vue:82 +msgid "Action %{ action } was launched successfully on %{ count } element" +msgid_plural "Action %{ action } was launched successfully on %{ count } elements" +msgstr[0] "" +"Die Aktion %{ action } wurde erfolgreich auf %{ count } Element gestartet" +msgstr[1] "" +"Die Aktion %{ action } wurde erfolgreich auf %{ count } Elemente gestartet" + +#: front/src/components/common/ActionTable.vue:8 +#: front/src/components/federation/LibraryFollowTable.vue:24 +#: front/src/components/library/radios/Builder.vue:60 +#: front/src/components/manage/library/RequestsTable.vue:54 +msgid "Actions" +msgstr "Aktionen" + +#: front/src/components/manage/users/UsersTable.vue:53 +msgid "Active" +msgstr "Aktiv" + +#: front/src/components/Sidebar.vue:60 +msgid "Activity" +msgstr "Aktivität" + +#: front/src/components/federation/LibraryFollowTable.vue:21 +msgid "Actor" +msgstr "Aktor" + +#: front/src/views/federation/LibraryList.vue:8 +msgid "Add a new library" +msgstr "Eine neue Mediathek einfügen" + +#: front/src/components/library/radios/Builder.vue:46 +msgid "Add filter" +msgstr "Filter einfügen" + +#: front/src/components/library/radios/Builder.vue:36 +msgid "Add filters to customize your radio" +msgstr "Filter einfügen um deine Radio zu personalisieren" + +#: front/src/components/audio/PlayButton.vue:53 +msgid "Add to current queue" +msgstr "Zur Wiedergabeliste hinzufügen" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:4 +#: front/src/components/favorites/TrackFavoriteIcon.vue:21 +msgid "Add to favorites" +msgstr "Zu den Favoriten hinzufügen" + +#: front/src/components/playlists/TrackPlaylistIcon.vue:6 +#: front/src/components/playlists/TrackPlaylistIcon.vue:32 +msgid "Add to playlist..." +msgstr "Zu einer Playlist hinzufügen..." + +#: front/src/components/audio/PlayButton.vue:14 +msgid "Add to queue" +msgstr "Zur Wiedergabeliste hinzufügen" + +#: front/src/components/playlists/PlaylistModal.vue:116 +msgid "Add to this playlist" +msgstr "Zu dieser Playlist hinzufügen" + +#: front/src/components/playlists/PlaylistModal.vue:54 +msgid "Add track" +msgstr "Track hinzufügen" + +#: front/src/components/manage/users/UsersTable.vue:69 +msgid "Admin" +msgstr "Admin" + +#: front/src/components/Sidebar.vue:64 +msgid "Administration" +msgstr "Verwaltung" + +#: front/src/components/audio/SearchBar.vue:26 src/components/audio/track/Table.vue:8 +#: front/src/components/federation/LibraryTrackTable.vue:49 +#: front/src/components/library/Album.vue:91 +#: front/src/components/manage/library/FilesTable.vue:39 +#: front/src/components/metadata/Search.vue:134 +msgid "Album" +msgstr "Album" + +#: front/src/components/library/import/ReleaseImport.vue:3 +msgid "Album %{ title } (%{ count } track) by %{ artist }" +msgid_plural "Album %{ title } (%{ count } tracks) by %{ artist }" +msgstr[0] "Album %{ title } (%{ count } Track) von %{ artist }" +msgstr[1] "Album %{ title } (%{ count } Tracks) von %{ artist }" + +#: front/src/components/library/Album.vue:12 +msgid "Album containing %{ count } track, by %{ artist }" +msgid_plural "Album containing %{ count } tracks, by %{ artist }" +msgstr[0] "Album mit %{ count } Track, von %{ artist }" +msgstr[1] "Album mit %{ count } Tracks, von %{ artist }" + +#: front/src/components/library/Track.vue:20 +msgid "Album page" +msgstr "Albumseite" + +#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48 +#: front/src/components/manage/library/RequestsTable.vue:50 +#: front/src/components/requests/Form.vue:9 +msgid "Albums" +msgstr "Alben" + +#: front/src/components/library/Artist.vue:44 +msgid "Albums by this artist" +msgstr "Alben von diesem Künstler oder Künstlerin" + +#: front/src/components/manage/library/RequestsTable.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:19 +msgid "All" +msgstr "Alles" + +#: front/src/components/playlists/Editor.vue:13 +msgid "An error occured while saving your changes" +msgstr "Ein Fehler ist während der Speicherung deiner Veränderungen aufgetreten" + +#: front/src/components/auth/Login.vue:10 +msgid "An unknown error happend, this can mean the server is down or cannot be reached" +msgstr "" +"Ein unbenkannter Fehler ist aufgetreten, d.h. der Server ist ausgescahltet " +"oder kann nicht erreicht werden" + +#: front/src/components/federation/LibraryTrackTable.vue:11 +#: front/src/components/library/import/BatchDetail.vue:68 +#: front/src/components/library/import/BatchList.vue:13 +#: front/src/components/library/import/BatchList.vue:22 +msgid "Any" +msgstr "Alle" + +#: front/src/components/library/import/BatchList.vue:24 +msgid "API" +msgstr "API" + +#: front/src/components/federation/LibraryFollowTable.vue:68 +#: front/src/components/federation/LibraryFollowTable.vue:78 +msgid "Approve" +msgstr "Zustimmen" + +#: front/src/components/federation/LibraryFollowTable.vue:70 +msgid "Approve access?" +msgstr "Zugriff genehmigen?" + +#: front/src/components/federation/LibraryFollowTable.vue:38 +msgid "Approved" +msgstr "Genehmigt" + +#: front/src/components/auth/Logout.vue:5 +msgid "Are you sure you want to log out?" +msgstr "Möchtest du dich wirklich ausloggen?" + +#: front/src/components/audio/SearchBar.vue:25 src/components/audio/track/Table.vue:7 +#: front/src/components/federation/LibraryTrackTable.vue:48 +#: front/src/components/library/Artist.vue:119 +#: front/src/components/manage/library/FilesTable.vue:38 +#: front/src/components/manage/library/RequestsTable.vue:49 +#: front/src/components/metadata/Search.vue:130 +msgid "Artist" +msgstr "Künstler oder Künstlerin" + +#: front/src/components/requests/Form.vue:5 +msgid "Artist name" +msgstr "Künstlername" + +#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23 +msgid "Artist page" +msgstr "Künstlerseite" + +#: front/src/components/audio/Search.vue:65 +msgid "Artist, album, track..." +msgstr "Künstler oder Künstlerin, Album, Track..." + +#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42 +#: front/src/components/library/Artists.vue:119 src/components/library/Library.vue:7 +msgid "Artists" +msgstr "Künstler und Künstlerinnen" + +#: front/src/components/favorites/List.vue:33 +#: front/src/components/federation/LibraryTrackTable.vue:28 +#: front/src/components/library/Artists.vue:25 src/components/library/Radios.vue:44 +#: front/src/components/manage/library/FilesTable.vue:19 +#: front/src/components/manage/library/RequestsTable.vue:19 +#: front/src/components/manage/users/UsersTable.vue:19 +#: front/src/views/federation/LibraryList.vue:28 src/views/playlists/List.vue:27 +msgid "Ascending" +msgstr "Zunehmend" + +#: front/src/views/auth/PasswordReset.vue:27 +msgid "Ask for a password reset" +msgstr "Eine Kennwortzurücksetzung beantragen" + +#: front/src/views/federation/LibraryDetail.vue:56 +msgid "Auto importing" +msgstr "Automatischer Import" + +#: front/src/components/playlists/PlaylistModal.vue:26 +msgid "Available playlists" +msgstr "Verfügbare Playlists" + +#: front/src/components/auth/Settings.vue:34 +msgid "Avatar" +msgstr "Avatar" + +#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24 +#: front/src/views/auth/PasswordResetConfirm.vue:18 +msgid "Back to login" +msgstr "Zurück zur Anmeldung" + +#: front/src/views/federation/LibraryFollowersList.vue:5 +msgid "Be careful when accepting follow requests, as it means the follower will have access to your entire library." +msgstr "" +"Vorsicht beim Akzeptieren von Folgen-Anfragen: Deine Follower und " +"Followerinnen haben Zugriff auf deine gesamte Mediathek." + +#: front/src/components/library/Track.vue:80 +#: front/src/components/manage/library/FilesTable.vue:42 +msgid "Bitrate" +msgstr "Bitrate" + +#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4 +msgid "Browse" +msgstr "Browsen" + +#: front/src/components/Sidebar.vue:50 +msgid "Browse library" +msgstr "Die Mediathek durchsuchen" + +#: front/src/components/library/Artists.vue:4 +msgid "Browsing artists" +msgstr "Künstler und Künstlerinnen durchsuchen" + +#: front/src/views/federation/LibraryTrackList.vue:3 +msgid "Browsing federated tracks" +msgstr "Föderierte Tracks durchsuchen" + +#: front/src/views/federation/LibraryFollowersList.vue:3 +msgid "Browsing followers" +msgstr "Follower und Followerinnen durchsuchen" + +#: front/src/views/federation/LibraryList.vue:3 +msgid "Browsing libraries" +msgstr "Mediatheke durchsuchen" + +#: front/src/views/playlists/List.vue:3 +msgid "Browsing playlists" +msgstr "Playlists durchsuchen" + +#: front/src/components/library/Radios.vue:4 +msgid "Browsing radios" +msgstr "Radios durchsuchen" + +#: front/src/components/library/radios/Builder.vue:5 +msgid "Builder" +msgstr "Editor" + +#: front/src/components/audio/album/Card.vue:13 +msgid "By %{ artist }" +msgstr "Von %{ artist }" + +#: front/src/components/federation/LibraryFollowTable.vue:57 +msgid "By confirming, %{ username } will be denied access to your library." +msgstr "" +"Beim Bestätigen wird %{ username } der Zugriff zu deiner Mediathek abgelehnt." + +#: front/src/components/federation/LibraryFollowTable.vue:73 +msgid "By confirming, %{ username } will be granted access to your library." +msgstr "" +"Beim Bestätigen wird %{ username } der Zugriff zu deiner Mediathek " +"zugelassen." + +#: front/src/components/audio/track/Table.vue:43 +#: front/src/components/common/DangerousButton.vue:17 +#: front/src/components/library/radios/Filter.vue:53 +#: front/src/components/playlists/PlaylistModal.vue:63 +msgid "Cancel" +msgstr "Absagen" + +#: front/src/components/library/radios/Builder.vue:59 +msgid "Candidates" +msgstr "Kandidaten" + +#: front/src/components/auth/Settings.vue:76 +msgid "Cannot change your password" +msgstr "Das Kennwort kann nicht geändert werden" + +#: front/src/App.vue:66 +msgid "Change language" +msgstr "Sprache ändern" + +#: front/src/components/auth/Settings.vue:67 +msgid "Change my password" +msgstr "Mein Kennwort wechseln" + +#: front/src/components/auth/Settings.vue:95 +msgid "Change password" +msgstr "Kennwortwechsel" + +#: front/src/views/auth/PasswordResetConfirm.vue:4 +#: front/src/views/auth/PasswordResetConfirm.vue:62 +msgid "Change your password" +msgstr "Kennwortwechsel" + +#: front/src/components/auth/Settings.vue:96 +msgid "Change your password?" +msgstr "Dein Kennwort wechseln?" + +#: front/src/components/playlists/Editor.vue:21 +msgid "Changes synced with server" +msgstr "Änderungen synchronisiert" + +#: front/src/components/auth/Settings.vue:70 +msgid "Changing your password will also change your Subsonic API password if you have requested one." +msgstr "" +"Mit Änderung deines Kennworts wird das Kennwort für die Subsonic-API " +"zurückgesetzt, sofern du eins erstellt hast." + +#: front/src/components/auth/Settings.vue:98 +msgid "Changing your password will have the following consequences" +msgstr "Dein Kennwort wechseln hat die folgenden Auswirkungen" + +#: front/src/App.vue:4 +msgid "Choose your instance" +msgstr "Wähle deine Instanz aus" + +#: front/src/components/Home.vue:64 +msgid "Clean library" +msgstr "Eine hochwertige Mediathek" + +#: front/src/components/manage/users/InvitationForm.vue:37 +msgid "Clear" +msgstr "Löschen" + +#: front/src/components/playlists/Editor.vue:40 +#: front/src/components/playlists/Editor.vue:45 +msgid "Clear playlist" +msgstr "Playlist entleeren" + +#: front/src/components/audio/Player.vue:270 +msgid "Clear your queue" +msgstr "Wiedergabeliste entleeren" + +#: front/src/components/library/import/BatchList.vue:23 +msgid "CLI" +msgstr "CLI" + +#: front/src/components/Home.vue:44 +msgid "Click once, listen for hours using built-in radios" +msgstr "Einmal clicken, und Musik studenlang dank der Radios anhören" + +#: front/src/components/manage/library/RequestsTable.vue:30 +#: front/src/components/manage/library/RequestsTable.vue:64 +msgid "Closed" +msgstr "Geschlossen" + +#: front/src/components/manage/users/InvitationForm.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:42 +msgid "Code" +msgstr "Kode" + +#: front/src/components/audio/album/Card.vue:43 +#: front/src/components/audio/artist/Card.vue:33 +#: front/src/components/discussion/Comment.vue:20 +msgid "Collapse" +msgstr "Minimieren" + +#: front/src/components/manage/library/RequestsTable.vue:51 +#: front/src/components/requests/Form.vue:14 +msgid "Comment" +msgstr "Kommentar" + +#: front/src/components/library/radios/Builder.vue:58 +msgid "Config" +msgstr "Einstellung" + +#: front/src/components/common/DangerousButton.vue:21 +msgid "Confirm" +msgstr "Bestätigen" + +#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20 +#: front/src/views/auth/EmailConfirm.vue:51 +msgid "Confirm your email" +msgstr "Deine Emailadresse bestätigen" + +#: front/src/views/auth/EmailConfirm.vue:13 +msgid "Confirmation code" +msgstr "Bestätigungskode" + +#: front/src/components/playlists/Editor.vue:163 +msgid "Copy tracks from current queue to playlist" +msgstr "Die Wiedergabeliste zur Playlist hinzufügen" + +#: front/src/components/Home.vue:88 +#, fuzzy +msgid "Covers, lyrics, our goal is to have them all ;)" +msgstr "Songtexte, Album-Covers, wir möchten alles haben ;)" + +#: front/src/components/auth/Signup.vue:4 +msgid "Create a funkwhale account" +msgstr "Sich anmelden" + +#: front/src/components/playlists/Form.vue:2 +msgid "Create a new playlist" +msgstr "Eine neue Playlist erstellen" + +#: front/src/components/auth/Login.vue:17 +msgid "Create an account" +msgstr "Konto erstellen" + +#: front/src/components/manage/library/RequestsTable.vue:88 +#: front/src/components/requests/Card.vue:25 +msgid "Create import" +msgstr "Import erstellen" + +#: front/src/components/auth/Signup.vue:51 +msgid "Create my account" +msgstr "Mich anmelden" + +#: front/src/components/playlists/Form.vue:34 +msgid "Create playlist" +msgstr "Eine Playlist erstellen" + +#: front/src/components/library/Radios.vue:23 +msgid "Create your own radio" +msgstr "Dein eigenes Radio erstellen" + +#: front/src/components/federation/LibraryFollowTable.vue:22 +#: front/src/components/manage/library/RequestsTable.vue:52 +#: front/src/components/manage/users/InvitationsTable.vue:40 +msgid "Creation date" +msgstr "Erstelldatum" + +#: front/src/components/auth/Settings.vue:54 +msgid "Current avatar" +msgstr "Aktuelles Avatar" + +#: front/src/components/playlists/PlaylistModal.vue:8 +msgid "Current track" +msgstr "Aktueller Track" + +#: front/src/components/manage/library/FilesTable.vue:189 +#: front/src/components/manage/library/RequestsTable.vue:195 +#: front/src/components/manage/users/InvitationsTable.vue:166 +#: front/src/views/playlists/Detail.vue:33 +msgid "Delete" +msgstr "Löschen" + +#: front/src/views/playlists/Detail.vue:38 +msgid "Delete playlist" +msgstr "Playlist löschen" + +#: front/src/views/radios/Detail.vue:28 +msgid "Delete radio" +msgstr "Radio löschen" + +#: front/src/components/federation/LibraryFollowTable.vue:52 +#: front/src/components/federation/LibraryFollowTable.vue:63 +msgid "Deny" +msgstr "Ablehnen" + +#: front/src/components/federation/LibraryFollowTable.vue:54 +msgid "Deny access?" +msgstr "Zugriff ablehnen?" + +#: front/src/components/favorites/List.vue:34 +#: front/src/components/federation/LibraryTrackTable.vue:29 +#: front/src/components/library/Artists.vue:26 src/components/library/Radios.vue:47 +#: front/src/components/manage/library/FilesTable.vue:20 +#: front/src/components/manage/library/RequestsTable.vue:20 +#: front/src/components/manage/users/UsersTable.vue:20 +#: front/src/views/federation/LibraryList.vue:29 src/views/playlists/List.vue:28 +msgid "Descending" +msgstr "Absteigend" + +#: front/src/components/federation/LibraryCard.vue:50 +msgid "Detail" +msgstr "Detail" + +#: front/src/views/admin/users/UsersDetail.vue:146 +msgid "Determine if the user account is active or not. Inactive users cannot login or use the service." +msgstr "" +"Bestimmt, ob das Konto aktiv ist oder nicht. Inaktive Konten können sich " +"weder einloggen noch den Service nutzen." + +#: front/src/components/auth/Settings.vue:104 +#: front/src/components/auth/SubsonicTokenForm.vue:52 +msgid "Disable access" +msgstr "Zugriff ausschalten" + +#: front/src/components/auth/SubsonicTokenForm.vue:49 +msgid "Disable Subsonic access" +msgstr "Subsonic-Zugriff ausschalten" + +#: front/src/components/auth/SubsonicTokenForm.vue:50 +msgid "Disable Subsonic API access?" +msgstr "Subsonic-API-Zugriff ausschalten?" + +#: front/src/components/auth/SubsonicTokenForm.vue:14 +msgid "Discover how to use Funkwhale from other apps" +msgstr "Entdecke, wie du Funkwhale von anderen Apps benutzen kannst" + +#: front/src/components/library/radios/Builder.vue:26 +msgid "Display publicly" +msgstr "Öffentlich zeigen" + +#: front/src/components/playlists/Editor.vue:42 +msgid "Do you want to clear the playlist \"%{ playlist }\"?" +msgstr "Möchtest du die Playlist \"%{ playlist }\" wirklich leeren?" + +#: front/src/components/common/DangerousButton.vue:7 +msgid "Do you want to confirm this action?" +msgstr "Aktion bestätigen?" + +#: front/src/views/playlists/Detail.vue:35 +msgid "Do you want to delete the playlist \"%{ playlist }\"?" +msgstr "Möchtest du die Playlist \"%{ playlist } löschen?" + +#: front/src/views/radios/Detail.vue:26 +msgid "Do you want to delete the radio \"%{ radio }\"?" +msgstr "Möchtest du das Radio \"%{ radio }\" löschen?" + +#: front/src/components/common/ActionTable.vue:29 +msgid "Do you want to launch %{ action } on %{ count } element?" +msgid_plural "Do you want to launch %{ action } on %{ count } elements?" +msgstr[0] "Möchtest du %{ action } auf %{ count } Element ausführen?" +msgstr[1] "Möchtest du %{ action } auf %{ count } Elemente ausführen?" + +#: front/src/components/Sidebar.vue:113 +msgid "Do you want to restore your previous queue?" +msgstr "Möchtest du die Wiedergabelliste zurückerstellen?" + +#: front/src/App.vue:38 +msgid "Documentation" +msgstr "Dokumentation" + +#: front/src/components/audio/track/Table.vue:24 src/components/library/Track.vue:48 +msgid "Download" +msgstr "Herunterladen" + +#: front/src/components/audio/track/Table.vue:27 +msgid "Download tracks" +msgstr "Tracks herunterladen" + +#: front/src/components/playlists/Editor.vue:49 +msgid "Drag and drop rows to reorder tracks in the playlist" +msgstr "Um die Playlist umzuordnen, klicke und schiebe die Tracks hin und her" + +#: front/src/components/library/Track.vue:58 +#: front/src/components/manage/library/FilesTable.vue:43 +msgid "Duration" +msgstr "Dauer" + +#: front/src/components/Home.vue:96 +msgid "Easy to use" +msgstr "Leicht zu bedienen" + +#: front/src/components/About.vue:21 +msgid "Edit instance info" +msgstr "Die Infos dieser Instanz bearbeiten" + +#: front/src/components/radios/Card.vue:20 src/views/playlists/Detail.vue:30 +msgid "Edit..." +msgstr "Bearbeiten..." + +#: front/src/components/auth/Signup.vue:29 +#: front/src/components/manage/users/UsersTable.vue:38 +msgid "Email" +msgstr "E-Mail-Adresse" + +#: front/src/views/admin/users/UsersDetail.vue:29 +msgid "Email address" +msgstr "E-Mail-Adresse" + +#: front/src/views/auth/EmailConfirm.vue:23 +msgid "Email confirmed" +msgstr "E-Mail-Adresse bestätigt" + +#: front/src/views/playlists/Detail.vue:29 +msgid "End edition" +msgstr "Bearbeitung abschließen" + +#: front/src/components/library/import/FileUpload.vue:4 +msgid "Ensure your music files are properly tagged before uploading them." +msgstr "" +"Stelle sicher, dass deine Dateien angemessen verschlagwortet sind bevor du " +"sie hochlädst." + +#: front/src/components/library/Radios.vue:140 +msgid "Enter a radio name..." +msgstr "Name des Radios eingeben..." + +#: front/src/components/library/Artists.vue:118 +msgid "Enter an artist name..." +msgstr "Künstlername eingeben..." + +#: front/src/views/federation/LibraryList.vue:122 +msgid "Enter an library domain name..." +msgstr "Domainname eingeben..." + +#: front/src/views/playlists/List.vue:104 +msgid "Enter an playlist name..." +msgstr "Playlistname eingeben..." + +#: front/src/components/auth/Signup.vue:98 +msgid "Enter your email" +msgstr "E-Mail-Adresse eingeben" + +#: front/src/components/auth/Signup.vue:96 +msgid "Enter your invitation code (case insensitive)" +msgstr "" +"Gib deinen Einladungskode ein (Groß- und Kleinschreibung wird nicht " +"berücksichtigt)" + +#: front/src/components/metadata/Search.vue:114 +msgid "Enter your search query..." +msgstr "Suche eingeben..." + +#: front/src/components/auth/Signup.vue:97 +msgid "Enter your username" +msgstr "Benutzername eingeben" + +#: front/src/components/auth/Login.vue:77 +msgid "Enter your username or email" +msgstr "Benutzername oder E-Mail-Adresse eingeben" + +#: front/src/components/auth/SubsonicTokenForm.vue:20 +msgid "Error" +msgstr "Fehler" + +#: front/src/views/admin/Settings.vue:87 +msgid "Error reporting" +msgstr "Fehlerbericht" + +#: front/src/components/common/ActionTable.vue:75 +msgid "Error while applying action" +msgstr "Fehler bei der Ausführung der Aktion" + +#: front/src/views/auth/PasswordReset.vue:7 +msgid "Error while asking for a password reset" +msgstr "Fehler während der Zurücksetzung des Passworts" + +#: front/src/views/auth/PasswordResetConfirm.vue:7 +msgid "Error while changing your password" +msgstr "Fehler bei der Veränderung deines Passworts" + +#: front/src/views/auth/EmailConfirm.vue:7 +msgid "Error while confirming your email" +msgstr "Fehler bei der Bestätigung deiner E-Mail-Adresse" + +#: front/src/components/manage/users/InvitationForm.vue:4 +msgid "Error while creating invitation" +msgstr "Fehler bei der Erstellung der Einladung" + +#: front/src/components/admin/SettingsGroup.vue:5 +msgid "Error while saving settings" +msgstr "Fehler bei der Speicherung der Einstellungen" + +#: front/src/components/federation/LibraryForm.vue:10 +msgid "Error while scanning library" +msgstr "Fehler beim Scannen der Mediathek" + +#: front/src/components/library/import/BatchDetail.vue:41 +#: front/src/components/library/import/BatchDetail.vue:70 +#: front/src/components/library/import/BatchList.vue:15 +msgid "Errored" +msgstr "Ein Fehler ist aufgetreten" + +#: front/src/components/playlists/Form.vue:89 +msgid "Everyone" +msgstr "Alle" + +#: front/src/components/playlists/Form.vue:85 +msgid "Everyone on this instance" +msgstr "Alle auf dieser Instanz" + +#: front/src/components/library/radios/Builder.vue:57 +msgid "Exclude" +msgstr "Ausschließen" + +#: front/src/components/discussion/Comment.vue:14 +msgid "Expand" +msgstr "Öffnen" + +#: front/src/components/manage/users/InvitationsTable.vue:41 +msgid "Expiration date" +msgstr "Ablaufdatum" + +#: front/src/components/manage/users/InvitationsTable.vue:50 +msgid "Expired" +msgstr "Abgelaufen" + +#: front/src/components/manage/users/InvitationsTable.vue:21 +msgid "Expired/used" +msgstr "Abgelaufen bzw. benutzt" + +#: front/src/components/library/import/Main.vue:65 +msgid "External source. Supported backends" +msgstr "Externe Quelle. Unterstützte Systeme" + +#: front/src/components/Sidebar.vue:51 +msgid "Favorites" +msgstr "Favoriten" + +#: front/src/components/federation/LibraryForm.vue:3 +msgid "Federate with a new instance" +msgstr "Mit einer neuen Instanz föderieren" + +#: front/src/views/federation/LibraryTrackList.vue:21 +msgid "Federated tracks" +msgstr "Föderierte Tracks" + +#: front/src/components/Sidebar.vue:87 src/components/library/import/BatchList.vue:25 +#: front/src/components/manage/users/UsersTable.vue:180 +#: front/src/views/admin/Settings.vue:84 src/views/admin/users/UsersDetail.vue:161 +#: front/src/views/federation/Base.vue:35 src/views/federation/LibraryDetail.vue:40 +msgid "Federation" +msgstr "Föderation" + +#: front/src/views/federation/LibraryDetail.vue:3 +msgid "File mirroring" +msgstr "Dateispiegelung" + +#: front/src/components/library/import/FileUpload.vue:43 +msgid "File name" +msgstr "Dateiname" + +#: front/src/components/library/import/Main.vue:76 +msgid "File upload" +msgstr "Datei hochladen" + +#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21 +msgid "Files" +msgstr "Dateien" + +#: front/src/components/library/import/ArtistImport.vue:7 +msgid "Filter album types" +msgstr "nach Albumtyp filtern" + +#: front/src/components/library/radios/Builder.vue:56 +msgid "Filter name" +msgstr "Filtername" + +#: front/src/components/library/import/Main.vue:52 +msgid "Finish import" +msgstr "Import beenden" + +#: front/src/components/library/import/BatchDetail.vue:54 +msgid "Finished" +msgstr "Beendet" + +#: front/src/components/library/import/Main.vue:59 +msgid "First, choose where you want to import the music from" +msgstr "Bitte zuerst auswählen, woher die Musik importiert werden muss" + +#: front/src/components/federation/LibraryCard.vue:44 +msgid "Follow" +msgstr "Folgen" + +#: front/src/components/federation/LibraryCard.vue:36 +msgid "Follow request pending approval" +msgstr "Ausstehende Folgen-Anfrage" + +#: front/src/views/federation/LibraryDetail.vue:21 +msgid "Follow status" +msgstr "Folgenstatus" + +#: front/src/views/federation/Base.vue:13 +#: front/src/views/federation/LibraryFollowersList.vue:24 +msgid "Followers" +msgstr "Follower·innen" + +#: front/src/components/federation/LibraryCard.vue:18 +msgid "Followers only" +msgstr "Nur Follower und Followerinnen" + +#: front/src/components/federation/LibraryCard.vue:15 +#: front/src/views/federation/LibraryDetail.vue:29 +msgid "Following" +msgstr "Abonniert" + +#: front/src/components/activity/Like.vue:12 src/components/activity/Listen.vue:12 +msgid "from %{ album } by %{ artist }" +msgstr "aus %{ album } von %{ artist }" + +#: front/src/components/library/Track.vue:13 +msgid "From album %{ album } by %{ artist }" +msgstr "Aus dem Album %{ album } von %{ artist }" + +#: front/src/App.vue:56 +msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" +msgstr "" +"Funkwhale ist ein kostenloses und Open-Source Projekt und wird von " +"ehrenamtlichen entwickelt. Hilf uns mit Fehler berichten, " +"Verbesserungsvorschlägen und teile das Projekt mit deinen Freunden!" + +#: front/src/components/auth/SubsonicTokenForm.vue:7 +msgid "Funkwhale is compatible with other music players that support the Subsonic API." +msgstr "" +"Funkwhale ist kompatibel mit anderen Mediaplayer, die die Subsonic-API " +"unterstützen." + +#: front/src/components/Home.vue:98 +msgid "Funkwhale is dead simple to use." +msgstr "Funkwhale ist sehr einfach zu benutzen." + +#: front/src/components/Home.vue:39 +msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." +msgstr "" +"Funkwhale hat es leicht gemacht, deine Lieblingsmusik anzuhören und neue " +"Künstler und Künstlerinnen zu entdecken." + +#: front/src/components/Home.vue:119 +msgid "Funkwhale is free and gives you control on your music." +msgstr "" +"Funkwhale ist kostenlos und ermöglicht eine komplett Steuerung deiner Musik." + +#: front/src/components/Home.vue:66 +msgid "Funkwhale takes care of handling your music" +msgstr "Funkwhale kümmert sich um deine Musik" + +#: front/src/components/manage/users/InvitationForm.vue:16 +msgid "Get a new invitation" +msgstr "Eine neue Einladung bekommen" + +#: front/src/components/Home.vue:13 +msgid "Get me to the library" +msgstr "Bring mich zur Mediathek" + +#: front/src/components/Home.vue:77 +msgid "" +"Get quality metadata about your music thanks to\n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>" +msgstr "" +"Dank <a href=\"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a> " +"kannst du deine Musik mit hochwertigen Metadaten verschlagworten" + +#: front/src/components/common/ActionTable.vue:21 +#: front/src/components/common/ActionTable.vue:27 +msgid "Go" +msgstr "Los!" + +#: front/src/components/PageNotFound.vue:14 +msgid "Go to home page" +msgstr "Zurück zur Startseite" + +#: front/src/components/library/import/Main.vue:13 +msgid "Grab corresponding metadata" +msgstr "Entsprechende Metadaten aufrufen" + +#: front/src/App.vue:74 +msgid "Help us translate Funkwhale" +msgstr "Hilf uns Funkwhale zu übersetzen" + +#: front/src/components/library/Home.vue:65 +msgid "Home" +msgstr "Start" + +#: front/src/components/instance/Stats.vue:36 +msgid "Hours of music" +msgstr "Musik stundenlang" + +#: front/src/components/auth/SubsonicTokenForm.vue:11 +msgid "However, accessing Funkwhale from those clients require a separate password you can set below." +msgstr "" +"Der Zugriff zu Funkwhale von anderen Softwares benötigt jedoch ein " +"zusätzliches Passwort. Du kannst dieses Passwort hier einstellen." + +#: front/src/components/library/import/BatchList.vue:34 +msgid "ID" +msgstr "ID" + +#: front/src/views/auth/PasswordResetConfirm.vue:24 +msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." +msgstr "" +"Wenn die angegebene Emailadresse einem Benutzerkonto gebunden ist, wirst du " +"in Kürzen eine Email mit den Zurücksetzungsanleitungen bekommen." + +#: front/src/components/federation/LibraryTrackTable.vue:196 +#: front/src/components/library/Library.vue:17 +msgid "Import" +msgstr "Import" + +#: front/src/components/federation/LibraryTrackTable.vue:57 +msgid "Import #%{ id } launched" +msgstr "Import #%{ id } gestartet" + +#: front/src/components/library/import/Main.vue:38 +msgid "Import %{ count } track" +msgid_plural "Import %{ count } tracks" +msgstr[0] "Import %{ count } Track" +msgstr[1] "Import %{ count } Tracks" + +#: front/src/components/library/import/BatchDetail.vue:10 +msgid "Import batch" +msgstr "Importstapel" + +#: front/src/components/library/import/BatchDetail.vue:185 +msgid "Import Batch #%{ id }" +msgstr "Importstapel #%{ id }" + +#: front/src/components/library/Library.vue:20 +msgid "Import batches" +msgstr "Importstapel" + +#: front/src/components/library/import/BatchList.vue:117 +msgid "Import Batches" +msgstr "Importstapel" + +#: front/src/components/manage/library/FilesTable.vue:40 +#: front/src/components/manage/library/RequestsTable.vue:53 +msgid "Import date" +msgstr "Importsdatum" + +#: front/src/components/library/import/FileUpload.vue:38 +msgid "Import detail page" +msgstr "Importdetails" + +#: front/src/components/Sidebar.vue:81 +msgid "Import music" +msgstr "Musik importieren" + +#: front/src/components/library/import/Main.vue:267 +msgid "Import Music" +msgstr "Musik importieren" + +#: front/src/components/Home.vue:71 +msgid "Import music from various platforms, such as YouTube or SoundCloud" +msgstr "Importiere Musik aus mehreren Plattformen, wie YouTube oder Soundcloud" + +#: front/src/components/federation/LibraryTrackTable.vue:14 +#: front/src/components/federation/LibraryTrackTable.vue:66 +msgid "Import pending" +msgstr "Ausstehend" + +#: front/src/views/admin/library/Base.vue:9 +#: front/src/views/admin/library/RequestsList.vue:3 +#: front/src/views/admin/library/RequestsList.vue:21 +msgid "Import requests" +msgstr "Importanfrage" + +#: front/src/components/library/import/BatchList.vue:20 +#: front/src/components/library/import/Main.vue:6 +msgid "Import source" +msgstr "Importquelle" + +#: front/src/components/federation/LibraryTrackTable.vue:9 +msgid "Import status" +msgstr "Importstatus" + +#: front/src/components/library/import/ReleaseImport.vue:14 +msgid "Import this release" +msgstr "Dieses Album importieren" + +#: front/src/components/library/import/TrackImport.vue:11 +msgid "Import this track" +msgstr "Dieser Track importieren" + +#: front/src/components/federation/LibraryTrackTable.vue:12 +#: front/src/components/manage/library/RequestsTable.vue:29 +#: front/src/components/manage/library/RequestsTable.vue:61 +msgid "Imported" +msgstr "Importiert" + +#: front/src/components/library/import/TrackImport.vue:44 +msgid "Imported URL" +msgstr "Importierte URL" + +#: front/src/views/admin/Settings.vue:82 +msgid "Imports" +msgstr "Imports" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:3 +msgid "In favorites" +msgstr "In den Favoriten" + +#: front/src/components/federation/LibraryTrackTable.vue:65 +msgid "In library" +msgstr "In der Mediathek" + +#: front/src/components/manage/users/UsersTable.vue:54 +msgid "Inactive" +msgstr "Inaktiv" + +#: front/src/components/library/import/Main.vue:96 +msgid "Input a MusicBrainz ID manually:" +msgstr "MusicBrainz-ID per Hand eingeben:" + +#: front/src/views/auth/PasswordReset.vue:53 +msgid "Input the email address binded to your account" +msgstr "Die Emailadresse deines Kontos eingeben" + +#: front/src/components/playlists/Editor.vue:31 +msgid "Insert from queue (%{ count } track)" +msgid_plural "Insert from queue (%{ count } tracks)" +msgstr[0] "Aus der Wiedergabeliste hinzufügen (%{ count } Track)" +msgstr[1] "Aus der Wiedergabeliste hinzufügen (%{ count } Tracks)" + +#: front/src/views/admin/Settings.vue:80 +msgid "Instance information" +msgstr "Infos über diese Instanz" + +#: front/src/components/library/Radios.vue:9 +msgid "Instance radios" +msgstr "Radios der Instanz" + +#: front/src/views/admin/Settings.vue:75 +msgid "Instance settings" +msgstr "Instanzeinstellungen" + +#: front/src/views/instance/Timeline.vue:57 +msgid "Instance Timeline" +msgstr "Aktivität der Instanz" + +#: front/src/components/auth/Signup.vue:42 +#: front/src/components/manage/users/InvitationForm.vue:11 +msgid "Invitation code" +msgstr "Einladungskode" + +#: front/src/components/auth/Signup.vue:43 +msgid "Invitation code (optional)" +msgstr "Einladungskode (ggf.)" + +#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3 +#: front/src/views/admin/users/InvitationsList.vue:24 +msgid "Invitations" +msgstr "Einladungen" + +#: front/src/App.vue:43 +msgid "Issue tracker" +msgstr "Bugtracker" + +#: front/src/components/library/import/BatchDetail.vue:80 +msgid "Job ID" +msgstr "Aufgaben-ID" + +#: front/src/components/library/import/BatchList.vue:36 +msgid "Jobs" +msgstr "Aufgaben" + +#: front/src/components/Home.vue:50 +msgid "Keep a track of your favorite songs" +msgstr "Behalte einen Überblick auf deine Lieblingsmusik" + +#: front/src/components/audio/track/Table.vue:33 +msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." +msgstr "" +"Halte deinen PRIVATE_TOKEN geheim, denn es gibt Zugriff zu deinem Konto." + +#: front/src/components/manage/users/UsersTable.vue:41 +#: front/src/views/admin/users/UsersDetail.vue:45 +msgid "Last activity" +msgstr "Letzte Aktivität" + +#: front/src/views/federation/LibraryDetail.vue:101 +msgid "Last fetched" +msgstr "Letzter Abruf" + +#: front/src/components/playlists/PlaylistModal.vue:32 +msgid "Last modification" +msgstr "Letzte Bearbeitung" + +#: front/src/components/common/ActionTable.vue:39 +msgid "Launch" +msgstr "Starten" + +#: front/src/components/library/import/BatchDetail.vue:18 +#: front/src/components/library/import/BatchList.vue:35 +msgid "Launch date" +msgstr "Startdatum" + +#: front/src/components/federation/LibraryForm.vue:31 +msgid "Launch scan" +msgstr "Scan starten" + +#: front/src/components/Home.vue:10 +msgid "Learn more about this instance" +msgstr "Mehr über diese Instanz erfahren" + +#: front/src/components/manage/users/InvitationForm.vue:58 +msgid "Leave empty for a random code" +msgstr "Leerlassen für einen beliebigen Kode" + +#: front/src/components/requests/Form.vue:10 +msgid "Leave this field empty if you're requesting the whole discography." +msgstr "Lasse dieses Feld leer, wenn du die ganze Diskografie anfragst." + +#: front/src/views/federation/Base.vue:5 src/views/federation/LibraryList.vue:123 +msgid "Libraries" +msgstr "Mediatheke" + +#: front/src/components/Sidebar.vue:70 +#: front/src/components/federation/LibraryTrackTable.vue:51 +#: front/src/components/instance/Stats.vue:30 +#: front/src/components/manage/users/UsersTable.vue:176 +#: front/src/views/admin/users/UsersDetail.vue:157 +#: front/src/views/federation/LibraryDetail.vue:194 +msgid "Library" +msgstr "Mediathek" + +#: front/src/views/admin/library/FilesList.vue:3 +msgid "Library files" +msgstr "Datei der Mediathek" + +#: front/src/components/federation/LibraryForm.vue:20 +msgid "Library name" +msgstr "Mediatheksname" + +#: front/src/views/federation/LibraryDetail.vue:84 +msgid "Library size" +msgstr "Mediatheksgröße" + +#: front/src/components/federation/LibraryForm.vue:96 +msgid "library@demo.funkwhale.audio" +msgstr "library@demo.funkwhale.audio" + +#: front/src/App.vue:29 +msgid "Links" +msgstr "Links" + +#: front/src/views/instance/Timeline.vue:4 +msgid "Loading timeline..." +msgstr "Laden der Timeline..." + +#: front/src/components/favorites/List.vue:5 +msgid "Loading your favorites..." +msgstr "Laden deiner Favoriten..." + +#: front/src/components/auth/Login.vue:78 +msgid "Log In" +msgstr "Einloggen" + +#: front/src/components/auth/Login.vue:4 +msgid "Log in to your Funkwhale account" +msgstr "Logge dich zu deinem Funkwhale-Konto ein" + +#: front/src/components/auth/Logout.vue:20 +msgid "Log Out" +msgstr "Ausloggen" + +#: front/src/components/Sidebar.vue:38 +msgid "Logged in as %{ username }" +msgstr "Als %{ username } angemeldet" + +#: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 +msgid "Login" +msgstr "Einloggen" + +#: front/src/components/Sidebar.vue:43 +msgid "Logout" +msgstr "Ausloggen" + +#: front/src/components/audio/Player.vue:266 +msgid "Looping disabled. Click to switch to single-track looping." +msgstr "" +"Wiederholung deaktiviert. Schalte die Wiederholung des aktuellen Tracks beim " +"Klicken." + +#: front/src/components/audio/Player.vue:267 +msgid "Looping on a single track. Click to switch to whole queue looping." +msgstr "" +"Wiederholung des aktuellen Tracks. Wiederhole die ganze Wiedergabeliste beim " +"Klicken." + +#: front/src/components/audio/Player.vue:268 +msgid "Looping on whole queue. Click to disable looping." +msgstr "" +"Wiederholung auf die ganze Wiedergabeliste. Deaktiviere die Wiederholung " +"beim Klicken." + +#: front/src/components/library/Track.vue:94 +msgid "Lyrics" +msgstr "Liedtext" + +#: front/src/views/admin/library/Base.vue:25 +msgid "Manage library" +msgstr "Mediathek verwalten" + +#: front/src/components/playlists/PlaylistModal.vue:3 +msgid "Manage playlists" +msgstr "Playlists verwalten" + +#: front/src/views/admin/users/Base.vue:20 +msgid "Manage users" +msgstr "Benutzer verwalten" + +#: front/src/views/playlists/List.vue:8 +msgid "Manage your playlists" +msgstr "Verwalte deine Playlists" + +#: front/src/components/manage/library/RequestsTable.vue:197 +msgid "Mark as closed" +msgstr "Geschlossen markieren" + +#: front/src/components/manage/library/RequestsTable.vue:196 +msgid "Mark as imported" +msgstr "Als importiert markieren" + +#: front/src/components/library/import/Main.vue:12 +msgid "Metadata" +msgstr "Metadaten" + +#: front/src/components/library/import/Main.vue:115 +msgid "" +"Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>\n" +" project, which you can think about as the Wikipedia of music." +msgstr "" +"Alle Infos über Alben, Tracks, Künstler und Künstlerinnen sind in den " +"Metadaten gespeichert. Hochwertige Metadaten können auf <a href=\"" +"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a> geholt werden. " +"Das Projekt wird oft als Wikipedia für die Musik bezeichnet." + +#: front/src/components/Sidebar.vue:48 src/components/library/import/Main.vue:18 +msgid "Music" +msgstr "Musik" + +#: front/src/components/library/import/Main.vue:147 +msgid "Music request" +msgstr "Musikanfrage" + +#: front/src/components/audio/Player.vue:265 +msgid "Mute" +msgstr "Stummschalten" + +#: front/src/components/Sidebar.vue:34 +msgid "My account" +msgstr "Mein Konto" + +#: front/src/components/playlists/Form.vue:74 +msgid "My awesome playlist" +msgstr "Meine super Playlist" + +#: front/src/components/library/radios/Builder.vue:227 +msgid "My awesome radio" +msgstr "Mein super Radio" + +#: front/src/components/library/Track.vue:64 src/components/library/Track.vue:75 +#: front/src/components/library/Track.vue:86 +#: front/src/components/manage/library/FilesTable.vue:63 +#: front/src/components/manage/library/FilesTable.vue:69 +#: front/src/components/manage/library/FilesTable.vue:75 +#: front/src/components/manage/library/FilesTable.vue:81 +#: front/src/components/manage/library/RequestsTable.vue:71 +#: front/src/components/manage/library/RequestsTable.vue:75 +#: front/src/components/manage/library/RequestsTable.vue:82 +#: front/src/components/manage/users/UsersTable.vue:61 +#: front/src/views/admin/users/UsersDetail.vue:49 +msgid "N/A" +msgstr "k.A." + +#: front/src/components/playlists/PlaylistModal.vue:31 +#: front/src/views/admin/users/UsersDetail.vue:21 +msgid "Name" +msgstr "Name" + +#: front/src/components/auth/Settings.vue:88 +#: front/src/views/auth/PasswordResetConfirm.vue:14 +msgid "New password" +msgstr "Neues Kennwort" + +#: front/src/components/Sidebar.vue:158 +msgid "New tracks will be appended here automatically." +msgstr "Neue Tracks werden hier automatisch hinzugefügt." + +#: front/src/components/library/import/Main.vue:29 +msgid "Next step" +msgstr "Nächster Schritt" + +#: front/src/components/audio/Player.vue:263 +msgid "Next track" +msgstr "Nächster Track" + +#: front/src/components/Sidebar.vue:125 +msgid "No" +msgstr "Nein" + +#: front/src/components/Home.vue:103 +msgid "No add-ons, no plugins : you only need a web library" +msgstr "" +"Keine Add-Ons, keine Plugins: du brauchst nur eine Mediathek auf dem Internet" + +#: front/src/components/library/Track.vue:102 +msgid "No lyrics available for this track." +msgstr "Kein verfügbarer Songtext für diesen Track." + +#: front/src/components/playlists/Form.vue:81 +msgid "Nobody except me" +msgstr "Niemand außer mir" + +#: front/src/views/federation/LibraryDetail.vue:32 +msgid "Not following" +msgstr "Nicht abonniert" + +#: front/src/components/federation/LibraryTrackTable.vue:13 +#: front/src/components/federation/LibraryTrackTable.vue:67 +msgid "Not imported" +msgstr "Nicht importiert" + +#: front/src/components/manage/users/InvitationsTable.vue:51 +msgid "Not used" +msgstr "Nicht verwendet" + +#: front/src/App.vue:37 +msgid "Official website" +msgstr "Offizielle Webseite" + +#: front/src/components/auth/Settings.vue:83 +msgid "Old password" +msgstr "Altes Kennwort" + +#: front/src/components/library/import/FileUpload.vue:36 +msgid "Once all your files are uploaded, simply click the following button to check the import status." +msgstr "" +"Nachdem alle Dateien hochgeladen sind, einfach auf dem folgenden Taste " +"clicken um das Status des Imports nachzuprüfen." + +#: front/src/components/federation/LibraryCard.vue:21 +#: front/src/components/manage/users/InvitationsTable.vue:20 +msgid "Open" +msgstr "Frei" + +#: front/src/App.vue:63 +msgid "Options" +msgstr "Optionen" + +#: front/src/components/library/import/Main.vue:93 +msgid "Or" +msgstr "Oder" + +#: front/src/components/favorites/List.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:18 +#: front/src/components/library/Artists.vue:15 src/components/library/Radios.vue:33 +#: front/src/components/manage/library/FilesTable.vue:9 +#: front/src/components/manage/library/RequestsTable.vue:9 +#: front/src/components/manage/users/InvitationsTable.vue:9 +#: front/src/components/manage/users/UsersTable.vue:9 +#: front/src/views/federation/LibraryList.vue:18 src/views/playlists/List.vue:17 +msgid "Ordering" +msgstr "" + +#: front/src/components/favorites/List.vue:31 +#: front/src/components/federation/LibraryTrackTable.vue:26 +#: front/src/components/library/Artists.vue:23 src/components/library/Radios.vue:41 +#: front/src/components/manage/library/FilesTable.vue:17 +#: front/src/components/manage/library/RequestsTable.vue:17 +#: front/src/components/manage/users/UsersTable.vue:17 +#: front/src/views/federation/LibraryList.vue:26 src/views/playlists/List.vue:25 +msgid "Ordering direction" +msgstr "Reihenfolge" + +#: front/src/components/manage/users/InvitationsTable.vue:38 +msgid "Owner" +msgstr "Besitzer" + +#: front/src/components/PageNotFound.vue:33 +msgid "Page Not Found" +msgstr "Seite nicht gefunden" + +#: front/src/components/PageNotFound.vue:7 +msgid "Page not found!" +msgstr "Seite nicht gefunden!" + +#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 +msgid "Password" +msgstr "Kennwort" + +#: front/src/components/auth/SubsonicTokenForm.vue:95 +msgid "Password updated" +msgstr "Kennwort aktualisiert" + +#: front/src/views/auth/PasswordResetConfirm.vue:28 +msgid "Password updated successfully" +msgstr "Kennwort erfolgreich aktualisiert" + +#: front/src/components/audio/Player.vue:262 +msgid "Pause track" +msgstr "Track pausen" + +#: front/src/components/federation/LibraryFollowTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:33 +#: front/src/components/library/import/BatchDetail.vue:69 +#: front/src/components/library/import/BatchList.vue:14 +#: front/src/components/library/import/FileUpload.vue:59 +#: front/src/components/manage/library/RequestsTable.vue:27 +#: front/src/components/manage/library/RequestsTable.vue:63 +msgid "Pending" +msgstr "Ausstehend" + +#: front/src/components/federation/LibraryFollowTable.vue:11 +#: front/src/views/federation/LibraryDetail.vue:26 +msgid "Pending approval" +msgstr "Warte auf Bestätigung" + +#: front/src/components/Sidebar.vue:217 +msgid "Pending follow requests" +msgstr "Ausstehende Follow-Anfrage" + +#: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 +msgid "Pending import requests" +msgstr "Ausstehende Importanfragen" + +#: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 +msgid "Pending requests" +msgstr "Ausstehende Anfragen" + +#: front/src/components/manage/users/UsersTable.vue:42 +#: front/src/views/admin/users/UsersDetail.vue:68 +msgid "Permissions" +msgstr "Berechtigungen" + +#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30 +msgid "Play" +msgstr "Abspielen" + +#: front/src/components/audio/album/Card.vue:50 +#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28 +#: front/src/views/playlists/Detail.vue:23 +msgid "Play all" +msgstr "Alles abspielen" + +#: front/src/components/library/Artist.vue:26 +msgid "Play all albums" +msgstr "Alle Alben abspielen" + +#: front/src/components/audio/PlayButton.vue:58 +msgid "Play immediatly" +msgstr "Jetzt abspielen" + +#: front/src/components/audio/PlayButton.vue:15 +msgid "Play next" +msgstr "Danach abspielen" + +#: front/src/components/audio/PlayButton.vue:16 +msgid "Play now" +msgstr "Jetzt abspielen" + +#: front/src/components/audio/Player.vue:261 +msgid "Play track" +msgstr "Abspielen" + +#: front/src/views/playlists/Detail.vue:90 +msgid "Playlist" +msgstr "Playlist" + +#: front/src/views/playlists/Detail.vue:12 +msgid "Playlist containing %{ count } track, by %{ username }" +msgid_plural "Playlist containing %{ count } tracks, by %{ username }" +msgstr[0] "Playlist mit %{ count } Track, von %{ username }" +msgstr[1] "Playlist mit %{ count } Tracks, von %{ username }" + +#: front/src/components/playlists/Form.vue:9 +msgid "Playlist created" +msgstr "Playlist erstellt" + +#: front/src/components/playlists/Editor.vue:4 +msgid "Playlist editor" +msgstr "Playlisteditor" + +#: front/src/components/playlists/Form.vue:21 +msgid "Playlist name" +msgstr "Playlistname" + +#: front/src/components/playlists/Form.vue:6 +msgid "Playlist updated" +msgstr "Playlist aktualisiert" + +#: front/src/components/playlists/Form.vue:25 +msgid "Playlist visibility" +msgstr "Sichtbarkeit der Playlist" + +#: front/src/components/Sidebar.vue:56 src/components/library/Home.vue:16 +#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83 +#: front/src/views/playlists/List.vue:103 +msgid "Playlists" +msgstr "Playlists" + +#: front/src/components/Home.vue:56 +msgid "Playlists? We got them" +msgstr "Playlists? Haben wir auch!" + +#: front/src/components/auth/Settings.vue:79 +msgid "Please double-check your password is correct" +msgstr "Bitte prüfen, dass dein Kennwort richtig ist" + +#: front/src/components/auth/Login.vue:9 +msgid "Please double-check your username/password couple is correct" +msgstr "" +"Bitte prüfe, dass dein Benutzername und dein Kennwort miteinander stimmen" + +#: front/src/components/auth/Settings.vue:46 +msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." +msgstr "" +"PNG, GIF oder JPG. Max. 2 Mb. Das Bild wird ggf. auf 400x400 px verkleinert." + +#: front/src/components/library/import/Main.vue:26 +msgid "Previous step" +msgstr "Vorheriger Schritt" + +#: front/src/components/audio/Player.vue:260 +msgid "Previous track" +msgstr "Vorheriger Track" + +#: front/src/views/auth/EmailConfirm.vue:26 +#: front/src/views/auth/PasswordResetConfirm.vue:31 +msgid "Proceed to login" +msgstr "Jetzt einloggen" + +#: front/src/components/federation/LibraryTrackTable.vue:50 +msgid "Published date" +msgstr "Ausgabedatum" + +#: front/src/components/library/import/ArtistImport.vue:17 +msgid "Query template" +msgstr "Abfragevorlage" + +#: front/src/components/Sidebar.vue:20 +msgid "Queue" +msgstr "Wiedergabeliste" + +#: front/src/components/audio/Player.vue:203 +msgid "Queue shuffled!" +msgstr "Wiedergabeliste gemischt!" + +#: front/src/views/radios/Detail.vue:80 +msgid "Radio" +msgstr "Radio" + +#: front/src/components/library/radios/Builder.vue:226 +msgid "Radio Builder" +msgstr "Radioeditor" + +#: front/src/components/library/radios/Builder.vue:15 +msgid "Radio created" +msgstr "Radio erstellt" + +#: front/src/components/library/radios/Builder.vue:21 +msgid "Radio name" +msgstr "Radioname" + +#: front/src/components/library/radios/Builder.vue:12 +msgid "Radio updated" +msgstr "Radio aktualisiert" + +#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:141 +msgid "Radios" +msgstr "Radios" + +#: front/src/views/instance/Timeline.vue:7 +msgid "Recent activity on this instance" +msgstr "Kürzliche Aktivität auf dieser Instanz" + +#: front/src/components/library/Home.vue:24 +msgid "Recently added" +msgstr "Neulich eingefügt" + +#: front/src/components/library/Home.vue:11 +msgid "Recently favorited" +msgstr "Neulich zu den Favoriten hinzugefügt" + +#: front/src/components/library/Home.vue:6 +msgid "Recently listened" +msgstr "Neulich angehört" + +#: front/src/components/library/import/BatchDetail.vue:81 +msgid "Recording MusicBrainz ID" +msgstr "MusicBrainz-ID des Tracks" + +#: front/src/views/admin/users/UsersDetail.vue:84 +#: front/src/views/federation/LibraryDetail.vue:122 +msgid "Refresh" +msgstr "Aktualisieren" + +#: front/src/components/federation/LibraryFollowTable.vue:42 +msgid "Refused" +msgstr "Abgelehnt" + +#: front/src/components/auth/Profile.vue:12 +msgid "Registered since %{ date }" +msgstr "Angemeldet seit %{ date }" + +#: front/src/components/auth/Signup.vue:9 +msgid "Registration are closed on this instance, you will need an invitation code to signup." +msgstr "" +"Die Anmeldung auf dieser Instanz sind geschlossen, du brauchst einen " +"Einladungskode, wenn du dich anmelden möchtest." + +#: front/src/components/manage/users/UsersTable.vue:71 +msgid "regular user" +msgstr "Standardnutzende" + +#: front/src/components/library/radios/Filter.vue:59 +msgid "Remove" +msgstr "Löschen" + +#: front/src/components/auth/Settings.vue:58 +msgid "Remove avatar" +msgstr "Avatar löschen" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:19 +msgid "Remove from favorites" +msgstr "Aus den Favoriten entfernen" + +#: front/src/components/auth/SubsonicTokenForm.vue:34 +#: front/src/components/auth/SubsonicTokenForm.vue:37 +msgid "Request a new password" +msgstr "Ein neues Passwort beantragen" + +#: front/src/components/auth/SubsonicTokenForm.vue:35 +msgid "Request a new Subsonic API password?" +msgstr "Ein neues Subsonic-API-Kennwort beantragen?" + +#: front/src/components/auth/SubsonicTokenForm.vue:43 +msgid "Request a password" +msgstr "Kennwort beantragen" + +#: front/src/App.vue:35 +msgid "Request music" +msgstr "Musik anfragen" + +#: front/src/views/library/MusicRequest.vue:4 src/views/library/MusicRequest.vue:21 +msgid "Request some music" +msgstr "Musik anfragen" + +#: front/src/components/requests/Form.vue:20 +msgid "Request submitted!" +msgstr "Anfrage geschickt!" + +#: front/src/components/library/import/BatchDetail.vue:49 +msgid "Rerun errored jobs" +msgstr "Fehlgeschlagene Aufgaben erneut ausführen" + +#: front/src/components/library/import/BatchDetail.vue:187 +msgid "Rerun job" +msgstr "Aufgaben erneut ausführen" + +#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4 +#: front/src/views/auth/PasswordReset.vue:52 +msgid "Reset your password" +msgstr "Kennwort zurücksetzen" + +#: front/src/components/library/import/TrackImport.vue:31 +msgid "Result %{ current }/%{ total }" +msgstr "Ergebnis %{ current }/%{ total }" + +#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30 +#: front/src/components/library/Radios.vue:52 src/views/federation/LibraryList.vue:33 +#: front/src/views/playlists/List.vue:32 +msgid "Results per page" +msgstr "Ergebnisse pro Seite" + +#: front/src/components/admin/SettingsGroup.vue:63 +#: front/src/components/library/radios/Builder.vue:29 +msgid "Save" +msgstr "Speichern" + +#: front/src/views/federation/LibraryDetail.vue:112 +msgid "Scan triggered!" +msgstr "Scan gestartet!" + +#: front/src/components/federation/LibraryTrackTable.vue:5 +#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29 +#: front/src/components/library/import/BatchDetail.vue:62 +#: front/src/components/library/import/BatchList.vue:7 +#: front/src/components/manage/library/FilesTable.vue:5 +#: front/src/components/manage/library/RequestsTable.vue:5 +#: front/src/components/manage/users/InvitationsTable.vue:5 +#: front/src/components/manage/users/UsersTable.vue:5 +#: front/src/views/federation/LibraryList.vue:14 src/views/playlists/List.vue:13 +msgid "Search" +msgstr "Suchen" + +#: front/src/components/library/import/Main.vue:85 +msgid "Search an entity you want to import:" +msgstr "Suche die zuimportierende Entität:" + +#: front/src/components/manage/library/RequestsTable.vue:180 +msgid "Search by artist, username, comment..." +msgstr "Künstler, Künstlerin, Benutzername oder Komment suchen..." + +#: front/src/components/library/import/BatchDetail.vue:188 +msgid "Search by source..." +msgstr "Quelle suchen..." + +#: front/src/components/library/import/BatchList.vue:116 +msgid "Search by submitter, source..." +msgstr "Benutzer, Benutzerin oder Quelle suchen..." + +#: front/src/components/federation/LibraryTrackTable.vue:182 +#: front/src/components/manage/library/FilesTable.vue:175 +msgid "Search by title, artist, domain..." +msgstr "Titel, Künstler, Künstlerin oder Domain suchen..." + +#: front/src/components/federation/LibraryFollowTable.vue:140 +msgid "Search by username, domain..." +msgstr "Benutzername oder Domain suchen..." + +#: front/src/components/manage/users/InvitationsTable.vue:152 +msgid "Search by username, email, code..." +msgstr "Benutzername, E-Mail-Adresse oder Kode suchen..." + +#: front/src/components/manage/users/UsersTable.vue:162 +msgid "Search by username, email, name..." +msgstr "Benutzername, E-Mail-Adresse oder Name suchen..." + +#: front/src/components/audio/SearchBar.vue:20 +msgid "Search for artists, albums, tracks..." +msgstr "Künstler, Künstlerinnen, Alben oder Tracks suchen..." + +#: front/src/components/audio/Search.vue:2 +msgid "Search for some music" +msgstr "Musik suchen" + +#: front/src/components/library/Track.vue:105 +msgid "Search on lyrics.wikia.com" +msgstr "Auf lyrics.wikia.com suchen" + +#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31 +#: front/src/components/library/Track.vue:40 +msgid "Search on Wikipedia" +msgstr "Auf Wikipedia suchen" + +#: front/src/components/library/import/TrackImport.vue:42 +msgid "Search query" +msgstr "Suche" + +#: front/src/views/admin/Settings.vue:15 +msgid "Sections" +msgstr "Abschnitte" + +#: front/src/components/library/radios/Builder.vue:41 +msgid "Select a filter" +msgstr "Filter auswählen" + +#: front/src/components/common/ActionTable.vue:61 +msgid "Select all %{ total } elements" +msgid_plural "Select all %{ total } elements" +msgstr[0] "1 Element auswählen" +msgstr[1] "Alle %{ total } Elemente auswählen" + +#: front/src/components/library/import/FileUpload.vue:22 +msgid "Select files to upload..." +msgstr "Hochzuladende Dateien auswählen..." + +#: front/src/components/common/ActionTable.vue:69 +msgid "Select only current page" +msgstr "Nur die aktuelle Seite auswählen" + +#: front/src/components/library/import/Main.vue:19 +msgid "Select relevant sources or files for import" +msgstr "Zuhochladende Dateien oder Quellen auswählen" + +#: front/src/components/federation/LibraryCard.vue:43 +msgid "Send a follow request" +msgstr "Folgen-Anfrage schicken" + +#: front/src/components/Sidebar.vue:97 src/components/manage/users/UsersTable.vue:184 +#: front/src/views/admin/users/UsersDetail.vue:165 +msgid "Settings" +msgstr "Einstellungen" + +#: front/src/components/auth/Settings.vue:10 +msgid "Settings updated" +msgstr "Einstellungen aktualisiert" + +#: front/src/components/admin/SettingsGroup.vue:11 +msgid "Settings updated successfully." +msgstr "Einstellungen erfolgreich aktualisiert." + +#: front/src/components/auth/Profile.vue:24 +msgid "Settings..." +msgstr "Einstellungen..." + +#: front/src/components/manage/users/InvitationForm.vue:27 +msgid "Share link" +msgstr "Link zum Teilen" + +#: front/src/components/audio/artist/Card.vue:30 +msgid "Show 1 more album" +msgid_plural "Show %{ count } more albums" +msgstr[0] "1 Album mehr zeigen" +msgstr[1] "%{ count } Alben mehr zeigen" + +#: front/src/components/audio/album/Card.vue:40 +msgid "Show 1 more track" +msgid_plural "Show %{ count } more tracks" +msgstr[0] "1 Track mehr zeigen" +msgstr[1] "%{ count } Tracks mehr zeigen" + +#: front/src/components/forms/PasswordInput.vue:25 +msgid "Show/hide password" +msgstr "Passwort verstecken bzw. zeigen" + +#: front/src/components/federation/LibraryFollowTable.vue:97 +#: front/src/components/federation/LibraryTrackTable.vue:98 +#: front/src/components/library/import/BatchDetail.vue:128 +#: front/src/components/library/import/BatchList.vue:73 +#: front/src/components/manage/library/FilesTable.vue:97 +#: front/src/components/manage/library/RequestsTable.vue:104 +#: front/src/components/manage/users/InvitationsTable.vue:76 +#: front/src/components/manage/users/UsersTable.vue:87 +msgid "Showing results %{ start }-%{ end } on %{ total }" +msgstr "Ergebnisse %{ start } bis %{ end } von %{ total }" + +#: front/src/components/audio/Player.vue:269 +msgid "Shuffle your queue" +msgstr "Wiedergabeliste mischen" + +#: front/src/components/auth/Signup.vue:95 +msgid "Sign Up" +msgstr "Anmeldung" + +#: front/src/components/manage/users/UsersTable.vue:40 +#: front/src/views/admin/users/UsersDetail.vue:37 +msgid "Sign-up" +msgstr "Anmeldung" + +#: front/src/components/audio/track/Table.vue:31 +msgid "Simply copy paste the snippet below into a terminal to launch the download." +msgstr "" +"Kopiere einfach den folgenden Text in einem Terminal um das Herunterladen zu " +"starten." + +#: front/src/components/library/Track.vue:69 +#: front/src/components/library/import/FileUpload.vue:44 +#: front/src/components/manage/library/FilesTable.vue:44 +msgid "Size" +msgstr "Größe" + +#: front/src/components/library/import/BatchDetail.vue:37 +#: front/src/components/library/import/BatchDetail.vue:72 +msgid "Skipped" +msgstr "Ausgelassen" + +#: front/src/components/requests/Form.vue:3 +msgid "Something's missing in the library? Let us know what you would like to listen!" +msgstr "Dir fehlt etwas in der Mediathek? Sage uns was du anhören möchtest!" + +#: front/src/components/audio/Search.vue:25 +msgid "Sorry, we did not found any album matching your query" +msgstr "Sorry, wir haben keine passende Alben für deine Suche gefunden" + +#: front/src/components/audio/Search.vue:16 +msgid "Sorry, we did not found any artist matching your query" +msgstr "" +"Entschuldigung, wir haben keine passenden Künstler oder Künstlerinnen für " +"deine Suche gefunden" + +#: front/src/components/library/import/BatchDetail.vue:82 +#: front/src/components/library/import/BatchList.vue:38 +#: front/src/components/library/import/TrackImport.vue:17 +msgid "Source" +msgstr "Quelle" + +#: front/src/App.vue:41 +msgid "Source code" +msgstr "Quellcode" + +#: front/src/App.vue:40 +msgid "Source code (%{version})" +msgstr "Quelcode (%{ version })" + +#: front/src/components/auth/Profile.vue:20 +#: front/src/components/manage/users/UsersTable.vue:70 +msgid "Staff member" +msgstr "Teammember" + +#: front/src/components/radios/Button.vue:4 +msgid "Start" +msgstr "Starten" + +#: front/src/components/library/import/FileUpload.vue:28 +msgid "Start Upload" +msgstr "Hochladen starten" + +#: front/src/views/admin/Settings.vue:86 +msgid "Statistics" +msgstr "Statistik" + +#: front/src/components/federation/LibraryFollowTable.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:66 +#: front/src/components/library/import/BatchDetail.vue:83 +#: front/src/components/library/import/BatchList.vue:11 +#: front/src/components/library/import/BatchList.vue:37 +#: front/src/components/library/import/FileUpload.vue:45 +#: front/src/components/manage/library/RequestsTable.vue:24 +#: front/src/components/manage/library/RequestsTable.vue:48 +#: front/src/components/manage/users/InvitationsTable.vue:17 +#: front/src/components/manage/users/InvitationsTable.vue:39 +#: front/src/components/manage/users/UsersTable.vue:43 +msgid "Status" +msgstr "Status" + +#: front/src/components/radios/Button.vue:3 +msgid "Stop" +msgstr "Abbrechen" + +#: front/src/components/Sidebar.vue:159 +msgid "Stop radio" +msgstr "Radio stoppen" + +#: front/src/components/library/import/FileUpload.vue:32 +msgid "Stop Upload" +msgstr "Hochladen abbrechen" + +#: front/src/App.vue:9 src/components/requests/Form.vue:17 +msgid "Submit" +msgstr "Abschicken" + +#: front/src/components/requests/Form.vue:22 +msgid "Submit another request" +msgstr "Erneut anfragen" + +#: front/src/components/library/import/BatchDetail.vue:26 +#: front/src/components/library/import/BatchList.vue:39 +msgid "Submitted by" +msgstr "Vorgeschlagen von" + +#: front/src/views/admin/Settings.vue:85 +msgid "Subsonic" +msgstr "Subsonic" + +#: front/src/components/auth/SubsonicTokenForm.vue:2 +msgid "Subsonic API password" +msgstr "Subsonic-API-Kennwort" + +#: front/src/components/library/import/BatchDetail.vue:71 +#: front/src/components/library/import/BatchList.vue:16 +#: front/src/components/library/import/FileUpload.vue:56 +msgid "Success" +msgstr "Erfolg" + +#: front/src/App.vue:11 +msgid "Suggested choices" +msgstr "Empfehlungen" + +#: front/src/components/playlists/Editor.vue:9 +msgid "Syncing changes to server..." +msgstr "Synchronisierung der Änderungen auf dem Server..." + +#: front/src/components/Home.vue:26 +msgid "That's simple: we loved Grooveshark and we want to build something even better." +msgstr "" +"So einfach ist es: wir liebten Grooveshark, doch wollen wir noch besser " +"machen." + +#: front/src/components/requests/Form.vue:73 +msgid "The Beatles, Mickael Jackson…" +msgstr "Die Beatles, Michael Jackson…" + +#: front/src/App.vue:59 +msgid "The funkwhale logo was kindly designed and provided by Francis Gading." +msgstr "Das Funkwhale-Logo wurde mit Lieb von Francis Gading erbracht." + +#: front/src/components/Home.vue:124 +msgid "The plaform is free and open-source, you can install it and modify it without worries" +msgstr "" +"Die Plattform ist kostenlos und Open-Source, du kannst sie herunterladen, " +"installieren und anpassen ohne Sorge" + +#: front/src/components/auth/SubsonicTokenForm.vue:4 +msgid "The Subsonic API is not available on this Funkwhale instance." +msgstr "Die Subsonic-API ist auf dieser Instanz nicht verfügbar." + +#: front/src/components/requests/Form.vue:74 +msgid "The White Album, Thriller…" +msgstr "Das Weiße Album, Thriller…" + +#: front/src/components/audio/track/Table.vue:30 +msgid "There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks." +msgstr "" +"Zur zeit ist es nicht möglich, mehrere Tracks aus Funkwhale als Zip Archiv " +"herunterzuladen. Dennoch kannst du Tracks mit Hilfe von Kommandozeilen (z.B. " +"cURL) leicht herunterladen." + +#: front/src/components/library/import/Main.vue:149 +msgid "This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled." +msgstr "" +"Dieser Import wird mit der folgenden Anfrage verknüpft. Nachdem der Import " +"fertig ist, wird die Anfrage als erfüllt markiert." + +#: front/src/views/federation/LibraryDetail.vue:195 +msgid "This indicate if the remote library granted you access" +msgstr "Dies weist darauf hin, ob die Fernmediathek dir den Zugriff gewährt hat" + +#: front/src/components/auth/Profile.vue:16 +msgid "This is you!" +msgstr "Das bist du!" + +#: front/src/components/common/ActionTable.vue:37 +msgid "This may affect a lot of elements, please double check this is really what you want." +msgstr "" +"Durch diese Aktion können mehrere Elemente betroffen werden, prüfe bitte " +"nach, das du es wirklich willst." + +#: front/src/components/audio/PlayButton.vue:61 +msgid "This track is not imported and cannot be played" +msgstr "Dieser Track wurde nicht importiert und kann nicht abgespielt werden" + +#: front/src/views/playlists/Detail.vue:37 +msgid "This will completely delete this playlist and cannot be undone." +msgstr "" +"Die Playlist wird dauerhaft gelöscht und kann nicht zurückerstellt werden." + +#: front/src/views/radios/Detail.vue:27 +msgid "This will completely delete this radio and cannot be undone." +msgstr "Das Radio wird dauerhaft gelöscht und kann nicht zurückerstellt werden." + +#: front/src/components/auth/SubsonicTokenForm.vue:51 +msgid "This will completely disable access to the Subsonic API using from account." +msgstr "Der Zugriff zur Subsonic-API von diesem Konto wird deaktiviert." + +#: front/src/App.vue:137 +msgid "This will erase your local data and disconnect you, do you want to continue?" +msgstr "" +"Deine lokalen Daten werden gelöscht, und du wirst abgemeldet. Möchtest du " +"fortfahren?" + +#: front/src/components/auth/SubsonicTokenForm.vue:36 +msgid "This will log you out from existing devices that use the current password." +msgstr "" +"Du wirst von den bestehenden Geräten abgemeldet, die dieses Passwort nutzen." + +#: front/src/components/playlists/Editor.vue:44 +msgid "This will remove all tracks from this playlist and cannot be undone." +msgstr "" +"Alle Tracks dieses Playlists werden dauerhauft gelöscht und können nicht " +"zurückerstellt werden." + +#: front/src/components/audio/track/Table.vue:6 +#: front/src/components/federation/LibraryTrackTable.vue:47 +#: front/src/components/manage/library/FilesTable.vue:37 +msgid "Title" +msgstr "Titel" + +#: front/src/components/audio/SearchBar.vue:27 src/components/library/Track.vue:174 +#: front/src/components/library/import/BatchDetail.vue:84 +#: front/src/components/metadata/Search.vue:138 +msgid "Track" +msgstr "Track" + +#: front/src/components/library/Track.vue:53 +msgid "Track information" +msgstr "Trackinformation" + +#: front/src/components/library/radios/Filter.vue:44 +msgid "Track matching filter" +msgstr "" + +#: front/src/components/instance/Stats.vue:54 +msgid "tracks" +msgstr "Tracks" + +#: front/src/components/library/Album.vue:43 +#: front/src/components/playlists/PlaylistModal.vue:33 +#: front/src/views/federation/Base.vue:8 src/views/playlists/Detail.vue:50 +#: front/src/views/radios/Detail.vue:34 +msgid "Tracks" +msgstr "Tracks" + +#: front/src/views/federation/LibraryDetail.vue:125 +msgid "Tracks available in this library" +msgstr "Verfügbare Tracks in dieser Mediathek" + +#: front/src/components/library/Artist.vue:54 +msgid "Tracks by this artist" +msgstr "Tracks von diesem Künstler oder Künstlerin" + +#: front/src/components/instance/Stats.vue:25 +msgid "Tracks favorited" +msgstr "Tracks in den Favoriten" + +#: front/src/components/instance/Stats.vue:19 +msgid "tracks listened" +msgstr "Angehörte Tracks" + +#: front/src/views/federation/LibraryDetail.vue:109 +msgid "Trigger scan" +msgstr "Scan auslösen" + +#: front/src/components/manage/library/FilesTable.vue:41 +msgid "Type" +msgstr "Typ" + +#: front/src/components/About.vue:15 +msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." +msgstr "" +"Leider wurde diese Seite von den Verwaltern dieser Instanz noch nicht " +"ausgefüllt." + +#: front/src/views/federation/LibraryDetail.vue:95 +msgid "Unknown" +msgstr "Unbekannt" + +#: front/src/components/Home.vue:37 +msgid "Unlimited music" +msgstr "Unbegrenzte Musik" + +#: front/src/components/audio/Player.vue:264 +msgid "Unmute" +msgstr "Stummschaltung aufheben" + +#: front/src/components/auth/Settings.vue:50 +msgid "Update avatar" +msgstr "Avatar aktualisieren" + +#: front/src/components/playlists/Form.vue:33 +msgid "Update playlist" +msgstr "Playlist aktualisiert" + +#: front/src/components/auth/Settings.vue:27 +msgid "Update settings" +msgstr "Einstellungen aktualisieren" + +#: front/src/views/auth/PasswordResetConfirm.vue:21 +msgid "Update your password" +msgstr "Dein Kennwort aktualisieren" + +#: front/src/components/manage/users/UsersTable.vue:172 +#: front/src/views/admin/users/UsersDetail.vue:153 +msgid "Upload" +msgstr "Hochladen" + +#: front/src/components/auth/Settings.vue:45 +msgid "Upload a new avatar" +msgstr "Neues Avatar hochladen" + +#: front/src/components/library/import/Main.vue:7 +msgid "Uploaded files or external source" +msgstr "Hochgeladene Dateien oder externe Quelle" + +#: front/src/components/library/import/FileUpload.vue:57 +msgid "Uploading..." +msgstr "Hochladen..." + +#: front/src/App.vue:45 +msgid "Use another instance" +msgstr "Eine andere Instanz benutzen" + +#: front/src/components/requests/Form.vue:75 +msgid "Use this comment box to add details to your request if needed" +msgstr "" +"Nutze dieses Feld um weitere Informationen über deine Anfrage beizufügen" + +#: front/src/views/federation/LibraryDetail.vue:196 +msgid "Use this flag to enable/disable federation with this library" +msgstr "" +"Mit dieser Einstellung kannst du die Föderation an dieser Mediathek " +"umschalten" + +#: front/src/views/auth/PasswordReset.vue:12 +msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password." +msgstr "" +"Mit diesem Formular kannst du ein neues Kennwort beantragen. Wir schicken " +"dir eine E-Mail an die angegebene Adresse mit den Anleitungen." + +#: front/src/components/federation/LibraryForm.vue:6 +msgid "Use this form to scan an instance and setup federation." +msgstr "Scanne eine Instanz und föderiere damit." + +#: front/src/components/manage/users/InvitationsTable.vue:49 +msgid "Used" +msgstr "Verwendet" + +#: front/src/components/manage/library/RequestsTable.vue:47 +msgid "User" +msgstr "Nutzende" + +#: front/src/components/instance/Stats.vue:5 +msgid "User activity" +msgstr "Aktivität der Nutzende" + +#: front/src/components/library/Radios.vue:20 +msgid "User radios" +msgstr "Radios der Nutzende" + +#: front/src/components/auth/Signup.vue:19 +#: front/src/components/manage/users/UsersTable.vue:37 +msgid "Username" +msgstr "Benutzername" + +#: front/src/components/auth/Login.vue:15 +msgid "Username or email" +msgstr "Benutzername oder E-Mail-Adresse" + +#: front/src/components/instance/Stats.vue:13 +msgid "users" +msgstr "Nutzende" + +#: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 +#: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 +#: front/src/views/admin/users/UsersList.vue:21 +msgid "Users" +msgstr "Nutzende" + +#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35 +#: front/src/components/library/Track.vue:44 +#: front/src/components/library/import/ArtistImport.vue:131 +#: front/src/components/metadata/ArtistCard.vue:49 +#: front/src/components/metadata/ReleaseCard.vue:53 +msgid "View on MusicBrainz" +msgstr "Auf MusicBrainz ansehen" + +#: front/src/components/playlists/PlaylistModal.vue:20 +msgid "We cannot add the track to a playlist" +msgstr "Dieser Track kann nicht zu einer Playlist hinzugefügt werden" + +#: front/src/components/playlists/Form.vue:14 +msgid "We cannot create the playlist" +msgstr "Die Playlist kann nicht erstellt werden" + +#: front/src/components/auth/Signup.vue:13 +msgid "We cannot create your account" +msgstr "Dein Konto kann nicht erstellt werden" + +#: front/src/components/auth/Login.vue:7 +msgid "We cannot log you in" +msgstr "Wir können dich nicht einloggen" + +#: front/src/components/auth/Settings.vue:38 +msgid "We cannot save your avatar" +msgstr "Dein Avatar kann nicht gespeichert werden" + +#: front/src/components/auth/Settings.vue:14 +msgid "We cannot save your settings" +msgstr "Deine Einstellungen können nicht gespeichert werden" + +#: front/src/components/Home.vue:130 +msgid "We do not track you or bother you with ads" +msgstr "Weder verfolgen wir dich noch stören wir dich mit Werbung" + +#: front/src/components/library/import/FileUpload.vue:5 +msgid "We recommend using Picard for that purpose." +msgstr "Zu diesem Zweck wird Picard empfohlen." + +#: front/src/components/Home.vue:7 +msgid "We think listening to music should be simple." +msgstr "Weil Musik hören sollte leicht sein." + +#: front/src/components/PageNotFound.vue:10 +msgid "We're sorry, the page you asked for does not exist:" +msgstr "Entschuldigung, die aufgerufene Seite existiert nicht:" + +#: front/src/components/requests/Form.vue:21 +msgid "We've received your request, you'll get some groove soon ;)" +msgstr "Deine Anfrage wurde empfangen, du wirst bald von uns was hören ;)" + +#: front/src/components/Home.vue:152 +msgid "Welcome" +msgstr "Willkommen" + +#: front/src/components/Home.vue:5 +msgid "Welcome on Funkwhale" +msgstr "Willkommen auf Funkwhale" + +#: front/src/components/library/import/Main.vue:114 +msgid "What is metadata?" +msgstr "Was sind Metadaten?" + +#: front/src/views/federation/LibraryDetail.vue:197 +msgid "When enabled, auto importing will automatically import new tracks published in this library" +msgstr "" +"Wenn angeschaltet, neue veröffentliche Tracks in dieser Bibliothek werden " +"automatisch importiert" + +#: front/src/components/Home.vue:24 +msgid "Why funkwhale?" +msgstr "Warum Funkwhale?" + +#: front/src/components/Sidebar.vue:124 +msgid "Yes" +msgstr "Ja" + +#: front/src/components/auth/Logout.vue:8 +msgid "Yes, log me out!" +msgstr "Ja, logge mich aus!" + +#: front/src/components/auth/Logout.vue:7 +msgid "You are currently logged in as %{ username }" +msgstr "Du bist als %{ username } angemeldet" + +#: front/src/components/library/import/Main.vue:111 +msgid "You can also skip this step and enter metadata manually." +msgstr "" +"Du kannst auch diesen Schritt überspringen und die Metadaten per Hand " +"eingeben." + +#: front/src/components/Home.vue:136 +msgid "You can invite friends and family to your instance so they can enjoy your music" +msgstr "" +"Du kannst Freunde und Familie auf deiner Instanz einladen, sodass sie deine " +"Musik genießen können" + +#: front/src/components/library/radios/Builder.vue:7 +msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria." +msgstr "" +"Dank dieser Schnittstelle kannst du dein eigenes Radio aufbauen, das die " +"entsprechenden Tracks abspielt." + +#: front/src/components/auth/SubsonicTokenForm.vue:8 +msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance." +msgstr "" +"Damit kannst du deine Playlists und Musik offline genießen, zum Beispiel auf " +"deinem Smartphone bzw. Tablett." + +#: front/src/components/Sidebar.vue:156 +msgid "You have a radio playing" +msgstr "Du hörst gerade ein Radio an" + +#: front/src/App.vue:6 +msgid "You need to select an instance in order to continue" +msgstr "Zum Fortfahren wähle bitte eine Instanz aus" + +#: front/src/components/auth/Settings.vue:100 +msgid "You will be logged out from this session and have to log in with the new one" +msgstr "" +"Du wirst von dieser Sitzung ausgeloggt und du musst dich mit deinem neuen " +"Kennwort einloggen" + +#: front/src/components/auth/Settings.vue:71 +msgid "You will have to update your password on your clients that use this password." +msgstr "" +"Du musst das Passwort auf deine verbundenen Geräte anpassen, die dieses " +"Passwort verwenden." + +#: front/src/components/library/import/Main.vue:103 +msgid "You will import:" +msgstr "Du wirst importieren:" + +#: front/src/views/auth/EmailConfirm.vue:24 +msgid "Your email address was confirmed, you can now use the service without limitations." +msgstr "" +"Deine E-Mail-Adresse wurde bestätigt, jetzt kannst du den Service unbegrenzt " +"nutzen." + +#: front/src/components/favorites/List.vue:109 +msgid "Your Favorites" +msgstr "Deine Favoriten" + +#: front/src/components/Home.vue:117 +msgid "Your music, your way" +msgstr "Deine Musik, deine Weise" + +#: front/src/views/auth/PasswordResetConfirm.vue:29 +msgid "Your password has been updated successfully." +msgstr "Dein Kennwort wurde erfolgreich aktualisiert." + +#: front/src/components/auth/Settings.vue:101 +msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password" +msgstr "" +"Dein Subsonic-Kennwort wird mit einem neuen beliebigen Kennwort ersetzt, und " +"du wirst auf allen aktuellen verbundenen Geräten ausgeloggt, die das alte " +"Kennwort nutzen" + +#: front/src/components/audio/PlayButton.vue:156 +msgid "%{ count } track was added to your queue" +msgid_plural "%{ count } tracks were added to your queue" +msgstr[0] "1 Track wurde zur Wiedergabeliste hinzugefügt" +msgstr[1] "%{ count } Tracks wurden zur Wiedergabeliste hinzugefügt" diff --git a/front/locales/eo/LC_MESSAGES/app.po b/front/locales/eo/LC_MESSAGES/app.po index d4fc38a86447907ee594f7c9627e130d8bd48777..0d6e688fb63a2e023ff82aa64f6ffd40eec03aab 100644 --- a/front/locales/eo/LC_MESSAGES/app.po +++ b/front/locales/eo/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-22 15:50+0000\n" +"PO-Revision-Date: 2018-07-24 19:50+0000\n" "Last-Translator: Baptiste Gelez <baptiste@gelez.xyz>\n" "Language-Team: none\n" "Language: eo\n" @@ -34,8 +34,8 @@ msgstr "(malplena)" #: front/src/components/common/ActionTable.vue:51 msgid "%{ count } on %{ total } selected" msgid_plural "%{ count } on %{ total } selected" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Unu el %{total} estas selekta" +msgstr[1] "%{count} el %{total} estas selektaj" #: front/src/components/Sidebar.vue:116 #: src/views/federation/LibraryDetail.vue:87 @@ -739,11 +739,11 @@ msgstr "Tajpu nomon de artisto…" #: front/src/views/federation/LibraryList.vue:122 msgid "Enter an library domain name..." -msgstr "" +msgstr "Tajpu domajna nomo de instance…" #: front/src/views/playlists/List.vue:104 msgid "Enter an playlist name..." -msgstr "" +msgstr "Tajpu ludlistan nomon…" #: front/src/components/auth/Signup.vue:98 msgid "Enter your email" @@ -884,86 +884,91 @@ msgstr "Filtri albumtipoj" #: front/src/components/library/radios/Builder.vue:56 msgid "Filter name" -msgstr "" +msgstr "Filtri nomon" #: front/src/components/library/import/Main.vue:52 msgid "Finish import" -msgstr "" +msgstr "Fini importadon" #: front/src/components/library/import/BatchDetail.vue:54 msgid "Finished" -msgstr "" +msgstr "Finanto" #: front/src/components/library/import/Main.vue:59 msgid "First, choose where you want to import the music from" -msgstr "" +msgstr "Unue, elekti ejo el vi volas importi muzikon" #: front/src/components/federation/LibraryCard.vue:44 msgid "Follow" -msgstr "" +msgstr "Sekvi" #: front/src/components/federation/LibraryCard.vue:36 msgid "Follow request pending approval" -msgstr "" +msgstr "Peto da sekvado atendis konsenton" #: front/src/views/federation/LibraryDetail.vue:21 msgid "Follow status" -msgstr "" +msgstr "Sekva statuso" #: front/src/views/federation/Base.vue:13 #: front/src/views/federation/LibraryFollowersList.vue:24 msgid "Followers" -msgstr "" +msgstr "Sekvantoj" #: front/src/components/federation/LibraryCard.vue:18 msgid "Followers only" -msgstr "" +msgstr "Nur sekvantoj" #: front/src/components/federation/LibraryCard.vue:15 #: front/src/views/federation/LibraryDetail.vue:29 msgid "Following" -msgstr "" +msgstr "Sekvata" #: front/src/components/activity/Like.vue:12 #: src/components/activity/Listen.vue:12 msgid "from %{ album } by %{ artist }" -msgstr "" +msgstr "el %{album} je %{artist}" #: front/src/components/library/Track.vue:13 msgid "From album %{ album } by %{ artist }" -msgstr "" +msgstr "El %{album} albumo je %{artist}" #: front/src/App.vue:56 msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" msgstr "" +"Funkwhale estas senpaga kaj kun libera fontkodo projekto, ke viglas dankon " +"al vonlontuloj. Vi povas helpi nin plibonigi tiun kun cimosignaladoj, " +"trajtosugestoj kaj diskonigado de la projekto al viaj amikoj!" #: front/src/components/auth/SubsonicTokenForm.vue:7 msgid "Funkwhale is compatible with other music players that support the Subsonic API." -msgstr "" +msgstr "Funkwhale funkcias kun aliaj muzikludiloj ke apogas la Subsonic API." #: front/src/components/Home.vue:98 msgid "Funkwhale is dead simple to use." -msgstr "" +msgstr "Uzi Funkwhale facilegas." #: front/src/components/Home.vue:39 msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." msgstr "" +"Funkwhale estas dizajna tiel ke estas facile aÅskulti muzikon vi Åatas, aÅ " +"malkovri novajn artistojn." #: front/src/components/Home.vue:119 msgid "Funkwhale is free and gives you control on your music." -msgstr "" +msgstr "Funkwhale estas senpaga kaj lasis vin estri vian muzikon." #: front/src/components/Home.vue:66 msgid "Funkwhale takes care of handling your music" -msgstr "" +msgstr "Funkwhale atentas manipuli vian muzikon" #: front/src/components/manage/users/InvitationForm.vue:16 msgid "Get a new invitation" -msgstr "" +msgstr "Akiri novan inviton" #: front/src/components/Home.vue:13 msgid "Get me to the library" -msgstr "" +msgstr "Iru al la muzikejo" #: front/src/components/Home.vue:77 msgid "" @@ -972,19 +977,21 @@ msgid "" " MusicBrainz\n" " </a>" msgstr "" +"Akiri bonegaj metadatumoj pri vian muzikon kun <a href=\"https://musicbrainz." +"org\" target=\"_blank\">MusicBrainz</a>" #: front/src/components/common/ActionTable.vue:21 #: front/src/components/common/ActionTable.vue:27 msgid "Go" -msgstr "" +msgstr "Komenci" #: front/src/components/PageNotFound.vue:14 msgid "Go to home page" -msgstr "" +msgstr "Iru hejme" #: front/src/components/library/import/Main.vue:13 msgid "Grab corresponding metadata" -msgstr "" +msgstr "Kolekti la koncernajn metadatumojn" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" @@ -992,237 +999,241 @@ msgstr "" #: front/src/components/library/Home.vue:65 msgid "Home" -msgstr "" +msgstr "Hejmo" #: front/src/components/instance/Stats.vue:36 msgid "Hours of music" -msgstr "" +msgstr "Muzikhoroj" #: front/src/components/auth/SubsonicTokenForm.vue:11 msgid "However, accessing Funkwhale from those clients require a separate password you can set below." msgstr "" +"Tamen, atingi Funkwhale el tiuj aplikaĵo bezonas alian pasvorton ke vi povas " +"difini malsupre." #: front/src/components/library/import/BatchList.vue:34 msgid "ID" -msgstr "" +msgstr "ID" #: front/src/views/auth/PasswordResetConfirm.vue:24 msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." msgstr "" +"Se la retadreso provizanta dum la antaÅa etapo korektas kaj bindas al " +"uzantkonto, vi baldaÅ ricevus retmesaÄon kun renuligadaj instrukcioj." #: front/src/components/federation/LibraryTrackTable.vue:196 #: front/src/components/library/Library.vue:17 msgid "Import" -msgstr "" +msgstr "Importi" #: front/src/components/federation/LibraryTrackTable.vue:57 msgid "Import #%{ id } launched" -msgstr "" +msgstr "Importado #%{id} komencis" #: front/src/components/library/import/Main.vue:38 msgid "Import %{ count } track" msgid_plural "Import %{ count } tracks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Importi unu kanto" +msgstr[1] "Importi %{count} kantoj" #: front/src/components/library/import/BatchDetail.vue:10 msgid "Import batch" -msgstr "" +msgstr "Importaro" #: front/src/components/library/import/BatchDetail.vue:185 msgid "Import Batch #%{ id }" -msgstr "" +msgstr "Importaro #%{id}" #: front/src/components/library/Library.vue:20 msgid "Import batches" -msgstr "" +msgstr "Importaroj" #: front/src/components/library/import/BatchList.vue:117 msgid "Import Batches" -msgstr "" +msgstr "Importaroj" #: front/src/components/manage/library/FilesTable.vue:40 #: front/src/components/manage/library/RequestsTable.vue:53 msgid "Import date" -msgstr "" +msgstr "Importdato" #: front/src/components/library/import/FileUpload.vue:38 msgid "Import detail page" -msgstr "" +msgstr "Importado detalpaÄo" #: front/src/components/Sidebar.vue:81 msgid "Import music" -msgstr "" +msgstr "Importi muzikon" #: front/src/components/library/import/Main.vue:267 msgid "Import Music" -msgstr "" +msgstr "Importi muzikon" #: front/src/components/Home.vue:71 msgid "Import music from various platforms, such as YouTube or SoundCloud" -msgstr "" +msgstr "Importi muzikon el multe da servicoj, kiel YouTube aÅ SoundCloud" #: front/src/components/federation/LibraryTrackTable.vue:14 #: front/src/components/federation/LibraryTrackTable.vue:66 msgid "Import pending" -msgstr "" +msgstr "Importado atendas" #: front/src/views/admin/library/Base.vue:9 #: front/src/views/admin/library/RequestsList.vue:3 #: front/src/views/admin/library/RequestsList.vue:21 msgid "Import requests" -msgstr "" +msgstr "Importpetoj" #: front/src/components/library/import/BatchList.vue:20 #: front/src/components/library/import/Main.vue:6 msgid "Import source" -msgstr "" +msgstr "Importfonto" #: front/src/components/federation/LibraryTrackTable.vue:9 msgid "Import status" -msgstr "" +msgstr "Importstato" #: front/src/components/library/import/ReleaseImport.vue:14 msgid "Import this release" -msgstr "" +msgstr "Importi tiun albumon" #: front/src/components/library/import/TrackImport.vue:11 msgid "Import this track" -msgstr "" +msgstr "Importi tiun kanton" #: front/src/components/federation/LibraryTrackTable.vue:12 #: front/src/components/manage/library/RequestsTable.vue:29 #: front/src/components/manage/library/RequestsTable.vue:61 msgid "Imported" -msgstr "" +msgstr "Importata" #: front/src/components/library/import/TrackImport.vue:44 msgid "Imported URL" -msgstr "" +msgstr "Importanta URL" #: front/src/views/admin/Settings.vue:82 msgid "Imports" -msgstr "" +msgstr "Importadoj" #: front/src/components/favorites/TrackFavoriteIcon.vue:3 msgid "In favorites" -msgstr "" +msgstr "En stelumoj" #: front/src/components/federation/LibraryTrackTable.vue:65 msgid "In library" -msgstr "" +msgstr "En muzikejo" #: front/src/components/manage/users/UsersTable.vue:54 msgid "Inactive" -msgstr "" +msgstr "Malaktiva" #: front/src/components/library/import/Main.vue:96 msgid "Input a MusicBrainz ID manually:" -msgstr "" +msgstr "Tajpu MusicBrainz ID mane:" #: front/src/views/auth/PasswordReset.vue:53 msgid "Input the email address binded to your account" -msgstr "" +msgstr "Tajpu la retadreson bindanta al via konto" #: front/src/components/playlists/Editor.vue:31 msgid "Insert from queue (%{ count } track)" msgid_plural "Insert from queue (%{ count } tracks)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Internigi el atendovico (unu kanto)" +msgstr[1] "Internigi el atendovico (%{count} kantoj)" #: front/src/views/admin/Settings.vue:80 msgid "Instance information" -msgstr "" +msgstr "Instanca informo" #: front/src/components/library/Radios.vue:9 msgid "Instance radios" -msgstr "" +msgstr "Instancaj radioj" #: front/src/views/admin/Settings.vue:75 msgid "Instance settings" -msgstr "" +msgstr "Instancaj preferoj" #: front/src/views/instance/Timeline.vue:57 msgid "Instance Timeline" -msgstr "" +msgstr "Instanca tempolino" #: front/src/components/auth/Signup.vue:42 #: front/src/components/manage/users/InvitationForm.vue:11 msgid "Invitation code" -msgstr "" +msgstr "Invita kodo" #: front/src/components/auth/Signup.vue:43 msgid "Invitation code (optional)" -msgstr "" +msgstr "Invita kodo (nedeviga)" #: front/src/views/admin/users/Base.vue:8 #: src/views/admin/users/InvitationsList.vue:3 #: front/src/views/admin/users/InvitationsList.vue:24 msgid "Invitations" -msgstr "" +msgstr "Invitoj" #: front/src/App.vue:43 msgid "Issue tracker" -msgstr "" +msgstr "Cimspuradilo" #: front/src/components/library/import/BatchDetail.vue:80 msgid "Job ID" -msgstr "" +msgstr "Labora ID" #: front/src/components/library/import/BatchList.vue:36 msgid "Jobs" -msgstr "" +msgstr "Laboroj" #: front/src/components/Home.vue:50 msgid "Keep a track of your favorite songs" -msgstr "" +msgstr "Konservi postsignojn de viaj preferitaj kantoj" #: front/src/components/audio/track/Table.vue:33 msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." -msgstr "" +msgstr "Konservu vian PRIVATE_TOKEN sekreta, ĉar Äi atingeblas vian konton." #: front/src/components/manage/users/UsersTable.vue:41 #: front/src/views/admin/users/UsersDetail.vue:45 msgid "Last activity" -msgstr "" +msgstr "Lasta akto" #: front/src/views/federation/LibraryDetail.vue:101 msgid "Last fetched" -msgstr "" +msgstr "Lasta kolektado" #: front/src/components/playlists/PlaylistModal.vue:32 msgid "Last modification" -msgstr "" +msgstr "Lasta redakto" #: front/src/components/common/ActionTable.vue:39 msgid "Launch" -msgstr "" +msgstr "Lanĉi" #: front/src/components/library/import/BatchDetail.vue:18 #: front/src/components/library/import/BatchList.vue:35 msgid "Launch date" -msgstr "" +msgstr "Lanĉa dato" #: front/src/components/federation/LibraryForm.vue:31 msgid "Launch scan" -msgstr "" +msgstr "Lanĉi skanon" #: front/src/components/Home.vue:10 msgid "Learn more about this instance" -msgstr "" +msgstr "Lerni pli pri tiu instanco" #: front/src/components/manage/users/InvitationForm.vue:58 msgid "Leave empty for a random code" -msgstr "" +msgstr "Lasu malplena por hazarda kodo" #: front/src/components/requests/Form.vue:10 msgid "Leave this field empty if you're requesting the whole discography." -msgstr "" +msgstr "Lasu malplena se vi volas la tutan albumaron." #: front/src/views/federation/Base.vue:5 #: src/views/federation/LibraryList.vue:123 msgid "Libraries" -msgstr "" +msgstr "Muzikejoj" #: front/src/components/Sidebar.vue:70 #: front/src/components/federation/LibraryTrackTable.vue:51 @@ -1231,103 +1242,104 @@ msgstr "" #: front/src/views/admin/users/UsersDetail.vue:157 #: front/src/views/federation/LibraryDetail.vue:194 msgid "Library" -msgstr "" +msgstr "Muzikejo" #: front/src/views/admin/library/FilesList.vue:3 msgid "Library files" -msgstr "" +msgstr "Muzikejaj dosieroj" #: front/src/components/federation/LibraryForm.vue:20 msgid "Library name" -msgstr "" +msgstr "Nomo de muzikejo" #: front/src/views/federation/LibraryDetail.vue:84 msgid "Library size" -msgstr "" +msgstr "Muzikejgrando" #: front/src/components/federation/LibraryForm.vue:96 msgid "library@demo.funkwhale.audio" -msgstr "" +msgstr "library@demo.funkwhale.audio" #: front/src/App.vue:29 msgid "Links" -msgstr "" +msgstr "Ligiloj" #: front/src/views/instance/Timeline.vue:4 msgid "Loading timeline..." -msgstr "" +msgstr "Tempolino ÅarÄas…" #: front/src/components/favorites/List.vue:5 +#, fuzzy msgid "Loading your favorites..." -msgstr "" +msgstr "ÅœarÄantas stelumojn" #: front/src/components/auth/Login.vue:78 msgid "Log In" -msgstr "" +msgstr "Ensaluti" #: front/src/components/auth/Login.vue:4 msgid "Log in to your Funkwhale account" -msgstr "" +msgstr "Ensaluti en via Funkwhale konto" #: front/src/components/auth/Logout.vue:20 msgid "Log Out" -msgstr "" +msgstr "Elsaluti" #: front/src/components/Sidebar.vue:38 msgid "Logged in as %{ username }" -msgstr "" +msgstr "Elsuta je %{username}" #: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 msgid "Login" -msgstr "" +msgstr "Ensaluti" #: front/src/components/Sidebar.vue:43 msgid "Logout" -msgstr "" +msgstr "Elsaluti" #: front/src/components/audio/Player.vue:266 msgid "Looping disabled. Click to switch to single-track looping." -msgstr "" +msgstr "Ripeto malaktivas. Alklaki por aktivi ripetado de la aktuala kanto." #: front/src/components/audio/Player.vue:267 msgid "Looping on a single track. Click to switch to whole queue looping." -msgstr "" +msgstr "Ripetas unu kanton. Alklaki por aktivi ripetado de la tutan atendovico." #: front/src/components/audio/Player.vue:268 msgid "Looping on whole queue. Click to disable looping." -msgstr "" +msgstr "Ripetas la tutan atendovicon. Alklaki por malaktivi ripeto." #: front/src/components/library/Track.vue:94 msgid "Lyrics" -msgstr "" +msgstr "Teksto" #: front/src/views/admin/library/Base.vue:25 msgid "Manage library" -msgstr "" +msgstr "Manipuli muzikejon" #: front/src/components/playlists/PlaylistModal.vue:3 msgid "Manage playlists" -msgstr "" +msgstr "Manipuli ludlistojn" #: front/src/views/admin/users/Base.vue:20 msgid "Manage users" -msgstr "" +msgstr "Manipuli uzantojn" #: front/src/views/playlists/List.vue:8 msgid "Manage your playlists" -msgstr "" +msgstr "Manipuli viajn ludlistojn" #: front/src/components/manage/library/RequestsTable.vue:197 msgid "Mark as closed" -msgstr "" +msgstr "Marki fermata" #: front/src/components/manage/library/RequestsTable.vue:196 msgid "Mark as imported" -msgstr "" +msgstr "Marki importata" #: front/src/components/library/import/Main.vue:12 msgid "Metadata" -msgstr "" +msgstr "Metadatumoj" #: front/src/components/library/import/Main.vue:115 msgid "" @@ -1337,31 +1349,36 @@ msgid "" " </a>\n" " project, which you can think about as the Wikipedia of music." msgstr "" +"Metadatumoj estas datumoj rilatanta al muziko vi volas importi. Äœi enhavas " +"ĉiu informo pri artistoj, albumoj kaj kantoj. Por havi bonega muzikejo, " +"estas rekomendata kolekti datumojn el la <a href=\"https://musicbrainz.org\" " +"target=\"_blank\">MusicBrainz</a> projekto, ke similas al Vikipedio sed por " +"muziko." #: front/src/components/Sidebar.vue:48 #: src/components/library/import/Main.vue:18 msgid "Music" -msgstr "" +msgstr "Muziko" #: front/src/components/library/import/Main.vue:147 msgid "Music request" -msgstr "" +msgstr "Muzikpeto" #: front/src/components/audio/Player.vue:265 msgid "Mute" -msgstr "" +msgstr "Silentigi" #: front/src/components/Sidebar.vue:34 msgid "My account" -msgstr "" +msgstr "Mia konto" #: front/src/components/playlists/Form.vue:74 msgid "My awesome playlist" -msgstr "" +msgstr "Mia mojosa ludlisto" #: front/src/components/library/radios/Builder.vue:227 msgid "My awesome radio" -msgstr "" +msgstr "Mia mojosa radio" #: front/src/components/library/Track.vue:64 #: src/components/library/Track.vue:75 @@ -1376,83 +1393,85 @@ msgstr "" #: front/src/components/manage/users/UsersTable.vue:61 #: front/src/views/admin/users/UsersDetail.vue:49 msgid "N/A" -msgstr "" +msgstr "ND" #: front/src/components/playlists/PlaylistModal.vue:31 #: front/src/views/admin/users/UsersDetail.vue:21 msgid "Name" -msgstr "" +msgstr "Nomo" #: front/src/components/auth/Settings.vue:88 #: front/src/views/auth/PasswordResetConfirm.vue:14 msgid "New password" -msgstr "" +msgstr "Nova pasvorto" #: front/src/components/Sidebar.vue:158 msgid "New tracks will be appended here automatically." -msgstr "" +msgstr "Novaj kantoj estos aldonataj ĉi-tie aÅtomate." #: front/src/components/library/import/Main.vue:29 msgid "Next step" -msgstr "" +msgstr "BaldaÅa etapo" #: front/src/components/audio/Player.vue:263 msgid "Next track" -msgstr "" +msgstr "BaldaÅa kanto" #: front/src/components/Sidebar.vue:125 msgid "No" -msgstr "" +msgstr "Ne" #: front/src/components/Home.vue:103 msgid "No add-ons, no plugins : you only need a web library" -msgstr "" +msgstr "Nek aldonaĵoj, nek kromprogramoj: vi nur bezonas retmuzikejo" #: front/src/components/library/Track.vue:102 msgid "No lyrics available for this track." -msgstr "" +msgstr "Nenio teksto disponeblas por tiu kanto." #: front/src/components/playlists/Form.vue:81 msgid "Nobody except me" -msgstr "" +msgstr "Neniu krom mi" #: front/src/views/federation/LibraryDetail.vue:32 msgid "Not following" -msgstr "" +msgstr "Ne sekvas" #: front/src/components/federation/LibraryTrackTable.vue:13 #: front/src/components/federation/LibraryTrackTable.vue:67 msgid "Not imported" -msgstr "" +msgstr "Ne importintas" #: front/src/components/manage/users/InvitationsTable.vue:51 msgid "Not used" -msgstr "" +msgstr "Ne uzantata" #: front/src/App.vue:37 msgid "Official website" -msgstr "" +msgstr "Oficiala retejo" #: front/src/components/auth/Settings.vue:83 msgid "Old password" -msgstr "" +msgstr "Malnova pasvorto" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." msgstr "" +"Kiam viaj dosieroj estas tute elÅutinta, ĵus alklaki tiu butono por vidi la " +"staton de la importo." #: front/src/components/federation/LibraryCard.vue:21 #: front/src/components/manage/users/InvitationsTable.vue:20 msgid "Open" -msgstr "" +msgstr "Malferma" #: front/src/App.vue:63 msgid "Options" -msgstr "" +msgstr "Preferoj" #: front/src/components/library/import/Main.vue:93 msgid "Or" -msgstr "" +msgstr "AÅ" #: front/src/components/favorites/List.vue:23 #: front/src/components/federation/LibraryTrackTable.vue:18 @@ -1465,7 +1484,7 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:18 #: src/views/playlists/List.vue:17 msgid "Ordering" -msgstr "" +msgstr "Ordo" #: front/src/components/favorites/List.vue:31 #: front/src/components/federation/LibraryTrackTable.vue:26 @@ -1477,35 +1496,35 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:26 #: src/views/playlists/List.vue:25 msgid "Ordering direction" -msgstr "" +msgstr "Orda direkto" #: front/src/components/manage/users/InvitationsTable.vue:38 msgid "Owner" -msgstr "" +msgstr "Proprietulo" #: front/src/components/PageNotFound.vue:33 msgid "Page Not Found" -msgstr "" +msgstr "Ne eblas trovi tiun paÄon" #: front/src/components/PageNotFound.vue:7 msgid "Page not found!" -msgstr "" +msgstr "Maltrovitas paÄon!" #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 msgid "Password" -msgstr "" +msgstr "Pasvorto" #: front/src/components/auth/SubsonicTokenForm.vue:95 msgid "Password updated" -msgstr "" +msgstr "Pasvorto aktuliginta" #: front/src/views/auth/PasswordResetConfirm.vue:28 msgid "Password updated successfully" -msgstr "" +msgstr "Pasvorto sukcese aktualiginta" #: front/src/components/audio/Player.vue:262 msgid "Pause track" -msgstr "" +msgstr "PaÅzi kanton" #: front/src/components/federation/LibraryFollowTable.vue:46 #: front/src/components/library/import/BatchDetail.vue:33 @@ -1515,86 +1534,86 @@ msgstr "" #: front/src/components/manage/library/RequestsTable.vue:27 #: front/src/components/manage/library/RequestsTable.vue:63 msgid "Pending" -msgstr "" +msgstr "Atendas" #: front/src/components/federation/LibraryFollowTable.vue:11 #: front/src/views/federation/LibraryDetail.vue:26 msgid "Pending approval" -msgstr "" +msgstr "Atendas aprobon" #: front/src/components/Sidebar.vue:217 msgid "Pending follow requests" -msgstr "" +msgstr "Atendantaj petoj da sekvado" #: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 msgid "Pending import requests" -msgstr "" +msgstr "Atendantaj importpetoj" #: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 msgid "Pending requests" -msgstr "" +msgstr "Atendantaj petoj" #: front/src/components/manage/users/UsersTable.vue:42 #: front/src/views/admin/users/UsersDetail.vue:68 msgid "Permissions" -msgstr "" +msgstr "Rajtoj" #: front/src/components/audio/PlayButton.vue:9 #: src/components/library/Track.vue:30 msgid "Play" -msgstr "" +msgstr "Ludi" #: front/src/components/audio/album/Card.vue:50 #: front/src/components/audio/artist/Card.vue:44 #: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23 msgid "Play all" -msgstr "" +msgstr "Ludi ĉiu" #: front/src/components/library/Artist.vue:26 msgid "Play all albums" -msgstr "" +msgstr "Ludi ĉiuj albumoj" #: front/src/components/audio/PlayButton.vue:58 msgid "Play immediatly" -msgstr "" +msgstr "Ludi tuj" #: front/src/components/audio/PlayButton.vue:15 msgid "Play next" -msgstr "" +msgstr "Ludi baldaÅe" #: front/src/components/audio/PlayButton.vue:16 msgid "Play now" -msgstr "" +msgstr "Ludi tuj" #: front/src/components/audio/Player.vue:261 msgid "Play track" -msgstr "" +msgstr "Ludi kanton" #: front/src/views/playlists/Detail.vue:90 msgid "Playlist" -msgstr "" +msgstr "Ludlisto" #: front/src/views/playlists/Detail.vue:12 msgid "Playlist containing %{ count } track, by %{ username }" msgid_plural "Playlist containing %{ count } tracks, by %{ username }" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ludisto enhavanta unu kanto, je %{username}" +msgstr[1] "Ludisto enhavanta %{count} kantoj, je %{username}" #: front/src/components/playlists/Form.vue:9 msgid "Playlist created" -msgstr "" +msgstr "Ludlisto kreiintas" #: front/src/components/playlists/Editor.vue:4 msgid "Playlist editor" -msgstr "" +msgstr "Ludlista redaktilo" #: front/src/components/playlists/Form.vue:21 msgid "Playlist name" -msgstr "" +msgstr "Nomo de la ludlisto" #: front/src/components/playlists/Form.vue:6 msgid "Playlist updated" -msgstr "" +msgstr "Ludlisto aktualigintas" #: front/src/components/playlists/Form.vue:25 msgid "Playlist visibility" diff --git a/front/locales/es/LC_MESSAGES/app.po b/front/locales/es/LC_MESSAGES/app.po new file mode 100644 index 0000000000000000000000000000000000000000..8608d2074fb46cd3cab4ac0d3159b155215c67c1 --- /dev/null +++ b/front/locales/es/LC_MESSAGES/app.po @@ -0,0 +1,2505 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the front package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: front 1.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-22 14:12+0200\n" +"PO-Revision-Date: 2018-07-24 19:50+0000\n" +"Last-Translator: anonymous <noreply@weblate.org>\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 2.20\n" + +#: front/src/components/playlists/PlaylistModal.vue:9 +msgid "\"%{ title }\", by %{ artist }" +msgstr "\"%{ title }\", de %{ artist }" + +#: front/src/components/Sidebar.vue:24 +msgid "(%{ index } of %{ length })" +msgstr "(%{ index } de %{ length })" + +#: front/src/components/Sidebar.vue:22 +msgid "(empty)" +msgstr "(vacÃo)" + +#: front/src/components/common/ActionTable.vue:43 +#: front/src/components/common/ActionTable.vue:51 +msgid "%{ count } on %{ total } selected" +msgid_plural "%{ count } on %{ total } selected" +msgstr[0] "%{ count } de %{ total } elemento seleccionado" +msgstr[1] "%{ count } de %{ total } elementos seleccionados" + +#: front/src/components/Sidebar.vue:116 src/views/federation/LibraryDetail.vue:87 +msgid "%{ count } track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count } canción" +msgstr[1] "%{ count } canciones" + +#: front/src/components/library/Artist.vue:13 +msgid "%{ count } track in %{ albumsCount } albums" +msgid_plural "%{ count } tracks in %{ albumsCount } albums" +msgstr[0] "%{ count } canción en %{ albumsCount } álbumes" +msgstr[1] "%{ count } canciones en %{ albumsCount } álbumes" + +#: front/src/components/library/radios/Builder.vue:76 +msgid "%{ count } track matching combined filters" +msgid_plural "%{ count } tracks matching combined filters" +msgstr[0] "%{ count } canción coincidiendo con filtros combinados" +msgstr[1] "%{ count } canciones coincidiendo con filtros combinados" + +#: front/src/components/playlists/Card.vue:18 +msgid "%{ count} track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count} canción" +msgstr[1] "%{ count } canciones" + +#: front/src/components/common/Duration.vue:2 +msgid "%{ hours } h %{ minutes } min" +msgstr "%{ hours } h %{ minutes } min" + +#: front/src/components/common/Duration.vue:5 +msgid "%{ minutes } min" +msgstr "%{ minutes } min" + +#: front/src/components/activity/Like.vue:7 +msgid "%{ user } favorited a track" +msgstr "%{ user } añadió una canción a sus favoritos" + +#: front/src/components/activity/Listen.vue:7 +msgid "%{ user } listened to a track" +msgstr "%{ user } escuchó una canción" + +#: front/src/components/auth/Profile.vue:49 +msgid "%{ username }'s profile" +msgstr "Perfil de %{ username }" + +#: front/src/components/audio/artist/Card.vue:41 +msgid "1 album" +msgid_plural "%{ count } albums" +msgstr[0] "1 álbum" +msgstr[1] "%{ count } álbumes" + +#: front/src/components/favorites/List.vue:10 +msgid "1 favorite" +msgid_plural "%{ count } favorites" +msgstr[0] "1 favorito" +msgstr[1] "%{ count } favoritos" + +#: front/src/components/audio/album/Card.vue:54 +#: front/src/components/federation/LibraryCard.vue:25 +msgid "1 track" +msgid_plural "%{ count } tracks" +msgstr[0] "1 canción" +msgstr[1] "%{ count } canciones" + +#: front/src/components/About.vue:5 +msgid "About %{ instance }" +msgstr "Sobre %{ instance }" + +#: front/src/App.vue:54 +msgid "About Funkwhale" +msgstr "Acerca de Funkwhale" + +#: front/src/App.vue:32 src/components/About.vue:8 src/components/About.vue:55 +msgid "About this instance" +msgstr "Acerca de esta instancia" + +#: front/src/components/manage/library/RequestsTable.vue:28 +#: front/src/components/manage/library/RequestsTable.vue:62 +msgid "Accepted" +msgstr "Aceptado" + +#: front/src/components/auth/SubsonicTokenForm.vue:111 +msgid "Access disabled" +msgstr "Acceso deshabilitado" + +#: front/src/components/Home.vue:109 +msgid "Access your music from a clean interface that focus on what really matters" +msgstr "" +"Accede a tu música con una interfaz limpia y concéntrate en lo que realmente " +"importa" + +#: front/src/views/admin/users/UsersDetail.vue:54 +msgid "Account active" +msgstr "Cuenta activa" + +#: front/src/components/auth/Settings.vue:5 +msgid "Account settings" +msgstr "Configuración de cuenta" + +#: front/src/components/auth/Settings.vue:257 +msgid "Account Settings" +msgstr "Configuración de Cuenta" + +#: front/src/components/manage/users/UsersTable.vue:39 +msgid "Account status" +msgstr "Estado de cuenta" + +#: front/src/views/auth/PasswordReset.vue:14 +msgid "Account's email" +msgstr "Correo electrónico de la cuenta" + +#: front/src/components/common/ActionTable.vue:82 +msgid "Action %{ action } was launched successfully on %{ count } element" +msgid_plural "Action %{ action } was launched successfully on %{ count } elements" +msgstr[0] "Acción %{ action } fue iniciado exitosamente en %{ count } elemento" +msgstr[1] "Acción %{ action } fue iniciado exitosamente en %{ count } elementos" + +#: front/src/components/common/ActionTable.vue:8 +#: front/src/components/federation/LibraryFollowTable.vue:24 +#: front/src/components/library/radios/Builder.vue:60 +#: front/src/components/manage/library/RequestsTable.vue:54 +msgid "Actions" +msgstr "Acciones" + +#: front/src/components/manage/users/UsersTable.vue:53 +msgid "Active" +msgstr "Activo" + +#: front/src/components/Sidebar.vue:60 +msgid "Activity" +msgstr "Actividad" + +#: front/src/components/federation/LibraryFollowTable.vue:21 +msgid "Actor" +msgstr "Actor" + +#: front/src/views/federation/LibraryList.vue:8 +msgid "Add a new library" +msgstr "Añadir una nueva biblioteca" + +#: front/src/components/library/radios/Builder.vue:46 +msgid "Add filter" +msgstr "Añadir filtro" + +#: front/src/components/library/radios/Builder.vue:36 +msgid "Add filters to customize your radio" +msgstr "Añade filtros para personalizar tu radio" + +#: front/src/components/audio/PlayButton.vue:53 +msgid "Add to current queue" +msgstr "Añadir a cola de reproducción actual" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:4 +#: front/src/components/favorites/TrackFavoriteIcon.vue:21 +msgid "Add to favorites" +msgstr "Añadir a favoritos" + +#: front/src/components/playlists/TrackPlaylistIcon.vue:6 +#: front/src/components/playlists/TrackPlaylistIcon.vue:32 +msgid "Add to playlist..." +msgstr "Añadir a lista de reproducción..." + +#: front/src/components/audio/PlayButton.vue:14 +msgid "Add to queue" +msgstr "Añadir a la cola de reproducción" + +#: front/src/components/playlists/PlaylistModal.vue:116 +msgid "Add to this playlist" +msgstr "Añadir a esta lista de reproducción" + +#: front/src/components/playlists/PlaylistModal.vue:54 +msgid "Add track" +msgstr "Añadir canción" + +#: front/src/components/manage/users/UsersTable.vue:69 +msgid "Admin" +msgstr "Admin" + +#: front/src/components/Sidebar.vue:64 +msgid "Administration" +msgstr "Administración" + +#: front/src/components/audio/SearchBar.vue:26 src/components/audio/track/Table.vue:8 +#: front/src/components/federation/LibraryTrackTable.vue:49 +#: front/src/components/library/Album.vue:91 +#: front/src/components/manage/library/FilesTable.vue:39 +#: front/src/components/metadata/Search.vue:134 +msgid "Album" +msgstr "Ãlbum" + +#: front/src/components/library/import/ReleaseImport.vue:3 +msgid "Album %{ title } (%{ count } track) by %{ artist }" +msgid_plural "Album %{ title } (%{ count } tracks) by %{ artist }" +msgstr[0] "Ãlbum %{ title } (%{ count } track) de %{ artist }" +msgstr[1] "Ãlbum %{ title } (%{ count } tracks) de %{ artist }" + +#: front/src/components/library/Album.vue:12 +msgid "Album containing %{ count } track, by %{ artist }" +msgid_plural "Album containing %{ count } tracks, by %{ artist }" +msgstr[0] "Ãlbum que contiene %{ count } canción, de %{ artist }" +msgstr[1] "Ãlbum que contiene %{ count } canciones, de %{ artist }" + +#: front/src/components/library/Track.vue:20 +msgid "Album page" +msgstr "Página del álbum" + +#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48 +#: front/src/components/manage/library/RequestsTable.vue:50 +#: front/src/components/requests/Form.vue:9 +msgid "Albums" +msgstr "Ãlbumes" + +#: front/src/components/library/Artist.vue:44 +msgid "Albums by this artist" +msgstr "Ãlbumes de este artista" + +#: front/src/components/manage/library/RequestsTable.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:19 +msgid "All" +msgstr "Todo" + +#: front/src/components/playlists/Editor.vue:13 +msgid "An error occured while saving your changes" +msgstr "Ha ocurrido un error al guardar los cambios" + +#: front/src/components/auth/Login.vue:10 +msgid "An unknown error happend, this can mean the server is down or cannot be reached" +msgstr "" +"Ha ocurrido un error desconocido, esto puede significar que el servidor está " +"fuera de servicio o no se puede conectar" + +#: front/src/components/federation/LibraryTrackTable.vue:11 +#: front/src/components/library/import/BatchDetail.vue:68 +#: front/src/components/library/import/BatchList.vue:13 +#: front/src/components/library/import/BatchList.vue:22 +msgid "Any" +msgstr "Cualquiera" + +#: front/src/components/library/import/BatchList.vue:24 +msgid "API" +msgstr "API" + +#: front/src/components/federation/LibraryFollowTable.vue:68 +#: front/src/components/federation/LibraryFollowTable.vue:78 +msgid "Approve" +msgstr "Aprobar" + +#: front/src/components/federation/LibraryFollowTable.vue:70 +msgid "Approve access?" +msgstr "¿Aprobar el acceso?" + +#: front/src/components/federation/LibraryFollowTable.vue:38 +msgid "Approved" +msgstr "Aprobado" + +#: front/src/components/auth/Logout.vue:5 +msgid "Are you sure you want to log out?" +msgstr "" + +#: front/src/components/audio/SearchBar.vue:25 src/components/audio/track/Table.vue:7 +#: front/src/components/federation/LibraryTrackTable.vue:48 +#: front/src/components/library/Artist.vue:119 +#: front/src/components/manage/library/FilesTable.vue:38 +#: front/src/components/manage/library/RequestsTable.vue:49 +#: front/src/components/metadata/Search.vue:130 +msgid "Artist" +msgstr "Artista" + +#: front/src/components/requests/Form.vue:5 +msgid "Artist name" +msgstr "Nombre del artista" + +#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23 +msgid "Artist page" +msgstr "Página del artista" + +#: front/src/components/audio/Search.vue:65 +msgid "Artist, album, track..." +msgstr "Artista, álbum, canción..." + +#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42 +#: front/src/components/library/Artists.vue:119 src/components/library/Library.vue:7 +msgid "Artists" +msgstr "Artistas" + +#: front/src/components/favorites/List.vue:33 +#: front/src/components/federation/LibraryTrackTable.vue:28 +#: front/src/components/library/Artists.vue:25 src/components/library/Radios.vue:44 +#: front/src/components/manage/library/FilesTable.vue:19 +#: front/src/components/manage/library/RequestsTable.vue:19 +#: front/src/components/manage/users/UsersTable.vue:19 +#: front/src/views/federation/LibraryList.vue:28 src/views/playlists/List.vue:27 +msgid "Ascending" +msgstr "Ascendente" + +#: front/src/views/auth/PasswordReset.vue:27 +msgid "Ask for a password reset" +msgstr "Restablecer contraseña" + +#: front/src/views/federation/LibraryDetail.vue:56 +msgid "Auto importing" +msgstr "Autoimportación" + +#: front/src/components/playlists/PlaylistModal.vue:26 +msgid "Available playlists" +msgstr "Listas de reproducción disponibles" + +#: front/src/components/auth/Settings.vue:34 +msgid "Avatar" +msgstr "Avatar" + +#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24 +#: front/src/views/auth/PasswordResetConfirm.vue:18 +msgid "Back to login" +msgstr "Volver a la página de conección" + +#: front/src/views/federation/LibraryFollowersList.vue:5 +msgid "Be careful when accepting follow requests, as it means the follower will have access to your entire library." +msgstr "" +"Ten cuidado al aceptar solicitudes de seguimiento, porque significa que tu " +"seguidorx podrá acceder a tu biblioteca completa." + +#: front/src/components/library/Track.vue:80 +#: front/src/components/manage/library/FilesTable.vue:42 +msgid "Bitrate" +msgstr "Bitrate" + +#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4 +msgid "Browse" +msgstr "Explorar" + +#: front/src/components/Sidebar.vue:50 +msgid "Browse library" +msgstr "Explorar biblioteca" + +#: front/src/components/library/Artists.vue:4 +msgid "Browsing artists" +msgstr "Explorando artistas" + +#: front/src/views/federation/LibraryTrackList.vue:3 +msgid "Browsing federated tracks" +msgstr "Explorando canciones federadas" + +#: front/src/views/federation/LibraryFollowersList.vue:3 +msgid "Browsing followers" +msgstr "Explorando seguidorxs" + +#: front/src/views/federation/LibraryList.vue:3 +msgid "Browsing libraries" +msgstr "Explorando bibliotecas" + +#: front/src/views/playlists/List.vue:3 +msgid "Browsing playlists" +msgstr "Explorando listas de reproducción" + +#: front/src/components/library/Radios.vue:4 +msgid "Browsing radios" +msgstr "Explorando radios" + +#: front/src/components/library/radios/Builder.vue:5 +msgid "Builder" +msgstr "Editor" + +#: front/src/components/audio/album/Card.vue:13 +msgid "By %{ artist }" +msgstr "De %{ artist }" + +#: front/src/components/federation/LibraryFollowTable.vue:57 +msgid "By confirming, %{ username } will be denied access to your library." +msgstr "Si confirmas, %{ username } no podrá acceder a tu biblioteca." + +#: front/src/components/federation/LibraryFollowTable.vue:73 +msgid "By confirming, %{ username } will be granted access to your library." +msgstr "Si confirmas, %{ username } podrá acceder a tu biblioteca." + +#: front/src/components/audio/track/Table.vue:43 +#: front/src/components/common/DangerousButton.vue:17 +#: front/src/components/library/radios/Filter.vue:53 +#: front/src/components/playlists/PlaylistModal.vue:63 +msgid "Cancel" +msgstr "Cancelar" + +#: front/src/components/library/radios/Builder.vue:59 +msgid "Candidates" +msgstr "" + +#: front/src/components/auth/Settings.vue:76 +msgid "Cannot change your password" +msgstr "No se puede cambiar la contraseña" + +#: front/src/App.vue:66 +msgid "Change language" +msgstr "Cambiar idioma" + +#: front/src/components/auth/Settings.vue:67 +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +#: front/src/components/auth/Settings.vue:95 +msgid "Change password" +msgstr "Cambiar contraseña" + +#: front/src/views/auth/PasswordResetConfirm.vue:4 +#: front/src/views/auth/PasswordResetConfirm.vue:62 +msgid "Change your password" +msgstr "Cambiar tu contraseña" + +#: front/src/components/auth/Settings.vue:96 +msgid "Change your password?" +msgstr "¿Cambiar tu contraseña?" + +#: front/src/components/playlists/Editor.vue:21 +msgid "Changes synced with server" +msgstr "Cambios sincronizados con el servidor" + +#: front/src/components/auth/Settings.vue:70 +msgid "Changing your password will also change your Subsonic API password if you have requested one." +msgstr "" +"Cambiar tu contraseña también cambiará tu contraseña Subsonic API si pediste " +"una." + +#: front/src/components/auth/Settings.vue:98 +msgid "Changing your password will have the following consequences" +msgstr "Cambiar tu contraseña tendrá las siguientes consecuencias" + +#: front/src/App.vue:4 +msgid "Choose your instance" +msgstr "Escoge tu instancia" + +#: front/src/components/Home.vue:64 +msgid "Clean library" +msgstr "Una biblioteca impecable" + +#: front/src/components/manage/users/InvitationForm.vue:37 +msgid "Clear" +msgstr "" + +#: front/src/components/playlists/Editor.vue:40 +#: front/src/components/playlists/Editor.vue:45 +msgid "Clear playlist" +msgstr "Vaciar lista de reproducción" + +#: front/src/components/audio/Player.vue:270 +msgid "Clear your queue" +msgstr "Vaciar cola de reproducción" + +#: front/src/components/library/import/BatchList.vue:23 +msgid "CLI" +msgstr "CLI" + +#: front/src/components/Home.vue:44 +msgid "Click once, listen for hours using built-in radios" +msgstr "" +"Pulsa una sola vez y escucha durante horas, gracias a las radios integradas" + +#: front/src/components/manage/library/RequestsTable.vue:30 +#: front/src/components/manage/library/RequestsTable.vue:64 +msgid "Closed" +msgstr "" + +#: front/src/components/manage/users/InvitationForm.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:42 +msgid "Code" +msgstr "Código" + +#: front/src/components/audio/album/Card.vue:43 +#: front/src/components/audio/artist/Card.vue:33 +#: front/src/components/discussion/Comment.vue:20 +msgid "Collapse" +msgstr "Reducir" + +#: front/src/components/manage/library/RequestsTable.vue:51 +#: front/src/components/requests/Form.vue:14 +msgid "Comment" +msgstr "" + +#: front/src/components/library/radios/Builder.vue:58 +msgid "Config" +msgstr "Configurar" + +#: front/src/components/common/DangerousButton.vue:21 +msgid "Confirm" +msgstr "Confirmar" + +#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20 +#: front/src/views/auth/EmailConfirm.vue:51 +msgid "Confirm your email" +msgstr "Confirma tu correo electrónico" + +#: front/src/views/auth/EmailConfirm.vue:13 +msgid "Confirmation code" +msgstr "Código de confirmación" + +#: front/src/components/playlists/Editor.vue:163 +msgid "Copy tracks from current queue to playlist" +msgstr "Copiar canciones de cola de reproducción actual a lista de reproducción" + +#: front/src/components/Home.vue:88 +msgid "Covers, lyrics, our goal is to have them all ;)" +msgstr "Covers, letras, queremos conseguirlo todo ;)" + +#: front/src/components/auth/Signup.vue:4 +msgid "Create a funkwhale account" +msgstr "Crear una cuenta de funkwhale" + +#: front/src/components/playlists/Form.vue:2 +msgid "Create a new playlist" +msgstr "Crear una nueva lista de reproducción" + +#: front/src/components/auth/Login.vue:17 +msgid "Create an account" +msgstr "Crear una cuenta" + +#: front/src/components/manage/library/RequestsTable.vue:88 +#: front/src/components/requests/Card.vue:25 +msgid "Create import" +msgstr "Crear importación" + +#: front/src/components/auth/Signup.vue:51 +msgid "Create my account" +msgstr "Crear mi cuenta" + +#: front/src/components/playlists/Form.vue:34 +msgid "Create playlist" +msgstr "Crear una lista de reproducción" + +#: front/src/components/library/Radios.vue:23 +msgid "Create your own radio" +msgstr "Crear tu propia radio" + +#: front/src/components/federation/LibraryFollowTable.vue:22 +#: front/src/components/manage/library/RequestsTable.vue:52 +#: front/src/components/manage/users/InvitationsTable.vue:40 +msgid "Creation date" +msgstr "Fecha de creación" + +#: front/src/components/auth/Settings.vue:54 +msgid "Current avatar" +msgstr "Avatar actual" + +#: front/src/components/playlists/PlaylistModal.vue:8 +msgid "Current track" +msgstr "Canción actual" + +#: front/src/components/manage/library/FilesTable.vue:189 +#: front/src/components/manage/library/RequestsTable.vue:195 +#: front/src/components/manage/users/InvitationsTable.vue:166 +#: front/src/views/playlists/Detail.vue:33 +msgid "Delete" +msgstr "Borrar" + +#: front/src/views/playlists/Detail.vue:38 +msgid "Delete playlist" +msgstr "Borrar lista de reproducción" + +#: front/src/views/radios/Detail.vue:28 +msgid "Delete radio" +msgstr "Borrar radio" + +#: front/src/components/federation/LibraryFollowTable.vue:52 +#: front/src/components/federation/LibraryFollowTable.vue:63 +msgid "Deny" +msgstr "Rechazar" + +#: front/src/components/federation/LibraryFollowTable.vue:54 +msgid "Deny access?" +msgstr "¿Rechazar el acceso?" + +#: front/src/components/favorites/List.vue:34 +#: front/src/components/federation/LibraryTrackTable.vue:29 +#: front/src/components/library/Artists.vue:26 src/components/library/Radios.vue:47 +#: front/src/components/manage/library/FilesTable.vue:20 +#: front/src/components/manage/library/RequestsTable.vue:20 +#: front/src/components/manage/users/UsersTable.vue:20 +#: front/src/views/federation/LibraryList.vue:29 src/views/playlists/List.vue:28 +msgid "Descending" +msgstr "Descendente" + +#: front/src/components/federation/LibraryCard.vue:50 +msgid "Detail" +msgstr "Detalle" + +#: front/src/views/admin/users/UsersDetail.vue:146 +msgid "Determine if the user account is active or not. Inactive users cannot login or use the service." +msgstr "" +"Determina si la cuenta de usuario es activa o no. Los usuarios inactivos no " +"pueden conectarse ni usar el servicio." + +#: front/src/components/auth/Settings.vue:104 +#: front/src/components/auth/SubsonicTokenForm.vue:52 +msgid "Disable access" +msgstr "Desactivar el acceso" + +#: front/src/components/auth/SubsonicTokenForm.vue:49 +msgid "Disable Subsonic access" +msgstr "Desactivar el acceso Subsonic" + +#: front/src/components/auth/SubsonicTokenForm.vue:50 +msgid "Disable Subsonic API access?" +msgstr "¿Desactivar el acceso de API Subsonic?" + +#: front/src/components/auth/SubsonicTokenForm.vue:14 +msgid "Discover how to use Funkwhale from other apps" +msgstr "Descubrir cómo utilizar Funkwhale desde otras aplicaciones" + +#: front/src/components/library/radios/Builder.vue:26 +msgid "Display publicly" +msgstr "Mostrar públicamente" + +#: front/src/components/playlists/Editor.vue:42 +msgid "Do you want to clear the playlist \"%{ playlist }\"?" +msgstr "¿Quieres vaciar la lista de reproducción \"%{ playlist }\"?" + +#: front/src/components/common/DangerousButton.vue:7 +msgid "Do you want to confirm this action?" +msgstr "¿Quieres confirmar esta acción?" + +#: front/src/views/playlists/Detail.vue:35 +msgid "Do you want to delete the playlist \"%{ playlist }\"?" +msgstr "¿Quieres borrar la lista de reproducción \"%{ playlist }\"?" + +#: front/src/views/radios/Detail.vue:26 +msgid "Do you want to delete the radio \"%{ radio }\"?" +msgstr "¿Quieres borrar la radio \"%{ radio }\"?" + +#: front/src/components/common/ActionTable.vue:29 +msgid "Do you want to launch %{ action } on %{ count } element?" +msgid_plural "Do you want to launch %{ action } on %{ count } elements?" +msgstr[0] "¿Quieres realizar la acción %{ action } en %{ count } elemento?" +msgstr[1] "¿Quieres realizar la acción %{ action } en %{ count } elementos?" + +#: front/src/components/Sidebar.vue:113 +msgid "Do you want to restore your previous queue?" +msgstr "¿Quieres restaurar tu cola de reproducción anterior?" + +#: front/src/App.vue:38 +msgid "Documentation" +msgstr "Documentación" + +#: front/src/components/audio/track/Table.vue:24 src/components/library/Track.vue:48 +msgid "Download" +msgstr "Descargar" + +#: front/src/components/audio/track/Table.vue:27 +msgid "Download tracks" +msgstr "Descargar canciones" + +#: front/src/components/playlists/Editor.vue:49 +msgid "Drag and drop rows to reorder tracks in the playlist" +msgstr "" +"Arrastra y suelta las filas para reordenar canciones en la lista de " +"reproducción" + +#: front/src/components/library/Track.vue:58 +#: front/src/components/manage/library/FilesTable.vue:43 +msgid "Duration" +msgstr "Duración" + +#: front/src/components/Home.vue:96 +msgid "Easy to use" +msgstr "Fácil de usar" + +#: front/src/components/About.vue:21 +msgid "Edit instance info" +msgstr "Editar la información de esta instancia" + +#: front/src/components/radios/Card.vue:20 src/views/playlists/Detail.vue:30 +msgid "Edit..." +msgstr "Editar..." + +#: front/src/components/auth/Signup.vue:29 +#: front/src/components/manage/users/UsersTable.vue:38 +msgid "Email" +msgstr "Correo electrónico" + +#: front/src/views/admin/users/UsersDetail.vue:29 +msgid "Email address" +msgstr "Dirección de correo electrónico" + +#: front/src/views/auth/EmailConfirm.vue:23 +msgid "Email confirmed" +msgstr "Correo electrónico confirmado" + +#: front/src/views/playlists/Detail.vue:29 +msgid "End edition" +msgstr "Terminar la edición" + +#: front/src/components/library/import/FileUpload.vue:4 +msgid "Ensure your music files are properly tagged before uploading them." +msgstr "" +"Asegúrate de que tus archivos de música estén bien etiquetados antes de " +"subirlos." + +#: front/src/components/library/Radios.vue:140 +msgid "Enter a radio name..." +msgstr "Introducir un nombre de radio..." + +#: front/src/components/library/Artists.vue:118 +msgid "Enter an artist name..." +msgstr "Introducir un nombre de artista..." + +#: front/src/views/federation/LibraryList.vue:122 +msgid "Enter an library domain name..." +msgstr "Introducir un nombre de dominio de biblioteca..." + +#: front/src/views/playlists/List.vue:104 +msgid "Enter an playlist name..." +msgstr "Introducir un nombre de lista de reproducción..." + +#: front/src/components/auth/Signup.vue:98 +msgid "Enter your email" +msgstr "Introducir tu correo electrónico" + +#: front/src/components/auth/Signup.vue:96 +msgid "Enter your invitation code (case insensitive)" +msgstr "" +"Introducir tu código de invitación (no distingue mayúsculas de minúsculas)" + +#: front/src/components/metadata/Search.vue:114 +msgid "Enter your search query..." +msgstr "Introducir tu búsqueda..." + +#: front/src/components/auth/Signup.vue:97 +msgid "Enter your username" +msgstr "Introducir tu nombre de usuario" + +#: front/src/components/auth/Login.vue:77 +msgid "Enter your username or email" +msgstr "Introducir tu nombre de usuario o correo electrónico" + +#: front/src/components/auth/SubsonicTokenForm.vue:20 +msgid "Error" +msgstr "Error" + +#: front/src/views/admin/Settings.vue:87 +msgid "Error reporting" +msgstr "Informes de error" + +#: front/src/components/common/ActionTable.vue:75 +msgid "Error while applying action" +msgstr "Error al aplicar la acción" + +#: front/src/views/auth/PasswordReset.vue:7 +msgid "Error while asking for a password reset" +msgstr "Error al pedir restablecimiento de contraseña" + +#: front/src/views/auth/PasswordResetConfirm.vue:7 +msgid "Error while changing your password" +msgstr "Error al cambiar tu contraseña" + +#: front/src/views/auth/EmailConfirm.vue:7 +msgid "Error while confirming your email" +msgstr "Error al confirmar tu correo electrónico" + +#: front/src/components/manage/users/InvitationForm.vue:4 +msgid "Error while creating invitation" +msgstr "Error al crear la invitación" + +#: front/src/components/admin/SettingsGroup.vue:5 +msgid "Error while saving settings" +msgstr "Error al guardar los cambios" + +#: front/src/components/federation/LibraryForm.vue:10 +msgid "Error while scanning library" +msgstr "Error al escanear la biblioteca" + +#: front/src/components/library/import/BatchDetail.vue:41 +#: front/src/components/library/import/BatchDetail.vue:70 +#: front/src/components/library/import/BatchList.vue:15 +msgid "Errored" +msgstr "En error" + +#: front/src/components/playlists/Form.vue:89 +msgid "Everyone" +msgstr "Todo el mundo" + +#: front/src/components/playlists/Form.vue:85 +msgid "Everyone on this instance" +msgstr "Todo el mundo en esta instancia" + +#: front/src/components/library/radios/Builder.vue:57 +msgid "Exclude" +msgstr "Excluir" + +#: front/src/components/discussion/Comment.vue:14 +msgid "Expand" +msgstr "Expandir" + +#: front/src/components/manage/users/InvitationsTable.vue:41 +msgid "Expiration date" +msgstr "Fecha de caducidad" + +#: front/src/components/manage/users/InvitationsTable.vue:50 +msgid "Expired" +msgstr "Caducada" + +#: front/src/components/manage/users/InvitationsTable.vue:21 +msgid "Expired/used" +msgstr "Caducada/usada" + +#: front/src/components/library/import/Main.vue:65 +msgid "External source. Supported backends" +msgstr "Fuente externa. Back-ends soportados" + +#: front/src/components/Sidebar.vue:51 +msgid "Favorites" +msgstr "Favoritos" + +#: front/src/components/federation/LibraryForm.vue:3 +msgid "Federate with a new instance" +msgstr "Federar con una nueva instancia" + +#: front/src/views/federation/LibraryTrackList.vue:21 +msgid "Federated tracks" +msgstr "Canciones federadas" + +#: front/src/components/Sidebar.vue:87 src/components/library/import/BatchList.vue:25 +#: front/src/components/manage/users/UsersTable.vue:180 +#: front/src/views/admin/Settings.vue:84 src/views/admin/users/UsersDetail.vue:161 +#: front/src/views/federation/Base.vue:35 src/views/federation/LibraryDetail.vue:40 +msgid "Federation" +msgstr "Federación" + +#: front/src/views/federation/LibraryDetail.vue:3 +msgid "File mirroring" +msgstr "Replicación de archivos" + +#: front/src/components/library/import/FileUpload.vue:43 +msgid "File name" +msgstr "Nombre del archivo" + +#: front/src/components/library/import/Main.vue:76 +msgid "File upload" +msgstr "Subida de archivo" + +#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21 +msgid "Files" +msgstr "Archivos" + +#: front/src/components/library/import/ArtistImport.vue:7 +msgid "Filter album types" +msgstr "Filtrar tipos de álbum" + +#: front/src/components/library/radios/Builder.vue:56 +msgid "Filter name" +msgstr "Nombre del filtro" + +#: front/src/components/library/import/Main.vue:52 +msgid "Finish import" +msgstr "Terminar importación" + +#: front/src/components/library/import/BatchDetail.vue:54 +msgid "Finished" +msgstr "Terminado" + +#: front/src/components/library/import/Main.vue:59 +msgid "First, choose where you want to import the music from" +msgstr "Para empezar, elige la fuente de importación de la música" + +#: front/src/components/federation/LibraryCard.vue:44 +msgid "Follow" +msgstr "Seguir" + +#: front/src/components/federation/LibraryCard.vue:36 +msgid "Follow request pending approval" +msgstr "Solicitud de seguimiento pendiente de aprobación" + +#: front/src/views/federation/LibraryDetail.vue:21 +msgid "Follow status" +msgstr "Estado de seguimiento" + +#: front/src/views/federation/Base.vue:13 +#: front/src/views/federation/LibraryFollowersList.vue:24 +msgid "Followers" +msgstr "Seguidores" + +#: front/src/components/federation/LibraryCard.vue:18 +msgid "Followers only" +msgstr "Solo seguidorxs" + +#: front/src/components/federation/LibraryCard.vue:15 +#: front/src/views/federation/LibraryDetail.vue:29 +msgid "Following" +msgstr "Siguiendo" + +#: front/src/components/activity/Like.vue:12 src/components/activity/Listen.vue:12 +msgid "from %{ album } by %{ artist }" +msgstr "del álbum %{ album } de %{ artist }" + +#: front/src/components/library/Track.vue:13 +msgid "From album %{ album } by %{ artist }" +msgstr "Del álbum %{ album } de %{ artist }" + +#: front/src/App.vue:56 +msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" +msgstr "" +"Funkwhale es un proyecto gratuito de código fuente libre, gestionado por " +"voluntarixs. Puedes ayudarnos a mejorar el servicio informando de errores, " +"sugiriendo mejoras y compartiendo el proyecto con tus amigxs!" + +#: front/src/components/auth/SubsonicTokenForm.vue:7 +msgid "Funkwhale is compatible with other music players that support the Subsonic API." +msgstr "" +"Funkwhale es compatible con otros reproductores de música que soportan la " +"API Subsonic." + +#: front/src/components/Home.vue:98 +msgid "Funkwhale is dead simple to use." +msgstr "Funkwhale es facilÃsimo de usar." + +#: front/src/components/Home.vue:39 +msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." +msgstr "" +"Funkwhale está diseñado para que sea fácil escuchar la música que te gusta, " +"o descubrir nuevos artistas." + +#: front/src/components/Home.vue:119 +msgid "Funkwhale is free and gives you control on your music." +msgstr "Funkwhale es gratis y te da el control de tu música." + +#: front/src/components/Home.vue:66 +msgid "Funkwhale takes care of handling your music" +msgstr "Funkwhale te ayuda a gestionar tu música" + +#: front/src/components/manage/users/InvitationForm.vue:16 +msgid "Get a new invitation" +msgstr "Obtener una nueva invitación" + +#: front/src/components/Home.vue:13 +msgid "Get me to the library" +msgstr "Llévame a la biblioteca" + +#: front/src/components/Home.vue:77 +msgid "" +"Get quality metadata about your music thanks to\n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>" +msgstr "" + +#: front/src/components/common/ActionTable.vue:21 +#: front/src/components/common/ActionTable.vue:27 +msgid "Go" +msgstr "Ir" + +#: front/src/components/PageNotFound.vue:14 +msgid "Go to home page" +msgstr "Ir a la página principal" + +#: front/src/components/library/import/Main.vue:13 +msgid "Grab corresponding metadata" +msgstr "Captar metadatos correspondientes" + +#: front/src/App.vue:74 +msgid "Help us translate Funkwhale" +msgstr "Ayúdanos a traducir Funkwhale" + +#: front/src/components/library/Home.vue:65 +msgid "Home" +msgstr "Inicio" + +#: front/src/components/instance/Stats.vue:36 +msgid "Hours of music" +msgstr "Horas de música" + +#: front/src/components/auth/SubsonicTokenForm.vue:11 +msgid "However, accessing Funkwhale from those clients require a separate password you can set below." +msgstr "" +"Sin embargo, acceder a Funkwhale desde estos clientes requiere una " +"contraseña distinta que podrás configurar a continuación." + +#: front/src/components/library/import/BatchList.vue:34 +msgid "ID" +msgstr "ID" + +#: front/src/views/auth/PasswordResetConfirm.vue:24 +msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." +msgstr "" +"Si la dirección de correo electrónico proporcionada en el paso anterior es " +"válida y asociada a una cuenta de usuarix, deberÃas recibir un correo " +"electrónico con las instrucciones de restablecimiento dentro de unos minutos." + +#: front/src/components/federation/LibraryTrackTable.vue:196 +#: front/src/components/library/Library.vue:17 +msgid "Import" +msgstr "Importación" + +#: front/src/components/federation/LibraryTrackTable.vue:57 +msgid "Import #%{ id } launched" +msgstr "Importación #%{ id } iniciada" + +#: front/src/components/library/import/Main.vue:38 +msgid "Import %{ count } track" +msgid_plural "Import %{ count } tracks" +msgstr[0] "Importar %{ count } canción" +msgstr[1] "Importar %{ count } canciones" + +#: front/src/components/library/import/BatchDetail.vue:10 +msgid "Import batch" +msgstr "Lote de importación" + +#: front/src/components/library/import/BatchDetail.vue:185 +msgid "Import Batch #%{ id }" +msgstr "Lote de importación #%{ id }" + +#: front/src/components/library/Library.vue:20 +msgid "Import batches" +msgstr "Lotes de importación" + +#: front/src/components/library/import/BatchList.vue:117 +msgid "Import Batches" +msgstr "Lotes de importación" + +#: front/src/components/manage/library/FilesTable.vue:40 +#: front/src/components/manage/library/RequestsTable.vue:53 +msgid "Import date" +msgstr "Fecha de importación" + +#: front/src/components/library/import/FileUpload.vue:38 +msgid "Import detail page" +msgstr "Página de detalles de importación" + +#: front/src/components/Sidebar.vue:81 +msgid "Import music" +msgstr "Importar música" + +#: front/src/components/library/import/Main.vue:267 +msgid "Import Music" +msgstr "Importar música" + +#: front/src/components/Home.vue:71 +msgid "Import music from various platforms, such as YouTube or SoundCloud" +msgstr "Importa música desde otras plataformas, como YouTube o SoundCloud" + +#: front/src/components/federation/LibraryTrackTable.vue:14 +#: front/src/components/federation/LibraryTrackTable.vue:66 +msgid "Import pending" +msgstr "Importación pendiente" + +#: front/src/views/admin/library/Base.vue:9 +#: front/src/views/admin/library/RequestsList.vue:3 +#: front/src/views/admin/library/RequestsList.vue:21 +msgid "Import requests" +msgstr "Solicitudes de importación" + +#: front/src/components/library/import/BatchList.vue:20 +#: front/src/components/library/import/Main.vue:6 +msgid "Import source" +msgstr "Fuente de la importación" + +#: front/src/components/federation/LibraryTrackTable.vue:9 +msgid "Import status" +msgstr "Estado de la importación" + +#: front/src/components/library/import/ReleaseImport.vue:14 +msgid "Import this release" +msgstr "Importar este álbum" + +#: front/src/components/library/import/TrackImport.vue:11 +msgid "Import this track" +msgstr "Importar esta canción" + +#: front/src/components/federation/LibraryTrackTable.vue:12 +#: front/src/components/manage/library/RequestsTable.vue:29 +#: front/src/components/manage/library/RequestsTable.vue:61 +msgid "Imported" +msgstr "Importado" + +#: front/src/components/library/import/TrackImport.vue:44 +msgid "Imported URL" +msgstr "URL importada" + +#: front/src/views/admin/Settings.vue:82 +msgid "Imports" +msgstr "Importaciones" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:3 +msgid "In favorites" +msgstr "En favoritos" + +#: front/src/components/federation/LibraryTrackTable.vue:65 +msgid "In library" +msgstr "En biblioteca" + +#: front/src/components/manage/users/UsersTable.vue:54 +msgid "Inactive" +msgstr "Inactivo" + +#: front/src/components/library/import/Main.vue:96 +msgid "Input a MusicBrainz ID manually:" +msgstr "Introducir ID MusicBrainz de forma manual:" + +#: front/src/views/auth/PasswordReset.vue:53 +msgid "Input the email address binded to your account" +msgstr "Introducir la dirección de correo electrónico asociada a tu cuenta" + +#: front/src/components/playlists/Editor.vue:31 +msgid "Insert from queue (%{ count } track)" +msgid_plural "Insert from queue (%{ count } tracks)" +msgstr[0] "" +msgstr[1] "" + +#: front/src/views/admin/Settings.vue:80 +msgid "Instance information" +msgstr "Información de esta instancia" + +#: front/src/components/library/Radios.vue:9 +msgid "Instance radios" +msgstr "Radios de la instancia" + +#: front/src/views/admin/Settings.vue:75 +msgid "Instance settings" +msgstr "Ajustes de la instancia" + +#: front/src/views/instance/Timeline.vue:57 +msgid "Instance Timeline" +msgstr "Linea de tiempo de la instancia" + +#: front/src/components/auth/Signup.vue:42 +#: front/src/components/manage/users/InvitationForm.vue:11 +msgid "Invitation code" +msgstr "Código de invitación" + +#: front/src/components/auth/Signup.vue:43 +msgid "Invitation code (optional)" +msgstr "Código de invitación (opcional)" + +#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3 +#: front/src/views/admin/users/InvitationsList.vue:24 +msgid "Invitations" +msgstr "Invitaciones" + +#: front/src/App.vue:43 +msgid "Issue tracker" +msgstr "Sistema de seguimiento de incidentes" + +#: front/src/components/library/import/BatchDetail.vue:80 +msgid "Job ID" +msgstr "ID de la tarea" + +#: front/src/components/library/import/BatchList.vue:36 +msgid "Jobs" +msgstr "Tareas" + +#: front/src/components/Home.vue:50 +msgid "Keep a track of your favorite songs" +msgstr "Apunta tus canciones favoritas" + +#: front/src/components/audio/track/Table.vue:33 +msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." +msgstr "" +"Mantén tu PRIVATE_TOKEN en secreto ya que permite el acceso a tu cuenta." + +#: front/src/components/manage/users/UsersTable.vue:41 +#: front/src/views/admin/users/UsersDetail.vue:45 +msgid "Last activity" +msgstr "Última actividad" + +#: front/src/views/federation/LibraryDetail.vue:101 +msgid "Last fetched" +msgstr "Última recuperación" + +#: front/src/components/playlists/PlaylistModal.vue:32 +msgid "Last modification" +msgstr "Última modificación" + +#: front/src/components/common/ActionTable.vue:39 +msgid "Launch" +msgstr "Iniciar" + +#: front/src/components/library/import/BatchDetail.vue:18 +#: front/src/components/library/import/BatchList.vue:35 +msgid "Launch date" +msgstr "Fecha de inicio" + +#: front/src/components/federation/LibraryForm.vue:31 +msgid "Launch scan" +msgstr "Iniciar escaneado" + +#: front/src/components/Home.vue:10 +msgid "Learn more about this instance" +msgstr "Aprender más acerca de esta instancia" + +#: front/src/components/manage/users/InvitationForm.vue:58 +msgid "Leave empty for a random code" +msgstr "Dejar en blanco para un código aleatorio" + +#: front/src/components/requests/Form.vue:10 +msgid "Leave this field empty if you're requesting the whole discography." +msgstr "Deja este campo en blanco si estás pidiendo la discografÃa completa." + +#: front/src/views/federation/Base.vue:5 src/views/federation/LibraryList.vue:123 +msgid "Libraries" +msgstr "Bibliotecas" + +#: front/src/components/Sidebar.vue:70 +#: front/src/components/federation/LibraryTrackTable.vue:51 +#: front/src/components/instance/Stats.vue:30 +#: front/src/components/manage/users/UsersTable.vue:176 +#: front/src/views/admin/users/UsersDetail.vue:157 +#: front/src/views/federation/LibraryDetail.vue:194 +msgid "Library" +msgstr "Biblioteca" + +#: front/src/views/admin/library/FilesList.vue:3 +msgid "Library files" +msgstr "Archivos de biblioteca" + +#: front/src/components/federation/LibraryForm.vue:20 +msgid "Library name" +msgstr "Nombre de biblioteca" + +#: front/src/views/federation/LibraryDetail.vue:84 +msgid "Library size" +msgstr "Tamaño de biblioteca" + +#: front/src/components/federation/LibraryForm.vue:96 +msgid "library@demo.funkwhale.audio" +msgstr "library@demo.funkwhale.audio" + +#: front/src/App.vue:29 +msgid "Links" +msgstr "Enlaces" + +#: front/src/views/instance/Timeline.vue:4 +msgid "Loading timeline..." +msgstr "Cargando linea de tiempo…" + +#: front/src/components/favorites/List.vue:5 +msgid "Loading your favorites..." +msgstr "Cargando tus favoritos…" + +#: front/src/components/auth/Login.vue:78 +msgid "Log In" +msgstr "Iniciar sesión" + +#: front/src/components/auth/Login.vue:4 +msgid "Log in to your Funkwhale account" +msgstr "Iniciar sesión con tu cuenta de Funkwhale" + +#: front/src/components/auth/Logout.vue:20 +msgid "Log Out" +msgstr "Cerrar sesión" + +#: front/src/components/Sidebar.vue:38 +msgid "Logged in as %{ username }" +msgstr "Sesión iniciada como %{ username }" + +#: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 +msgid "Login" +msgstr "Iniciar sesión" + +#: front/src/components/Sidebar.vue:43 +msgid "Logout" +msgstr "Cerrar sesión" + +#: front/src/components/audio/Player.vue:266 +msgid "Looping disabled. Click to switch to single-track looping." +msgstr "" +"Bucle deshabilitado. Pulsa para cambiar a reproducción en bucle de la " +"canción actual." + +#: front/src/components/audio/Player.vue:267 +msgid "Looping on a single track. Click to switch to whole queue looping." +msgstr "" +"Bucle de la canción actual. Pulsa para cambiar a la reproducción en bucle de " +"la cola de reproducción entera." + +#: front/src/components/audio/Player.vue:268 +msgid "Looping on whole queue. Click to disable looping." +msgstr "" +"Bucle de la cola de reproducción entera. Pulsa para desactivar la " +"reproducción en bucle." + +#: front/src/components/library/Track.vue:94 +msgid "Lyrics" +msgstr "Letras" + +#: front/src/views/admin/library/Base.vue:25 +msgid "Manage library" +msgstr "Gestionar biblioteca" + +#: front/src/components/playlists/PlaylistModal.vue:3 +msgid "Manage playlists" +msgstr "Gestionar listas de reproducción" + +#: front/src/views/admin/users/Base.vue:20 +msgid "Manage users" +msgstr "Gestionar usuarixs" + +#: front/src/views/playlists/List.vue:8 +msgid "Manage your playlists" +msgstr "Gestionar tus listas de reproducción" + +#: front/src/components/manage/library/RequestsTable.vue:197 +msgid "Mark as closed" +msgstr "Marcar como cerrado" + +#: front/src/components/manage/library/RequestsTable.vue:196 +msgid "Mark as imported" +msgstr "Marcar como importado" + +#: front/src/components/library/import/Main.vue:12 +msgid "Metadata" +msgstr "Metadatos" + +#: front/src/components/library/import/Main.vue:115 +msgid "" +"Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>\n" +" project, which you can think about as the Wikipedia of music." +msgstr "" +"Los metadatos son los datos relacionados a la música que quieres importar. " +"Incluyen toda la información de los artistas, álbumes y canciones. Para " +"conseguir una biblioteca de calidad, es recomendado usar los metadatos del " +"proyecto \n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>\n" +" , una base de datos parecida a Wikipedia, pero para la música." + +#: front/src/components/Sidebar.vue:48 src/components/library/import/Main.vue:18 +msgid "Music" +msgstr "Música" + +#: front/src/components/library/import/Main.vue:147 +msgid "Music request" +msgstr "Solicitud de música" + +#: front/src/components/audio/Player.vue:265 +msgid "Mute" +msgstr "Silencio" + +#: front/src/components/Sidebar.vue:34 +msgid "My account" +msgstr "Mi cuenta" + +#: front/src/components/playlists/Form.vue:74 +msgid "My awesome playlist" +msgstr "Mi lista de reproducción molona" + +#: front/src/components/library/radios/Builder.vue:227 +msgid "My awesome radio" +msgstr "Mi radio molona" + +#: front/src/components/library/Track.vue:64 src/components/library/Track.vue:75 +#: front/src/components/library/Track.vue:86 +#: front/src/components/manage/library/FilesTable.vue:63 +#: front/src/components/manage/library/FilesTable.vue:69 +#: front/src/components/manage/library/FilesTable.vue:75 +#: front/src/components/manage/library/FilesTable.vue:81 +#: front/src/components/manage/library/RequestsTable.vue:71 +#: front/src/components/manage/library/RequestsTable.vue:75 +#: front/src/components/manage/library/RequestsTable.vue:82 +#: front/src/components/manage/users/UsersTable.vue:61 +#: front/src/views/admin/users/UsersDetail.vue:49 +msgid "N/A" +msgstr "N/A" + +#: front/src/components/playlists/PlaylistModal.vue:31 +#: front/src/views/admin/users/UsersDetail.vue:21 +msgid "Name" +msgstr "Nombre" + +#: front/src/components/auth/Settings.vue:88 +#: front/src/views/auth/PasswordResetConfirm.vue:14 +msgid "New password" +msgstr "Nueva contraseña" + +#: front/src/components/Sidebar.vue:158 +msgid "New tracks will be appended here automatically." +msgstr "Las nuevas canciones se agregarán aquà de forma automática." + +#: front/src/components/library/import/Main.vue:29 +msgid "Next step" +msgstr "Próximo paso" + +#: front/src/components/audio/Player.vue:263 +msgid "Next track" +msgstr "Próxima canción" + +#: front/src/components/Sidebar.vue:125 +msgid "No" +msgstr "No" + +#: front/src/components/Home.vue:103 +msgid "No add-ons, no plugins : you only need a web library" +msgstr "Sin complementos, sin extensiones : basta con una biblioteca en la web" + +#: front/src/components/library/Track.vue:102 +msgid "No lyrics available for this track." +msgstr "No hay letra disponible para esta canción." + +#: front/src/components/playlists/Form.vue:81 +msgid "Nobody except me" +msgstr "Solo yo" + +#: front/src/views/federation/LibraryDetail.vue:32 +msgid "Not following" +msgstr "No siguiendo" + +#: front/src/components/federation/LibraryTrackTable.vue:13 +#: front/src/components/federation/LibraryTrackTable.vue:67 +msgid "Not imported" +msgstr "No importado" + +#: front/src/components/manage/users/InvitationsTable.vue:51 +msgid "Not used" +msgstr "No usado" + +#: front/src/App.vue:37 +msgid "Official website" +msgstr "Página oficial" + +#: front/src/components/auth/Settings.vue:83 +msgid "Old password" +msgstr "Antigua contraseña" + +#: front/src/components/library/import/FileUpload.vue:36 +msgid "Once all your files are uploaded, simply click the following button to check the import status." +msgstr "" +"Una vez que todos tus archivos estén subidos, pulsa el siguiente botón para " +"comprobar el estado de la importación." + +#: front/src/components/federation/LibraryCard.vue:21 +#: front/src/components/manage/users/InvitationsTable.vue:20 +msgid "Open" +msgstr "Abierta" + +#: front/src/App.vue:63 +msgid "Options" +msgstr "Opciones" + +#: front/src/components/library/import/Main.vue:93 +msgid "Or" +msgstr "O" + +#: front/src/components/favorites/List.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:18 +#: front/src/components/library/Artists.vue:15 src/components/library/Radios.vue:33 +#: front/src/components/manage/library/FilesTable.vue:9 +#: front/src/components/manage/library/RequestsTable.vue:9 +#: front/src/components/manage/users/InvitationsTable.vue:9 +#: front/src/components/manage/users/UsersTable.vue:9 +#: front/src/views/federation/LibraryList.vue:18 src/views/playlists/List.vue:17 +msgid "Ordering" +msgstr "Orden" + +#: front/src/components/favorites/List.vue:31 +#: front/src/components/federation/LibraryTrackTable.vue:26 +#: front/src/components/library/Artists.vue:23 src/components/library/Radios.vue:41 +#: front/src/components/manage/library/FilesTable.vue:17 +#: front/src/components/manage/library/RequestsTable.vue:17 +#: front/src/components/manage/users/UsersTable.vue:17 +#: front/src/views/federation/LibraryList.vue:26 src/views/playlists/List.vue:25 +msgid "Ordering direction" +msgstr "Dirección del orden" + +#: front/src/components/manage/users/InvitationsTable.vue:38 +msgid "Owner" +msgstr "Propietario" + +#: front/src/components/PageNotFound.vue:33 +msgid "Page Not Found" +msgstr "Página no encontrada" + +#: front/src/components/PageNotFound.vue:7 +msgid "Page not found!" +msgstr "¡Página no encontrada!" + +#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 +msgid "Password" +msgstr "Contraseña" + +#: front/src/components/auth/SubsonicTokenForm.vue:95 +msgid "Password updated" +msgstr "Contraseña actualizada" + +#: front/src/views/auth/PasswordResetConfirm.vue:28 +msgid "Password updated successfully" +msgstr "Contraseña actualizada con éxito" + +#: front/src/components/audio/Player.vue:262 +msgid "Pause track" +msgstr "Pausar la canción" + +#: front/src/components/federation/LibraryFollowTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:33 +#: front/src/components/library/import/BatchDetail.vue:69 +#: front/src/components/library/import/BatchList.vue:14 +#: front/src/components/library/import/FileUpload.vue:59 +#: front/src/components/manage/library/RequestsTable.vue:27 +#: front/src/components/manage/library/RequestsTable.vue:63 +msgid "Pending" +msgstr "En espera" + +#: front/src/components/federation/LibraryFollowTable.vue:11 +#: front/src/views/federation/LibraryDetail.vue:26 +msgid "Pending approval" +msgstr "Aprobación pendiente" + +#: front/src/components/Sidebar.vue:217 +msgid "Pending follow requests" +msgstr "Solicitudes de seguimiento pendientes" + +#: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 +msgid "Pending import requests" +msgstr "Solicitudes de importación pendientes" + +#: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 +msgid "Pending requests" +msgstr "Solicitudes pendientes" + +#: front/src/components/manage/users/UsersTable.vue:42 +#: front/src/views/admin/users/UsersDetail.vue:68 +msgid "Permissions" +msgstr "Permisos" + +#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30 +msgid "Play" +msgstr "Reproducir" + +#: front/src/components/audio/album/Card.vue:50 +#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28 +#: front/src/views/playlists/Detail.vue:23 +msgid "Play all" +msgstr "Reproducir todo" + +#: front/src/components/library/Artist.vue:26 +msgid "Play all albums" +msgstr "Reproducir todos los álbumes" + +#: front/src/components/audio/PlayButton.vue:58 +msgid "Play immediatly" +msgstr "Reproducir inmediatamente" + +#: front/src/components/audio/PlayButton.vue:15 +msgid "Play next" +msgstr "Reproducir siguiente" + +#: front/src/components/audio/PlayButton.vue:16 +msgid "Play now" +msgstr "Reproducir ahora" + +#: front/src/components/audio/Player.vue:261 +msgid "Play track" +msgstr "Reproducir canción" + +#: front/src/views/playlists/Detail.vue:90 +msgid "Playlist" +msgstr "Lista de reproducción" + +#: front/src/views/playlists/Detail.vue:12 +msgid "Playlist containing %{ count } track, by %{ username }" +msgid_plural "Playlist containing %{ count } tracks, by %{ username }" +msgstr[0] "Lista de reproducción con %{ count } canción, de %{ username }" +msgstr[1] "Lista de reproducción con %{ count } canciones, de %{ username }" + +#: front/src/components/playlists/Form.vue:9 +msgid "Playlist created" +msgstr "Lista de reproducción creada" + +#: front/src/components/playlists/Editor.vue:4 +msgid "Playlist editor" +msgstr "Editor de listas de reproducción" + +#: front/src/components/playlists/Form.vue:21 +msgid "Playlist name" +msgstr "Nombre de lista de reproducción" + +#: front/src/components/playlists/Form.vue:6 +msgid "Playlist updated" +msgstr "Lista de reproducción actualizada" + +#: front/src/components/playlists/Form.vue:25 +msgid "Playlist visibility" +msgstr "Visibilidad de lista de reproducción" + +#: front/src/components/Sidebar.vue:56 src/components/library/Home.vue:16 +#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83 +#: front/src/views/playlists/List.vue:103 +msgid "Playlists" +msgstr "Listas de reproducción" + +#: front/src/components/Home.vue:56 +msgid "Playlists? We got them" +msgstr "¿Listas de reproducción? Las tenemos" + +#: front/src/components/auth/Settings.vue:79 +msgid "Please double-check your password is correct" +msgstr "Por favor, comprueba que tu contraseña es correcta" + +#: front/src/components/auth/Login.vue:9 +msgid "Please double-check your username/password couple is correct" +msgstr "" +"Por favor, comprueba que tu nombre de usuarix y contraseña son correctos" + +#: front/src/components/auth/Settings.vue:46 +msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." +msgstr "PNG, GIF o JPG. Máximo de 2MB. La imagen será reducida a 400x400px." + +#: front/src/components/library/import/Main.vue:26 +msgid "Previous step" +msgstr "Paso anterior" + +#: front/src/components/audio/Player.vue:260 +msgid "Previous track" +msgstr "Canción anterior" + +#: front/src/views/auth/EmailConfirm.vue:26 +#: front/src/views/auth/PasswordResetConfirm.vue:31 +msgid "Proceed to login" +msgstr "Proceder a inicio de sesión" + +#: front/src/components/federation/LibraryTrackTable.vue:50 +msgid "Published date" +msgstr "Fecha de publicación" + +#: front/src/components/library/import/ArtistImport.vue:17 +msgid "Query template" +msgstr "Plantilla de consulta" + +#: front/src/components/Sidebar.vue:20 +msgid "Queue" +msgstr "Cola de reproducción" + +#: front/src/components/audio/Player.vue:203 +msgid "Queue shuffled!" +msgstr "¡Cola de reproducción mezclada!" + +#: front/src/views/radios/Detail.vue:80 +msgid "Radio" +msgstr "Radio" + +#: front/src/components/library/radios/Builder.vue:226 +msgid "Radio Builder" +msgstr "Editor de radio" + +#: front/src/components/library/radios/Builder.vue:15 +msgid "Radio created" +msgstr "Radio creada" + +#: front/src/components/library/radios/Builder.vue:21 +msgid "Radio name" +msgstr "Nombre de la radio" + +#: front/src/components/library/radios/Builder.vue:12 +msgid "Radio updated" +msgstr "Radio actualizada" + +#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:141 +msgid "Radios" +msgstr "Radios" + +#: front/src/views/instance/Timeline.vue:7 +msgid "Recent activity on this instance" +msgstr "Actividad reciente en esta instancia" + +#: front/src/components/library/Home.vue:24 +msgid "Recently added" +msgstr "Añadidos recientemente" + +#: front/src/components/library/Home.vue:11 +msgid "Recently favorited" +msgstr "Añadidos a favoritos recientemente" + +#: front/src/components/library/Home.vue:6 +msgid "Recently listened" +msgstr "Escuchados recientemente" + +#: front/src/components/library/import/BatchDetail.vue:81 +msgid "Recording MusicBrainz ID" +msgstr "" + +#: front/src/views/admin/users/UsersDetail.vue:84 +#: front/src/views/federation/LibraryDetail.vue:122 +msgid "Refresh" +msgstr "Recargar" + +#: front/src/components/federation/LibraryFollowTable.vue:42 +msgid "Refused" +msgstr "Rechazado" + +#: front/src/components/auth/Profile.vue:12 +msgid "Registered since %{ date }" +msgstr "Inscritx desde %{ date }" + +#: front/src/components/auth/Signup.vue:9 +msgid "Registration are closed on this instance, you will need an invitation code to signup." +msgstr "" +"La inscripción a esta instancia está cerrada, necesitarás un código de " +"invitación para inscribirte." + +#: front/src/components/manage/users/UsersTable.vue:71 +msgid "regular user" +msgstr "Usuarix estándar" + +#: front/src/components/library/radios/Filter.vue:59 +msgid "Remove" +msgstr "Quitar" + +#: front/src/components/auth/Settings.vue:58 +msgid "Remove avatar" +msgstr "Quitar avatar" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:19 +msgid "Remove from favorites" +msgstr "Quitar de favoritos" + +#: front/src/components/auth/SubsonicTokenForm.vue:34 +#: front/src/components/auth/SubsonicTokenForm.vue:37 +msgid "Request a new password" +msgstr "Solicitar una nueva contraseña" + +#: front/src/components/auth/SubsonicTokenForm.vue:35 +msgid "Request a new Subsonic API password?" +msgstr "¿Solicitar una nueva contraseña de la API Subsonic?" + +#: front/src/components/auth/SubsonicTokenForm.vue:43 +msgid "Request a password" +msgstr "Solicitar una contraseña" + +#: front/src/App.vue:35 +msgid "Request music" +msgstr "Solicitar música" + +#: front/src/views/library/MusicRequest.vue:4 src/views/library/MusicRequest.vue:21 +msgid "Request some music" +msgstr "Solicitar música" + +#: front/src/components/requests/Form.vue:20 +msgid "Request submitted!" +msgstr "¡Solicitud enviada!" + +#: front/src/components/library/import/BatchDetail.vue:49 +msgid "Rerun errored jobs" +msgstr "Reiniciar las tareas con errores" + +#: front/src/components/library/import/BatchDetail.vue:187 +msgid "Rerun job" +msgstr "Reiniciar tarea" + +#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4 +#: front/src/views/auth/PasswordReset.vue:52 +msgid "Reset your password" +msgstr "Restablecer tu contraseña" + +#: front/src/components/library/import/TrackImport.vue:31 +msgid "Result %{ current }/%{ total }" +msgstr "Resultado %{ current }/%{ total }" + +#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30 +#: front/src/components/library/Radios.vue:52 src/views/federation/LibraryList.vue:33 +#: front/src/views/playlists/List.vue:32 +msgid "Results per page" +msgstr "Resultados por página" + +#: front/src/components/admin/SettingsGroup.vue:63 +#: front/src/components/library/radios/Builder.vue:29 +msgid "Save" +msgstr "Guardar" + +#: front/src/views/federation/LibraryDetail.vue:112 +msgid "Scan triggered!" +msgstr "Escaneo iniciado!" + +#: front/src/components/federation/LibraryTrackTable.vue:5 +#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29 +#: front/src/components/library/import/BatchDetail.vue:62 +#: front/src/components/library/import/BatchList.vue:7 +#: front/src/components/manage/library/FilesTable.vue:5 +#: front/src/components/manage/library/RequestsTable.vue:5 +#: front/src/components/manage/users/InvitationsTable.vue:5 +#: front/src/components/manage/users/UsersTable.vue:5 +#: front/src/views/federation/LibraryList.vue:14 src/views/playlists/List.vue:13 +msgid "Search" +msgstr "Buscar" + +#: front/src/components/library/import/Main.vue:85 +msgid "Search an entity you want to import:" +msgstr "Buscar una entidad que te gustarÃa importar:" + +#: front/src/components/manage/library/RequestsTable.vue:180 +msgid "Search by artist, username, comment..." +msgstr "Buscar por artista, nombre de usuarix, comentario…" + +#: front/src/components/library/import/BatchDetail.vue:188 +msgid "Search by source..." +msgstr "Buscar por fuente…" + +#: front/src/components/library/import/BatchList.vue:116 +msgid "Search by submitter, source..." +msgstr "Buscar por remitente, fuente…" + +#: front/src/components/federation/LibraryTrackTable.vue:182 +#: front/src/components/manage/library/FilesTable.vue:175 +msgid "Search by title, artist, domain..." +msgstr "Buscar por tÃtulo, artista, dominio…" + +#: front/src/components/federation/LibraryFollowTable.vue:140 +msgid "Search by username, domain..." +msgstr "Buscar por nombre de usuarix, dominio…" + +#: front/src/components/manage/users/InvitationsTable.vue:152 +msgid "Search by username, email, code..." +msgstr "Buscar por nombre de usuarix, dirección de correo electrónico, código…" + +#: front/src/components/manage/users/UsersTable.vue:162 +msgid "Search by username, email, name..." +msgstr "Buscar por nombre de usuarix, dirrección de correo electrónico, nombre…" + +#: front/src/components/audio/SearchBar.vue:20 +msgid "Search for artists, albums, tracks..." +msgstr "Buscar artistas, álbumes, canciones…" + +#: front/src/components/audio/Search.vue:2 +msgid "Search for some music" +msgstr "Buscar música" + +#: front/src/components/library/Track.vue:105 +msgid "Search on lyrics.wikia.com" +msgstr "Buscar en lyrics.wikia.com" + +#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31 +#: front/src/components/library/Track.vue:40 +msgid "Search on Wikipedia" +msgstr "Buscar en Wikipedia" + +#: front/src/components/library/import/TrackImport.vue:42 +msgid "Search query" +msgstr "Búsqueda" + +#: front/src/views/admin/Settings.vue:15 +msgid "Sections" +msgstr "Secciones" + +#: front/src/components/library/radios/Builder.vue:41 +msgid "Select a filter" +msgstr "Seleccionar un filtro" + +#: front/src/components/common/ActionTable.vue:61 +msgid "Select all %{ total } elements" +msgid_plural "Select all %{ total } elements" +msgstr[0] "Seleccionar %{ total } elemento" +msgstr[1] "Seleccionar los %{ total } elementos" + +#: front/src/components/library/import/FileUpload.vue:22 +msgid "Select files to upload..." +msgstr "Seleccionar archivos para subir…" + +#: front/src/components/common/ActionTable.vue:69 +msgid "Select only current page" +msgstr "Seleccionar solo la página actual" + +#: front/src/components/library/import/Main.vue:19 +msgid "Select relevant sources or files for import" +msgstr "Seleccionar las fuentes o archivos para importar" + +#: front/src/components/federation/LibraryCard.vue:43 +msgid "Send a follow request" +msgstr "Enviar una solicitud de seguimiento" + +#: front/src/components/Sidebar.vue:97 src/components/manage/users/UsersTable.vue:184 +#: front/src/views/admin/users/UsersDetail.vue:165 +msgid "Settings" +msgstr "Ajustes" + +#: front/src/components/auth/Settings.vue:10 +msgid "Settings updated" +msgstr "Ajustes actualizados" + +#: front/src/components/admin/SettingsGroup.vue:11 +msgid "Settings updated successfully." +msgstr "Ajustes actualizados con éxito." + +#: front/src/components/auth/Profile.vue:24 +msgid "Settings..." +msgstr "Ajustes…" + +#: front/src/components/manage/users/InvitationForm.vue:27 +msgid "Share link" +msgstr "Compartir enlace" + +#: front/src/components/audio/artist/Card.vue:30 +msgid "Show 1 more album" +msgid_plural "Show %{ count } more albums" +msgstr[0] "Mostrar 1 álbum adicional" +msgstr[1] "Mostrar %{ count } álbumes adicionales" + +#: front/src/components/audio/album/Card.vue:40 +msgid "Show 1 more track" +msgid_plural "Show %{ count } more tracks" +msgstr[0] "Mostrar 1 canción adicional" +msgstr[1] "Mostrar %{ count } canciones adicionales" + +#: front/src/components/forms/PasswordInput.vue:25 +msgid "Show/hide password" +msgstr "Mostrar/ocultar contraseña" + +#: front/src/components/federation/LibraryFollowTable.vue:97 +#: front/src/components/federation/LibraryTrackTable.vue:98 +#: front/src/components/library/import/BatchDetail.vue:128 +#: front/src/components/library/import/BatchList.vue:73 +#: front/src/components/manage/library/FilesTable.vue:97 +#: front/src/components/manage/library/RequestsTable.vue:104 +#: front/src/components/manage/users/InvitationsTable.vue:76 +#: front/src/components/manage/users/UsersTable.vue:87 +msgid "Showing results %{ start }-%{ end } on %{ total }" +msgstr "Mostrando resultados %{ start }-%{ end } de %{ total }" + +#: front/src/components/audio/Player.vue:269 +msgid "Shuffle your queue" +msgstr "Mezclar tu cola de reproducción" + +#: front/src/components/auth/Signup.vue:95 +msgid "Sign Up" +msgstr "Inscripción" + +#: front/src/components/manage/users/UsersTable.vue:40 +#: front/src/views/admin/users/UsersDetail.vue:37 +msgid "Sign-up" +msgstr "Inscripción" + +#: front/src/components/audio/track/Table.vue:31 +msgid "Simply copy paste the snippet below into a terminal to launch the download." +msgstr "Copia y pega el texto de abajo en un terminal para iniciar la descarga." + +#: front/src/components/library/Track.vue:69 +#: front/src/components/library/import/FileUpload.vue:44 +#: front/src/components/manage/library/FilesTable.vue:44 +msgid "Size" +msgstr "Tamaño" + +#: front/src/components/library/import/BatchDetail.vue:37 +#: front/src/components/library/import/BatchDetail.vue:72 +msgid "Skipped" +msgstr "Omitido" + +#: front/src/components/requests/Form.vue:3 +msgid "Something's missing in the library? Let us know what you would like to listen!" +msgstr "¿Falta algo en la biblioteca? Dinos lo que te gustarÃa escuchar!" + +#: front/src/components/audio/Search.vue:25 +msgid "Sorry, we did not found any album matching your query" +msgstr "" +"Lo sentimos, no hemos encontrado ningún álbum que corresponda con tu búsqueda" + +#: front/src/components/audio/Search.vue:16 +msgid "Sorry, we did not found any artist matching your query" +msgstr "" +"Lo sentimos, no hemos encontrado ningún artista que corresponda con tu " +"búsqueda" + +#: front/src/components/library/import/BatchDetail.vue:82 +#: front/src/components/library/import/BatchList.vue:38 +#: front/src/components/library/import/TrackImport.vue:17 +msgid "Source" +msgstr "Fuente" + +#: front/src/App.vue:41 +msgid "Source code" +msgstr "Código fuente" + +#: front/src/App.vue:40 +msgid "Source code (%{version})" +msgstr "Código fuente (%{version})" + +#: front/src/components/auth/Profile.vue:20 +#: front/src/components/manage/users/UsersTable.vue:70 +msgid "Staff member" +msgstr "Miembro del equipo" + +#: front/src/components/radios/Button.vue:4 +msgid "Start" +msgstr "Iniciar" + +#: front/src/components/library/import/FileUpload.vue:28 +msgid "Start Upload" +msgstr "Iniciar subida" + +#: front/src/views/admin/Settings.vue:86 +msgid "Statistics" +msgstr "EstadÃsticas" + +#: front/src/components/federation/LibraryFollowTable.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:66 +#: front/src/components/library/import/BatchDetail.vue:83 +#: front/src/components/library/import/BatchList.vue:11 +#: front/src/components/library/import/BatchList.vue:37 +#: front/src/components/library/import/FileUpload.vue:45 +#: front/src/components/manage/library/RequestsTable.vue:24 +#: front/src/components/manage/library/RequestsTable.vue:48 +#: front/src/components/manage/users/InvitationsTable.vue:17 +#: front/src/components/manage/users/InvitationsTable.vue:39 +#: front/src/components/manage/users/UsersTable.vue:43 +msgid "Status" +msgstr "Estado" + +#: front/src/components/radios/Button.vue:3 +msgid "Stop" +msgstr "Parar" + +#: front/src/components/Sidebar.vue:159 +msgid "Stop radio" +msgstr "Parar radio" + +#: front/src/components/library/import/FileUpload.vue:32 +msgid "Stop Upload" +msgstr "Parar subida" + +#: front/src/App.vue:9 src/components/requests/Form.vue:17 +msgid "Submit" +msgstr "Enviar" + +#: front/src/components/requests/Form.vue:22 +msgid "Submit another request" +msgstr "Enviar otra solicitud" + +#: front/src/components/library/import/BatchDetail.vue:26 +#: front/src/components/library/import/BatchList.vue:39 +msgid "Submitted by" +msgstr "Presentado por" + +#: front/src/views/admin/Settings.vue:85 +msgid "Subsonic" +msgstr "Subsonic" + +#: front/src/components/auth/SubsonicTokenForm.vue:2 +msgid "Subsonic API password" +msgstr "Contraseña de la API Subsonic" + +#: front/src/components/library/import/BatchDetail.vue:71 +#: front/src/components/library/import/BatchList.vue:16 +#: front/src/components/library/import/FileUpload.vue:56 +msgid "Success" +msgstr "Éxito" + +#: front/src/App.vue:11 +msgid "Suggested choices" +msgstr "Sugerencias" + +#: front/src/components/playlists/Editor.vue:9 +msgid "Syncing changes to server..." +msgstr "Sincronizando los cambios con el servidor…" + +#: front/src/components/Home.vue:26 +msgid "That's simple: we loved Grooveshark and we want to build something even better." +msgstr "" +"Asà de simple: nos encantó Grooveshark y quisimos hacer algo incluso mejor." + +#: front/src/components/requests/Form.vue:73 +msgid "The Beatles, Mickael Jackson…" +msgstr "Los Beatles, Michael Jackson…" + +#: front/src/App.vue:59 +msgid "The funkwhale logo was kindly designed and provided by Francis Gading." +msgstr "" +"El logotipo de funkwhale fue generosamente diseñado y suplido por Francis " +"Gading." + +#: front/src/components/Home.vue:124 +msgid "The plaform is free and open-source, you can install it and modify it without worries" +msgstr "" +"La plataforma es gratuita y de código fuente libre, puedes instalarla y " +"modificarla sin restricciones" + +#: front/src/components/auth/SubsonicTokenForm.vue:4 +msgid "The Subsonic API is not available on this Funkwhale instance." +msgstr "La API Subsonic no está disponible en esta instancia de Funkwhale." + +#: front/src/components/requests/Form.vue:74 +msgid "The White Album, Thriller…" +msgstr "El Ãlbum Blanco, Thriller…" + +#: front/src/components/audio/track/Table.vue:30 +msgid "There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks." +msgstr "" +"Actualmente no existe una forma de descargar múltiples canciones " +"directamente de funkwhale en un archivo ZIP. Pero, puedes usar herramientas " +"de linea de comando como cURL para descargar una lista de canciones " +"fácilmente." + +#: front/src/components/library/import/Main.vue:149 +msgid "This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled." +msgstr "" +"Esta importación se asociará con la solicitud de música de abajo. Después de " +"terminar la importación, la solicitud será marcada como completada." + +#: front/src/views/federation/LibraryDetail.vue:195 +msgid "This indicate if the remote library granted you access" +msgstr "Esto indica si la biblioteca te ha concedido el acceso" + +#: front/src/components/auth/Profile.vue:16 +msgid "This is you!" +msgstr "¡Eres tú!" + +#: front/src/components/common/ActionTable.vue:37 +msgid "This may affect a lot of elements, please double check this is really what you want." +msgstr "" +"Esto puede afectar a muchos elementos, por favor comprueba si esto es " +"realmente lo que quieres." + +#: front/src/components/audio/PlayButton.vue:61 +msgid "This track is not imported and cannot be played" +msgstr "Esta canción no está importada y no puede ser reproducida" + +#: front/src/views/playlists/Detail.vue:37 +msgid "This will completely delete this playlist and cannot be undone." +msgstr "" +"Esto borrará por completo esta lista de reproducción y no se podrá deshacer." + +#: front/src/views/radios/Detail.vue:27 +msgid "This will completely delete this radio and cannot be undone." +msgstr "Esto borrará por completo esta radio y no se podrá deshacer." + +#: front/src/components/auth/SubsonicTokenForm.vue:51 +msgid "This will completely disable access to the Subsonic API using from account." +msgstr "" +"Esto desactivará por completo el acceso a la API Subsonic desde esta cuenta." + +#: front/src/App.vue:137 +msgid "This will erase your local data and disconnect you, do you want to continue?" +msgstr "Esto borrará tus datos locales y te desconectará, ¿quieres continuar?" + +#: front/src/components/auth/SubsonicTokenForm.vue:36 +msgid "This will log you out from existing devices that use the current password." +msgstr "" +"Esto cerrará tus sesiones en todos los dispositivos que usan esa contraseña." + +#: front/src/components/playlists/Editor.vue:44 +msgid "This will remove all tracks from this playlist and cannot be undone." +msgstr "" +"Esto borrará todas las canciones de esta lista de reproducción y no se podrá " +"deshacer." + +#: front/src/components/audio/track/Table.vue:6 +#: front/src/components/federation/LibraryTrackTable.vue:47 +#: front/src/components/manage/library/FilesTable.vue:37 +msgid "Title" +msgstr "TÃtulo" + +#: front/src/components/audio/SearchBar.vue:27 src/components/library/Track.vue:174 +#: front/src/components/library/import/BatchDetail.vue:84 +#: front/src/components/metadata/Search.vue:138 +msgid "Track" +msgstr "Canción" + +#: front/src/components/library/Track.vue:53 +msgid "Track information" +msgstr "Información de la canción" + +#: front/src/components/library/radios/Filter.vue:44 +msgid "Track matching filter" +msgstr "Canción correspondiente al filtro" + +#: front/src/components/instance/Stats.vue:54 +msgid "tracks" +msgstr "Canciones" + +#: front/src/components/library/Album.vue:43 +#: front/src/components/playlists/PlaylistModal.vue:33 +#: front/src/views/federation/Base.vue:8 src/views/playlists/Detail.vue:50 +#: front/src/views/radios/Detail.vue:34 +msgid "Tracks" +msgstr "Canciones" + +#: front/src/views/federation/LibraryDetail.vue:125 +msgid "Tracks available in this library" +msgstr "Canciones disponibles en esta biblioteca" + +#: front/src/components/library/Artist.vue:54 +msgid "Tracks by this artist" +msgstr "Canciones de este artista" + +#: front/src/components/instance/Stats.vue:25 +msgid "Tracks favorited" +msgstr "Canciones en favoritos" + +#: front/src/components/instance/Stats.vue:19 +msgid "tracks listened" +msgstr "Canciones escuchadas" + +#: front/src/views/federation/LibraryDetail.vue:109 +msgid "Trigger scan" +msgstr "Iniciar escaneo" + +#: front/src/components/manage/library/FilesTable.vue:41 +msgid "Type" +msgstr "Tipo" + +#: front/src/components/About.vue:15 +msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." +msgstr "" +"Desafortunadamente, lxs propietarixs de esta instancia aún no han tomado el " +"tiempo para completar esta página." + +#: front/src/views/federation/LibraryDetail.vue:95 +msgid "Unknown" +msgstr "Desconocido" + +#: front/src/components/Home.vue:37 +msgid "Unlimited music" +msgstr "Música ilimitada" + +#: front/src/components/audio/Player.vue:264 +msgid "Unmute" +msgstr "Activar sonido" + +#: front/src/components/auth/Settings.vue:50 +msgid "Update avatar" +msgstr "Actualizar avatar" + +#: front/src/components/playlists/Form.vue:33 +msgid "Update playlist" +msgstr "Actualizar lista de reproducción" + +#: front/src/components/auth/Settings.vue:27 +msgid "Update settings" +msgstr "Actualizar ajustes" + +#: front/src/views/auth/PasswordResetConfirm.vue:21 +msgid "Update your password" +msgstr "Actualizar tu contraseña" + +#: front/src/components/manage/users/UsersTable.vue:172 +#: front/src/views/admin/users/UsersDetail.vue:153 +msgid "Upload" +msgstr "Subir" + +#: front/src/components/auth/Settings.vue:45 +msgid "Upload a new avatar" +msgstr "Subir un nuevo avatar" + +#: front/src/components/library/import/Main.vue:7 +msgid "Uploaded files or external source" +msgstr "Archivos subidos o fuente externa" + +#: front/src/components/library/import/FileUpload.vue:57 +msgid "Uploading..." +msgstr "Subiendo…" + +#: front/src/App.vue:45 +msgid "Use another instance" +msgstr "Usar otra instancia" + +#: front/src/components/requests/Form.vue:75 +msgid "Use this comment box to add details to your request if needed" +msgstr "" +"Usa este campo de comentarios para añadir detalles a tu solicitud si hace " +"falta" + +#: front/src/views/federation/LibraryDetail.vue:196 +msgid "Use this flag to enable/disable federation with this library" +msgstr "" +"Usa este ajuste para activar/desactivar la federación con esta biblioteca" + +#: front/src/views/auth/PasswordReset.vue:12 +msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password." +msgstr "" +"Usa este formulario para solicitar un restablecimiento de contraseña. Te " +"mandaremos un correo electrónico a la dirección proporcionada con " +"instrucciones para restablecer tu contraseña." + +#: front/src/components/federation/LibraryForm.vue:6 +msgid "Use this form to scan an instance and setup federation." +msgstr "" +"Usa esta formulario para escanear una instancia y establecer la federación." + +#: front/src/components/manage/users/InvitationsTable.vue:49 +msgid "Used" +msgstr "Usado" + +#: front/src/components/manage/library/RequestsTable.vue:47 +msgid "User" +msgstr "Usuarix" + +#: front/src/components/instance/Stats.vue:5 +msgid "User activity" +msgstr "Actividad de usuarix" + +#: front/src/components/library/Radios.vue:20 +msgid "User radios" +msgstr "Radios de usuarixs" + +#: front/src/components/auth/Signup.vue:19 +#: front/src/components/manage/users/UsersTable.vue:37 +msgid "Username" +msgstr "Nombre de usuarix" + +#: front/src/components/auth/Login.vue:15 +msgid "Username or email" +msgstr "Nombre de usuarix o correo electónico" + +#: front/src/components/instance/Stats.vue:13 +msgid "users" +msgstr "usuarix" + +#: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 +#: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 +#: front/src/views/admin/users/UsersList.vue:21 +msgid "Users" +msgstr "Usuarix" + +#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35 +#: front/src/components/library/Track.vue:44 +#: front/src/components/library/import/ArtistImport.vue:131 +#: front/src/components/metadata/ArtistCard.vue:49 +#: front/src/components/metadata/ReleaseCard.vue:53 +msgid "View on MusicBrainz" +msgstr "Ver en MusicBrainz" + +#: front/src/components/playlists/PlaylistModal.vue:20 +msgid "We cannot add the track to a playlist" +msgstr "No podemos añadir la canción a una lista de reproducción" + +#: front/src/components/playlists/Form.vue:14 +msgid "We cannot create the playlist" +msgstr "No podemos crear la lista de reproducción" + +#: front/src/components/auth/Signup.vue:13 +msgid "We cannot create your account" +msgstr "No podemos crear tu cuenta" + +#: front/src/components/auth/Login.vue:7 +msgid "We cannot log you in" +msgstr "No se puede iniciar la sesión" + +#: front/src/components/auth/Settings.vue:38 +msgid "We cannot save your avatar" +msgstr "No podemos guardar tu avatar" + +#: front/src/components/auth/Settings.vue:14 +msgid "We cannot save your settings" +msgstr "No podemos guardar tus ajustes" + +#: front/src/components/Home.vue:130 +msgid "We do not track you or bother you with ads" +msgstr "No te rastreamos y no te molestamos con anuncios" + +#: front/src/components/library/import/FileUpload.vue:5 +msgid "We recommend using Picard for that purpose." +msgstr "Recomendamos usar Picard para eso." + +#: front/src/components/Home.vue:7 +msgid "We think listening to music should be simple." +msgstr "Pensamos que debe ser simple escuchar música." + +#: front/src/components/PageNotFound.vue:10 +msgid "We're sorry, the page you asked for does not exist:" +msgstr "Lo sentimos, la página solicitada no existe:" + +#: front/src/components/requests/Form.vue:21 +msgid "We've received your request, you'll get some groove soon ;)" +msgstr "Hemos recibido tu solicitud, pronto tendrás algo sabroso ;)" + +#: front/src/components/Home.vue:152 +msgid "Welcome" +msgstr "Bienvenidx" + +#: front/src/components/Home.vue:5 +msgid "Welcome on Funkwhale" +msgstr "Bienvenidx a Funkwhale" + +#: front/src/components/library/import/Main.vue:114 +msgid "What is metadata?" +msgstr "¿Qué son los metadatos?" + +#: front/src/views/federation/LibraryDetail.vue:197 +msgid "When enabled, auto importing will automatically import new tracks published in this library" +msgstr "" +"Cuando activas este ajuste, las nuevas canciones publicadas en esta " +"biblioteca se importarán de forma automática" + +#: front/src/components/Home.vue:24 +msgid "Why funkwhale?" +msgstr "¿Por qué funkwhale?" + +#: front/src/components/Sidebar.vue:124 +msgid "Yes" +msgstr "SÃ" + +#: front/src/components/auth/Logout.vue:8 +msgid "Yes, log me out!" +msgstr "SÃ, cierra mi sesión!" + +#: front/src/components/auth/Logout.vue:7 +msgid "You are currently logged in as %{ username }" +msgstr "Tienes iniciada actualmente sesión como %{ username }" + +#: front/src/components/library/import/Main.vue:111 +msgid "You can also skip this step and enter metadata manually." +msgstr "También puedes omitir este paso e introducir los metadatos manualmente." + +#: front/src/components/Home.vue:136 +msgid "You can invite friends and family to your instance so they can enjoy your music" +msgstr "" +"Puedes invitar a tus amigxs y tu familia a tu instancia para que ellxs " +"puedan disfrutar de tu música" + +#: front/src/components/library/radios/Builder.vue:7 +msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria." +msgstr "" +"Puedes usar esta interfaz para hacer tu propia radio personalizada, que " +"reproducirá canciones según tus criterios." + +#: front/src/components/auth/SubsonicTokenForm.vue:8 +msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance." +msgstr "" +"Puedes usarlos para disfrutar de tus listas de reproducción y tu música en " +"modo sin conexión, en tu smartphone o tu tablet, por ejemplo." + +#: front/src/components/Sidebar.vue:156 +msgid "You have a radio playing" +msgstr "Estás escuchando una radio" + +#: front/src/App.vue:6 +msgid "You need to select an instance in order to continue" +msgstr "Tienes que seleccionar una instancia para poder continuar" + +#: front/src/components/auth/Settings.vue:100 +msgid "You will be logged out from this session and have to log in with the new one" +msgstr "" +"Se cerrará esta sesión y tendrás que reiniciar sesión con la nueva contraseña" + +#: front/src/components/auth/Settings.vue:71 +msgid "You will have to update your password on your clients that use this password." +msgstr "" +"Tendrás que actualizar tu contraseña en los clientes que usan esta " +"contraseña." + +#: front/src/components/library/import/Main.vue:103 +msgid "You will import:" +msgstr "Vas a importar:" + +#: front/src/views/auth/EmailConfirm.vue:24 +msgid "Your email address was confirmed, you can now use the service without limitations." +msgstr "" +"Tu dirección de correo electrónico ha sido confirmada, ahora puedes usar el " +"servicio sin limitaciones." + +#: front/src/components/favorites/List.vue:109 +msgid "Your Favorites" +msgstr "Tus favoritos" + +#: front/src/components/Home.vue:117 +msgid "Your music, your way" +msgstr "Tu música, a tu manera" + +#: front/src/views/auth/PasswordResetConfirm.vue:29 +msgid "Your password has been updated successfully." +msgstr "Tu contraseña ha sido cambiada con éxito." + +#: front/src/components/auth/Settings.vue:101 +msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password" +msgstr "" +"Tu contraseña Subsonic se cambiará a una nueva contraseña aleatoria, " +"cerrando tus sesiones en los dispositivos que usaban la antigua contraseña " +"Subsonic" + +#: front/src/components/audio/PlayButton.vue:156 +msgid "%{ count } track was added to your queue" +msgid_plural "%{ count } tracks were added to your queue" +msgstr[0] "%{ count } canción ha sido añadida a tu cola de reproducción" +msgstr[1] "%{ count } canciones han sido añadidas a tu cola de reproducción" diff --git a/front/locales/fr_FR/LC_MESSAGES/app.po b/front/locales/fr_FR/LC_MESSAGES/app.po index 8c737757052582763d282f1dde46cbca121299a0..384131ca24b6a0c465ba9d9fa76a7a32d2c21b85 100644 --- a/front/locales/fr_FR/LC_MESSAGES/app.po +++ b/front/locales/fr_FR/LC_MESSAGES/app.po @@ -3,9 +3,10 @@ msgstr "" "Project-Id-Version: French (Funkwhale)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-21 21:30+0000\n" -"Last-Translator: Baptiste Gelez <baptiste@gelez.xyz>\n" -"Language-Team: French <https://translate.funkwhale.audio/projects/funkwhale/front/fr/>\n" +"PO-Revision-Date: 2018-07-30 16:28+0000\n" +"Last-Translator: Eliot Berriot <contact@eliotberriot.com>\n" +"Language-Team: French <https://translate.funkwhale.audio/projects/funkwhale/" +"front/fr/>\n" "Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -98,7 +99,7 @@ msgstr[1] "%{ count } pistes" #: front/src/components/About.vue:5 msgid "About %{ instance }" -msgstr "À propos de cette instance" +msgstr "À propos de %{instance}" #: front/src/App.vue:54 msgid "About Funkwhale" @@ -155,9 +156,8 @@ msgid "Actions" msgstr "Actions" #: front/src/components/manage/users/UsersTable.vue:53 -#, fuzzy msgid "Active" -msgstr "Activité" +msgstr "Actif" #: front/src/components/Sidebar.vue:60 msgid "Activity" @@ -260,7 +260,9 @@ msgstr "Une erreur s'est produite pendant l'enregistrement de vos modifications" #: front/src/components/auth/Login.vue:10 msgid "An unknown error happend, this can mean the server is down or cannot be reached" -msgstr "Une erreur inconnue a été rencontrée, ce qui peut signifier que le serveur est en panne ou n’a pas pu être atteint" +msgstr "" +"Une erreur inconnue s'est produite, cela pourrait signifier que le serveur " +"ne peut pas être accedé" #: front/src/components/federation/LibraryTrackTable.vue:11 #: front/src/components/library/import/BatchDetail.vue:68 @@ -985,7 +987,7 @@ msgstr "Récupérer les métadonnées correspondantes" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "Aidez nous à traduire Funkwhale" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1111,7 +1113,7 @@ msgstr "Dans la bibliothèque" #: front/src/components/manage/users/UsersTable.vue:54 msgid "Inactive" -msgstr "Actif" +msgstr "Inactif" #: front/src/components/library/import/Main.vue:96 msgid "Input a MusicBrainz ID manually:" @@ -1436,7 +1438,7 @@ msgstr "Site officiel" #: front/src/components/auth/Settings.vue:83 msgid "Old password" -msgstr "Ancien mot de passe" +msgstr "Vieux mot de passe" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." @@ -1621,7 +1623,7 @@ msgstr "Merci de vérifier que votre nom d'utilisateur et mot de passe sont corr #: front/src/components/auth/Settings.vue:46 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." -msgstr "PNG, GIF ou JPG. 2Mb au plus. L'image sera réduite à 400×400 pixels." +msgstr "PNG, GIF ou JPG. 2Mo au plus. L'image sera réduite à 400×400 pixels." #: front/src/components/library/import/Main.vue:26 msgid "Previous step" @@ -1661,18 +1663,16 @@ msgid "Radio Builder" msgstr "Éditeur de radio" #: front/src/components/library/radios/Builder.vue:15 -#, fuzzy msgid "Radio created" -msgstr "Nom de la radio" +msgstr "Radio créée" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" msgstr "Nom de la radio" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "Nom de la radio" +msgstr "Radio à jour" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 @@ -1689,7 +1689,7 @@ msgstr "Ajoutés récemment" #: front/src/components/library/Home.vue:11 msgid "Recently favorited" -msgstr "Ajoutées à vos favoris récemment" +msgstr "Récemment ajouté aux favoris" #: front/src/components/library/Home.vue:6 msgid "Recently listened" @@ -2297,7 +2297,7 @@ msgstr "Nom d'utilisateur ou email" #: front/src/components/instance/Stats.vue:13 msgid "users" -msgstr "tilisateur·ice·s" +msgstr "utilisateur·rice·s" #: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 #: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 @@ -2352,7 +2352,7 @@ msgstr "Nous pensons que l'accès à la musique devrait être simple." #: front/src/components/PageNotFound.vue:10 msgid "We're sorry, the page you asked for does not exist:" -msgstr "Désolé, la page demandée n’existe pas :" +msgstr "Désolé, la page demandée n’existe pas :" #: front/src/components/requests/Form.vue:21 msgid "We've received your request, you'll get some groove soon ;)" @@ -2368,7 +2368,7 @@ msgstr "Bienvenue sur Funkwhale" #: front/src/components/library/import/Main.vue:114 msgid "What is metadata?" -msgstr "Qu'est-ce que les métadonnées ?" +msgstr "Qu'est-ce que les métadonnées ?" #: front/src/views/federation/LibraryDetail.vue:197 msgid "When enabled, auto importing will automatically import new tracks published in this library" diff --git a/front/locales/it/LC_MESSAGES/app.po b/front/locales/it/LC_MESSAGES/app.po index 4e37fb1cda8c144687e09ee50b4a96e83cdfd5c8..566e1d6ac7389d06286f3cbeac830e37f976da11 100644 --- a/front/locales/it/LC_MESSAGES/app.po +++ b/front/locales/it/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-19 10:49+0000\n" +"PO-Revision-Date: 2018-08-06 12:12+0000\n" "Last-Translator: Sylke Vicious <silkevicious@tuta.io>\n" "Language-Team: none\n" "Language: it\n" @@ -64,11 +64,11 @@ msgstr[1] "%{ count} tracce" #: front/src/components/common/Duration.vue:2 msgid "%{ hours } h %{ minutes } min" -msgstr "" +msgstr "%{ hours } o %{ minutes } min" #: front/src/components/common/Duration.vue:5 msgid "%{ minutes } min" -msgstr "" +msgstr "%{ minutes } min" #: front/src/components/activity/Like.vue:7 msgid "%{ user } favorited a track" @@ -102,9 +102,8 @@ msgstr[0] "1 traccia" msgstr[1] "%{ count } tracce" #: front/src/components/About.vue:5 -#, fuzzy msgid "About %{ instance }" -msgstr "A proposito di questa istanza" +msgstr "A proposito di %{ instance }" #: front/src/App.vue:54 msgid "About Funkwhale" @@ -161,9 +160,8 @@ msgid "Actions" msgstr "Azioni" #: front/src/components/manage/users/UsersTable.vue:53 -#, fuzzy msgid "Active" -msgstr "Attività " +msgstr "Attivo" #: front/src/components/Sidebar.vue:60 msgid "Activity" @@ -171,7 +169,7 @@ msgstr "Attività " #: front/src/components/federation/LibraryFollowTable.vue:21 msgid "Actor" -msgstr "" +msgstr "Attore" #: front/src/views/federation/LibraryList.vue:8 msgid "Add a new library" @@ -267,6 +265,8 @@ msgstr "C'è stato un errore durante il salvataggio delle tue modifiche" #: front/src/components/auth/Login.vue:10 msgid "An unknown error happend, this can mean the server is down or cannot be reached" msgstr "" +"Si è verificato un errore sconosciuto, questo significa che il server è " +"offline o non può essere raggiunto" #: front/src/components/federation/LibraryTrackTable.vue:11 #: front/src/components/library/import/BatchDetail.vue:68 @@ -352,7 +352,7 @@ msgstr "Playlist disponibili" #: front/src/components/auth/Settings.vue:34 msgid "Avatar" -msgstr "" +msgstr "Avatar" #: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24 #: front/src/views/auth/PasswordResetConfirm.vue:18 @@ -433,7 +433,7 @@ msgstr "Non puoi cambiare la tua password" #: front/src/App.vue:66 msgid "Change language" -msgstr "" +msgstr "Cambia lingua" #: front/src/components/auth/Settings.vue:67 msgid "Change my password" @@ -575,9 +575,8 @@ msgid "Creation date" msgstr "Data di creazione" #: front/src/components/auth/Settings.vue:54 -#, fuzzy msgid "Current avatar" -msgstr "Traccia corrente" +msgstr "Avatar attuale" #: front/src/components/playlists/PlaylistModal.vue:8 msgid "Current track" @@ -624,9 +623,10 @@ msgid "Detail" msgstr "Dettaglio" #: front/src/views/admin/users/UsersDetail.vue:146 -#, fuzzy msgid "Determine if the user account is active or not. Inactive users cannot login or use the service." -msgstr "Determina se un account utente è attivo o meno. Gli utenti inattivi non possono accedere o utilizzare il servizio." +msgstr "" +"Determina se un account utente è attivo o meno. Gli utenti inattivi non " +"possono accedere o utilizzare il servizio." #: front/src/components/auth/Settings.vue:104 #: front/src/components/auth/SubsonicTokenForm.vue:52 @@ -662,15 +662,14 @@ msgid "Do you want to delete the playlist \"%{ playlist }\"?" msgstr "Vuoi eliminare la playlist \"%{ playlist }\"?" #: front/src/views/radios/Detail.vue:26 -#, fuzzy msgid "Do you want to delete the radio \"%{ radio }\"?" -msgstr "Vuoi eliminare la radio \"{{ radio }}\"?" +msgstr "Vuoi eliminare la radio \"%{ radio }\"?" #: front/src/components/common/ActionTable.vue:29 msgid "Do you want to launch %{ action } on %{ count } element?" msgid_plural "Do you want to launch %{ action } on %{ count } elements?" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Vuoi eseguire %{ action } su %{ count } elemento?" +msgstr[1] "Vuoi eseguire %{ action } su %{ count } elementi?" #: front/src/components/Sidebar.vue:113 msgid "Do you want to restore your previous queue?" @@ -686,9 +685,8 @@ msgid "Download" msgstr "Scarica" #: front/src/components/audio/track/Table.vue:27 -#, fuzzy msgid "Download tracks" -msgstr "Scarica" +msgstr "Scarica tracce" #: front/src/components/playlists/Editor.vue:49 msgid "Drag and drop rows to reorder tracks in the playlist" @@ -726,7 +724,7 @@ msgstr "Email confermata" #: front/src/views/playlists/Detail.vue:29 msgid "End edition" -msgstr "" +msgstr "Fine modifica" #: front/src/components/library/import/FileUpload.vue:4 msgid "Ensure your music files are properly tagged before uploading them." @@ -808,7 +806,7 @@ msgstr "Errore durante la scansione della libreria" #: front/src/components/library/import/BatchDetail.vue:70 #: front/src/components/library/import/BatchList.vue:15 msgid "Errored" -msgstr "" +msgstr "Si è verificato un errore" #: front/src/components/playlists/Form.vue:89 msgid "Everyone" @@ -891,7 +889,7 @@ msgstr "Filtra nome" #: front/src/components/library/import/Main.vue:52 msgid "Finish import" -msgstr "" +msgstr "Termina importazione" #: front/src/components/library/import/BatchDetail.vue:54 msgid "Finished" @@ -925,7 +923,7 @@ msgstr "Solo chi segue" #: front/src/components/federation/LibraryCard.vue:15 #: front/src/views/federation/LibraryDetail.vue:29 msgid "Following" -msgstr "" +msgstr "Seguendo" #: front/src/components/activity/Like.vue:12 #: src/components/activity/Listen.vue:12 @@ -939,10 +937,15 @@ msgstr "Dall'album %{ album } di %{ artist }" #: front/src/App.vue:56 msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" msgstr "" +"Funkwhale è un progetto libero e open-source portato avanti da volontari. " +"Puoi aiutarci a migliorare la piattaforma segnalando problemi, suggerendo " +"miglioramenti e condividendo il progetto con i tuoi amici!" #: front/src/components/auth/SubsonicTokenForm.vue:7 msgid "Funkwhale is compatible with other music players that support the Subsonic API." msgstr "" +"Funkwhale è compatibile con altri lettori musicali che supportano le " +"Subsonic API." #: front/src/components/Home.vue:98 msgid "Funkwhale is dead simple to use." @@ -951,14 +954,16 @@ msgstr "Funkwhale è semplicissimo da usare." #: front/src/components/Home.vue:39 msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." msgstr "" +"Funkwhale è progettato per permetterti di ascoltare facilmente la musica che " +"ti piace, o per farti scoprire nuovi artisti." #: front/src/components/Home.vue:119 msgid "Funkwhale is free and gives you control on your music." -msgstr "" +msgstr "Funkwhale è gratuito e ti da il controllo sulla tua musica." #: front/src/components/Home.vue:66 msgid "Funkwhale takes care of handling your music" -msgstr "" +msgstr "Funkwhale si preoccupa di gestire la tua musica" #: front/src/components/manage/users/InvitationForm.vue:16 msgid "Get a new invitation" @@ -975,6 +980,10 @@ msgid "" " MusicBrainz\n" " </a>" msgstr "" +"Ottieni metadati di qualità sulla tua musica grazie a\n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>" #: front/src/components/common/ActionTable.vue:21 #: front/src/components/common/ActionTable.vue:27 @@ -987,11 +996,11 @@ msgstr "Vai alla pagina iniziale" #: front/src/components/library/import/Main.vue:13 msgid "Grab corresponding metadata" -msgstr "" +msgstr "Ottieni metadata corrispondenti" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "Aiutaci a tradurre Funkwhale" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1004,229 +1013,234 @@ msgstr "Ore di musica" #: front/src/components/auth/SubsonicTokenForm.vue:11 msgid "However, accessing Funkwhale from those clients require a separate password you can set below." msgstr "" +"Comunque, accedere a Funkwhale da quei client richiede un'altra password che " +"puoi impostare qui sotto." #: front/src/components/library/import/BatchList.vue:34 msgid "ID" -msgstr "" +msgstr "ID" #: front/src/views/auth/PasswordResetConfirm.vue:24 msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." msgstr "" +"Se l'indirizzo email fornito nel passo precedente è valido e legato ad un " +"account utente, dovresti ricevere un'email con le istruzioni per il reset " +"nel prossimo paio di minuti." #: front/src/components/federation/LibraryTrackTable.vue:196 #: front/src/components/library/Library.vue:17 msgid "Import" -msgstr "" +msgstr "Importa" #: front/src/components/federation/LibraryTrackTable.vue:57 msgid "Import #%{ id } launched" -msgstr "" +msgstr "Importazione #%{ id } lanciata" #: front/src/components/library/import/Main.vue:38 msgid "Import %{ count } track" msgid_plural "Import %{ count } tracks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Importa %{ count } traccia" +msgstr[1] "Importa %{ count } tracce" #: front/src/components/library/import/BatchDetail.vue:10 msgid "Import batch" -msgstr "" +msgstr "Importa batch" #: front/src/components/library/import/BatchDetail.vue:185 msgid "Import Batch #%{ id }" -msgstr "" +msgstr "Importa Batch #%{ id }" #: front/src/components/library/Library.vue:20 msgid "Import batches" -msgstr "" +msgstr "Importa più batch" #: front/src/components/library/import/BatchList.vue:117 msgid "Import Batches" -msgstr "" +msgstr "Importa Batch" #: front/src/components/manage/library/FilesTable.vue:40 #: front/src/components/manage/library/RequestsTable.vue:53 msgid "Import date" -msgstr "" +msgstr "Importa data" #: front/src/components/library/import/FileUpload.vue:38 msgid "Import detail page" -msgstr "" +msgstr "Pagina dei dettagli di importazione" #: front/src/components/Sidebar.vue:81 msgid "Import music" -msgstr "" +msgstr "Importa musica" #: front/src/components/library/import/Main.vue:267 msgid "Import Music" -msgstr "" +msgstr "Importa Musica" #: front/src/components/Home.vue:71 msgid "Import music from various platforms, such as YouTube or SoundCloud" -msgstr "" +msgstr "Importa musica da varie piattaforme, come YouTube o SoundCloud" #: front/src/components/federation/LibraryTrackTable.vue:14 #: front/src/components/federation/LibraryTrackTable.vue:66 msgid "Import pending" -msgstr "" +msgstr "Importazioni in attesa" #: front/src/views/admin/library/Base.vue:9 #: front/src/views/admin/library/RequestsList.vue:3 #: front/src/views/admin/library/RequestsList.vue:21 msgid "Import requests" -msgstr "" +msgstr "Importazioni richieste" #: front/src/components/library/import/BatchList.vue:20 #: front/src/components/library/import/Main.vue:6 msgid "Import source" -msgstr "" +msgstr "Importa sorgente" #: front/src/components/federation/LibraryTrackTable.vue:9 msgid "Import status" -msgstr "" +msgstr "Stato dell'importazione" #: front/src/components/library/import/ReleaseImport.vue:14 msgid "Import this release" -msgstr "" +msgstr "Importa questa versione" #: front/src/components/library/import/TrackImport.vue:11 msgid "Import this track" -msgstr "" +msgstr "Importa questa traccia" #: front/src/components/federation/LibraryTrackTable.vue:12 #: front/src/components/manage/library/RequestsTable.vue:29 #: front/src/components/manage/library/RequestsTable.vue:61 msgid "Imported" -msgstr "" +msgstr "Importato" #: front/src/components/library/import/TrackImport.vue:44 msgid "Imported URL" -msgstr "" +msgstr "URL importato" #: front/src/views/admin/Settings.vue:82 msgid "Imports" -msgstr "" +msgstr "Importazioni" #: front/src/components/favorites/TrackFavoriteIcon.vue:3 msgid "In favorites" -msgstr "" +msgstr "Nei preferiti" #: front/src/components/federation/LibraryTrackTable.vue:65 msgid "In library" -msgstr "" +msgstr "In libreria" #: front/src/components/manage/users/UsersTable.vue:54 msgid "Inactive" -msgstr "" +msgstr "Inattivo" #: front/src/components/library/import/Main.vue:96 msgid "Input a MusicBrainz ID manually:" -msgstr "" +msgstr "Inserisci un ID MusicBrainz manualmente:" #: front/src/views/auth/PasswordReset.vue:53 msgid "Input the email address binded to your account" -msgstr "" +msgstr "Inserisci l'indirizzo email associato al tuo account" #: front/src/components/playlists/Editor.vue:31 msgid "Insert from queue (%{ count } track)" msgid_plural "Insert from queue (%{ count } tracks)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Inserita dalla coda (%{ count } traccia)" +msgstr[1] "Inserite dalla coda (%{ count } tracce)" #: front/src/views/admin/Settings.vue:80 msgid "Instance information" -msgstr "" +msgstr "Informazioni sull'istanza" #: front/src/components/library/Radios.vue:9 -#, fuzzy msgid "Instance radios" -msgstr "Modifica le info dell'istanza" +msgstr "Radio dell'istanza" #: front/src/views/admin/Settings.vue:75 msgid "Instance settings" -msgstr "" +msgstr "Impostazioni dell'istanza" #: front/src/views/instance/Timeline.vue:57 msgid "Instance Timeline" -msgstr "" +msgstr "Timeline dell'Istanza" #: front/src/components/auth/Signup.vue:42 #: front/src/components/manage/users/InvitationForm.vue:11 msgid "Invitation code" -msgstr "" +msgstr "Codice di invito" #: front/src/components/auth/Signup.vue:43 msgid "Invitation code (optional)" -msgstr "" +msgstr "Codice d'invito (opzionale)" #: front/src/views/admin/users/Base.vue:8 #: src/views/admin/users/InvitationsList.vue:3 #: front/src/views/admin/users/InvitationsList.vue:24 msgid "Invitations" -msgstr "" +msgstr "Inviti" #: front/src/App.vue:43 msgid "Issue tracker" -msgstr "" +msgstr "Elenco problemi" #: front/src/components/library/import/BatchDetail.vue:80 msgid "Job ID" -msgstr "" +msgstr "ID Lavoro" #: front/src/components/library/import/BatchList.vue:36 msgid "Jobs" -msgstr "" +msgstr "Lavori" #: front/src/components/Home.vue:50 msgid "Keep a track of your favorite songs" -msgstr "" +msgstr "Tieni d'occhio le tue tracce preferite" #: front/src/components/audio/track/Table.vue:33 msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." msgstr "" +"Tieni i tuoi PRIVATE_TOKEN segreti visto che danno accesso al tuo account." #: front/src/components/manage/users/UsersTable.vue:41 #: front/src/views/admin/users/UsersDetail.vue:45 msgid "Last activity" -msgstr "" +msgstr "Ultime attività " #: front/src/views/federation/LibraryDetail.vue:101 msgid "Last fetched" -msgstr "" +msgstr "Ultime recuperate" #: front/src/components/playlists/PlaylistModal.vue:32 msgid "Last modification" -msgstr "" +msgstr "Ultima modifica" #: front/src/components/common/ActionTable.vue:39 msgid "Launch" -msgstr "" +msgstr "Inizia" #: front/src/components/library/import/BatchDetail.vue:18 #: front/src/components/library/import/BatchList.vue:35 msgid "Launch date" -msgstr "" +msgstr "Data d'inizio" #: front/src/components/federation/LibraryForm.vue:31 msgid "Launch scan" -msgstr "" +msgstr "Inizia scansione" #: front/src/components/Home.vue:10 msgid "Learn more about this instance" -msgstr "" +msgstr "Scopri di più su questa istanza" #: front/src/components/manage/users/InvitationForm.vue:58 msgid "Leave empty for a random code" -msgstr "" +msgstr "Lascia vuoto per un codice casuale" #: front/src/components/requests/Form.vue:10 msgid "Leave this field empty if you're requesting the whole discography." -msgstr "" +msgstr "Lascia questo campo vuoto se vuoi richiedere la discografia completa." #: front/src/views/federation/Base.vue:5 #: src/views/federation/LibraryList.vue:123 msgid "Libraries" -msgstr "" +msgstr "Librerie" #: front/src/components/Sidebar.vue:70 #: front/src/components/federation/LibraryTrackTable.vue:51 @@ -1235,103 +1249,105 @@ msgstr "" #: front/src/views/admin/users/UsersDetail.vue:157 #: front/src/views/federation/LibraryDetail.vue:194 msgid "Library" -msgstr "" +msgstr "Libreria" #: front/src/views/admin/library/FilesList.vue:3 msgid "Library files" -msgstr "" +msgstr "File della libreria" #: front/src/components/federation/LibraryForm.vue:20 msgid "Library name" -msgstr "" +msgstr "Nome della libreria" #: front/src/views/federation/LibraryDetail.vue:84 msgid "Library size" -msgstr "" +msgstr "Dimensione della libreria" #: front/src/components/federation/LibraryForm.vue:96 msgid "library@demo.funkwhale.audio" -msgstr "" +msgstr "library@demo.funkwhale.audio" #: front/src/App.vue:29 msgid "Links" -msgstr "" +msgstr "Collegamenti" #: front/src/views/instance/Timeline.vue:4 msgid "Loading timeline..." -msgstr "" +msgstr "Caricando la timeline..." #: front/src/components/favorites/List.vue:5 msgid "Loading your favorites..." -msgstr "" +msgstr "Caricando i tuoi preferiti..." #: front/src/components/auth/Login.vue:78 msgid "Log In" -msgstr "" +msgstr "Accedi" #: front/src/components/auth/Login.vue:4 msgid "Log in to your Funkwhale account" -msgstr "" +msgstr "Accedi al tuo account Funkwhale" #: front/src/components/auth/Logout.vue:20 msgid "Log Out" -msgstr "" +msgstr "Disconnetti" #: front/src/components/Sidebar.vue:38 msgid "Logged in as %{ username }" -msgstr "" +msgstr "Accesso effettuato come %{ username }" #: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 msgid "Login" -msgstr "" +msgstr "Accedi" #: front/src/components/Sidebar.vue:43 msgid "Logout" -msgstr "" +msgstr "Disconnettiti" #: front/src/components/audio/Player.vue:266 msgid "Looping disabled. Click to switch to single-track looping." msgstr "" +"Ripetizione disattivata. Clicca per attivare la ripetizione della singola " +"traccia." #: front/src/components/audio/Player.vue:267 msgid "Looping on a single track. Click to switch to whole queue looping." -msgstr "" +msgstr "Ripeti una singola traccia. Clicca per ripetere l'intera coda." #: front/src/components/audio/Player.vue:268 msgid "Looping on whole queue. Click to disable looping." -msgstr "" +msgstr "Ripete l'intera coda. Clicca per disattivare la ripetizione." #: front/src/components/library/Track.vue:94 msgid "Lyrics" -msgstr "" +msgstr "Testi" #: front/src/views/admin/library/Base.vue:25 msgid "Manage library" -msgstr "" +msgstr "Gestisci libreria" #: front/src/components/playlists/PlaylistModal.vue:3 msgid "Manage playlists" -msgstr "" +msgstr "Gestisci playlist" #: front/src/views/admin/users/Base.vue:20 msgid "Manage users" -msgstr "" +msgstr "Gestisci utenti" #: front/src/views/playlists/List.vue:8 msgid "Manage your playlists" -msgstr "" +msgstr "Gestisci le tue playlist" #: front/src/components/manage/library/RequestsTable.vue:197 msgid "Mark as closed" -msgstr "" +msgstr "Segna come chiuso" #: front/src/components/manage/library/RequestsTable.vue:196 msgid "Mark as imported" -msgstr "" +msgstr "Segna come importato" #: front/src/components/library/import/Main.vue:12 msgid "Metadata" -msgstr "" +msgstr "Metadati" #: front/src/components/library/import/Main.vue:115 msgid "" @@ -1341,31 +1357,39 @@ msgid "" " </a>\n" " project, which you can think about as the Wikipedia of music." msgstr "" +"I metadata sono i dati relativi alla musica che vuoi importare. Questo " +"include tutte le informazioni su artisti, album e tracce. Per far si che tu " +"abbia una libreria di alta qualità , è consigliato ottenere i dati dal " +"progetto \n" +" <a href=\"https://musicbrainz.org\" target=\"_blank\">\n" +" MusicBrainz\n" +" </a>\n" +" che praticamente è la Wikipedia della musica." #: front/src/components/Sidebar.vue:48 #: src/components/library/import/Main.vue:18 msgid "Music" -msgstr "" +msgstr "Musica" #: front/src/components/library/import/Main.vue:147 msgid "Music request" -msgstr "" +msgstr "Richiesta di musica" #: front/src/components/audio/Player.vue:265 msgid "Mute" -msgstr "" +msgstr "Muto" #: front/src/components/Sidebar.vue:34 msgid "My account" -msgstr "" +msgstr "Mio account" #: front/src/components/playlists/Form.vue:74 msgid "My awesome playlist" -msgstr "" +msgstr "La mia eccezionale playlist" #: front/src/components/library/radios/Builder.vue:227 msgid "My awesome radio" -msgstr "" +msgstr "La mia eccezionale radio" #: front/src/components/library/Track.vue:64 #: src/components/library/Track.vue:75 @@ -1380,84 +1404,85 @@ msgstr "" #: front/src/components/manage/users/UsersTable.vue:61 #: front/src/views/admin/users/UsersDetail.vue:49 msgid "N/A" -msgstr "" +msgstr "N/D" #: front/src/components/playlists/PlaylistModal.vue:31 #: front/src/views/admin/users/UsersDetail.vue:21 msgid "Name" -msgstr "" +msgstr "Nome" #: front/src/components/auth/Settings.vue:88 #: front/src/views/auth/PasswordResetConfirm.vue:14 msgid "New password" -msgstr "" +msgstr "Nuova password" #: front/src/components/Sidebar.vue:158 msgid "New tracks will be appended here automatically." -msgstr "" +msgstr "Le nuove tracce saranno allegate qui automaticamente." #: front/src/components/library/import/Main.vue:29 msgid "Next step" -msgstr "" +msgstr "Prossimo passo" #: front/src/components/audio/Player.vue:263 msgid "Next track" -msgstr "" +msgstr "Prossima traccia" #: front/src/components/Sidebar.vue:125 msgid "No" -msgstr "" +msgstr "No" #: front/src/components/Home.vue:103 msgid "No add-ons, no plugins : you only need a web library" -msgstr "" +msgstr "Nessun addon, nessun plugin: ti serve solo una libreria in rete" #: front/src/components/library/Track.vue:102 msgid "No lyrics available for this track." -msgstr "" +msgstr "Nessun testo disponibile per questa traccia." #: front/src/components/playlists/Form.vue:81 msgid "Nobody except me" -msgstr "" +msgstr "Nessuno tranne me" #: front/src/views/federation/LibraryDetail.vue:32 msgid "Not following" -msgstr "" +msgstr "Non seguito" #: front/src/components/federation/LibraryTrackTable.vue:13 #: front/src/components/federation/LibraryTrackTable.vue:67 msgid "Not imported" -msgstr "" +msgstr "Non importato" #: front/src/components/manage/users/InvitationsTable.vue:51 msgid "Not used" -msgstr "" +msgstr "Non utilizzato" #: front/src/App.vue:37 msgid "Official website" -msgstr "" +msgstr "Sito ufficiale" #: front/src/components/auth/Settings.vue:83 -#, fuzzy msgid "Old password" -msgstr "Cambia password" +msgstr "Vecchia password" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." msgstr "" +"Una volta che tutti i tuoi file sono caricati, clicca semplicemene il " +"pulsante seguente per controllare lo stato dell'importazione." #: front/src/components/federation/LibraryCard.vue:21 #: front/src/components/manage/users/InvitationsTable.vue:20 msgid "Open" -msgstr "" +msgstr "Aperto" #: front/src/App.vue:63 msgid "Options" -msgstr "" +msgstr "Opzioni" #: front/src/components/library/import/Main.vue:93 msgid "Or" -msgstr "" +msgstr "O" #: front/src/components/favorites/List.vue:23 #: front/src/components/federation/LibraryTrackTable.vue:18 @@ -1470,7 +1495,7 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:18 #: src/views/playlists/List.vue:17 msgid "Ordering" -msgstr "" +msgstr "Ordinamento" #: front/src/components/favorites/List.vue:31 #: front/src/components/federation/LibraryTrackTable.vue:26 @@ -1482,35 +1507,35 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:26 #: src/views/playlists/List.vue:25 msgid "Ordering direction" -msgstr "" +msgstr "Direzione di ordinamento" #: front/src/components/manage/users/InvitationsTable.vue:38 msgid "Owner" -msgstr "" +msgstr "Proprietario" #: front/src/components/PageNotFound.vue:33 msgid "Page Not Found" -msgstr "" +msgstr "Pagina Non Trovata" #: front/src/components/PageNotFound.vue:7 msgid "Page not found!" -msgstr "" +msgstr "Pagina non trovata!" #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 msgid "Password" -msgstr "" +msgstr "Password" #: front/src/components/auth/SubsonicTokenForm.vue:95 msgid "Password updated" -msgstr "" +msgstr "Password aggiornata" #: front/src/views/auth/PasswordResetConfirm.vue:28 msgid "Password updated successfully" -msgstr "" +msgstr "Password aggiornata con successo" #: front/src/components/audio/Player.vue:262 msgid "Pause track" -msgstr "" +msgstr "Metti in pausa" #: front/src/components/federation/LibraryFollowTable.vue:46 #: front/src/components/library/import/BatchDetail.vue:33 @@ -1520,265 +1545,264 @@ msgstr "" #: front/src/components/manage/library/RequestsTable.vue:27 #: front/src/components/manage/library/RequestsTable.vue:63 msgid "Pending" -msgstr "" +msgstr "In sospeso" #: front/src/components/federation/LibraryFollowTable.vue:11 #: front/src/views/federation/LibraryDetail.vue:26 msgid "Pending approval" -msgstr "" +msgstr "Approvazione in sospeso" #: front/src/components/Sidebar.vue:217 msgid "Pending follow requests" -msgstr "" +msgstr "Richiesta di seguire in sospeso" #: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 msgid "Pending import requests" -msgstr "" +msgstr "Richieste di importazione in sospeso" #: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 msgid "Pending requests" -msgstr "" +msgstr "Richieste in sospeso" #: front/src/components/manage/users/UsersTable.vue:42 #: front/src/views/admin/users/UsersDetail.vue:68 msgid "Permissions" -msgstr "" +msgstr "Permessi" #: front/src/components/audio/PlayButton.vue:9 #: src/components/library/Track.vue:30 msgid "Play" -msgstr "" +msgstr "Riproduci" #: front/src/components/audio/album/Card.vue:50 #: front/src/components/audio/artist/Card.vue:44 #: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23 msgid "Play all" -msgstr "" +msgstr "Riproduci tutto" #: front/src/components/library/Artist.vue:26 msgid "Play all albums" -msgstr "" +msgstr "Riproduci tutti gli album" #: front/src/components/audio/PlayButton.vue:58 msgid "Play immediatly" -msgstr "" +msgstr "Riproduci immediatamente" #: front/src/components/audio/PlayButton.vue:15 msgid "Play next" -msgstr "" +msgstr "Riproduci la prossima" #: front/src/components/audio/PlayButton.vue:16 msgid "Play now" -msgstr "" +msgstr "Riproduci ora" #: front/src/components/audio/Player.vue:261 msgid "Play track" -msgstr "" +msgstr "Riproduci traccia" #: front/src/views/playlists/Detail.vue:90 msgid "Playlist" -msgstr "" +msgstr "Lista di riproduzione" #: front/src/views/playlists/Detail.vue:12 msgid "Playlist containing %{ count } track, by %{ username }" msgid_plural "Playlist containing %{ count } tracks, by %{ username }" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Lista di riproduzione contenente %{ count } traccia, di %{ username }" +msgstr[1] "Lista di riproduzione contenente %{ count } tracce, di %{ username }" #: front/src/components/playlists/Form.vue:9 msgid "Playlist created" -msgstr "" +msgstr "Lista di riproduzione creata" #: front/src/components/playlists/Editor.vue:4 msgid "Playlist editor" -msgstr "" +msgstr "Modifica lista di riproduzione" #: front/src/components/playlists/Form.vue:21 msgid "Playlist name" -msgstr "" +msgstr "Nome lista di riproduzione" #: front/src/components/playlists/Form.vue:6 msgid "Playlist updated" -msgstr "" +msgstr "Lista di riproduzione aggiornata" #: front/src/components/playlists/Form.vue:25 msgid "Playlist visibility" -msgstr "" +msgstr "Visibilità lista di riproduzione" #: front/src/components/Sidebar.vue:56 src/components/library/Home.vue:16 #: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83 #: front/src/views/playlists/List.vue:103 msgid "Playlists" -msgstr "" +msgstr "Liste di riproduzione" #: front/src/components/Home.vue:56 msgid "Playlists? We got them" -msgstr "" +msgstr "Liste di riproduzione? Ce le abbiamo" #: front/src/components/auth/Settings.vue:79 msgid "Please double-check your password is correct" -msgstr "" +msgstr "Per favore controlla se la tua password è corretta" #: front/src/components/auth/Login.vue:9 msgid "Please double-check your username/password couple is correct" -msgstr "" +msgstr "Per favore controlla se la combinazione nome utente/password è corretta" #: front/src/components/auth/Settings.vue:46 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." -msgstr "" +msgstr "PNG, GIF or JPG. Massimo 2MB. Saranno scalate a 400x400px." #: front/src/components/library/import/Main.vue:26 msgid "Previous step" -msgstr "" +msgstr "Passo precedente" #: front/src/components/audio/Player.vue:260 msgid "Previous track" -msgstr "" +msgstr "Traccia precedente" #: front/src/views/auth/EmailConfirm.vue:26 #: front/src/views/auth/PasswordResetConfirm.vue:31 msgid "Proceed to login" -msgstr "" +msgstr "Procedi all'accesso" #: front/src/components/federation/LibraryTrackTable.vue:50 msgid "Published date" -msgstr "" +msgstr "Data di pubblicazione" #: front/src/components/library/import/ArtistImport.vue:17 msgid "Query template" -msgstr "" +msgstr "Modello di ricerca" #: front/src/components/Sidebar.vue:20 msgid "Queue" -msgstr "" +msgstr "Coda" #: front/src/components/audio/Player.vue:203 msgid "Queue shuffled!" -msgstr "" +msgstr "Coda mischiata!" #: front/src/views/radios/Detail.vue:80 msgid "Radio" -msgstr "" +msgstr "Radio" #: front/src/components/library/radios/Builder.vue:226 msgid "Radio Builder" -msgstr "" +msgstr "Creatore Radio" #: front/src/components/library/radios/Builder.vue:15 msgid "Radio created" -msgstr "" +msgstr "Radio creata" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" -msgstr "" +msgstr "Nome radio" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "Data di creazione" +msgstr "Radio aggiornata" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 msgid "Radios" -msgstr "" +msgstr "Radio" #: front/src/views/instance/Timeline.vue:7 msgid "Recent activity on this instance" -msgstr "" +msgstr "Attività recenti su questa istanza" #: front/src/components/library/Home.vue:24 msgid "Recently added" -msgstr "" +msgstr "Aggiunte recentemente" #: front/src/components/library/Home.vue:11 -#, fuzzy msgid "Recently favorited" -msgstr "1 mi piace" +msgstr "Preferiti recenti" #: front/src/components/library/Home.vue:6 msgid "Recently listened" -msgstr "" +msgstr "Ascoltate recentemente" #: front/src/components/library/import/BatchDetail.vue:81 msgid "Recording MusicBrainz ID" -msgstr "" +msgstr "Registrazione MusicBrainzID" #: front/src/views/admin/users/UsersDetail.vue:84 #: front/src/views/federation/LibraryDetail.vue:122 msgid "Refresh" -msgstr "" +msgstr "Aggiorna" #: front/src/components/federation/LibraryFollowTable.vue:42 msgid "Refused" -msgstr "" +msgstr "Rifiutato" #: front/src/components/auth/Profile.vue:12 msgid "Registered since %{ date }" -msgstr "" +msgstr "Registrato da %{ date }" #: front/src/components/auth/Signup.vue:9 msgid "Registration are closed on this instance, you will need an invitation code to signup." msgstr "" +"Le registrazioni sono chiuse su questa istanza, hai bisogno di un codice " +"d'invito per registrarti." #: front/src/components/manage/users/UsersTable.vue:71 msgid "regular user" -msgstr "" +msgstr "utente semplice" #: front/src/components/library/radios/Filter.vue:59 msgid "Remove" -msgstr "" +msgstr "Rimuovi" #: front/src/components/auth/Settings.vue:58 msgid "Remove avatar" -msgstr "" +msgstr "Rimuovi avatar" #: front/src/components/favorites/TrackFavoriteIcon.vue:19 msgid "Remove from favorites" -msgstr "" +msgstr "Rimuovi dai preferiti" #: front/src/components/auth/SubsonicTokenForm.vue:34 #: front/src/components/auth/SubsonicTokenForm.vue:37 msgid "Request a new password" -msgstr "" +msgstr "Richiedi una nuova password" #: front/src/components/auth/SubsonicTokenForm.vue:35 msgid "Request a new Subsonic API password?" -msgstr "" +msgstr "Richiedere una nuova password API Subsonic?" #: front/src/components/auth/SubsonicTokenForm.vue:43 msgid "Request a password" -msgstr "" +msgstr "Richiedi una password" #: front/src/App.vue:35 msgid "Request music" -msgstr "" +msgstr "Richiedi musica" #: front/src/views/library/MusicRequest.vue:4 #: src/views/library/MusicRequest.vue:21 -#, fuzzy msgid "Request some music" -msgstr "Ore di musica" +msgstr "Richiedi della musica" #: front/src/components/requests/Form.vue:20 msgid "Request submitted!" -msgstr "" +msgstr "Richiesta inviata!" #: front/src/components/library/import/BatchDetail.vue:49 msgid "Rerun errored jobs" -msgstr "" +msgstr "Riavvia attività con errori" #: front/src/components/library/import/BatchDetail.vue:187 msgid "Rerun job" -msgstr "" +msgstr "Riavvia attività " #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4 #: front/src/views/auth/PasswordReset.vue:52 msgid "Reset your password" -msgstr "" +msgstr "Resetta la tua password" #: front/src/components/library/import/TrackImport.vue:31 msgid "Result %{ current }/%{ total }" -msgstr "" +msgstr "Risultato %{ current }/%{ total }" #: front/src/components/favorites/List.vue:38 #: src/components/library/Artists.vue:30 @@ -1786,16 +1810,16 @@ msgstr "" #: src/views/federation/LibraryList.vue:33 #: front/src/views/playlists/List.vue:32 msgid "Results per page" -msgstr "" +msgstr "Risultati per pagina" #: front/src/components/admin/SettingsGroup.vue:63 #: front/src/components/library/radios/Builder.vue:29 msgid "Save" -msgstr "" +msgstr "Salva" #: front/src/views/federation/LibraryDetail.vue:112 msgid "Scan triggered!" -msgstr "" +msgstr "Scansione avviata!" #: front/src/components/federation/LibraryTrackTable.vue:5 #: front/src/components/library/Artists.vue:10 @@ -1809,130 +1833,130 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:14 #: src/views/playlists/List.vue:13 msgid "Search" -msgstr "" +msgstr "Cerca" #: front/src/components/library/import/Main.vue:85 msgid "Search an entity you want to import:" -msgstr "" +msgstr "Cerca un elemento che vuoi importare:" #: front/src/components/manage/library/RequestsTable.vue:180 msgid "Search by artist, username, comment..." -msgstr "" +msgstr "Cerca per artista, nome utente, commento..." #: front/src/components/library/import/BatchDetail.vue:188 msgid "Search by source..." -msgstr "" +msgstr "Cerca per sorgente..." #: front/src/components/library/import/BatchList.vue:116 msgid "Search by submitter, source..." -msgstr "" +msgstr "Cerca per utente che ha caricato, sorgente..." #: front/src/components/federation/LibraryTrackTable.vue:182 #: front/src/components/manage/library/FilesTable.vue:175 msgid "Search by title, artist, domain..." -msgstr "" +msgstr "Cerca per titolo, artista, dominio..." #: front/src/components/federation/LibraryFollowTable.vue:140 msgid "Search by username, domain..." -msgstr "" +msgstr "Cerca per nome utente, dominio..." #: front/src/components/manage/users/InvitationsTable.vue:152 msgid "Search by username, email, code..." -msgstr "" +msgstr "Cerca per nome utente, email, codice..." #: front/src/components/manage/users/UsersTable.vue:162 msgid "Search by username, email, name..." -msgstr "" +msgstr "Cerca per nome utente, email, nome..." #: front/src/components/audio/SearchBar.vue:20 msgid "Search for artists, albums, tracks..." -msgstr "" +msgstr "Cerca per artisti, album, tracce..." #: front/src/components/audio/Search.vue:2 msgid "Search for some music" -msgstr "" +msgstr "Cerca un po' di musica" #: front/src/components/library/Track.vue:105 msgid "Search on lyrics.wikia.com" -msgstr "" +msgstr "Cerca su lyrics.wikia.com" #: front/src/components/library/Album.vue:33 #: src/components/library/Artist.vue:31 #: front/src/components/library/Track.vue:40 msgid "Search on Wikipedia" -msgstr "" +msgstr "Cerca su Wikipedia" #: front/src/components/library/import/TrackImport.vue:42 msgid "Search query" -msgstr "" +msgstr "Stringa di ricerca" #: front/src/views/admin/Settings.vue:15 msgid "Sections" -msgstr "" +msgstr "Sezioni" #: front/src/components/library/radios/Builder.vue:41 msgid "Select a filter" -msgstr "" +msgstr "Seleziona un filtro" #: front/src/components/common/ActionTable.vue:61 msgid "Select all %{ total } elements" msgid_plural "Select all %{ total } elements" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Seleziona tutti %{ total } elemento" +msgstr[1] "Seleziona tutti %{ total } elementi" #: front/src/components/library/import/FileUpload.vue:22 msgid "Select files to upload..." -msgstr "" +msgstr "Seleziona file da caricare..." #: front/src/components/common/ActionTable.vue:69 msgid "Select only current page" -msgstr "" +msgstr "Seleziona solo la pagina attuale" #: front/src/components/library/import/Main.vue:19 msgid "Select relevant sources or files for import" -msgstr "" +msgstr "Seleziona sorgenti adeguate o file da importare" #: front/src/components/federation/LibraryCard.vue:43 msgid "Send a follow request" -msgstr "" +msgstr "Invia una richiesta di seguire" #: front/src/components/Sidebar.vue:97 #: src/components/manage/users/UsersTable.vue:184 #: front/src/views/admin/users/UsersDetail.vue:165 msgid "Settings" -msgstr "" +msgstr "Impostazioni" #: front/src/components/auth/Settings.vue:10 msgid "Settings updated" -msgstr "" +msgstr "Impostazioni aggiornate" #: front/src/components/admin/SettingsGroup.vue:11 msgid "Settings updated successfully." -msgstr "" +msgstr "Impostazioni aggiornate con successo." #: front/src/components/auth/Profile.vue:24 msgid "Settings..." -msgstr "" +msgstr "Impostazioni..." #: front/src/components/manage/users/InvitationForm.vue:27 msgid "Share link" -msgstr "" +msgstr "Condividi collegamento" #: front/src/components/audio/artist/Card.vue:30 msgid "Show 1 more album" msgid_plural "Show %{ count } more albums" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mostra 1 altro album" +msgstr[1] "Mostra %{ count } altri album" #: front/src/components/audio/album/Card.vue:40 msgid "Show 1 more track" msgid_plural "Show %{ count } more tracks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mostra 1 altra traccia" +msgstr[1] "Mostra %{ count } altre tracce" #: front/src/components/forms/PasswordInput.vue:25 msgid "Show/hide password" -msgstr "" +msgstr "Mostra/nascondi password" #: front/src/components/federation/LibraryFollowTable.vue:97 #: front/src/components/federation/LibraryTrackTable.vue:98 @@ -1943,78 +1967,83 @@ msgstr "" #: front/src/components/manage/users/InvitationsTable.vue:76 #: front/src/components/manage/users/UsersTable.vue:87 msgid "Showing results %{ start }-%{ end } on %{ total }" -msgstr "" +msgstr "Mostrando risultati %{ start }-%{ end } su %{ total }" #: front/src/components/audio/Player.vue:269 msgid "Shuffle your queue" -msgstr "" +msgstr "Mischia la tua coda" #: front/src/components/auth/Signup.vue:95 msgid "Sign Up" -msgstr "" +msgstr "Registrati" #: front/src/components/manage/users/UsersTable.vue:40 #: front/src/views/admin/users/UsersDetail.vue:37 msgid "Sign-up" -msgstr "" +msgstr "Registrati" #: front/src/components/audio/track/Table.vue:31 msgid "Simply copy paste the snippet below into a terminal to launch the download." msgstr "" +"Copia e incolla il codice sottostante in un terminale per iniziare lo " +"scaricamento." #: front/src/components/library/Track.vue:69 #: front/src/components/library/import/FileUpload.vue:44 #: front/src/components/manage/library/FilesTable.vue:44 msgid "Size" -msgstr "" +msgstr "Dimensione" #: front/src/components/library/import/BatchDetail.vue:37 #: front/src/components/library/import/BatchDetail.vue:72 msgid "Skipped" -msgstr "" +msgstr "Saltato" #: front/src/components/requests/Form.vue:3 msgid "Something's missing in the library? Let us know what you would like to listen!" -msgstr "" +msgstr "Manca qualcosa nella libreria? Facci sapere cosa vorresti ascoltare!" #: front/src/components/audio/Search.vue:25 msgid "Sorry, we did not found any album matching your query" msgstr "" +"Ci dispiace, non abbiamo trovato nessun album corrispondente alla tua ricerca" #: front/src/components/audio/Search.vue:16 msgid "Sorry, we did not found any artist matching your query" msgstr "" +"Ci dispiace, non abbiamo trovato nessun artista corrispondente alla tua " +"ricerca" #: front/src/components/library/import/BatchDetail.vue:82 #: front/src/components/library/import/BatchList.vue:38 #: front/src/components/library/import/TrackImport.vue:17 msgid "Source" -msgstr "" +msgstr "Sorgente" #: front/src/App.vue:41 msgid "Source code" -msgstr "" +msgstr "Codice sorgente" #: front/src/App.vue:40 msgid "Source code (%{version})" -msgstr "" +msgstr "Codice sorgente (%{version})" #: front/src/components/auth/Profile.vue:20 #: front/src/components/manage/users/UsersTable.vue:70 msgid "Staff member" -msgstr "" +msgstr "Membro dello staff" #: front/src/components/radios/Button.vue:4 msgid "Start" -msgstr "" +msgstr "Inizia" #: front/src/components/library/import/FileUpload.vue:28 msgid "Start Upload" -msgstr "" +msgstr "Inizia caricamento" #: front/src/views/admin/Settings.vue:86 msgid "Statistics" -msgstr "" +msgstr "Statistiche" #: front/src/components/federation/LibraryFollowTable.vue:23 #: front/src/components/federation/LibraryTrackTable.vue:46 @@ -2029,288 +2058,316 @@ msgstr "" #: front/src/components/manage/users/InvitationsTable.vue:39 #: front/src/components/manage/users/UsersTable.vue:43 msgid "Status" -msgstr "" +msgstr "Stato" #: front/src/components/radios/Button.vue:3 msgid "Stop" -msgstr "" +msgstr "Ferma" #: front/src/components/Sidebar.vue:159 msgid "Stop radio" -msgstr "" +msgstr "Ferma radio" #: front/src/components/library/import/FileUpload.vue:32 msgid "Stop Upload" -msgstr "" +msgstr "Ferma Caricamento" #: front/src/App.vue:9 src/components/requests/Form.vue:17 msgid "Submit" -msgstr "" +msgstr "Invia" #: front/src/components/requests/Form.vue:22 msgid "Submit another request" -msgstr "" +msgstr "Invia un'altra richiesta" #: front/src/components/library/import/BatchDetail.vue:26 #: front/src/components/library/import/BatchList.vue:39 msgid "Submitted by" -msgstr "" +msgstr "Inviato da" #: front/src/views/admin/Settings.vue:85 msgid "Subsonic" -msgstr "" +msgstr "Subsonic" #: front/src/components/auth/SubsonicTokenForm.vue:2 msgid "Subsonic API password" -msgstr "" +msgstr "Password API Subsonic" #: front/src/components/library/import/BatchDetail.vue:71 #: front/src/components/library/import/BatchList.vue:16 #: front/src/components/library/import/FileUpload.vue:56 msgid "Success" -msgstr "" +msgstr "Successo" #: front/src/App.vue:11 msgid "Suggested choices" -msgstr "" +msgstr "Scelte suggerite" #: front/src/components/playlists/Editor.vue:9 msgid "Syncing changes to server..." -msgstr "" +msgstr "Sincronizzando le modifiche con il server..." #: front/src/components/Home.vue:26 msgid "That's simple: we loved Grooveshark and we want to build something even better." msgstr "" +"È molto semplice: amavamo Grooveshark e volevamo creare qualcosa ancora più " +"bello." #: front/src/components/requests/Form.vue:73 msgid "The Beatles, Mickael Jackson…" -msgstr "" +msgstr "The Beatles, Michael Jackson…" #: front/src/App.vue:59 msgid "The funkwhale logo was kindly designed and provided by Francis Gading." msgstr "" +"Il logo di Funkwhale è stato gentilmente disegnato e concesso da Francis " +"Gading." #: front/src/components/Home.vue:124 msgid "The plaform is free and open-source, you can install it and modify it without worries" msgstr "" +"La piattaforma è libera e open source, puoi installarla e modificarla senza " +"problemi" #: front/src/components/auth/SubsonicTokenForm.vue:4 msgid "The Subsonic API is not available on this Funkwhale instance." -msgstr "" +msgstr "L'API Subsonic non è disponibile su questa istanza Funkwhale." #: front/src/components/requests/Form.vue:74 msgid "The White Album, Thriller…" -msgstr "" +msgstr "The White Album, Thriller…" #: front/src/components/audio/track/Table.vue:30 msgid "There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks." msgstr "" +"Attualmente non c'è modo di scaricare direttamente più tracce da Funkwhale " +"come archivio ZIP. Comunque, puoi usare uno strumento da terminale come cURL " +"per scaricare facilmente una lista di tracce." #: front/src/components/library/import/Main.vue:149 msgid "This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled." msgstr "" +"Questa importazione sarà associata alla richiesta di musica sottostante. Una " +"volta che l'importazione è finita, la richiesta verrà segnata come " +"completata." #: front/src/views/federation/LibraryDetail.vue:195 msgid "This indicate if the remote library granted you access" -msgstr "" +msgstr "Questo indica se la libreria remota ti ha concesso l'accesso" #: front/src/components/auth/Profile.vue:16 msgid "This is you!" -msgstr "" +msgstr "Questo sei tu!" #: front/src/components/common/ActionTable.vue:37 msgid "This may affect a lot of elements, please double check this is really what you want." msgstr "" +"Questo può coinvolgere molti elementi, per favore ricontrolla se è proprio " +"quello che vuoi." #: front/src/components/audio/PlayButton.vue:61 msgid "This track is not imported and cannot be played" -msgstr "" +msgstr "Questa traccia non è importata e non può essere riprodotta" #: front/src/views/playlists/Detail.vue:37 msgid "This will completely delete this playlist and cannot be undone." msgstr "" +"Questo cancellerà questa lista di riproduzione e non può essere annullato." #: front/src/views/radios/Detail.vue:27 msgid "This will completely delete this radio and cannot be undone." -msgstr "" +msgstr "Questo cancellerà questa radio e non può essere annullato." #: front/src/components/auth/SubsonicTokenForm.vue:51 msgid "This will completely disable access to the Subsonic API using from account." msgstr "" +"Questo disabiliterà completamente l'accesso alla API Subsonic dagli account." #: front/src/App.vue:137 msgid "This will erase your local data and disconnect you, do you want to continue?" msgstr "" +"Questo cancellerà i tuoi dati locali e ti disconnetterà , vuoi continuare?" #: front/src/components/auth/SubsonicTokenForm.vue:36 msgid "This will log you out from existing devices that use the current password." msgstr "" +"Questo ti disconnetterà dai dispositivi esistenti che utilizzano la password " +"attuale." #: front/src/components/playlists/Editor.vue:44 msgid "This will remove all tracks from this playlist and cannot be undone." msgstr "" +"Questo cancellerà tutte le tracce da questa lista di riproduzione e non può " +"essere annullato." #: front/src/components/audio/track/Table.vue:6 #: front/src/components/federation/LibraryTrackTable.vue:47 #: front/src/components/manage/library/FilesTable.vue:37 msgid "Title" -msgstr "" +msgstr "Titolo" #: front/src/components/audio/SearchBar.vue:27 #: src/components/library/Track.vue:174 #: front/src/components/library/import/BatchDetail.vue:84 #: front/src/components/metadata/Search.vue:138 msgid "Track" -msgstr "" +msgstr "Traccia" #: front/src/components/library/Track.vue:53 msgid "Track information" -msgstr "" +msgstr "Informazioni traccia" #: front/src/components/library/radios/Filter.vue:44 msgid "Track matching filter" -msgstr "" +msgstr "Filtro corrispondenze traccia" #: front/src/components/instance/Stats.vue:54 msgid "tracks" -msgstr "" +msgstr "tracce" #: front/src/components/library/Album.vue:43 #: front/src/components/playlists/PlaylistModal.vue:33 #: front/src/views/federation/Base.vue:8 src/views/playlists/Detail.vue:50 #: front/src/views/radios/Detail.vue:34 msgid "Tracks" -msgstr "" +msgstr "Tracce" #: front/src/views/federation/LibraryDetail.vue:125 msgid "Tracks available in this library" -msgstr "" +msgstr "Tracce disponibili in questa libreria" #: front/src/components/library/Artist.vue:54 -#, fuzzy msgid "Tracks by this artist" -msgstr "Albums di questo artista" +msgstr "Tracce di questo artista" #: front/src/components/instance/Stats.vue:25 msgid "Tracks favorited" -msgstr "" +msgstr "Tracce preferite" #: front/src/components/instance/Stats.vue:19 msgid "tracks listened" -msgstr "" +msgstr "tracce ascoltate" #: front/src/views/federation/LibraryDetail.vue:109 msgid "Trigger scan" -msgstr "" +msgstr "Inizia scansione" #: front/src/components/manage/library/FilesTable.vue:41 msgid "Type" -msgstr "" +msgstr "Tipo" #: front/src/components/About.vue:15 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." msgstr "" +"Sfortunatamente i proprietari di questa istanza non hanno ancora avuto tempo " +"di completare questa pagina." #: front/src/views/federation/LibraryDetail.vue:95 msgid "Unknown" -msgstr "" +msgstr "Sconosciuto" #: front/src/components/Home.vue:37 msgid "Unlimited music" -msgstr "" +msgstr "Musica illimitata" #: front/src/components/audio/Player.vue:264 msgid "Unmute" -msgstr "" +msgstr "Non silenziare" #: front/src/components/auth/Settings.vue:50 msgid "Update avatar" -msgstr "" +msgstr "Aggiorna avatar" #: front/src/components/playlists/Form.vue:33 msgid "Update playlist" -msgstr "" +msgstr "Aggiorna lista di riproduzione" #: front/src/components/auth/Settings.vue:27 msgid "Update settings" -msgstr "" +msgstr "Aggiorna impostazioni" #: front/src/views/auth/PasswordResetConfirm.vue:21 msgid "Update your password" -msgstr "" +msgstr "Aggiorna la tua password" #: front/src/components/manage/users/UsersTable.vue:172 #: front/src/views/admin/users/UsersDetail.vue:153 msgid "Upload" -msgstr "" +msgstr "Carica" #: front/src/components/auth/Settings.vue:45 msgid "Upload a new avatar" -msgstr "" +msgstr "Carica un nuovo avatar" #: front/src/components/library/import/Main.vue:7 msgid "Uploaded files or external source" -msgstr "" +msgstr "File o sorgenti esterne caricati" #: front/src/components/library/import/FileUpload.vue:57 msgid "Uploading..." -msgstr "" +msgstr "Caricamento..." #: front/src/App.vue:45 msgid "Use another instance" -msgstr "" +msgstr "Usa un'altra istanza" #: front/src/components/requests/Form.vue:75 msgid "Use this comment box to add details to your request if needed" msgstr "" +"Usa questo riquadro di commento per aggiungere dettagli alla tua richiesta " +"se necessario" #: front/src/views/federation/LibraryDetail.vue:196 msgid "Use this flag to enable/disable federation with this library" msgstr "" +"Usa questa spunta per abilitare/disabilitare la federazione con questa " +"libreria" #: front/src/views/auth/PasswordReset.vue:12 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password." msgstr "" +"Usa questo modulo per richiedere un reset della password. Ti invieremo una " +"email all'indirizzo fornito con le istruzioni per resettare la tua password." #: front/src/components/federation/LibraryForm.vue:6 msgid "Use this form to scan an instance and setup federation." msgstr "" +"Usa questo modulo per scansionare un'istanza ed impostare la federazione." #: front/src/components/manage/users/InvitationsTable.vue:49 msgid "Used" -msgstr "" +msgstr "Usati" #: front/src/components/manage/library/RequestsTable.vue:47 msgid "User" -msgstr "" +msgstr "Utente" #: front/src/components/instance/Stats.vue:5 msgid "User activity" -msgstr "" +msgstr "Attività utente" #: front/src/components/library/Radios.vue:20 -#, fuzzy msgid "User radios" -msgstr "Sfogliando radio" +msgstr "Radio dell'utente" #: front/src/components/auth/Signup.vue:19 #: front/src/components/manage/users/UsersTable.vue:37 msgid "Username" -msgstr "" +msgstr "Nome utente" #: front/src/components/auth/Login.vue:15 msgid "Username or email" -msgstr "" +msgstr "Nome utente o email" #: front/src/components/instance/Stats.vue:13 msgid "users" -msgstr "" +msgstr "utenti" #: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 #: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 #: front/src/views/admin/users/UsersList.vue:21 msgid "Users" -msgstr "" +msgstr "Utenti" #: front/src/components/library/Album.vue:37 #: src/components/library/Artist.vue:35 @@ -2319,143 +2376,157 @@ msgstr "" #: front/src/components/metadata/ArtistCard.vue:49 #: front/src/components/metadata/ReleaseCard.vue:53 msgid "View on MusicBrainz" -msgstr "" +msgstr "Vedi su MusicBrainz" #: front/src/components/playlists/PlaylistModal.vue:20 msgid "We cannot add the track to a playlist" -msgstr "" +msgstr "Non possiamo aggiungere la traccia alla lista di riproduzione" #: front/src/components/playlists/Form.vue:14 msgid "We cannot create the playlist" -msgstr "" +msgstr "Non possiamo creare la lista di riproduzione" #: front/src/components/auth/Signup.vue:13 msgid "We cannot create your account" -msgstr "" +msgstr "Non possiamo creare il tuo account" #: front/src/components/auth/Login.vue:7 msgid "We cannot log you in" -msgstr "" +msgstr "Non riusciamo a farti accedere" #: front/src/components/auth/Settings.vue:38 -#, fuzzy msgid "We cannot save your avatar" -msgstr "Non puoi cambiare la tua password" +msgstr "Non possiamo salvare il tuo avatar" #: front/src/components/auth/Settings.vue:14 msgid "We cannot save your settings" -msgstr "" +msgstr "Non possiamo salvare le tue impostazioni" #: front/src/components/Home.vue:130 msgid "We do not track you or bother you with ads" -msgstr "" +msgstr "Noi non ti tracciamo o infastidiamo con pubblicità " #: front/src/components/library/import/FileUpload.vue:5 msgid "We recommend using Picard for that purpose." -msgstr "" +msgstr "Ti consigliamo di utilizzare Picard per quello scopo." #: front/src/components/Home.vue:7 msgid "We think listening to music should be simple." -msgstr "" +msgstr "Noi pensiamo che ascoltare musica debba essere semplice." #: front/src/components/PageNotFound.vue:10 msgid "We're sorry, the page you asked for does not exist:" -msgstr "" +msgstr "Ci dispiace, la pagina che hai richiesto non esiste:" #: front/src/components/requests/Form.vue:21 msgid "We've received your request, you'll get some groove soon ;)" -msgstr "" +msgstr "Abbiamo ricevuto la tua richiesta, presto avrai da divertirti ;)" #: front/src/components/Home.vue:152 msgid "Welcome" -msgstr "" +msgstr "Benvenuto" #: front/src/components/Home.vue:5 msgid "Welcome on Funkwhale" -msgstr "" +msgstr "Benvenuto su Funkwhale" #: front/src/components/library/import/Main.vue:114 msgid "What is metadata?" -msgstr "" +msgstr "Cosa vuol dire metadata?" #: front/src/views/federation/LibraryDetail.vue:197 msgid "When enabled, auto importing will automatically import new tracks published in this library" msgstr "" +"Quando abilitato, l'importazione automatica importerà autonomamente le nuove " +"tracce pubblicate in questa libreria" #: front/src/components/Home.vue:24 msgid "Why funkwhale?" -msgstr "" +msgstr "Perchè Funkwhale?" #: front/src/components/Sidebar.vue:124 msgid "Yes" -msgstr "" +msgstr "Si" #: front/src/components/auth/Logout.vue:8 msgid "Yes, log me out!" -msgstr "" +msgstr "Si, disconnettimi!" #: front/src/components/auth/Logout.vue:7 msgid "You are currently logged in as %{ username }" -msgstr "" +msgstr "Sei attualmente connesso come %{ username }" #: front/src/components/library/import/Main.vue:111 msgid "You can also skip this step and enter metadata manually." -msgstr "" +msgstr "Puoi anche saltare questo passaggio ed inserire manualmente i metadati." #: front/src/components/Home.vue:136 msgid "You can invite friends and family to your instance so they can enjoy your music" msgstr "" +"Puoi invitare amici e familiari sulla tua istanza così possono fruire della " +"tua musica" #: front/src/components/library/radios/Builder.vue:7 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria." msgstr "" +"Puoi usare questa interfaccia per creare la tua radio personalizzata, che " +"riprodurrà tracce in accordo con i tuoi criteri." #: front/src/components/auth/SubsonicTokenForm.vue:8 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance." msgstr "" +"Puoi usarli per godere delle tue liste di riproduzione e musica anche quando " +"non collegato, dal tuo cellulare o tablet, per esempio." #: front/src/components/Sidebar.vue:156 msgid "You have a radio playing" -msgstr "" +msgstr "Hai una radio in riproduzione" #: front/src/App.vue:6 msgid "You need to select an instance in order to continue" -msgstr "" +msgstr "Devi selezionare un'istanza per continuare" #: front/src/components/auth/Settings.vue:100 msgid "You will be logged out from this session and have to log in with the new one" -msgstr "" +msgstr "Sarai disconnesso da questa sessione e dovrai accedere con una nuova" #: front/src/components/auth/Settings.vue:71 msgid "You will have to update your password on your clients that use this password." msgstr "" +"Dovrai aggiornare la tua password sui tuoi dispositivi che utilizzano questa " +"password." #: front/src/components/library/import/Main.vue:103 msgid "You will import:" -msgstr "" +msgstr "Importerai:" #: front/src/views/auth/EmailConfirm.vue:24 msgid "Your email address was confirmed, you can now use the service without limitations." msgstr "" +"Il tuo indirizzo email è stato confermato, ora puoi usare il servizio senza " +"limitazioni." #: front/src/components/favorites/List.vue:109 msgid "Your Favorites" -msgstr "" +msgstr "I Tuoi Preferiti" #: front/src/components/Home.vue:117 msgid "Your music, your way" -msgstr "" +msgstr "La tua musica, il tuo modo di essere" #: front/src/views/auth/PasswordResetConfirm.vue:29 msgid "Your password has been updated successfully." -msgstr "" +msgstr "La tua password è stata aggiornata con successo." #: front/src/components/auth/Settings.vue:101 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password" msgstr "" +"La tua password Subsonic sarà cambiata con una nuova e casuale, e sarai " +"disconnesso dai dispositivi che utilizzano ancora la vecchia password " +"Subsonic" #: front/src/components/audio/PlayButton.vue:156 msgid "%{ count } track was added to your queue" msgid_plural "%{ count } tracks were added to your queue" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%{ count } traccia è stata aggiunta alla tua coda" +msgstr[1] "%{ count } tracce sono state aggiunte alla tua coda" diff --git a/front/locales/oc/LC_MESSAGES/app.po b/front/locales/oc/LC_MESSAGES/app.po index 095008a6c7009c73f97704fac0db690a4397b5a0..de2764bfddb14a876de1f6c8f194ed6d86b29667 100644 --- a/front/locales/oc/LC_MESSAGES/app.po +++ b/front/locales/oc/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-22 20:29+0000\n" +"PO-Revision-Date: 2018-07-24 17:46+0000\n" "Last-Translator: Quentà <quentin_antonin@hotmail.com>\n" "Language-Team: none\n" "Language: oc\n" @@ -28,7 +28,7 @@ msgstr "(%{ index } sus %{ length })" #: front/src/components/Sidebar.vue:22 msgid "(empty)" -msgstr "(void)" +msgstr "(voida)" #: front/src/components/common/ActionTable.vue:43 #: front/src/components/common/ActionTable.vue:51 @@ -2364,7 +2364,7 @@ msgstr "Nom d’utilizaire o corrièl" #: front/src/components/instance/Stats.vue:13 msgid "users" -msgstr "utilizaire" +msgstr "utilizaires" #: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 #: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 diff --git a/front/locales/pl/LC_MESSAGES/app.po b/front/locales/pl/LC_MESSAGES/app.po index 7cf384b590a4047fee8be977775c97e4d4953e6c..998f4e61eac99366c905b6a610843d0c79bb59e4 100644 --- a/front/locales/pl/LC_MESSAGES/app.po +++ b/front/locales/pl/LC_MESSAGES/app.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-20 19:03+0000\n" +"PO-Revision-Date: 2018-07-31 13:32+0000\n" "Last-Translator: Marcin MikoÅ‚ajczak <me@m4sk.in>\n" "Language-Team: \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 2.20\n" #: front/src/components/playlists/PlaylistModal.vue:9 @@ -669,9 +670,8 @@ msgid "Do you want to delete the playlist \"%{ playlist }\"?" msgstr "Czy chcesz usunąć listÄ™ odtwarzania „%{ playlist }â€?" #: front/src/views/radios/Detail.vue:26 -#, fuzzy msgid "Do you want to delete the radio \"%{ radio }\"?" -msgstr "Czy chcesz usunąć radio „{{ radio }}â€?" +msgstr "Czy chcesz usunąć radio „%{ radio }â€?" #: front/src/components/common/ActionTable.vue:29 msgid "Do you want to launch %{ action } on %{ count } element?" @@ -1002,7 +1002,7 @@ msgstr "Uzyskaj odpowiednie metadane" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "Pomóż nam tÅ‚umaczyć Funkwhale" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1682,18 +1682,16 @@ msgid "Radio Builder" msgstr "Tworzenie radia" #: front/src/components/library/radios/Builder.vue:15 -#, fuzzy msgid "Radio created" -msgstr "Nazwa radia" +msgstr "Utworzono radio" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" msgstr "Nazwa radia" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "Nazwa radia" +msgstr "Zaktualizowano radio" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 diff --git a/front/locales/sv/LC_MESSAGES/app.po b/front/locales/sv/LC_MESSAGES/app.po index 0fd43bceb065d002b1cf8476dbc89658b7f390d6..60bd0e9d215fcb03cb7af027c5f8d257a6b4aa81 100644 --- a/front/locales/sv/LC_MESSAGES/app.po +++ b/front/locales/sv/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-17 19:29+0200\n" -"PO-Revision-Date: 2018-07-21 21:30+0000\n" +"PO-Revision-Date: 2018-07-23 16:49+0000\n" "Last-Translator: Tim Stahel <gitlab@swedneck.xyz>\n" "Language-Team: none\n" "Language: sv\n" @@ -459,11 +459,11 @@ msgstr "" #: front/src/components/auth/Settings.vue:98 msgid "Changing your password will have the following consequences" -msgstr "" +msgstr "Ändring av lösenord har följande konsekvenser" #: front/src/App.vue:4 msgid "Choose your instance" -msgstr "" +msgstr "Välj din instans" #: front/src/components/Home.vue:64 msgid "Clean library" diff --git a/front/package.json b/front/package.json index 9837479badac5b9a1897c10ad2d375cf71d5e8a0..9c8cba9fee9d8382b4efd46ad54d44f8566946fd 100644 --- a/front/package.json +++ b/front/package.json @@ -1,124 +1,92 @@ { "name": "front", - "version": "1.0.0", - "description": "Funkwhale front-end", - "author": "Eliot Berriot <contact@eliotberriot.com>", + "version": "0.1.0", "private": true, "scripts": { - "dev": "scripts/i18n-compile.sh && node build/dev-server.js", - "start": "scripts/i18n-compile.sh && node build/dev-server.js", - "build": "node build/build.js", + "serve": "scripts/i18n-compile.sh && vue-cli-service serve --port ${VUE_PORT:-8000} --host ${VUE_HOST:-0.0.0.0}", + "build": "scripts/i18n-compile.sh && vue-cli-service build", + "lint": "vue-cli-service lint", "i18n-extract": "scripts/i18n-extract.sh", "i18n-compile": "scripts/i18n-compile.sh", - "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", - "unit-watch": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js", - "e2e": "node test/e2e/runner.js", - "test": "npm run unit && npm run e2e", - "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs" + "test:unit": "vue-cli-service test:unit" }, "dependencies": { - "@panter/vue-i18next": "^0.9.1", - "axios": "^0.17.1", - "dateformat": "^2.0.0", + "axios": "^0.18.0", + "dateformat": "^3.0.3", "django-channels": "^1.1.6", - "js-logger": "^1.3.0", + "howler": "^2.0.14", + "js-logger": "^1.4.1", "jwt-decode": "^2.2.0", - "lodash": "^4.17.4", - "masonry-layout": "^4.2.1", - "moment": "^2.20.1", - "moxios": "^0.4.0", - "raven-js": "^3.22.3", - "semantic-ui-css": "^2.2.10", + "lodash": "^4.17.10", + "masonry-layout": "^4.2.2", + "moment": "^2.22.2", + "raven-js": "^3.26.4", + "semantic-ui-css": "^2.3.3", "showdown": "^1.8.6", - "vue": "^2.5.16", - "vue-gettext": "^2.0.31", - "vue-lazyload": "^1.1.4", - "vue-masonry": "^0.10.16", - "vue-router": "^2.3.1", - "vue-upload-component": "^2.7.4", - "vuedraggable": "^2.14.1", + "vue": "^2.5.17", + "vue-gettext": "^2.1.0", + "vue-lazyload": "^1.2.6", + "vue-masonry": "^0.11.5", + "vue-router": "^3.0.1", + "vue-upload-component": "^2.8.11", + "vuedraggable": "^2.16.0", "vuex": "^3.0.1", - "vuex-persistedstate": "^2.5.2", + "vuex-persistedstate": "^2.5.4", "vuex-router-sync": "^5.0.0" }, "devDependencies": { - "autoprefixer": "^6.7.2", - "babel-core": "^6.22.1", - "babel-eslint": "^7.1.1", - "babel-loader": "7", - "babel-plugin-istanbul": "^4.1.1", - "babel-plugin-transform-runtime": "^6.22.0", - "babel-preset-env": "^1.3.2", - "babel-preset-stage-2": "^6.22.0", - "babel-register": "^6.22.0", - "chai": "^3.5.0", - "chalk": "^1.1.3", - "chromedriver": "^2.27.2", - "connect-history-api-fallback": "^1.3.0", - "copy-webpack-plugin": "^4.0.1", - "cross-env": "^4.0.0", - "cross-spawn": "^5.0.1", - "css-loader": "^0.28.0", - "easygettext": "^2.5.0", - "es6-promise": "^4.2.2", - "eslint": "^3.19.0", - "eslint-config-standard": "^6.2.1", - "eslint-friendly-formatter": "^2.0.7", - "eslint-loader": "^1.7.1", - "eslint-plugin-html": "^2.0.0", - "eslint-plugin-promise": "^3.4.0", - "eslint-plugin-standard": "^2.0.1", - "eventsource-polyfill": "^0.9.6", - "express": "^4.14.1", - "extract-text-webpack-plugin": "^2.0.0", - "file-loader": "^0.11.1", - "friendly-errors-webpack-plugin": "^1.1.3", - "html-webpack-plugin": "^2.28.0", - "http-proxy-middleware": "^0.17.3", - "inject-loader": "^3.0.0", - "karma": "^1.4.1", - "karma-coverage": "^1.1.1", - "karma-mocha": "^1.3.0", - "karma-phantomjs-launcher": "^1.0.2", - "karma-phantomjs-shim": "^1.4.0", - "karma-sinon-chai": "^1.3.1", - "karma-sinon-stub-promise": "^1.0.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-spec-reporter": "0.0.30", - "karma-webpack": "^2.0.2", - "lolex": "^1.5.2", - "mocha": "^3.2.0", - "nightwatch": "^0.9.12", - "node-sass": "^4.5.3", - "opn": "^4.0.2", - "optimize-css-assets-webpack-plugin": "^1.3.0", - "ora": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "rimraf": "^2.6.0", - "sass-loader": "^6.0.5", - "selenium-server": "^3.0.1", - "semver": "^5.3.0", - "shelljs": "^0.7.6", - "sinon": "^2.1.0", - "sinon-chai": "^2.8.0", - "sinon-stub-promise": "^4.0.0", - "url-loader": "^0.5.8", - "vue-loader": "^12.1.0", - "vue-style-loader": "^3.0.1", - "vue-template-compiler": "^2.3.3", - "webpack": "3", - "webpack-bundle-analyzer": "^2.2.1", - "webpack-dev-middleware": "^1.10.0", - "webpack-hot-middleware": "^2.18.0", - "webpack-merge": "^4.1.0" + "@vue/cli-plugin-babel": "^3.0.0", + "@vue/cli-plugin-eslint": "^3.0.0", + "@vue/cli-plugin-unit-mocha": "^3.0.0", + "@vue/cli-service": "^3.0.0", + "@vue/test-utils": "^1.0.0-beta.20", + "chai": "^4.1.2", + "easygettext": "^2.6.3", + "eslint-plugin-html": "^4.0.5", + "mocha": "^5.2.0", + "moxios": "^0.4.0", + "node-sass": "^4.9.3", + "sass-loader": "^7.1.0", + "sinon": "^6.1.5", + "vue-template-compiler": "^2.5.17" }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" + "eslintConfig": { + "root": true, + "env": { + "browser": true, + "node": true + }, + "plugins": [ + "html" + ], + "rules": { + "no-console": 0, + "no-unused-vars": [ + 2, + { + "vars": "all", + "args": "none" + } + ] + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "babel-eslint" + } + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } }, "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" - ] + ], + "author": "Eliot Berriot <contact@eliotberriot.com>", + "description": "Funkwhale front-end" } diff --git a/front/public/custom.css b/front/public/custom.css new file mode 100644 index 0000000000000000000000000000000000000000..a5bbb2cff2be83d5920f18110082708b06882881 --- /dev/null +++ b/front/public/custom.css @@ -0,0 +1 @@ +/* This is a custom CSS file that can be loaded thanks to settings.json */ diff --git a/front/src/assets/logo/favicon.png b/front/public/favicon.png similarity index 100% rename from front/src/assets/logo/favicon.png rename to front/public/favicon.png diff --git a/front/public/index.html b/front/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..e6232290bb0a84ecc9045c3ce2d9df04ef95fa2d --- /dev/null +++ b/front/public/index.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <link rel="icon" href="<%= BASE_URL %>favicon.png"> + <title>Funkwhale</title> +</head> + +<body> + <noscript> + <strong>We're sorry but front doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> + </noscript> + <div id="app"></div> + <!-- built files will be auto injected --> +</body> + +</html> diff --git a/front/public/settings.json b/front/public/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..133fb567205ee6e4ab171655cde48e7e8a685d9b --- /dev/null +++ b/front/public/settings.json @@ -0,0 +1,3 @@ +{ + "additionalStylesheets": ["/custom.css"] +} diff --git a/front/src/App.vue b/front/src/App.vue index 58ed698aa98cc1236dbfebd7d5345b5739033b00..f80020e93931f376fb601a70dbd590569524dc13 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -1,5 +1,7 @@ <template> <div id="app"> + <!-- here, we display custom stylesheets, if any --> + <link v-for="url in customStylesheets" rel="stylesheet" property="stylesheet" :href="url" :key="url"> <div class="ui main text container instance-chooser" v-if="!$store.state.instance.instanceUrl"> <div class="ui padded segment"> <h1 class="ui header"><translate>Choose your instance</translate></h1> @@ -163,11 +165,7 @@ export default { messages: state => state.ui.messages }), suggestedInstances () { - let rootUrl = ( - window.location.protocol + '//' + window.location.hostname + - (window.location.port ? ':' + window.location.port : '') - ) - let instances = [rootUrl, 'https://demo.funkwhale.audio'] + let instances = [this.$store.getters['instance/defaultUrl'](), 'https://demo.funkwhale.audio'] return instances }, version () { @@ -175,6 +173,11 @@ export default { return null } return _.get(this.nodeinfo, 'software.version') + }, + customStylesheets () { + if (this.$store.state.instance.frontSettings) { + return this.$store.state.instance.frontSettings.additionalStylesheets || [] + } } }, watch: { @@ -243,7 +246,7 @@ html, body { left: 350px; right: 0px; top: 0px; - z-index: 1; + z-index: 2000; } background-color: white; .item { diff --git a/front/src/assets/audio/default-cover.png b/front/src/assets/audio/default-cover.png index c1dde7e5f23fc7593b7ea3093a418424f200ded5..86aa7acbd7f706983dd5c1315a936078f652c2b8 100644 Binary files a/front/src/assets/audio/default-cover.png and b/front/src/assets/audio/default-cover.png differ diff --git a/front/src/assets/logo/License.md b/front/src/assets/logo/License.md new file mode 100644 index 0000000000000000000000000000000000000000..af812bb30af5a0b3b2052706993b2908e04d0413 --- /dev/null +++ b/front/src/assets/logo/License.md @@ -0,0 +1,5 @@ +This work is provided under the terms of the Attribution-ShareAlike 4.0 International (CC BY-SA 3.0) license. + +The terms of this license can be found here : https://creativecommons.org/licenses/by-sa/4.0/legalcode. + +The logo, the favicon and its derivatives were designed by Francis Gading. diff --git a/front/src/components/Pagination.vue b/front/src/components/Pagination.vue index ca40cdd0762862e8371cdd2f6928dff25a0da0f8..cc5f171649fb6fa5832832f90ba11a3d93c79a9b 100644 --- a/front/src/components/Pagination.vue +++ b/front/src/components/Pagination.vue @@ -84,9 +84,10 @@ export default { } </script> +<!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> -.ui.menu { - border: none; - box-shadow: none; +.ui.pagination.menu .item { + cursor: pointer; } </style> + diff --git a/front/src/components/Sidebar.vue b/front/src/components/Sidebar.vue index 4a3f42c773a23c268a943ef77cbdd4bcb33eab13..803518528841c08fa7297e84e6c8c5a0b017b82d 100644 --- a/front/src/components/Sidebar.vue +++ b/front/src/components/Sidebar.vue @@ -191,7 +191,8 @@ export default { backend: backend, tracksChangeBuffer: null, isCollapsed: true, - fetchInterval: null + fetchInterval: null, + showAdmin: this.getShowAdmin() } }, mounted () { @@ -220,16 +221,6 @@ export default { pendingFollows } }, - showAdmin () { - let adminPermissions = [ - this.$store.state.auth.availablePermissions['federation'], - this.$store.state.auth.availablePermissions['library'], - this.$store.state.auth.availablePermissions['upload'] - ] - return adminPermissions.filter(e => { - return e - }).length > 0 - }, tracks: { get () { return this.$store.state.queue.tracks @@ -250,6 +241,17 @@ export default { ...mapActions({ cleanTrack: 'queue/cleanTrack' }), + getShowAdmin () { + let adminPermissions = [ + this.$store.state.auth.availablePermissions['federation'], + this.$store.state.auth.availablePermissions['library'], + this.$store.state.auth.availablePermissions['upload'] + ] + return adminPermissions.filter(e => { + return e + }).length > 0 + }, + fetchNotificationsCount () { this.$store.dispatch('ui/fetchFederationNotificationsCount') this.$store.dispatch('ui/fetchImportRequestsCount') @@ -289,6 +291,7 @@ export default { }, '$store.state.auth.availablePermissions': { handler () { + this.showAdmin = this.getShowAdmin() this.fetchNotificationsCount() }, deep: true diff --git a/front/src/components/audio/PlayButton.vue b/front/src/components/audio/PlayButton.vue index ad85e72ce82191d88edf18ccd3eb3fbb462bfb63..b1421225bd72419b45dfb21de6022a553929dbe3 100644 --- a/front/src/components/audio/PlayButton.vue +++ b/front/src/components/audio/PlayButton.vue @@ -110,7 +110,7 @@ export default { resolve(self.tracks) } else if (self.playlist) { let url = 'playlists/' + self.playlist.id + '/' - axios.get(url + 'tracks').then((response) => { + axios.get(url + 'tracks/').then((response) => { resolve(response.data.results.map(plt => { return plt.track })) diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue index 704121d92e2fb98f0688634bbd184bb768258fd8..8e4185c0c6f285346b1101377386f08fe9555a68 100644 --- a/front/src/components/audio/Player.vue +++ b/front/src/components/audio/Player.vue @@ -1,16 +1,15 @@ <template> <div class="ui inverted segment player-wrapper" :style="style"> <div class="player"> - <keep-alive> - <audio-track - ref="currentAudio" - v-if="renderAudio && currentTrack" - :is-current="true" - :start-time="$store.state.player.currentTime" - :autoplay="$store.state.player.playing" - :track="currentTrack"> - </audio-track> - </keep-alive> + <audio-track + ref="currentAudio" + v-if="currentTrack" + :is-current="true" + :start-time="$store.state.player.currentTime" + :autoplay="$store.state.player.playing" + :key="audioKey" + :track="currentTrack"> + </audio-track> <div v-if="currentTrack" class="track-area ui unstackable items"> <div class="ui inverted item"> <div class="ui tiny image"> @@ -160,13 +159,13 @@ import {mapState, mapGetters, mapActions} from 'vuex' import GlobalEvents from '@/components/utils/global-events' import ColorThief from '@/vendor/color-thief' +import {Howl} from 'howler' import AudioTrack from '@/components/audio/Track' import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon' import TrackPlaylistIcon from '@/components/playlists/TrackPlaylistIcon' export default { - name: 'player', components: { TrackFavoriteIcon, TrackPlaylistIcon, @@ -177,16 +176,28 @@ export default { let defaultAmbiantColors = [[46, 46, 46], [46, 46, 46], [46, 46, 46], [46, 46, 46]] return { isShuffling: false, - renderAudio: true, sliderVolume: this.volume, defaultAmbiantColors: defaultAmbiantColors, showVolume: false, - ambiantColors: defaultAmbiantColors + ambiantColors: defaultAmbiantColors, + audioKey: String(new Date()), + dummyAudio: null } }, mounted () { // we trigger the watcher explicitely it does not work otherwise this.sliderVolume = this.volume + // this is needed to unlock audio playing under some browsers, + // cf https://github.com/goldfire/howler.js#mobilechrome-playback + // but we never actually load those audio files + this.dummyAudio = new Howl({ + preload: false, + autoplay: false, + src: ['noop.webm', 'noop.mp3'] + }) + }, + destroyed () { + this.dummyAudio.unload() }, methods: { ...mapActions({ @@ -305,21 +316,13 @@ export default { }, watch: { currentTrack (newValue) { + if (!this.isShuffling) { + this.audioKey = String(new Date()) + } if (!newValue || !newValue.album.cover) { this.ambiantColors = this.defaultAmbiantColors } }, - currentIndex (newValue, oldValue) { - if (newValue !== oldValue) { - // why this? to ensure the audio tag is deleted and fully - // rerendered, so we don't have any issues with cached position - // or whatever - this.renderAudio = false - this.$nextTick(() => { - this.renderAudio = true - }) - } - }, volume (newValue) { this.sliderVolume = newValue }, @@ -385,9 +388,6 @@ export default { .volume-control { position: relative; width: 12.5% !important; - .icon { - // margin: 0; - } [type="range"] { max-width: 70%; position: absolute; @@ -395,16 +395,11 @@ export default { left: 25%; cursor: pointer; } - input[type=range] { - -webkit-appearance: none; - } input[type=range]:focus { outline: none; } input[type=range]::-webkit-slider-runnable-track { cursor: pointer; - background: white; - opacity: 0.3; } input[type=range]::-webkit-slider-thumb { background: white; @@ -413,10 +408,6 @@ export default { border-radius: 3px; width: 10px; } - input[type=range]:focus::-webkit-slider-runnable-track { - background: #white; - opacity: 0.3; - } input[type=range]::-moz-range-track { cursor: pointer; background: white; @@ -455,7 +446,7 @@ export default { background: white; } input[type=range]:focus::-ms-fill-upper { - background: #white; + background: white; } } diff --git a/front/src/components/audio/Track.vue b/front/src/components/audio/Track.vue index 9be38337717e8d024e3f711e019a960762d7c355..e22cb62c79995a799c2d02b85f2b1a7fe029173e 100644 --- a/front/src/components/audio/Track.vue +++ b/front/src/components/audio/Track.vue @@ -1,24 +1,13 @@ <template> - <audio - ref="audio" - @error="errored" - @loadeddata="loaded" - @durationchange="updateDuration" - @timeupdate="updateProgressThrottled" - @ended="ended" - preload> - <source - @error="sourceErrored" - v-for="src in srcs" - :src="src.url" - :type="src.type"> - </audio> + <i /> </template> <script> import {mapState} from 'vuex' -import url from '@/utils/url' import _ from 'lodash' +import url from '@/utils/url' +import {Howl} from 'howler' + // import logger from '@/logging' export default { @@ -30,11 +19,44 @@ export default { }, data () { return { - realTrack: this.track, sourceErrors: 0, - isUpdatingTime: false + sound: null, + isUpdatingTime: false, + progressInterval: null } }, + mounted () { + let self = this + this.sound = new Howl({ + src: this.srcs.map((s) => { return s.url }), + autoplay: false, + loop: false, + html5: true, + preload: true, + volume: this.volume, + onend: function () { + self.ended() + }, + onunlock: function () { + if (this.$store.state.player.playing) { + self.sound.play() + } + }, + onload: function () { + self.$store.commit('player/resetErrorCount') + self.$store.commit('player/duration', self.sound.duration()) + } + }) + if (this.autoplay) { + this.sound.play() + this.$store.commit('player/playing', true) + this.observeProgress(true) + } + }, + destroyed () { + this.observeProgress(false) + this.sound.unload() + }, computed: { ...mapState({ playing: state => state.player.playing, @@ -44,7 +66,7 @@ export default { looping: state => state.player.looping }), srcs: function () { - let file = this.realTrack.files[0] + let file = this.track.files[0] if (!file) { this.$store.dispatch('player/trackErrored') return [] @@ -68,90 +90,58 @@ export default { } }, methods: { - errored: function () { - let self = this - setTimeout( - () => { self.$store.dispatch('player/trackErrored') } - , 1000) - }, - sourceErrored: function () { - this.sourceErrors += 1 - if (this.sourceErrors >= this.srcs.length) { - // all sources failed - this.errored() - } - }, - updateDuration: function (e) { - if (!this.$refs.audio) { - return - } - this.$store.commit('player/duration', this.$refs.audio.duration) - }, - loaded: function () { - if (!this.$refs.audio) { - return - } - this.$refs.audio.volume = this.volume - this.$store.commit('player/resetErrorCount') - if (this.isCurrent) { - this.$store.commit('player/duration', this.$refs.audio.duration) - if (this.startTime) { - this.setCurrentTime(this.startTime) - } - if (this.autoplay) { - this.$store.commit('player/playing', true) - this.$refs.audio.play() - } - } - }, updateProgress: function () { this.isUpdatingTime = true - if (this.$refs.audio) { - this.$store.dispatch('player/updateProgress', this.$refs.audio.currentTime) + if (this.sound && this.sound.state() === 'loaded') { + this.$store.dispatch('player/updateProgress', this.sound.seek()) } }, - ended: function () { - let onlyTrack = this.$store.state.queue.tracks.length === 1 - if (this.looping === 1 || (onlyTrack && this.looping === 2)) { - this.setCurrentTime(0) - this.$refs.audio.play() + observeProgress: function (enable) { + let self = this + if (enable) { + if (self.progressInterval) { + clearInterval(self.progressInterval) + } + self.progressInterval = setInterval(() => { + self.updateProgress() + }, 1000) } else { - this.$store.dispatch('player/trackEnded', this.realTrack) + clearInterval(self.progressInterval) } }, setCurrentTime (t) { if (t < 0 | t > this.duration) { return } - if (t === this.$refs.audio.currentTime) { + if (t === this.sound.seek()) { return } if (t === 0) { this.updateProgressThrottled.cancel() } - this.$refs.audio.currentTime = t + this.sound.seek(t) + }, + ended: function () { + let onlyTrack = this.$store.state.queue.tracks.length === 1 + if (this.looping === 1 || (onlyTrack && this.looping === 2)) { + this.sound.seek(0) + this.sound.play() + } else { + this.$store.dispatch('player/trackEnded', this.track) + } } }, watch: { - track: _.debounce(function (newValue) { - this.realTrack = newValue - this.setCurrentTime(0) - this.$refs.audio.load() - }, 1000, {leading: true, trailing: true}), playing: function (newValue) { if (newValue === true) { - this.$refs.audio.play() + this.sound.play() } else { - this.$refs.audio.pause() - } - }, - '$store.state.queue.currentIndex' () { - if (this.$store.state.player.playing) { - this.$refs.audio.play() + this.sound.pause() } + this.observeProgress(newValue) }, volume: function (newValue) { - this.$refs.audio.volume = newValue + this.sound.volume(newValue) }, currentTime (newValue) { if (!this.isUpdatingTime) { diff --git a/front/src/components/audio/track/Row.vue b/front/src/components/audio/track/Row.vue index cf79267cfddf250206b4a8e8ec520528ba7ff0ed..91b10c32e06b75e22bcf5584aa61e0c6f449b3fe 100644 --- a/front/src/components/audio/track/Row.vue +++ b/front/src/components/audio/track/Row.vue @@ -15,7 +15,7 @@ {{ track.title }} </router-link> </td> - <td colspan="6"> + <td colspan="4"> <router-link v-if="track.artist.id === albumArtist.id" class="artist discrete link" :to="{name: 'library.artists.detail', params: {id: track.artist.id }}"> {{ track.artist.name }} </router-link> @@ -29,11 +29,17 @@ </router-link> </template> </td> - <td colspan="6"> + <td colspan="4"> <router-link class="album discrete link" :to="{name: 'library.albums.detail', params: {id: track.album.id }}"> {{ track.album.title }} </router-link> </td> + <td colspan="4" v-if="file && file.duration"> + {{ time.parse(file.duration) }} + </td> + <td colspan="4" v-else> + <translate>N/A</translate> + </td> <td> <track-favorite-icon class="favorite-icon" :track="track"></track-favorite-icon> <track-playlist-icon @@ -44,6 +50,8 @@ </template> <script> + +import time from '@/utils/time' import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon' import TrackPlaylistIcon from '@/components/playlists/TrackPlaylistIcon' import PlayButton from '@/components/audio/PlayButton' @@ -59,6 +67,11 @@ export default { TrackPlaylistIcon, PlayButton }, + data () { + return { + time + } + }, computed: { albumArtist () { if (this.artist) { @@ -66,6 +79,9 @@ export default { } else { return this.track.album.artist } + }, + file () { + return this.track.files[0] } } } diff --git a/front/src/components/audio/track/Table.vue b/front/src/components/audio/track/Table.vue index 03e9398f8a6b9ff9518bd9874db331bc5fabee6c..2b49284c8551ed85f0e40f60091f97c19d78a44a 100644 --- a/front/src/components/audio/track/Table.vue +++ b/front/src/components/audio/track/Table.vue @@ -5,8 +5,9 @@ <th></th> <th></th> <th colspan="6"><translate>Title</translate></th> - <th colspan="6"><translate>Artist</translate></th> - <th colspan="6"><translate>Album</translate></th> + <th colspan="4"><translate>Artist</translate></th> + <th colspan="4"><translate>Album</translate></th> + <th colspan="4"><translate>Duration</translate></th> <th></th> </tr> </thead> diff --git a/front/src/components/audio/track/Widget.vue b/front/src/components/audio/track/Widget.vue index ca3ae2424b10da96de75216ced1d5ab1654ebd6c..6a1d066904129b89dea2ceb99fcc4bcf41c8c984 100644 --- a/front/src/components/audio/track/Widget.vue +++ b/front/src/components/audio/track/Widget.vue @@ -10,9 +10,6 @@ <i @click="fetchData(url)" :class="['ui', 'circular', 'medium', 'refresh', 'icon']"> </i> <div class="ui divided unstackable items"> - <div v-if="isLoading" class="ui inverted active dimmer"> - <div class="ui loader"></div> - </div> <div class="item" v-for="object in objects" :key="object.id"> <div class="ui tiny image"> <img v-if="object.track.album.cover.original" v-lazy="$store.getters['instance/absoluteUrl'](object.track.album.cover.medium_square_crop)"> @@ -45,6 +42,9 @@ </div> </div> </div> + <div v-if="isLoading" class="ui inverted active dimmer"> + <div class="ui loader"></div> + </div> </div> </div> </template> @@ -126,4 +126,7 @@ export default { .refresh.icon { float: right; } +.ui.divided.items > .item:last-child { + padding-bottom: 1em !important; +} </style> diff --git a/front/src/components/auth/Profile.vue b/front/src/components/auth/Profile.vue index 23af78c616a3be26a63919812c7067442c678041..fd9ce7c9548ebfd31709e83b014c07e78d450cd0 100644 --- a/front/src/components/auth/Profile.vue +++ b/front/src/components/auth/Profile.vue @@ -16,10 +16,13 @@ <div class="ui basic green label"> <translate>This is you!</translate> </div> - <div v-if="profile.is_staff" class="ui yellow label"> + <a v-if="profile.is_staff" + class="ui yellow label" + :href="$store.getters['instance/absoluteUrl']('/api/admin')" + target="_blank"> <i class="star icon"></i> <translate>Staff member</translate> - </div> + </a> <router-link class="ui tiny basic button" :to="{path: '/settings'}"> <i class="setting icon"></i> <translate>Settings...</translate> diff --git a/front/src/components/library/Artist.vue b/front/src/components/library/Artist.vue index 0f0abe1e91756b12bbf1b19d075ce8b347155e21..a507ae4034449ca3168a3383f9d7a976dd2c2d63 100644 --- a/front/src/components/library/Artist.vue +++ b/front/src/components/library/Artist.vue @@ -1,6 +1,6 @@ <template> - <div> - <div v-if="isLoading" class="ui vertical segment" v-title="labels.title"> + <div v-title="labels.title"> + <div v-if="isLoading" class="ui vertical segment"> <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div> </div> <template v-if="artist"> @@ -102,7 +102,7 @@ export default { self.artist = response.data self.isLoading = false self.isLoadingAlbums = true - axios.get('albums/', {params: {artist: this.id, ordering: '-release_date'}}).then((response) => { + axios.get('albums/', {params: {artist: self.id, ordering: '-release_date'}}).then((response) => { let parsed = JSON.parse(JSON.stringify(response.data.results)) self.albums = parsed.map((album) => { return backend.Album.clean(album) @@ -158,7 +158,7 @@ export default { })[0] }, headerStyle () { - if (!this.cover.original) { + if (!this.cover || !this.cover.original) { return '' } return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.cover.original) + ')' diff --git a/front/src/components/library/Library.vue b/front/src/components/library/Library.vue index d860ab6dc606c804662e654d8eee329fa7984085..db2ac27b4aced81c3450a38e41b458b149429166 100644 --- a/front/src/components/library/Library.vue +++ b/front/src/components/library/Library.vue @@ -54,7 +54,7 @@ export default { } &.with-background { .header { - &, .sub, a { + &, .sub { text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8); color: white !important; } diff --git a/front/src/components/library/Track.vue b/front/src/components/library/Track.vue index 01824292fc24d0fcfbf61e96c38ee28f7c286336..2a58536d88ab9c77eddb041dd9ad2c390178e54a 100644 --- a/front/src/components/library/Track.vue +++ b/front/src/components/library/Track.vue @@ -87,6 +87,17 @@ <translate>N/A</translate> </td> </tr> + <tr> + <td> + <translate>Type</translate> + </td> + <td v-if="file.mimetype"> + {{ file.mimetype }} + </td> + <td v-else> + <translate>N/A</translate> + </td> + </tr> </tbody> </table> </div> diff --git a/front/src/components/library/radios/Builder.vue b/front/src/components/library/radios/Builder.vue index ff991431fbf59d52d573b7f454f2f31133259c7e..91ea702464d1768b4ef1d3879cd5612c8f917743 100644 --- a/front/src/components/library/radios/Builder.vue +++ b/front/src/components/library/radios/Builder.vue @@ -17,12 +17,16 @@ </template> </div> </div> - <div class="inline fields"> + <div class=""> <div class="field"> <label for="name"><translate>Radio name</translate></label> - <input id="name" type="text" v-model="radioName" :placeholder="labels.placeholder" /> + <input id="name" type="text" v-model="radioName" :placeholder="labels.placeholder.name" /> </div> <div class="field"> + <label for="description"><translate>Description</translate></label> + <textarea rows="2" id="description" type="text" v-model="radioDesc" :placeholder="labels.placeholder.description" /> + </div> + <div class="inline field"> <input id="public" type="checkbox" v-model="isPublic" /> <label for="public"><translate>Display publicly</translate></label> </div> @@ -113,6 +117,7 @@ export default { filters: [], checkResult: null, radioName: '', + radioDesc: '', isPublic: true } }, @@ -164,6 +169,7 @@ export default { } }) self.radioName = response.data.name + self.radioDesc = response.data.description self.isPublic = response.data.is_public self.isLoading = false }) @@ -197,6 +203,7 @@ export default { }) final = { 'name': this.radioName, + 'description': this.radioDesc, 'is_public': this.isPublic, 'config': final } @@ -224,7 +231,10 @@ export default { computed: { labels () { let title = this.$gettext('Radio Builder') - let placeholder = this.$gettext('My awesome radio') + let placeholder = { + 'name': this.$gettext('My awesome radio'), + 'description': this.$gettext('My awesome description') + } return { title, placeholder diff --git a/front/src/components/manage/library/FilesTable.vue b/front/src/components/manage/library/FilesTable.vue index 731e19471af4117e1fda989e8ea5f05bb7980f3a..28d2f3997ddad0b60f5ff2d5d6b4679e9b5648c7 100644 --- a/front/src/components/manage/library/FilesTable.vue +++ b/front/src/components/manage/library/FilesTable.vue @@ -57,8 +57,8 @@ <td> <human-date :date="scope.obj.creation_date"></human-date> </td> - <td v-if="scope.obj.audio_mimetype"> - {{ scope.obj.audio_mimetype }} + <td v-if="scope.obj.mimetype"> + {{ scope.obj.mimetype }} </td> <td v-else> <translate>N/A</translate> diff --git a/front/src/components/radios/Card.vue b/front/src/components/radios/Card.vue index 68b453fabcd83dacfb486a473c063f3c40350c96..20300f7ec67ed2e59489d084540cada456b30990 100644 --- a/front/src/components/radios/Card.vue +++ b/front/src/components/radios/Card.vue @@ -14,13 +14,14 @@ </div> </div> <div class="extra content"> + <user-link :user="radio.user" class="left floated" /> + <radio-button class="right floated button" :type="type" :custom-radio-id="customRadioId"></radio-button> <router-link - class="ui basic yellow button" - v-if="$store.state.auth.authenticated && type === 'custom' && customRadio.user === $store.state.auth.profile.id" + class="ui basic yellow button right floated" + v-if="$store.state.auth.authenticated && type === 'custom' && radio.user.id === $store.state.auth.profile.id" :to="{name: 'library.radios.edit', params: {id: customRadioId }}"> <translate>Edit...</translate> </router-link> - <radio-button class="right floated button" :type="type" :custom-radio-id="customRadioId"></radio-button> </div> </div> </template> diff --git a/front/src/locales.js b/front/src/locales.js index 39fb45532737c63aee111019e1fbf80478662267..db2d988078e1e727ffeff3a09ebb269f61c1a367 100644 --- a/front/src/locales.js +++ b/front/src/locales.js @@ -12,6 +12,14 @@ export default { "code": "eo", "label": "Esperanto" }, + { + "code": "de", + "label": "Deutsch" + }, + { + "code": "es", + "label": "Español" + }, { "code": "fr_FR", "label": "Français" @@ -27,6 +35,10 @@ export default { { "code": "pl", "label": "Polszczyzna" + }, + { + "code": "pt_PT", + "label": "Português (Portugal)" } ] } diff --git a/front/src/main.js b/front/src/main.js index 7f60c602c9559f71484c9e45d1bed0c9334adad5..eca2e620545a46e66dfc84606c3b85a0c2bab9f6 100644 --- a/front/src/main.js +++ b/front/src/main.js @@ -43,6 +43,10 @@ if (availableLanguages[store.state.ui.currentLanguage]) { Vue.use(GetTextPlugin, { availableLanguages: availableLanguages, defaultLanguage: defaultLanguage, + // cf https://github.com/Polyconseil/vue-gettext#configuration + // not recommended but this is fixing weird bugs with translation nodes + // not being updated when in v-if/v-else clauses + autoAddKeyAttributes: true, languageVmMixin: { computed: { currentKebabCase: function () { @@ -126,6 +130,8 @@ axios.interceptors.response.use(function (response) { return Promise.reject(error) }) +store.dispatch('instance/fetchFrontSettings') + /* eslint-disable no-new */ new Vue({ el: '#app', diff --git a/front/src/router/index.js b/front/src/router/index.js index 1747c88581f9ef45254a07fc79a0a27d41e68d4f..0d8a0b9367c126d8585133a78bd56466814b5544 100644 --- a/front/src/router/index.js +++ b/front/src/router/index.js @@ -100,7 +100,7 @@ export default new Router({ name: 'signup', component: Signup, props: (route) => ({ - invitation: route.query.invitation + defaultInvitation: route.query.invitation }) }, { diff --git a/front/src/store/favorites.js b/front/src/store/favorites.js index 5983d18051fe2f519ca3b0ac7454a148af0aea2c..131db24bd90cbe334d40bb2c7eaf359afe5e073c 100644 --- a/front/src/store/favorites.js +++ b/front/src/store/favorites.js @@ -56,13 +56,20 @@ export default { fetch ({dispatch, state, commit, rootState}, url) { // will fetch favorites by batches from API to have them locally let params = { - user: rootState.auth.profile.id + user: rootState.auth.profile.id, + page_size: 50, + ordering: '-creation_date' } - url = url || 'favorites/tracks/' - return axios.get(url, {params: params}).then((response) => { + let promise + if (url) { + promise = axios.get(url) + } else { + promise = axios.get('favorites/tracks/', {params: params}) + } + return promise.then((response) => { logger.default.info('Fetched a batch of ' + response.data.results.length + ' favorites') response.data.results.forEach(result => { - commit('track', {id: result.track, value: true}) + commit('track', {id: result.track.id, value: true}) }) if (response.data.next) { dispatch('fetch', response.data.next) diff --git a/front/src/store/instance.js b/front/src/store/instance.js index 95de94171ece68fe69f57ffbe9b4101e42097e86..5610b0ec7fc48f69af1eb33180be7b49fbef351d 100644 --- a/front/src/store/instance.js +++ b/front/src/store/instance.js @@ -2,10 +2,18 @@ import axios from 'axios' import logger from '@/logging' import _ from 'lodash' +function getDefaultUrl () { + return ( + window.location.protocol + '//' + window.location.hostname + + (window.location.port ? ':' + window.location.port : '') + ) +} + export default { namespaced: true, state: { maxEvents: 200, + frontSettings: {}, instanceUrl: process.env.INSTANCE_URL, events: [], settings: { @@ -53,6 +61,9 @@ export default { events: (state, value) => { state.events = value }, + frontSettings: (state, value) => { + state.frontSettings = value + }, instanceUrl: (state, value) => { if (value && !value.endsWith('/')) { value = value + '/' @@ -67,6 +78,9 @@ export default { } }, getters: { + defaultUrl: (state) => () => { + return getDefaultUrl() + }, absoluteUrl: (state) => (relativeUrl) => { if (relativeUrl.startsWith('http')) { return relativeUrl @@ -74,7 +88,9 @@ export default { if (state.instanceUrl.endsWith('/') && relativeUrl.startsWith('/')) { relativeUrl = relativeUrl.slice(1) } - return state.instanceUrl + relativeUrl + + let instanceUrl = state.instanceUrl || getDefaultUrl() + return instanceUrl + relativeUrl } }, actions: { @@ -110,6 +126,13 @@ export default { }, response => { logger.default.error('Error while fetching settings', response.data) }) + }, + fetchFrontSettings ({commit}) { + return axios.get('/settings.json').then(response => { + commit('frontSettings', response.data) + }, response => { + logger.default.error('Error when fetching front-end configuration (or no customization available)') + }) } } } diff --git a/front/src/translations.json b/front/src/translations.json index 0967ef424bce6791893e9a57bb952f80fd536e93..26dc37dd9f8e9868c791c329d87254ea7d640d49 100644 --- a/front/src/translations.json +++ b/front/src/translations.json @@ -1 +1 @@ -{} +{"ar":{"\"%{ title }\", by %{ artist }":"\"%{ title }\"ØŒ Ù„ÙÙ€ %{ artist }","(%{ index } of %{ length })":"(%{ index } Ù…ÙÙ† %{ length })","(empty)":"(ÙØ§Ø±Øº)","%{ hours } h %{ minutes } min":"%{ hours } سا %{ minutes } د","%{ minutes } min":"%{ minutes } د","%{ user } favorited a track":"Ø£ÙØ¹Ø¬Ùب %{ user } بمقطع","%{ user } listened to a track":"قام %{ user } بالاستماع إلى مَقطَع","%{ username }'s profile":"المل٠الشخصي Ù„ÙÙ€ %{ username }","1 album":["ألبوم ÙˆØ§ØØ¯","","","","%{ count } ألبومات","%{ count } ألبومات"],"1 favorite":["Ù…ÙØ¶Ù‘لة ÙˆØ§ØØ¯Ø©","","","%{ count } Ù…ÙØ¶Ù‘لات","%{ count } Ù…ÙØ¶Ù‘لات","%{ count } Ù…ÙØ¶Ù‘لات"],"1 track":["مَقطَع ÙˆØ§ØØ¯","","","","%{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","%{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹"],"About %{ instance }":"عن %{ instance }","About Funkwhale":"عن ÙØ§Ù†Ùƒ وايل Funkwhale","About this instance":"عن مثيل الخادوم هذا","Accepted":"تم قبوله","Access disabled":"Ø¹ÙØ·Ù‘Ù„ Ø§Ù„Ù†ÙØ§Ø°","Access your music from a clean interface that focus on what really matters":"صÙلوا إلى موسيقاكم عبر واجهة Ù†Ø¸ÙŠÙØ© التصميم ØªÙØ±ÙƒÙ‘ز ÙØ¹Ù„ًا على الأهمّ","Account active":"Ø§Ù„ØØ³Ø§Ø¨ Ù†Ø´ÙØ·","Account settings":"إعدادات Ø§Ù„ØØ³Ø§Ø¨","Account Settings":"إعدادات Ø§Ù„ØØ³Ø§Ø¨","Account status":"ØØ§Ù„Ø© Ø§Ù„ØØ³Ø§Ø¨","Account's email":"البريد الإلكتروني الخاص Ø¨Ø§Ù„ØØ³Ø§Ø¨","Actions":"الإجراءات","Active":"النشاط","Activity":"النشاط","Add a new library":"Ø¥Ø¶Ø§ÙØ© مكتبة جديدة","Add filter":"Ø¥Ø¶Ø§ÙØ© عامل تصÙية","Add filters to customize your radio":"قم Ø¨Ø¥Ø¶Ø§ÙØ© عوامل تصÙية لتخصيص إذاعتك","Add to current queue":"Ø¥Ø¶Ø§ÙØ© إلى قائمة الانتظار Ø§Ù„ØØ§Ù„ية","Add to favorites":"Ø¥Ø¶Ø§ÙØ© إلى Ø§Ù„Ù…ÙØ¶Ù„Ø©","Add to playlist...":"Ø¥Ø¶Ø§ÙØ© إلى قائمة المقاطع الموسيقية …","Add to queue":"أضÙ٠إلى قائمة الانتظار","Add to this playlist":"أضÙÙ‡ إلى قائمة التشغيل هذه","Add track":"Ø¥Ø¶Ø§ÙØ© مقطع موسيقي","Admin":"المدير","Administration":"الإدارة","Album":"الألبوم","Album page":"ØµÙØØ© الألبوم","Albums":"الألبومات","Albums by this artist":"Ù…ÙÙ† ألبومات هذا الÙنان","All":"الكل","An error occured while saving your changes":"ØØ¯Ø« خطأ أثناء عملية ØÙظ التغييرات","Any":"الكل","API":"واجهة برمجة التطبيقات API","Approve":"واÙÙ‚","Approve access?":"ترخيص Ø§Ù„Ù†ÙØ§Ø° ØŸ","Approved":"مرخّص","Are you sure you want to log out?":"أمتأكد من أنك تريد الخروج ØŸ","Artist":"الÙنان","Artist name":"إسم الÙنان","Artist page":"ØµÙØØ© الÙنان","Artist, album, track...":"Ùنان ØŒ ألبوم ØŒ مقطع موسيقي ...","Artists":"الÙنانون","Ascending":"تصاعدي","Ask for a password reset":"أطلب إعادة تعيين كلمة المرور","Auto importing":"إستيراد تلقائي","Available playlists":"قوائم المقاطع الموسيقية Ø§Ù„Ù…ØªÙˆÙØ±Ø©","Avatar":"الصورة الرمزية","Back to login":"العودة إلى ØµÙØØ© تسجيل الدخول","Bitrate":"معدل البت","Browse":"تصÙÙ‘Ø","Browse library":"ØªØµÙØ المكتبة","Browsing artists":"استعراض الÙنانين","Browsing federated tracks":"ØªØµÙØ المَقاطع الموسيقية Ø§Ù„Ù…ØªØØ¯Ø©","Browsing followers":"Ø¥Ø³ØªÙƒØ´Ø§Ù Ø§Ù„Ù…ÙØ´Ø§Ø±ÙƒÙŠÙ†","Browsing libraries":"تصÙÙ‘Ø Ø§Ù„Ù…ÙƒØªØ¨Ø§Øª","Browsing playlists":"تصÙÙ‘Ø Ù‚ÙˆØ§Ø¦Ù… Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية","Browsing radios":"تصÙÙ‘Ø Ø§Ù„Ø¥Ø°Ø§Ø¹Ø§Øª","Builder":"Ø§Ù„Ù…ØØ±Ù‘ر","By %{ artist }":"ØØ³Ø¨ %{ artist }","Cancel":"إلغاء","Cannot change your password":"لا يمكن تغيير كلمة المرور","Change language":"تغيير اللغة","Change my password":"تغيير الكلمة السرية","Change password":"تغيير كلمة المرور","Change your password":"عدّل كلمتك السرية","Change your password?":"هل تريد تغيير كلمتك السريّة ØŸ","Changes synced with server":"تمت مزامنة التعديلات مع Ø§Ù„Ø³ÙŠØ±ÙØ±","Changing your password will have the following consequences":"سو٠ينجرّ ما يلي عند تعديل كلمتك السرية","Choose your instance":"اختر خادومك","Clean library":"مكتبة موسيقية ذات جودة عالية","Clear":"امسØ","Clear playlist":"Ù…Ø³Ø Ù‚Ø§Ø¦Ù…Ø© المَقاطع الموسيقية","Clear your queue":"Ù…Ø³Ø Ù‚Ø§Ø¦Ù…Ø© الانتظار الخاصة بك","CLI":"واجهة إدخال سطر الأوامر CLI","Click once, listen for hours using built-in radios":"إضغط مرة ÙˆØ§ØØ¯Ø© Ùˆ استمع لساعات Ù…ÙÙ† الموسيقى عبر الإذاعات Ø§Ù„Ù…ÙØ¯Ù…َجة","Closed":"Ù…ÙØºÙ„َقة","Code":"الرمز","Comment":"تعليق","Confirm":"تأكيد","Confirm your email":"تأكيد بريدك الإلكتروني","Confirmation code":"رمز التأكيد","Copy tracks from current queue to playlist":"نسخ Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ Ù…ÙÙ† قائمة الإنتظار Ø§Ù„ØØ§Ù„ية إلى قائمة التشغيل","Covers, lyrics, our goal is to have them all ;)":"أغلÙÙØ© الألبومات Ùˆ كلمات الأغاني، هدÙنا هو دمجها جميعا ;)","Create a funkwhale account":"أنشئ ØØ³Ø§Ø¨Ø§ على ÙØ§Ù†Ùƒ وايل","Create a new playlist":"أنشئ قائمة Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ موسيقية جديدة","Create an account":"أنشئ ØØ³Ø§Ø¨Ø§","Create import":"إنشاء استيراد","Create my account":"أنشئ ØØ³Ø§Ø¨ÙŠ","Create playlist":"أنشئ قائمة مَقاطع موسيقية","Create your own radio":"أنشئ إذاعتك","Creation date":"تاريخ الإنشاء","Current avatar":"الصورة الرمزية Ø§Ù„ØØ§Ù„ية","Current track":"المَقطَع Ø§Ù„ØØ§Ù„ÙŠ","Delete":"ØØ°Ù","Delete playlist":"ØØ°Ù قائمة الأغاني","Delete radio":"ØØ°Ù الإذاعة","Deny":"Ø±ÙØ¶","Deny access?":"هل تؤكد Ø±ÙØ¶ الوصول ØŸ","Descending":"تنازليًا","Detail":"Ø§Ù„ØªÙØ§ØµÙŠÙ„","Disable access":"تعطيل Ø§Ù„Ù†ÙØ§Ø°","Disable Subsonic access":"تعطيل Ø§Ù„Ù†ÙØ§Ø° عبر صاب سونيك Subsonic","Disable Subsonic API access?":"تعطيل Ø§Ù„Ù†ÙØ§Ø° عبر واجهة برمجة التطبيقات صاب سونيك ØŸ","Discover how to use Funkwhale from other apps":"إكتش٠كيÙية استخدام ÙØ§Ù†Ùƒ وايل Funkwhale عبر التطبيقات الأخرى","Display publicly":"إعرضها للعامة","Do you want to clear the playlist \"%{ playlist }\"?":"هل تودّ Ø¥ÙØ±Ø§Øº قائمة Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية \"%{ playlist }\" ØŸ","Do you want to confirm this action?":"هل تؤكّد هذا الإجراء ØŸ","Do you want to delete the playlist \"%{ playlist }\"?":"متأكّد Ù…ÙÙ† أنك تريد ØØ°Ù قائمة Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية \"%{ playlist }\" ØŸ","Do you want to delete the radio \"%{ radio }\"?":"أتريد ØÙ‚ا ØØ°Ù إذاعة \"%{ radio }\" ØŸ","Do you want to restore your previous queue?":"هل تريد استرجاع قائمة الإنتظار السابقة للأغاني ØŸ","Documentation":"الدليل","Download":"تنزيل","Download tracks":"تنزيل","Duration":"المدّة","Easy to use":"سهل للإستخدام","Edit instance info":"تعديل معلومات مثيل الخادوم","Edit...":"تعديل …","Email":"البريد الإلكتروني","Email address":"عنوان البريد الإلكتروني","Email confirmed":"عنوان البريد الإلكتروني مؤكَّد","End edition":"إنهاء التعديل","Ensure your music files are properly tagged before uploading them.":"تأكّد Ù…ÙÙ† Ø§ØØªÙˆØ§Ø¡ Ù…Ù„ÙØ§Øª الموسيقى على بيانات وصÙية صØÙŠØØ© قبل إرسالها.","Enter a radio name...":"أدخÙÙ„ إسم إذاعة …","Enter an artist name...":"أدخÙÙ„ إسم Ùنان …","Enter an library domain name...":"أدخÙÙ„ إسم نطاق لمكتبة ما …","Enter an playlist name...":"أدخÙÙ„ إسم قائمة Ù…ÙŽÙ‚Ø§Ø·ÙØ¹Ù موسيقية …","Enter your email":"أدخÙÙ„ عنوان بريدك الإلكتروني","Enter your invitation code (case insensitive)":"أدخÙÙ„ رمز الدعوة","Enter your search query...":"أدخÙÙ„ طلب Ø¨ØØ«ÙÙƒ …","Enter your username":"أدخÙÙ„ إسم المستخدÙÙ…","Enter your username or email":"أدخل إسم المستخدÙÙ… أو البريد الإلكتروني","Error":"خطأ","Error reporting":"Ø³ÙØ¬ÙÙ„ الأخطاء","Error while applying action":"ØØ¯Ø« خطأ أثناء تطبيق الإجراء","Error while asking for a password reset":"ØØ¯Ø« خطأ أثناء إرسال طلب إعادة تعيين الكلمة السرية","Error while changing your password":"ØØ¯Ø« خطأ أثناء عملية تعديل الكلمة السرية","Error while confirming your email":"ØØ¯Ø« خطأ أثناء تأكيد عنوان بريدك الإلكتروني","Error while creating invitation":"ØØ¯Ø« خطأ أثناء إنشاء الدعوة","Error while saving settings":"ØØ¯Ø« خطأ أثناء ØÙظ الإعدادات","Error while scanning library":"ØØ¯Ø« خطأ أثناء عملية Ù…Ø³Ø Ø§Ù„Ù…ÙƒØªØ¨Ø©","Errored":"Ùيه خطأ","Everyone":"الجميع","Everyone on this instance":"كل Ù…ÙŽÙ† هم على مثيل الخادوم هذا","Exclude":"إستثني","Expand":"توسيع","Expiration date":"تاريخ نهاية الصلاØÙŠØ©","Expired":"منتهية الصلاØÙŠÙ‘Ø©","Expired/used":"إنتهت صلاØÙŠØªÙ‡Ø§/ أو مستعمَلة","External source. Supported backends":"مصدر خارجي. الخدمات المدعومة","Favorites":"Ø§Ù„Ù…ÙØ¶Ù„Ø©","Federate with a new instance":"Ø¥ØªÙ‘ØØ¯ مع مثيل خادوم جديد","Federated tracks":"المَقاطع الموسيقية Ø§Ù„Ù…ØªØØ¯Ø©","Federation":"Ø§Ù„ÙØ¯ÙŠØ±Ø§Ù„ية","File mirroring":"النسخ المتماثل Ù„Ù„Ù…Ù„ÙØ§Øª","File name":"إسم الملÙÙ‘","File upload":"إرسال ملÙÙ‘","Files":"الملÙّات","Filter album types":"تصÙية نوع الألبومات","Filter name":"إسم عامل التصÙية","Finish import":"إنهاء الإستيراد","Finished":"إكتمل","First, choose where you want to import the music from":"أولًا قم باختيار أسلوب استيراد Ùˆ جلب الموسيقى","Follow":"إتبع","Follow request pending approval":"طلبات متابعة Ù…ÙØ¹Ù„ّقة","Follow status":"ØØ§Ù„Ø© الإشتراك","Followers":"Ø§Ù„Ù…ØªØ§Ø¨ÙØ¹ÙˆÙ†","Followers only":"Ø§Ù„Ù…ØªØ§Ø¨ÙØ¹ÙˆÙ† Ùقط","Following":"ÙŠÙØªØ§Ø¨Ùع","from %{ album } by %{ artist }":"Ù…ÙÙ† %{ album } Ù„ÙÙ€ %{ artist }","From album %{ album } by %{ artist }":"Ù…ÙÙ† ألبوم %{ album } Ù„ÙÙ€ %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"ÙØ§Ù†Ùƒ وايل Funkwhale مشروع ØÙر Ùˆ Ù…ÙØªÙˆØ المصدر يديره متطوعون. يمكنك مساعدتنا على ØªØØ³ÙŠÙ† المنصة عن طريق الإبلاغ عن أخطاء، Ùˆ Ø§Ù‚ØªØ±Ø§Ø Ù…ÙŠØ²Ø§Øª بما ÙÙŠ ذلك مشاركة المشروع مع أصدقائك !","Funkwhale is compatible with other music players that support the Subsonic API.":"ÙØ§Ù†Ùƒ وايل Funkwhale متواÙÙ‚ مع برمجيات تشغيل الموسيقى التي تدعم واجهة برمجية تطبيقات صاب سونيك.","Funkwhale is dead simple to use.":"ÙØ§Ù†Ùƒ وايل Funkwhale سهلٌ جدًا للإستخدام.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Ø·ÙÙˆÙ‘ÙØ± ÙØ§Ù†Ùƒ وايل Funkwhale لتسهيل الإستماع إلى الموسيقى التي ØªØØ¨ÙˆÙ†Ù‡Ø§ Ùˆ لاكتشا٠Ùنّانين Ø¬ÙØ¯Ø¯.","Funkwhale is free and gives you control on your music.":"ÙØ§Ù†Ùƒ وايل Funkwhale مجاني Ùˆ ÙŠÙØ¹ÙŠØ¯ التØÙƒÙ‘Ù… ÙÙŠ موسيقاكم بين أيديكم.","Funkwhale takes care of handling your music":"ÙØ§Ù†Ùƒ وايل Funkwhale ÙŠÙØØ§ÙØ¸ على موسيقاكم","Get a new invitation":"ØªØØµÙ‘Ù„ على دعوة جديدة","Get me to the library":"أنقلني إلى المكتبة","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Ø£ØØµÙ„وا على بيانات وصÙية ذات جودة Ø¨ÙØ¶Ù„\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>","Go":"هيا","Go to home page":"إنتقل إلى Ø§Ù„ØµÙØØ© الرئيسية","Grab corresponding metadata":"جلب البيانات الوصÙية ذات الصّلة","Help us translate Funkwhale":"ساعدنا على ترجمة ÙØ§Ù†Ùƒ وايل","Home":"الرئيسية","Hours of music":"ساعات Ù…ÙÙ† الموسيقى","ID":"المعرّÙ","Import":"استيراد","Import #%{ id } launched":"إنطلَقت عملية الإستيراد #%{ id }","Import %{ count } track":["إستيراد %{ count } مَقطَع","","","إستيراد %{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","إستيراد %{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","إستيراد %{ count } Ù…ÙŽÙ‚Ø§Ø·ÙØ¹"],"Import batch":"إستيراد بالجملة","Import batches":"ØÙزم الإستيراد بالجملة","Import date":"تاريخ الإستيراد","Import detail page":"إستيراد ØªÙØ§ØµÙŠÙ„ Ø§Ù„ØµÙØØ©","Import music":"استيراد الموسيقى","Import Music":"استيراد الموسيقى","Import music from various platforms, such as YouTube or SoundCloud":"استيراد الموسيقى من منصات Ù…Ø®ØªÙ„ÙØ©ØŒ مثل يوتيوب أو ساوند كلاود","Import pending":"الواردات المعلّقة","Import requests":"طلبات الإستيراد","Import source":"مصدر الإستيراد","Import status":"ØØ§Ù„Ø© الإستيراد","Import this release":"أجلب هذا الألبوم","Import this track":"استورد هذا المَقطع","Imported":"تم استيراده","Imported URL":"تم استيراد عنوان الرابط","In favorites":"ÙÙŠ Ø§Ù„Ù…ÙØ¶Ù„Ø©","In library":"على المكتبة","Inactive":"غير ناشط","Input a MusicBrainz ID manually:":"أدخÙÙ„ يدويًا Ù…ÙØ¹Ø±Ù‘Ù MusicBrainz ID :","Input the email address binded to your account":"أدخÙÙ„ عنوان البريد الإلكتروني المتّصل Ø¨ØØ³Ø§Ø¨Ùƒ","Instance information":"معلومات عن مثيل الخادوم","Instance radios":"إذاعات مثيل الخادوم","Instance settings":"إعدادات مثيل الخادوم","Instance Timeline":"الخيط الزمني لمثيل الخادوم","Invitation code":"رمز الدعوة","Invitation code (optional)":"رمز الدعوة (اختياري)","Invitations":"الدعوات","Issue tracker":"متعقّب المشاكل","Job ID":"Ù…ÙØ¹Ø±Ù‘٠الإجراء","Jobs":"الإجراءات","Keep a track of your favorite songs":"ØØ§Ùظوا على أثر موسيقاكم Ùˆ أغانيكم Ø§Ù„Ù…ÙØ¶Ù‘لة","Last activity":"آخر نشاط","Last fetched":"Ø¢Ø®ÙØ± عملية جلب","Last modification":"آخر تعديل","Launch":"إبدأ","Launch date":"تاريخ الإطلاق","Launch scan":"إبدأ المسØ","Learn more about this instance":"إعر٠المزيد عن مثيل الخادوم هذا","Leave empty for a random code":"أتركه ÙØ§Ø±ØºÙ‹Ø§ Ù„Ù„ØØµÙˆÙ„ على رمز عشوائي","Leave this field empty if you're requesting the whole discography.":"دع هذا الØÙ‚Ù„ ÙØ§Ø±ØºØ§ إن كنت ترغب ÙÙŠ ÙƒØ§ÙØ© الألبومات.","Libraries":"المكتبات","Library":"المكتبة","Library files":"ملÙّات المكتبة","Library name":"إسم المكتبة","Library size":"ØØ¬Ù… المكتبة","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"الروابط","Loading timeline...":"عملية تØÙ…يل الخيط الزمني جارية …","Loading your favorites...":"جار٠تØÙ…يل Ù…ÙØ¶Ù„اتك …","Log In":"الدخول","Log in to your Funkwhale account":"الدخول إلى ØØ³Ø§Ø¨Ùƒ على ÙØ§Ù†Ùƒ وايل Funkwhale","Log Out":"الخروج","Logged in as %{ username }":"Ù…ÙØªÙ‘صل كـ %{ username }","Login":"الدخول","Logout":"خروج","Lyrics":"الكلمات","Manage library":"إدارة المكتبة","Manage playlists":"إدارة قوائم Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية","Manage users":"إدارة المستخدÙمين","Manage your playlists":"إدارة القوائم الخاصة الموسيقى","Metadata":"البيانات الوصÙية","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"البيانات الوصÙية هي الم البيانات المتعلقة بالموسيقى التي تريد استيرادها. Ùˆ هي ØªØØªÙˆÙŠ Ø¹Ù„Ù‰ معلومات عن الÙنانين Ùˆ الألبومات Ùˆ Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية. Ùˆ بغرض إنشاء مكتبة بها جودة، ÙŠÙØ³ØªØØ³Ù† جلب البيانات Ù…ÙÙ† \n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n مشروع بمثابة ويكيبيديا للموسيقى.","Music":"الموسيقى","Music request":"طلب موسيقى","Mute":"كتم","My account":"ØØ³Ø§Ø¨ÙŠ","My awesome playlist":"قائمتي الرائعة Ù„Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية","My awesome radio":"إذاعتي الرائعة","N/A":"غير Ù…ØªÙˆÙØ±","Name":"الإسم","New password":"الكلمة السرية الجديدة","New tracks will be appended here automatically.":"سو٠يتم Ø¥Ø¶Ø§ÙØ© Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الجديدة هنا آليًا.","Next step":"الخطوة التالية","Next track":"المَقطَع التالي","No":"لا","No add-ons, no plugins : you only need a web library":"لا ØªØØªØ§Ø¬ إلى تنصيب Ø¥Ø¶Ø§ÙØ§ØªÙ أو Ù…ÙÙ„ØÙŽÙ‚ات٠: كل ما ØªØØªØ§Ø¬ إليه هي مكتبة موسيقية على الويب","No lyrics available for this track.":"لا تتوÙّر هناك كلمات لهذا المَقطَع.","Nobody except me":"لا Ø£ØØ¯ غيري","Not following":"غير مشترÙÙƒ","Not imported":"غير Ù…ÙØ³ØªÙˆØ±ÙŽØ¯","Not used":"غير مستعمَل","Official website":"موقع الويب الرسمي","Old password":"الكلمة السرية الجديدة","Once all your files are uploaded, simply click the following button to check the import status.":"ØÙŠÙ†Ù…ا تتم عملية إرسال ÙƒØ§ÙØ© Ù…Ù„ÙØ§ØªÙƒØŒ إضغط على الزر التالي للتØÙ‚Ù‚ Ù…ÙÙ† ØØ§Ù„Ø© الإستيراد.","Open":"Ù…ÙØªÙˆØ","Options":"الخيارات","Or":"أو","Ordering":"الترتيب","Ordering direction":"اتجاه الترتيب","Owner":"المالك","Page Not Found":"Ø§Ù„ØµÙØØ© غير موجودة","Page not found!":"Ø§Ù„ØµÙØØ© غير موجودة !","Password":"كلمة السر","Password updated":"تم ØªØØ¯ÙŠØ« كلمة السر","Password updated successfully":"تم ØªØØ¯ÙŠØ« كلمة السر بنجاØ","Pause track":"Ø£Ù„Ø¨ÙØ« المَقطَع","Pending":"معلّق","Pending approval":"ÙÙŠ انتظار التسريØ","Pending follow requests":"طلبات المتابَعة المعلَّقة","Pending import requests":"طلبات الإستيراد المعلّقة","Pending requests":"الطلبات المعلَّقة","Permissions":"الصّلاØÙŠÙ‘ات","Play":"غنّي","Play all":"تشغيل الكل","Play all albums":"Ø¥Ø¹Ø²Ù ÙƒØ§ÙØ© الألبومات","Play immediatly":"إعز٠ÙÙŠ الØÙŠÙ†","Play next":"إعز٠التالي","Play now":"إعز٠الآن","Play track":"إعز٠المَقطَع","Playlist":"قائمة Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","Playlist created":"تم إنشاء قائمة تشغيل الموسيقى","Playlist editor":"Ù…ØØ±Ù‘ر قوائم تشغيل الموسيقى","Playlist name":"إسم قائمة Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","Playlist updated":"تم ØªØØ¯ÙŠØ« قائمة تشغيل الموسيقى","Playlist visibility":"مدى رؤية القائمة","Playlists":"قوائم Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","Playlists? We got them":"قوائم تشغيل الموسيقى ØŸ متوÙّرة لدينا","Please double-check your password is correct":"يرجى التأكّد Ù…ÙÙ† ØµØØ© الكلمة السرية","Please double-check your username/password couple is correct":"الرجاء التأكّد Ù…ÙÙ† ØµØØ© اسم المستخدÙÙ… Ùˆ الكلمة السرية","PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px.":"نسق PNG أو GIF أو JPG. Ø§Ù„ØØ¬Ù… الأقصى 2 ميغابيت. سيتم تغيير ØØ¬Ù…ها إلى 400×400 بكسل.","Previous step":"الخطوة السابقة","Previous track":"المَقطَع السابق","Proceed to login":"المواصلة إلى ØµÙØØ© تسجيل الدخول","Published date":"تاريخ النشر","Query template":"نموذج Ø§Ù„Ø¨ØØ«","Queue":"قائمة الإنتظار","Queue shuffled!":"تم خلط قائمة الإنتظار !","Radio":"الإذاعة","Radio Builder":"Ù…ÙÙ†Ø´ÙØ¦ الإذاعات Ùˆ الراديو","Radio created":"تم إنشاء الإذاعة","Radio name":"إسم الإذاعة","Radio updated":"تم ØªØØ¯ÙŠØ« الإذاعة","Radios":"الإذاعات","Recent activity on this instance":"Ø£ØØ¯Ø« الأنشطة على مثيل الخادوم هذا","Recently added":"تمت Ø¥Ø¶Ø§ÙØªÙ‡Ø§ مؤخرا","Recently favorited":"تمت Ø¥Ø¶Ø§ÙØªÙ‡Ø§ إلى Ø§Ù„Ù…ÙØ¶Ù„Ø© ØØ¯ÙŠØ«Ø§","Recently listened":"Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ أستÙÙ…ÙØ¹ إليها مؤخرا","Recording MusicBrainz ID":"Ù…ÙØ¹Ø±Ù‘٠التسجيل الصوتي على ميوزيك براينز MusicBrainz","Refresh":"إنعاش","Refused":"Ø±ÙØ¶","Registered since %{ date }":"Ù…ÙØ³Ø¬Ù‘Ù„ منذ %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"إنّ التسجيلات Ù…ÙØºÙ„َقة ØØ§Ù„يًا على هذا الخادوم، يلزمك رمز دعوة للتسجيل Ùيه.","regular user":"مستخدÙÙ… عادي","Remove":"ØØ°Ù","Remove avatar":"ØØ°Ù الصورة الرمزية","Remove from favorites":"ØØ°Ù Ù…ÙÙ† Ø§Ù„Ù…ÙØ¶Ù„Ø©","Request a new password":"طلب كلمة سرية جديدة","Request a new Subsonic API password?":"متأكد Ù…ÙÙ† أنك تريد إعادة طلب كلمة سرية جديدة لواجهة برمجة تطبيقات صاب سونيك API ØŸ","Request a password":"طلب كلمة سرية","Request music":"طلب موسيقى","Request some music":"طلب بعض Ù…ÙÙ† الموسيقى","Request submitted!":"تم إرسال الطلب !","Reset your password":"إعادة تعيين كلمتك السرية","Result %{ current }/%{ total }":"النتيجة %{ current }/%{ total }","Results per page":"عدد نتائج Ø§Ù„Ø¨ØØ« ÙÙŠ كل ØµÙØØ©","Save":"اØÙظ","Scan triggered!":"إنطَلَقَ Ø§Ù„Ù…Ø³Ø !","Search":"Ø§Ù„Ø¨ØØ«","Search by artist, username, comment...":"Ø§Ù„Ø¨ØØ« باستخدام إسم Ùنان أو مستخدÙÙ… أو تعليق …","Search by source...":"Ø§Ù„Ø¨ØØ« ØØ³Ø¨ المصدر …","Search by submitter, source...":"Ø§Ù„Ø¨ØØ« ØØ³Ø¨ المستخدÙÙ… أو المصدر …","Search by title, artist, domain...":"Ø§Ù„Ø¨ØØ« ØØ³Ø¨ العنوان أو إسم Ùنان أو نطاق …","Search by username, domain...":"Ø§Ù„Ø¨ØØ« ØØ³Ø¨ إسم المستخدÙÙ… أو النطاق …","Search by username, email, code...":"Ø§Ù„Ø¨ØØ« باسم مستخدÙÙ… أو عنوان بريد إلكتروني أو رمز …","Search by username, email, name...":"Ø§Ù„Ø¨ØØ« باسم مستخدÙÙ… أو عنوان بريد إلكتروني أو إسم …","Search for artists, albums, tracks...":"Ø§Ù„Ø¨ØØ« عن Ùنانين أو ألبومات أو Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ موسيقية …","Search for some music":"Ø§Ù„Ø¨ØØ« عن بعض Ù…ÙÙ† الموسيقى","Search on lyrics.wikia.com":"Ø§Ù„Ø¨ØØ« ÙÙŠ lyrics.wikia.com","Search on Wikipedia":"Ø§Ù„Ø¨ØØ« ÙÙŠ ويكيبيديا","Search query":"Ø§Ù„Ø¨ØØ«","Sections":"الأقسام","Select a filter":"إختيار عامل تصÙية","Select files to upload...":"إختيار Ø§Ù„Ù…Ù„ÙØ§Øª الجاهزة للإرسال …","Select only current page":"ØªØØ¯ÙŠØ¯ Ø§Ù„ØµÙØØ© Ø§Ù„ØØ§Ù„ية Ùقط","Select relevant sources or files for import":"إختيار المصادر أو Ø§Ù„Ù…Ù„ÙØ§Øª الجاهزة للإستيراد","Send a follow request":"إرسال طلب متابَعة","Settings":"الإعدادات","Settings updated":"تم ØªØØ¯ÙŠØ« الإعدادات","Settings updated successfully.":"تم ØªØØ¯ÙŠØ« الإعدادات بنجاØ.","Settings...":"الإعدادات …","Share link":"رابط المشاركة","Show/hide password":"إظهار/Ø¥Ø®ÙØ§Ø¡ الكلمة السرية","Showing results %{ start }-%{ end } on %{ total }":"عرض النتائج %{ start }-%{ end } Ù…ÙÙ† %{ total }","Shuffle your queue":"خلط قائمة الإنتظار","Sign Up":"التسجيل","Sign-up":"التسجيل","Size":"Ø§Ù„ØØ¬Ù…","Skipped":"تمّ تجاهله","Something's missing in the library? Let us know what you would like to listen!":"هناك شيء ما ناقص ÙÙŠ هذه المكتبة ØŸ أبلغنا عما تريد الإستماع إليه !","Sorry, we did not found any album matching your query":"المعذرة، لم نتمكّن Ù…ÙÙ† العثور على أي ألبوم يناسب طلب Ø¨ØØ«Ùƒ","Sorry, we did not found any artist matching your query":"المعذرة، لم نتمكّن Ù…ÙÙ† العثور على أي Ùنان يناسب طلب Ø¨ØØ«Ùƒ","Source":"المصدر","Source code":"Ø´ÙØ±Ø© المصدر","Source code (%{version})":"Ø§Ù„Ø´ÙØ±Ø© المصدرية (%{version})","Staff member":"عضو ÙÙŠ Ø§Ù„ÙØ±ÙŠÙ‚","Start":"إبدأ","Start Upload":"إبدأ الإرسال","Statistics":"Ø§Ù„Ø¥ØØµØ§Ø¦ÙŠØ§Øª","Status":"Ø§Ù„ØØ§Ù„Ø©","Stop":"إيقاÙ","Stop radio":"إيقا٠الإذاعة","Stop Upload":"إيقا٠الإرسال","Submit":"إرسال","Submit another request":"إرسال طلب جديد آخَر","Submitted by":"إقترَØÙ‡","Subsonic":"صاب سونيك","Subsonic API password":"الكلمة السرية لواجهة برمجة التطبيقات صاب سونيك Subsonic","Success":"نجØ","Suggested choices":"الخيارات Ø§Ù„Ù…ØªØ§ØØ©","Syncing changes to server...":"مزامنة التغييرات مع الخادم …","That's simple: we loved Grooveshark and we want to build something even better.":"ØØ³Ù†Ù‹Ø§ الأمر سهل : Ø£ØØ¨Ø¨Ù†Ø§ غرو٠شارْك Ùˆ أردنا تصميم مشروع Ø£ØØ³ÙŽÙ† منه بكثير.","The Beatles, Mickael Jackson…":"The Beatles, Mickael Jackson…","The funkwhale logo was kindly designed and provided by Francis Gading.":"تم تصميم شعار ÙØ§Ù†Ùƒ وايل funkwhale Ø¨ÙØ¶Ù„ Ùˆ كَرَم Francis Gading.","The plaform is free and open-source, you can install it and modify it without worries":"المنصّة مجانية Ùˆ Ù…ÙØªÙˆØØ© المصدر، بإمكانكم تنصيبها Ùˆ تعديلها كما ÙŠØÙ„Ùˆ لكم دون قيود","The White Album, Thriller…":"The White Album, Thriller…","This is you!":"هذا أنت !","This track is not imported and cannot be played":"لم يتم استيراد هذا المَقطَع لذا لا يمكن الإستماع إليه","This will completely delete this playlist and cannot be undone.":"سو٠يؤدي ذلك إلى Ø§Ù„ØØ°Ù الكÙلّي لقائمة التشغيل هذه Ùˆ لا ÙŠÙمكن إلغاء العملية Ùˆ العودة.","This will completely delete this radio and cannot be undone.":"سو٠يؤدي ذلك إلى Ø§Ù„ØØ°Ù الكÙلّي لهذه الإذاعة Ùˆ لا ÙŠÙمكن إلغاء العملية Ùˆ العودة.","This will erase your local data and disconnect you, do you want to continue?":"ذلك سو٠يؤدي إلى ØØ°Ù بياناتك المØÙ„ية نهائيا Ùˆ إخراجك. أمتأكد أنك ترغب ÙÙŠ المواصلة ØŸ","Title":"العنوان","Track":"المَقطَع","Track information":"معلومات عن المَقطَع","Track matching filter":"مقطع يناسب عامل التصÙية","tracks":"Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","Tracks":"Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹","Tracks available in this library":"Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ المتوÙّرة ÙÙŠ هذه المكتبة","Tracks by this artist":"Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ لهذا الÙنان","Tracks favorited":"Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ تم الإعجاب بها","tracks listened":"Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ أستÙÙ…ÙØ¹ إليها","Type":"النوع","Unfortunately, owners of this instance did not yet take the time to complete this page.":"لسوء Ø§Ù„ØØ¸ØŒ لم يأخذ Ø£ØµØØ§Ø¨ مثيل الخادوم هذا الوقت الكاÙÙŠ لاستكمال هذه Ø§Ù„ØµÙØØ©.","Unknown":"مجهول","Unlimited music":"موسيقى بلا ØØ¯ÙˆØ¯","Unmute":"إلغاء الكتم","Update avatar":"ØªØØ¯ÙŠØ« الصورة الرمزية","Update playlist":"ØªØØ¯ÙŠØ« قائمة Ø§Ù„Ù…ÙŽÙ‚Ø§Ø·ÙØ¹ الموسيقية","Update settings":"ØªØØ¯ÙŠØ« الإعدادات","Update your password":"قم Ø¨ØªØØ¯ÙŠØ« كلمتك السرية","Upload":"أرسل","Upload a new avatar":"إرسال صورة رمزية جديدة","Uploaded files or external source":"Ù…Ù„ÙØ§Øª Ù…ÙØ±Ø³ÙŽÙ„Ø© أو مصدر خارجي","Uploading...":"عملية الإرسال جارية …","Use another instance":"إستخدم مثيل خادوم آخَر","Use this comment box to add details to your request if needed":"استخدم علبة التعليق هذه، إن دعت Ø§Ù„ØØ§Ø¬Ø©ØŒ Ù„Ø¥Ø¶Ø§ÙØ© ØªÙØ§ØµÙŠÙ„ طلبك","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"استخدم هذه الإستمارة لطلب إعادة ضبط كلمة المرور. سنرسل بريدا الكترونيا إلى العنوان المعين مرÙوقا بتعليمات لإعادة ضبط كلمتك السرية.","Used":"Ù…ÙØ³ØªØ®Ø¯ÙŽÙ…","User":"المستخدÙÙ…","User activity":"نشاط المستخدÙÙ…","User radios":"إذاعات المستخدÙمين","Username":"إسم المستخدÙÙ…","Username or email":"إسم المستخدÙÙ… أو عنوان البريد الإلكتروني","users":"مستخدÙÙ…","Users":"المستخدÙمون","View on MusicBrainz":"إطّلع عليه على ميوزيك براينز","We cannot add the track to a playlist":"لا يمكننا Ø¥Ø¶Ø§ÙØ© المَقطَع إلى قائمة التشغيل","We cannot create the playlist":"لا يمكننا إنشاء قائمة التشغيل","We cannot create your account":"لا يمكننا إنشاء ØØ³Ø§Ø¨Ùƒ","We cannot log you in":"تعذر علينا تسجيل دخولك","We cannot save your avatar":"تعذّر علينا ØÙظ صورتك الرمزية","We cannot save your settings":"تعذّر علينا ØÙظ إعداداتك","We do not track you or bother you with ads":"لا نتعقّبك Ùˆ لا نزعجك بالإعلانات","We recommend using Picard for that purpose.":"ننصØÙƒÙ… باستخدام برنامج Picard لهذا الغرض.","We think listening to music should be simple.":"نعتقد أنّ الاستماع إلى الموسيقى ينبغي أن يكون سهلًا.","We're sorry, the page you asked for does not exist:":"المعذرة، إنّ Ø§Ù„ØµÙØØ© التي قمت بطلبها غير موجودة :","Welcome":"Ù…Ø±ØØ¨Ù‹Ø§","Welcome on Funkwhale":"أهلا وسهلا بك على ÙØ§Ù†Ùƒ وايل Funkwhale","What is metadata?":"ما المقصود بالبيانات الوصÙية ØŸ","Why funkwhale?":"لماذا ÙØ§Ù†Ùƒ وايل Funkwhale ØŸ","Yes":"نعم","Yes, log me out!":"نعم، أؤكد الخروج !","You are currently logged in as %{ username }":"أنت متّصل ØØ§Ù„يا Ø¨ØµÙØ© %{ username }","You can also skip this step and enter metadata manually.":"يمكنك طبعًا تخطي هذه الخطوة Ùˆ إدخال البيانات الوصÙية يدويًا.","You can invite friends and family to your instance so they can enjoy your music":"يمكÙنك دعوة أصدقائك Ùˆ عائلتك للإنظمام إلى مثيل خادومك للإستمتاع بموسيقاك","You have a radio playing":"إنك تستمع إلى إذاعة","You need to select an instance in order to continue":"يلزمك اختيار مثيل خادوم قصد المواصلة","You will import:":"أنت بصدد استيراد :","Your email address was confirmed, you can now use the service without limitations.":"تمّ تأكيد عنوان بريدك الإلكتروني، بإمكانك الآن استعمال الخدمة Ù…ÙÙ† دون قيود.","Your Favorites":"Ù…ÙØ¶Ù‘لاتك","Your music, your way":"موسيقاك، كما ÙŠØÙ„Ùˆ لك","Your password has been updated successfully.":"تم ØªØØ¯ÙŠØ« كلمتك السرية بنجاØ."},"de":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", von %{ artist }","(%{ index } of %{ length })":"(%{ index } von %{ length })","(empty)":"(leer)","%{ count } on %{ total } selected":["%{ count } von %{ total } ausgewählt","%{ count } von %{ total } ausgewählt"],"%{ count } track":["%{ count } Track","%{ count } Tracks"],"%{ count } track in %{ albumsCount } albums":["%{ count } Track in %{ albumsCount } Alben","%{ count } Tracks in %{ albumsCount } Alben"],"%{ count } track matching combined filters":["%{ count } Track trifft die ausgewählten Filter","%{ count } Tracks treffen die ausgewählten Filter"],"%{ count} track":["%{ count} Track","%{ count} Tracks"],"%{ hours } h %{ minutes } min":"%{ hours } h %{ minutes } min","%{ minutes } min":"%{ minutes } min","%{ user } favorited a track":"%{ user } hat einen Track zu seinen Favoriten hinzugefügt","%{ user } listened to a track":"%{ user } hat einen Track angehört","%{ username }'s profile":"Profil von %{ username }","1 album":["1 Album","%{ count } Alben"],"1 favorite":["1 Favorit","%{ count } Favoriten"],"1 track":["1 Track","%{ count } Tracks"],"About %{ instance }":"Über %{ instance }","About Funkwhale":"Über Funkwhale","About this instance":"Über diese Instanz","Accepted":"Bestätigt","Access disabled":"Zugriff ausgeschaltet","Account active":"Konto aktiv","Account settings":"Kontoeinstellungen","Account Settings":"Kontoeinstellungen","Account status":"Kontostatus","Account's email":"Konto's Email","Action %{ action } was launched successfully on %{ count } element":["Die Aktion %{ action } wurde erfolgreich auf %{ count } Element gestartet","Die Aktion %{ action } wurde erfolgreich auf %{ count } Elemente gestartet"],"Actions":"Aktionen","Active":"Aktiv","Activity":"Aktivität","Actor":"Aktor","Add a new library":"Eine neue Mediathek einfügen","Add filter":"Filter einfügen","Add filters to customize your radio":"Filter einfügen um deine Radio zu personalisieren","Add to current queue":"Zur Wiedergabeliste hinzufügen","Add to favorites":"Zu den Favoriten hinzufügen","Add to playlist...":"Zu einer Playlist hinzufügen...","Add to queue":"Zur Wiedergabeliste hinzufügen","Add to this playlist":"Zu dieser Playlist hinzufügen","Add track":"Track hinzufügen","Admin":"Admin","Administration":"Verwaltung","Album":"Album","Album %{ title } (%{ count } track) by %{ artist }":["Album %{ title } (%{ count } Track) von %{ artist }","Album %{ title } (%{ count } Tracks) von %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Album mit %{ count } Track, von %{ artist }","Album mit %{ count } Tracks, von %{ artist }"],"Album page":"Albumseite","Albums":"Alben","Albums by this artist":"Alben von diesem Künstler oder Künstlerin","All":"Alles","An error occured while saving your changes":"Ein Fehler ist während der Speicherung deiner Veränderungen aufgetreten","An unknown error happend, this can mean the server is down or cannot be reached":"Ein unbenkannter Fehler ist aufgetreten, d.h. der Server ist ausgescahltet oder kann nicht erreicht werden","Any":"Alle","API":"API","Approve":"Zustimmen","Approve access?":"Zugriff genehmigen?","Approved":"Genehmigt","Are you sure you want to log out?":"Möchtest du dich wirklich ausloggen?","Artist":"Künstler oder Künstlerin","Artist name":"Künstlername","Artist page":"Künstlerseite","Artist, album, track...":"Künstler oder Künstlerin, Album, Track...","Artists":"Künstler und Künstlerinnen","Ascending":"Zunehmend","Ask for a password reset":"Eine Kennwortzurücksetzung beantragen","Auto importing":"Automatischer Import","Available playlists":"Verfügbare Playlists","Avatar":"Avatar","Back to login":"Zurück zur Anmeldung","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Vorsicht beim Akzeptieren von Folgen-Anfragen: Deine Follower und Followerinnen haben Zugriff auf deine gesamte Mediathek.","Bitrate":"Bitrate","Browse":"Browsen","Browse library":"Die Mediathek durchsuchen","Browsing artists":"Künstler und Künstlerinnen durchsuchen","Browsing federated tracks":"Föderierte Tracks durchsuchen","Browsing followers":"Follower und Followerinnen durchsuchen","Browsing libraries":"Mediatheke durchsuchen","Browsing playlists":"Playlists durchsuchen","Browsing radios":"Radios durchsuchen","Builder":"Editor","By %{ artist }":"Von %{ artist }","By confirming, %{ username } will be denied access to your library.":"Beim Bestätigen wird %{ username } der Zugriff zu deiner Mediathek abgelehnt.","By confirming, %{ username } will be granted access to your library.":"Beim Bestätigen wird %{ username } der Zugriff zu deiner Mediathek zugelassen.","Cancel":"Absagen","Candidates":"Kandidaten","Cannot change your password":"Das Kennwort kann nicht geändert werden","Change language":"Sprache ändern","Change my password":"Mein Kennwort wechseln","Change password":"Kennwortwechsel","Change your password":"Kennwortwechsel","Change your password?":"Dein Kennwort wechseln?","Changes synced with server":"Änderungen synchronisiert","Changing your password will also change your Subsonic API password if you have requested one.":"Mit Änderung deines Kennworts wird das Kennwort für die Subsonic-API zurückgesetzt, sofern du eins erstellt hast.","Changing your password will have the following consequences":"Dein Kennwort wechseln hat die folgenden Auswirkungen","Choose your instance":"Wähle deine Instanz aus","Clean library":"Eine hochwertige Mediathek","Clear":"Löschen","Clear playlist":"Playlist entleeren","Clear your queue":"Wiedergabeliste entleeren","CLI":"CLI","Click once, listen for hours using built-in radios":"Einmal clicken, und Musik studenlang dank der Radios anhören","Closed":"Geschlossen","Code":"Kode","Collapse":"Minimieren","Comment":"Kommentar","Config":"Einstellung","Confirm":"Bestätigen","Confirm your email":"Deine Emailadresse bestätigen","Confirmation code":"Bestätigungskode","Copy tracks from current queue to playlist":"Die Wiedergabeliste zur Playlist hinzufügen","Create a funkwhale account":"Sich anmelden","Create a new playlist":"Eine neue Playlist erstellen","Create an account":"Konto erstellen","Create import":"Import erstellen","Create my account":"Mich anmelden","Create playlist":"Eine Playlist erstellen","Create your own radio":"Dein eigenes Radio erstellen","Creation date":"Erstelldatum","Current avatar":"Aktuelles Avatar","Current track":"Aktueller Track","Delete":"Löschen","Delete playlist":"Playlist löschen","Delete radio":"Radio löschen","Deny":"Ablehnen","Deny access?":"Zugriff ablehnen?","Descending":"Absteigend","Detail":"Detail","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Bestimmt, ob das Konto aktiv ist oder nicht. Inaktive Konten können sich weder einloggen noch den Service nutzen.","Disable access":"Zugriff ausschalten","Disable Subsonic access":"Subsonic-Zugriff ausschalten","Disable Subsonic API access?":"Subsonic-API-Zugriff ausschalten?","Discover how to use Funkwhale from other apps":"Entdecke, wie du Funkwhale von anderen Apps benutzen kannst","Display publicly":"Öffentlich zeigen","Do you want to clear the playlist \"%{ playlist }\"?":"Möchtest du die Playlist \"%{ playlist }\" wirklich leeren?","Do you want to confirm this action?":"Aktion bestätigen?","Do you want to delete the playlist \"%{ playlist }\"?":"Möchtest du die Playlist \"%{ playlist } löschen?","Do you want to delete the radio \"%{ radio }\"?":"Möchtest du das Radio \"%{ radio }\" löschen?","Do you want to launch %{ action } on %{ count } element?":["Möchtest du %{ action } auf %{ count } Element ausführen?","Möchtest du %{ action } auf %{ count } Elemente ausführen?"],"Do you want to restore your previous queue?":"Möchtest du die Wiedergabelliste zurückerstellen?","Documentation":"Dokumentation","Download":"Herunterladen","Download tracks":"Tracks herunterladen","Drag and drop rows to reorder tracks in the playlist":"Um die Playlist umzuordnen, klicke und schiebe die Tracks hin und her","Duration":"Dauer","Easy to use":"Leicht zu bedienen","Edit instance info":"Die Infos dieser Instanz bearbeiten","Edit...":"Bearbeiten...","Email":"E-Mail-Adresse","Email address":"E-Mail-Adresse","Email confirmed":"E-Mail-Adresse bestätigt","End edition":"Bearbeitung abschließen","Ensure your music files are properly tagged before uploading them.":"Stelle sicher, dass deine Dateien angemessen verschlagwortet sind bevor du sie hochlädst.","Enter a radio name...":"Name des Radios eingeben...","Enter an artist name...":"Künstlername eingeben...","Enter an library domain name...":"Domainname eingeben...","Enter an playlist name...":"Playlistname eingeben...","Enter your email":"E-Mail-Adresse eingeben","Enter your invitation code (case insensitive)":"Gib deinen Einladungskode ein (Groß- und Kleinschreibung wird nicht berücksichtigt)","Enter your search query...":"Suche eingeben...","Enter your username":"Benutzername eingeben","Enter your username or email":"Benutzername oder E-Mail-Adresse eingeben","Error":"Fehler","Error reporting":"Fehlerbericht","Error while applying action":"Fehler bei der Ausführung der Aktion","Error while asking for a password reset":"Fehler während der Zurücksetzung des Passworts","Error while changing your password":"Fehler bei der Veränderung deines Passworts","Error while confirming your email":"Fehler bei der Bestätigung deiner E-Mail-Adresse","Error while creating invitation":"Fehler bei der Erstellung der Einladung","Error while saving settings":"Fehler bei der Speicherung der Einstellungen","Error while scanning library":"Fehler beim Scannen der Mediathek","Errored":"Ein Fehler ist aufgetreten","Everyone":"Alle","Everyone on this instance":"Alle auf dieser Instanz","Exclude":"Ausschließen","Expand":"Öffnen","Expiration date":"Ablaufdatum","Expired":"Abgelaufen","Expired/used":"Abgelaufen bzw. benutzt","External source. Supported backends":"Externe Quelle. Unterstützte Systeme","Favorites":"Favoriten","Federate with a new instance":"Mit einer neuen Instanz föderieren","Federated tracks":"Föderierte Tracks","Federation":"Föderation","File mirroring":"Dateispiegelung","File name":"Dateiname","File upload":"Datei hochladen","Files":"Dateien","Filter album types":"nach Albumtyp filtern","Filter name":"Filtername","Finish import":"Import beenden","Finished":"Beendet","First, choose where you want to import the music from":"Bitte zuerst auswählen, woher die Musik importiert werden muss","Follow":"Folgen","Follow request pending approval":"Ausstehende Folgen-Anfrage","Follow status":"Folgenstatus","Followers":"Follower·innen","Followers only":"Nur Follower und Followerinnen","Following":"Abonniert","from %{ album } by %{ artist }":"aus %{ album } von %{ artist }","From album %{ album } by %{ artist }":"Aus dem Album %{ album } von %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwhale ist ein kostenloses und Open-Source Projekt und wird von ehrenamtlichen entwickelt. Hilf uns mit Fehler berichten, Verbesserungsvorschlägen und teile das Projekt mit deinen Freunden!","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale ist kompatibel mit anderen Mediaplayer, die die Subsonic-API unterstützen.","Funkwhale is dead simple to use.":"Funkwhale ist sehr einfach zu benutzen.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale hat es leicht gemacht, deine Lieblingsmusik anzuhören und neue Künstler und Künstlerinnen zu entdecken.","Funkwhale is free and gives you control on your music.":"Funkwhale ist kostenlos und ermöglicht eine komplett Steuerung deiner Musik.","Funkwhale takes care of handling your music":"Funkwhale kümmert sich um deine Musik","Get a new invitation":"Eine neue Einladung bekommen","Get me to the library":"Bring mich zur Mediathek","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Dank <a href=\"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a> kannst du deine Musik mit hochwertigen Metadaten verschlagworten","Go":"Los!","Go to home page":"Zurück zur Startseite","Grab corresponding metadata":"Entsprechende Metadaten aufrufen","Help us translate Funkwhale":"Hilf uns Funkwhale zu übersetzen","Home":"Start","Hours of music":"Musik stundenlang","However, accessing Funkwhale from those clients require a separate password you can set below.":"Der Zugriff zu Funkwhale von anderen Softwares benötigt jedoch ein zusätzliches Passwort. Du kannst dieses Passwort hier einstellen.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Wenn die angegebene Emailadresse einem Benutzerkonto gebunden ist, wirst du in Kürzen eine Email mit den Zurücksetzungsanleitungen bekommen.","Import":"Import","Import #%{ id } launched":"Import #%{ id } gestartet","Import %{ count } track":["Import %{ count } Track","Import %{ count } Tracks"],"Import batch":"Importstapel","Import Batch #%{ id }":"Importstapel #%{ id }","Import batches":"Importstapel","Import Batches":"Importstapel","Import date":"Importsdatum","Import detail page":"Importdetails","Import music":"Musik importieren","Import Music":"Musik importieren","Import music from various platforms, such as YouTube or SoundCloud":"Importiere Musik aus mehreren Plattformen, wie YouTube oder Soundcloud","Import pending":"Ausstehend","Import requests":"Importanfrage","Import source":"Importquelle","Import status":"Importstatus","Import this release":"Dieses Album importieren","Import this track":"Dieser Track importieren","Imported":"Importiert","Imported URL":"Importierte URL","Imports":"Imports","In favorites":"In den Favoriten","In library":"In der Mediathek","Inactive":"Inaktiv","Input a MusicBrainz ID manually:":"MusicBrainz-ID per Hand eingeben:","Input the email address binded to your account":"Die Emailadresse deines Kontos eingeben","Insert from queue (%{ count } track)":["Aus der Wiedergabeliste hinzufügen (%{ count } Track)","Aus der Wiedergabeliste hinzufügen (%{ count } Tracks)"],"Instance information":"Infos über diese Instanz","Instance radios":"Radios der Instanz","Instance settings":"Instanzeinstellungen","Instance Timeline":"Aktivität der Instanz","Invitation code":"Einladungskode","Invitation code (optional)":"Einladungskode (ggf.)","Invitations":"Einladungen","Issue tracker":"Bugtracker","Job ID":"Aufgaben-ID","Jobs":"Aufgaben","Keep a track of your favorite songs":"Behalte einen Überblick auf deine Lieblingsmusik","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Halte deinen PRIVATE_TOKEN geheim, denn es gibt Zugriff zu deinem Konto.","Last activity":"Letzte Aktivität","Last fetched":"Letzter Abruf","Last modification":"Letzte Bearbeitung","Launch":"Starten","Launch date":"Startdatum","Launch scan":"Scan starten","Learn more about this instance":"Mehr über diese Instanz erfahren","Leave empty for a random code":"Leerlassen für einen beliebigen Kode","Leave this field empty if you're requesting the whole discography.":"Lasse dieses Feld leer, wenn du die ganze Diskografie anfragst.","Libraries":"Mediatheke","Library":"Mediathek","Library files":"Datei der Mediathek","Library name":"Mediatheksname","Library size":"Mediatheksgröße","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Links","Loading timeline...":"Laden der Timeline...","Loading your favorites...":"Laden deiner Favoriten...","Log In":"Einloggen","Log in to your Funkwhale account":"Logge dich zu deinem Funkwhale-Konto ein","Log Out":"Ausloggen","Logged in as %{ username }":"Als %{ username } angemeldet","Login":"Einloggen","Logout":"Ausloggen","Looping disabled. Click to switch to single-track looping.":"Wiederholung deaktiviert. Schalte die Wiederholung des aktuellen Tracks beim Klicken.","Looping on a single track. Click to switch to whole queue looping.":"Wiederholung des aktuellen Tracks. Wiederhole die ganze Wiedergabeliste beim Klicken.","Looping on whole queue. Click to disable looping.":"Wiederholung auf die ganze Wiedergabeliste. Deaktiviere die Wiederholung beim Klicken.","Lyrics":"Liedtext","Manage library":"Mediathek verwalten","Manage playlists":"Playlists verwalten","Manage users":"Benutzer verwalten","Manage your playlists":"Verwalte deine Playlists","Mark as closed":"Geschlossen markieren","Mark as imported":"Als importiert markieren","Metadata":"Metadaten","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Alle Infos über Alben, Tracks, Künstler und Künstlerinnen sind in den Metadaten gespeichert. Hochwertige Metadaten können auf <a href=\"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a> geholt werden. Das Projekt wird oft als Wikipedia für die Musik bezeichnet.","Music":"Musik","Music request":"Musikanfrage","Mute":"Stummschalten","My account":"Mein Konto","My awesome playlist":"Meine super Playlist","My awesome radio":"Mein super Radio","N/A":"k.A.","Name":"Name","New password":"Neues Kennwort","New tracks will be appended here automatically.":"Neue Tracks werden hier automatisch hinzugefügt.","Next step":"Nächster Schritt","Next track":"Nächster Track","No":"Nein","No add-ons, no plugins : you only need a web library":"Keine Add-Ons, keine Plugins: du brauchst nur eine Mediathek auf dem Internet","No lyrics available for this track.":"Kein verfügbarer Songtext für diesen Track.","Nobody except me":"Niemand außer mir","Not following":"Nicht abonniert","Not imported":"Nicht importiert","Not used":"Nicht verwendet","Official website":"Offizielle Webseite","Old password":"Altes Kennwort","Once all your files are uploaded, simply click the following button to check the import status.":"Nachdem alle Dateien hochgeladen sind, einfach auf dem folgenden Taste clicken um das Status des Imports nachzuprüfen.","Open":"Frei","Options":"Optionen","Or":"Oder","Ordering direction":"Reihenfolge","Owner":"Besitzer","Page Not Found":"Seite nicht gefunden","Page not found!":"Seite nicht gefunden!","Password":"Kennwort","Password updated":"Kennwort aktualisiert","Password updated successfully":"Kennwort erfolgreich aktualisiert","Pause track":"Track pausen","Pending":"Ausstehend","Pending approval":"Warte auf Bestätigung","Pending follow requests":"Ausstehende Follow-Anfrage","Pending import requests":"Ausstehende Importanfragen","Pending requests":"Ausstehende Anfragen","Permissions":"Berechtigungen","Play":"Abspielen","Play all":"Alles abspielen","Play all albums":"Alle Alben abspielen","Play immediatly":"Jetzt abspielen","Play next":"Danach abspielen","Play now":"Jetzt abspielen","Play track":"Abspielen","Playlist":"Playlist","Playlist containing %{ count } track, by %{ username }":["Playlist mit %{ count } Track, von %{ username }","Playlist mit %{ count } Tracks, von %{ username }"],"Playlist created":"Playlist erstellt","Playlist editor":"Playlisteditor","Playlist name":"Playlistname","Playlist updated":"Playlist aktualisiert","Playlist visibility":"Sichtbarkeit der Playlist","Playlists":"Playlists","Playlists? We got them":"Playlists? Haben wir auch!","Please double-check your password is correct":"Bitte prüfen, dass dein Kennwort richtig ist","Please double-check your username/password couple is correct":"Bitte prüfe, dass dein Benutzername und dein Kennwort miteinander stimmen","PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px.":"PNG, GIF oder JPG. Max. 2 Mb. Das Bild wird ggf. auf 400x400 px verkleinert.","Previous step":"Vorheriger Schritt","Previous track":"Vorheriger Track","Proceed to login":"Jetzt einloggen","Published date":"Ausgabedatum","Query template":"Abfragevorlage","Queue":"Wiedergabeliste","Queue shuffled!":"Wiedergabeliste gemischt!","Radio":"Radio","Radio Builder":"Radioeditor","Radio created":"Radio erstellt","Radio name":"Radioname","Radio updated":"Radio aktualisiert","Radios":"Radios","Recent activity on this instance":"Kürzliche Aktivität auf dieser Instanz","Recently added":"Neulich eingefügt","Recently favorited":"Neulich zu den Favoriten hinzugefügt","Recently listened":"Neulich angehört","Recording MusicBrainz ID":"MusicBrainz-ID des Tracks","Refresh":"Aktualisieren","Refused":"Abgelehnt","Registered since %{ date }":"Angemeldet seit %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"Die Anmeldung auf dieser Instanz sind geschlossen, du brauchst einen Einladungskode, wenn du dich anmelden möchtest.","regular user":"Standardnutzende","Remove":"Löschen","Remove avatar":"Avatar löschen","Remove from favorites":"Aus den Favoriten entfernen","Request a new password":"Ein neues Passwort beantragen","Request a new Subsonic API password?":"Ein neues Subsonic-API-Kennwort beantragen?","Request a password":"Kennwort beantragen","Request music":"Musik anfragen","Request some music":"Musik anfragen","Request submitted!":"Anfrage geschickt!","Rerun errored jobs":"Fehlgeschlagene Aufgaben erneut ausführen","Rerun job":"Aufgaben erneut ausführen","Reset your password":"Kennwort zurücksetzen","Result %{ current }/%{ total }":"Ergebnis %{ current }/%{ total }","Results per page":"Ergebnisse pro Seite","Save":"Speichern","Scan triggered!":"Scan gestartet!","Search":"Suchen","Search an entity you want to import:":"Suche die zuimportierende Entität:","Search by artist, username, comment...":"Künstler, Künstlerin, Benutzername oder Komment suchen...","Search by source...":"Quelle suchen...","Search by submitter, source...":"Benutzer, Benutzerin oder Quelle suchen...","Search by title, artist, domain...":"Titel, Künstler, Künstlerin oder Domain suchen...","Search by username, domain...":"Benutzername oder Domain suchen...","Search by username, email, code...":"Benutzername, E-Mail-Adresse oder Kode suchen...","Search by username, email, name...":"Benutzername, E-Mail-Adresse oder Name suchen...","Search for artists, albums, tracks...":"Künstler, Künstlerinnen, Alben oder Tracks suchen...","Search for some music":"Musik suchen","Search on lyrics.wikia.com":"Auf lyrics.wikia.com suchen","Search on Wikipedia":"Auf Wikipedia suchen","Search query":"Suche","Sections":"Abschnitte","Select a filter":"Filter auswählen","Select all %{ total } elements":["1 Element auswählen","Alle %{ total } Elemente auswählen"],"Select files to upload...":"Hochzuladende Dateien auswählen...","Select only current page":"Nur die aktuelle Seite auswählen","Select relevant sources or files for import":"Zuhochladende Dateien oder Quellen auswählen","Send a follow request":"Folgen-Anfrage schicken","Settings":"Einstellungen","Settings updated":"Einstellungen aktualisiert","Settings updated successfully.":"Einstellungen erfolgreich aktualisiert.","Settings...":"Einstellungen...","Share link":"Link zum Teilen","Show 1 more album":["1 Album mehr zeigen","%{ count } Alben mehr zeigen"],"Show 1 more track":["1 Track mehr zeigen","%{ count } Tracks mehr zeigen"],"Show/hide password":"Passwort verstecken bzw. zeigen","Showing results %{ start }-%{ end } on %{ total }":"Ergebnisse %{ start } bis %{ end } von %{ total }","Shuffle your queue":"Wiedergabeliste mischen","Sign Up":"Anmeldung","Sign-up":"Anmeldung","Simply copy paste the snippet below into a terminal to launch the download.":"Kopiere einfach den folgenden Text in einem Terminal um das Herunterladen zu starten.","Size":"Größe","Skipped":"Ausgelassen","Something's missing in the library? Let us know what you would like to listen!":"Dir fehlt etwas in der Mediathek? Sage uns was du anhören möchtest!","Sorry, we did not found any album matching your query":"Sorry, wir haben keine passende Alben für deine Suche gefunden","Sorry, we did not found any artist matching your query":"Entschuldigung, wir haben keine passenden Künstler oder Künstlerinnen für deine Suche gefunden","Source":"Quelle","Source code":"Quellcode","Source code (%{version})":"Quelcode (%{ version })","Staff member":"Teammember","Start":"Starten","Start Upload":"Hochladen starten","Statistics":"Statistik","Status":"Status","Stop":"Abbrechen","Stop radio":"Radio stoppen","Stop Upload":"Hochladen abbrechen","Submit":"Abschicken","Submit another request":"Erneut anfragen","Submitted by":"Vorgeschlagen von","Subsonic":"Subsonic","Subsonic API password":"Subsonic-API-Kennwort","Success":"Erfolg","Suggested choices":"Empfehlungen","Syncing changes to server...":"Synchronisierung der Änderungen auf dem Server...","That's simple: we loved Grooveshark and we want to build something even better.":"So einfach ist es: wir liebten Grooveshark, doch wollen wir noch besser machen.","The Beatles, Mickael Jackson…":"Die Beatles, Michael Jackson…","The funkwhale logo was kindly designed and provided by Francis Gading.":"Das Funkwhale-Logo wurde mit Lieb von Francis Gading erbracht.","The plaform is free and open-source, you can install it and modify it without worries":"Die Plattform ist kostenlos und Open-Source, du kannst sie herunterladen, installieren und anpassen ohne Sorge","The Subsonic API is not available on this Funkwhale instance.":"Die Subsonic-API ist auf dieser Instanz nicht verfügbar.","The White Album, Thriller…":"Das Weiße Album, Thriller…","There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.":"Zur zeit ist es nicht möglich, mehrere Tracks aus Funkwhale als Zip Archiv herunterzuladen. Dennoch kannst du Tracks mit Hilfe von Kommandozeilen (z.B. cURL) leicht herunterladen.","This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.":"Dieser Import wird mit der folgenden Anfrage verknüpft. Nachdem der Import fertig ist, wird die Anfrage als erfüllt markiert.","This indicate if the remote library granted you access":"Dies weist darauf hin, ob die Fernmediathek dir den Zugriff gewährt hat","This is you!":"Das bist du!","This may affect a lot of elements, please double check this is really what you want.":"Durch diese Aktion können mehrere Elemente betroffen werden, prüfe bitte nach, das du es wirklich willst.","This track is not imported and cannot be played":"Dieser Track wurde nicht importiert und kann nicht abgespielt werden","This will completely delete this playlist and cannot be undone.":"Die Playlist wird dauerhaft gelöscht und kann nicht zurückerstellt werden.","This will completely delete this radio and cannot be undone.":"Das Radio wird dauerhaft gelöscht und kann nicht zurückerstellt werden.","This will completely disable access to the Subsonic API using from account.":"Der Zugriff zur Subsonic-API von diesem Konto wird deaktiviert.","This will erase your local data and disconnect you, do you want to continue?":"Deine lokalen Daten werden gelöscht, und du wirst abgemeldet. Möchtest du fortfahren?","This will log you out from existing devices that use the current password.":"Du wirst von den bestehenden Geräten abgemeldet, die dieses Passwort nutzen.","This will remove all tracks from this playlist and cannot be undone.":"Alle Tracks dieses Playlists werden dauerhauft gelöscht und können nicht zurückerstellt werden.","Title":"Titel","Track":"Track","Track information":"Trackinformation","tracks":"Tracks","Tracks":"Tracks","Tracks available in this library":"Verfügbare Tracks in dieser Mediathek","Tracks by this artist":"Tracks von diesem Künstler oder Künstlerin","Tracks favorited":"Tracks in den Favoriten","tracks listened":"Angehörte Tracks","Trigger scan":"Scan auslösen","Type":"Typ","Unfortunately, owners of this instance did not yet take the time to complete this page.":"Leider wurde diese Seite von den Verwaltern dieser Instanz noch nicht ausgefüllt.","Unknown":"Unbekannt","Unlimited music":"Unbegrenzte Musik","Unmute":"Stummschaltung aufheben","Update avatar":"Avatar aktualisieren","Update playlist":"Playlist aktualisiert","Update settings":"Einstellungen aktualisieren","Update your password":"Dein Kennwort aktualisieren","Upload":"Hochladen","Upload a new avatar":"Neues Avatar hochladen","Uploaded files or external source":"Hochgeladene Dateien oder externe Quelle","Uploading...":"Hochladen...","Use another instance":"Eine andere Instanz benutzen","Use this comment box to add details to your request if needed":"Nutze dieses Feld um weitere Informationen über deine Anfrage beizufügen","Use this flag to enable/disable federation with this library":"Mit dieser Einstellung kannst du die Föderation an dieser Mediathek umschalten","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"Mit diesem Formular kannst du ein neues Kennwort beantragen. Wir schicken dir eine E-Mail an die angegebene Adresse mit den Anleitungen.","Use this form to scan an instance and setup federation.":"Scanne eine Instanz und föderiere damit.","Used":"Verwendet","User":"Nutzende","User activity":"Aktivität der Nutzende","User radios":"Radios der Nutzende","Username":"Benutzername","Username or email":"Benutzername oder E-Mail-Adresse","users":"Nutzende","Users":"Nutzende","View on MusicBrainz":"Auf MusicBrainz ansehen","We cannot add the track to a playlist":"Dieser Track kann nicht zu einer Playlist hinzugefügt werden","We cannot create the playlist":"Die Playlist kann nicht erstellt werden","We cannot create your account":"Dein Konto kann nicht erstellt werden","We cannot log you in":"Wir können dich nicht einloggen","We cannot save your avatar":"Dein Avatar kann nicht gespeichert werden","We cannot save your settings":"Deine Einstellungen können nicht gespeichert werden","We do not track you or bother you with ads":"Weder verfolgen wir dich noch stören wir dich mit Werbung","We recommend using Picard for that purpose.":"Zu diesem Zweck wird Picard empfohlen.","We think listening to music should be simple.":"Weil Musik hören sollte leicht sein.","We're sorry, the page you asked for does not exist:":"Entschuldigung, die aufgerufene Seite existiert nicht:","We've received your request, you'll get some groove soon ;)":"Deine Anfrage wurde empfangen, du wirst bald von uns was hören ;)","Welcome":"Willkommen","Welcome on Funkwhale":"Willkommen auf Funkwhale","What is metadata?":"Was sind Metadaten?","When enabled, auto importing will automatically import new tracks published in this library":"Wenn angeschaltet, neue veröffentliche Tracks in dieser Bibliothek werden automatisch importiert","Why funkwhale?":"Warum Funkwhale?","Yes":"Ja","Yes, log me out!":"Ja, logge mich aus!","You are currently logged in as %{ username }":"Du bist als %{ username } angemeldet","You can also skip this step and enter metadata manually.":"Du kannst auch diesen Schritt überspringen und die Metadaten per Hand eingeben.","You can invite friends and family to your instance so they can enjoy your music":"Du kannst Freunde und Familie auf deiner Instanz einladen, sodass sie deine Musik genießen können","You can use this interface to build your own custom radio, which will play tracks according to your criteria.":"Dank dieser Schnittstelle kannst du dein eigenes Radio aufbauen, das die entsprechenden Tracks abspielt.","You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.":"Damit kannst du deine Playlists und Musik offline genießen, zum Beispiel auf deinem Smartphone bzw. Tablett.","You have a radio playing":"Du hörst gerade ein Radio an","You need to select an instance in order to continue":"Zum Fortfahren wähle bitte eine Instanz aus","You will be logged out from this session and have to log in with the new one":"Du wirst von dieser Sitzung ausgeloggt und du musst dich mit deinem neuen Kennwort einloggen","You will have to update your password on your clients that use this password.":"Du musst das Passwort auf deine verbundenen Geräte anpassen, die dieses Passwort verwenden.","You will import:":"Du wirst importieren:","Your email address was confirmed, you can now use the service without limitations.":"Deine E-Mail-Adresse wurde bestätigt, jetzt kannst du den Service unbegrenzt nutzen.","Your Favorites":"Deine Favoriten","Your music, your way":"Deine Musik, deine Weise","Your password has been updated successfully.":"Dein Kennwort wurde erfolgreich aktualisiert.","Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password":"Dein Subsonic-Kennwort wird mit einem neuen beliebigen Kennwort ersetzt, und du wirst auf allen aktuellen verbundenen Geräten ausgeloggt, die das alte Kennwort nutzen","%{ count } track was added to your queue":["1 Track wurde zur Wiedergabeliste hinzugefügt","%{ count } Tracks wurden zur Wiedergabeliste hinzugefügt"]},"en_US":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", by %{ artist }","(%{ index } of %{ length })":"(%{ index } of %{ length })","(empty)":"(empty)","%{ count } on %{ total } selected":["%{ count } on %{ total } selected","%{ count } on %{ total } selected"],"%{ count } track":["%{ count } track","%{ count } tracks"],"%{ count } track in %{ albumsCount } albums":["%{ count } track in %{ albumsCount } albums","%{ count } tracks in %{ albumsCount } albums"],"%{ count } track matching combined filters":["%{ count } track matching combined filters","%{ count } tracks matching combined filters"],"%{ count} track":["%{ count} track","%{ count } tracks"],"%{ user } favorited a track":"%{ user } favorited a track","%{ user } listened to a track":"%{ user } listened to a track","%{ username }'s profile":"%{ username }'s profile","1 album":["1 album","%{ count } albums"],"1 favorite":["1 favorite","%{ count } favorites"],"1 track":["1 track","%{ count } tracks"],"About Funkwhale":"About Funkwhale","About this instance":"About this instance","Accepted":"Accepted","Access disabled":"Access disabled","Access your music from a clean interface that focus on what really matters":"Access your music from a clean interface that focus on what really matters","Account active":"Account active","Account settings":"Account settings","Account Settings":"Account Settings","Account status":"Account status","Account's email":"Account's email","Action %{ action } was launched successfully on %{ count } element":["Action %{ action } was launched successfully on %{ count } element","Action %{ action } was launched successfully on %{ count } elements"],"Actions":"Actions","Active":"Active","Activity":"Activity","Actor":"Actor","Add a new library":"Add a new library","Add filter":"Add filter","Add filters to customize your radio":"Add filters to customize your radio","Add to current queue":"Add to current queue","Add to favorites":"Add to favorites","Add to playlist...":"Add to playlist...","Add to queue":"Add to queue","Add to this playlist":"Add to this playlist","Add track":"Add track","Admin":"Admin","Administration":"Administration","Album":"Album","Album %{ title } (%{ count } track) by %{ artist }":["Album %{ title } (%{ count } track) by %{ artist }","Album %{ title } (%{ count } tracks) by %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Album containing %{ count } track, by %{ artist }","Album containing %{ count } tracks, by %{ artist }"],"Album page":"Album page","Albums":"Albums","Albums by this artist":"Albums by this artist","All":"All","An error occured while saving your changes":"An error occured while saving your changes","An unknown error happend, this can mean the server is down or cannot be reached":"An unknown error happend, this can mean the server is down or cannot be reached","Any":"Any","API":"API","Approve":"Approve","Approve access?":"Approve access?","Approved":"Approved","Are you sure you want to log out?":"Are you sure you want to log out?","Artist":"Artist","Artist name":"Artist name","Artist page":"Artist page","Artist, album, track...":"Artist, album, track...","Artists":"Artists","Ascending":"Ascending","Ask for a password reset":"Ask for a password reset","Auto importing":"Auto importing","Available playlists":"Available playlists","Back to login":"Back to login","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Be careful when accepting follow requests, as it means the follower will have access to your entire library.","Bitrate":"Bitrate","Browse":"Browse","Browse library":"Browse library","Browsing artists":"Browsing artists","Browsing federated tracks":"Browsing federated tracks","Browsing followers":"Browsing followers","Browsing libraries":"Browsing libraries","Browsing playlists":"Browsing playlists","Browsing radios":"Browsing radios","Builder":"Builder","By %{ artist }":"By %{ artist }","By confirming, %{ username } will be denied access to your library.":"By confirming, %{ username } will be denied access to your library.","By confirming, %{ username } will be granted access to your library.":"By confirming, %{ username } will be granted access to your library.","Cancel":"Cancel","Candidates":"Candidates","Cannot change your password":"Cannot change your password","Change language":"Change language","Change my password":"Change my password","Change password":"Change password","Change your password":"Change your password","Change your password?":"Change your password?","Changes synced with server":"Changes synced with server","Changing your password will also change your Subsonic API password if you have requested one.":"Changing your password will also change your Subsonic API password if you have requested one.","Changing your password will have the following consequences":"Changing your password will have the following consequences","Choose your instance":"Choose your instance","Clean library":"Clean library","Clear":"Clear","Clear playlist":"Clear playlist","Clear your queue":"Clear your queue","CLI":"CLI","Click once, listen for hours using built-in radios":"Click once, listen for hours using built-in radios","Closed":"Closed","Code":"Code","Collapse":"Collapse","Comment":"Comment","Config":"Config","Confirm":"Confirm","Confirm your email":"Confirm your email","Confirmation code":"Confirmation code","Copy tracks from current queue to playlist":"Copy tracks from current queue to playlist","Covers, lyrics, our goal is to have them all ;)":"Covers, lyrics, our goal is to have them all ;)","Create a funkwhale account":"Create a funkwhale account","Create a new playlist":"Create a new playlist","Create an account":"Create an account","Create import":"Create import","Create my account":"Create my account","Create playlist":"Create playlist","Create your own radio":"Create your own radio","Creation date":"Creation date","Current track":"Current track","Delete":"Delete","Delete playlist":"Delete playlist","Delete radio":"Delete radio","Deny":"Deny","Deny access?":"Deny access?","Descending":"Descending","Detail":"Detail","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Determine if the user account is active or not. Inactive users cannot login or use the service.","Disable access":"Disable access","Disable Subsonic access":"Disable Subsonic access","Disable Subsonic API access?":"Disable Subsonic API access?","Discover how to use Funkwhale from other apps":"Discover how to use Funkwhale from other apps","Display publicly":"Display publicly","Do you want to clear the playlist \"%{ playlist }\"?":"Do you want to clear the playlist \"%{ playlist }\"?","Do you want to confirm this action?":"Do you want to confirm this action?","Do you want to delete the playlist \"%{ playlist }\"?":"Do you want to delete the playlist \"%{ playlist }\"?","Do you want to launch %{ action } on %{ count } element?":["Do you want to launch %{ action } on %{ count } element?","Do you want to launch %{ action } on %{ count } elements?"],"Do you want to restore your previous queue?":"Do you want to restore your previous queue?","Documentation":"Documentation","Download":"Download","Download tracks":"Download tracks","Drag and drop rows to reorder tracks in the playlist":"Drag and drop rows to reorder tracks in the playlist","Duration":"Duration","Easy to use":"Easy to use","Edit instance info":"Edit instance info","Edit...":"Edit...","Email":"Email","Email address":"Email address","Email confirmed":"Email confirmed","End edition":"End edition","Ensure your music files are properly tagged before uploading them.":"Ensure your music files are properly tagged before uploading them.","Enter a radio name...":"Enter a radio name...","Enter an artist name...":"Enter an artist name...","Enter an library domain name...":"Enter an library domain name...","Enter an playlist name...":"Enter an playlist name...","Enter your email":"Enter your email","Enter your invitation code (case insensitive)":"Enter your invitation code (case insensitive)","Enter your search query...":"Enter your search query...","Enter your username":"Enter your username","Enter your username or email":"Enter your username or email","Error":"Error","Error reporting":"Error reporting","Error while applying action":"Error while applying action","Error while asking for a password reset":"Error while asking for a password reset","Error while changing your password":"Error while changing your password","Error while confirming your email":"Error while confirming your email","Error while creating invitation":"Error while creating invitation","Error while saving settings":"Error while saving settings","Error while scanning library":"Error while scanning library","Errored":"Errored","Everyone":"Everyone","Everyone on this instance":"Everyone on this instance","Exclude":"Exclude","Expand":"Expand","Expiration date":"Expiration date","Expired":"Expired","Expired/used":"Expired/used","External source. Supported backends":"External source. Supported backends","Favorites":"Favorites","Federate with a new instance":"Federate with a new instance","Federated tracks":"Federated tracks","Federation":"Federation","File mirroring":"File mirroring","File name":"File name","File upload":"File upload","Files":"Files","Filter album types":"Filter album types","Filter name":"Filter name","Finish import":"Finish import","Finished":"Finished","First, choose where you want to import the music from":"First, choose where you want to import the music from","Follow":"Follow","Follow request pending approval":"Follow request pending approval","Follow status":"Follow status","Followers":"Followers","Followers only":"Followers only","Following":"Following","from %{ album } by %{ artist }":"from %{ album } by %{ artist }","From album %{ album } by %{ artist }":"From album %{ album } by %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale is compatible with other music players that support the Subsonic API.","Funkwhale is dead simple to use.":"Funkwhale is dead simple to use.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.","Funkwhale is free and gives you control on your music.":"Funkwhale is free and gives you control on your music.","Funkwhale takes care of handling your music":"Funkwhale takes care of handling your music","Get a new invitation":"Get a new invitation","Get me to the library":"Get me to the library","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>","Go":"Go","Go to home page":"Go to home page","Grab corresponding metadata":"Grab corresponding metadata","Home":"Home","Hours of music":"Hours of music","However, accessing Funkwhale from those clients require a separate password you can set below.":"However, accessing Funkwhale from those clients require a separate password you can set below.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.","Import":"Import","Import #%{ id } launched":"Import #%{ id } launched","Import %{ count } track":["Import %{ count } track","Import %{ count } tracks"],"Import batch":"Import batch","Import Batch #%{ id }":"Import Batch #%{ id }","Import batches":"Import batches","Import Batches":"Import Batches","Import date":"Import date","Import detail page":"Import detail page","Import music":"Import music","Import Music":"Import Music","Import music from various platforms, such as YouTube or SoundCloud":"Import music from various platforms, such as YouTube or SoundCloud","Import pending":"Import pending","Import requests":"Import requests","Import source":"Import source","Import status":"Import status","Import this release":"Import this release","Import this track":"Import this track","Imported":"Imported","Imported URL":"Imported URL","Imports":"Imports","In favorites":"In favorites","In library":"In library","Inactive":"Inactive","Input a MusicBrainz ID manually:":"Input a MusicBrainz ID manually:","Input the email address binded to your account":"Input the email address binded to your account","Insert from queue (%{ count } track)":["Insert from queue (%{ count } track)","Insert from queue (%{ count } tracks)"],"Instance information":"Instance information","Instance settings":"Instance settings","Instance Timeline":"Instance Timeline","Invitation code":"Invitation code","Invitation code (optional)":"Invitation code (optional)","Invitations":"Invitations","Issue tracker":"Issue tracker","Job ID":"Job ID","Jobs":"Jobs","Keep a track of your favorite songs":"Keep a track of your favorite songs","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Keep your PRIVATE_TOKEN secret as it gives access to your account.","Last activity":"Last activity","Last fetched":"Last fetched","Last modification":"Last modification","Launch":"Launch","Launch date":"Launch date","Launch scan":"Launch scan","Learn more about this instance":"Learn more about this instance","Leave empty for a random code":"Leave empty for a random code","Leave this field empty if you're requesting the whole discography.":"Leave this field empty if you're requesting the whole discography.","Libraries":"Libraries","Library":"Library","Library files":"Library files","Library name":"Library name","Library size":"Library size","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Links","Loading timeline...":"Loading timeline...","Loading your favorites...":"Loading your favorites...","Log In":"Log In","Log in to your Funkwhale account":"Log in to your Funkwhale account","Log Out":"Log Out","Logged in as %{ username }":"Logged in as %{ username }","Login":"Login","Logout":"Logout","Looping disabled. Click to switch to single-track looping.":"Looping disabled. Click to switch to single-track looping.","Looping on a single track. Click to switch to whole queue looping.":"Looping on a single track. Click to switch to whole queue looping.","Looping on whole queue. Click to disable looping.":"Looping on whole queue. Click to disable looping.","Lyrics":"Lyrics","Manage library":"Manage library","Manage playlists":"Manage playlists","Manage users":"Manage users","Manage your playlists":"Manage your playlists","Mark as closed":"Mark as closed","Mark as imported":"Mark as imported","Metadata":"Metadata","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.","Music":"Music","Music request":"Music request","Mute":"Mute","My account":"My account","My awesome playlist":"My awesome playlist","My awesome radio":"My awesome radio","N/A":"N/A","Name":"Name","New password":"New password","New tracks will be appended here automatically.":"New tracks will be appended here automatically.","Next step":"Next step","Next track":"Next track","No":"No","No add-ons, no plugins : you only need a web library":"No add-ons, no plugins : you only need a web library","No lyrics available for this track.":"No lyrics available for this track.","Nobody except me":"Nobody except me","Not following":"Not following","Not imported":"Not imported","Not used":"Not used","Official website":"Official website","Old password":"Old password","Once all your files are uploaded, simply click the following button to check the import status.":"Once all your files are uploaded, simply click the following button to check the import status.","Open":"Open","Options":"Options","Or":"Or","Ordering":"Ordering","Ordering direction":"Ordering direction","Owner":"Owner","Page Not Found":"Page Not Found","Page not found!":"Page not found!","Password":"Password","Password updated":"Password updated","Password updated successfully":"Password updated successfully","Pause track":"Pause track","Pending":"Pending","Pending approval":"Pending approval","Pending follow requests":"Pending follow requests","Pending import requests":"Pending import requests","Pending requests":"Pending requests","Permissions":"Permissions","Play":"Play","Play all":"Play all","Play all albums":"Play all albums","Play immediatly":"Play immediatly","Play next":"Play next","Play now":"Play now","Play track":"Play track","Playlist":"Playlist","Playlist containing %{ count } track, by %{ username }":["Playlist containing %{ count } track, by %{ username }","Playlist containing %{ count } tracks, by %{ username }"],"Playlist created":"Playlist created","Playlist editor":"Playlist editor","Playlist name":"Playlist name","Playlist updated":"Playlist updated","Playlist visibility":"Playlist visibility","Playlists":"Playlists","Playlists? We got them":"Playlists? We got them","Please double-check your password is correct":"Please double-check your password is correct","Please double-check your username/password couple is correct":"Please double-check your username/password couple is correct","Previous step":"Previous step","Previous track":"Previous track","Proceed to login":"Proceed to login","Published date":"Published date","Query template":"Query template","Queue":"Queue","Queue shuffled!":"Queue shuffled!","Radio":"Radio","Radio Builder":"Radio Builder","Radio name":"Radio name","Radios":"Radios","Recent activity on this instance":"Recent activity on this instance","Recording MusicBrainz ID":"Recording MusicBrainz ID","Refresh":"Refresh","Refused":"Refused","Registered since %{ date }":"Registered since %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"Registration are closed on this instance, you will need an invitation code to signup.","regular user":"regular user","Remove":"Remove","Remove from favorites":"Remove from favorites","Request a new password":"Request a new password","Request a new Subsonic API password?":"Request a new Subsonic API password?","Request a password":"Request a password","Request submitted!":"Request submitted!","Rerun errored jobs":"Rerun errored jobs","Rerun job":"Rerun job","Reset your password":"Reset your password","Result %{ current }/%{ total }":"Result %{ current }/%{ total }","Results per page":"Results per page","Save":"Save","Scan triggered!":"Scan triggered!","Search":"Search","Search an entity you want to import:":"Search an entity you want to import:","Search by artist, username, comment...":"Search by artist, username, comment...","Search by source...":"Search by source...","Search by submitter, source...":"Search by submitter, source...","Search by title, artist, domain...":"Search by title, artist, domain...","Search by username, domain...":"Search by username, domain...","Search by username, email, code...":"Search by username, email, code...","Search by username, email, name...":"Search by username, email, name...","Search for artists, albums, tracks...":"Search for artists, albums, tracks...","Search for some music":"Search for some music","Search on lyrics.wikia.com":"Search on lyrics.wikia.com","Search on Wikipedia":"Search on Wikipedia","Search query":"Search query","Sections":"Sections","Select a filter":"Select a filter","Select all %{ total } elements":["Select all %{ total } elements","Select all %{ total } elements"],"Select files to upload...":"Select files to upload...","Select only current page":"Select only current page","Select relevant sources or files for import":"Select relevant sources or files for import","Send a follow request":"Send a follow request","Settings":"Settings","Settings updated":"Settings updated","Settings updated successfully.":"Settings updated successfully.","Settings...":"Settings...","Share link":"Share link","Show 1 more album":["Show 1 more album","Show %{ count } more albums"],"Show 1 more track":["Show 1 more track","Show %{ count } more tracks"],"Show/hide password":"Show/hide password","Showing results %{ start }-%{ end } on %{ total }":"Showing results %{ start }-%{ end } on %{ total }","Shuffle your queue":"Shuffle your queue","Sign Up":"Sign Up","Sign-up":"Sign-up","Simply copy paste the snippet below into a terminal to launch the download.":"Simply copy paste the snippet below into a terminal to launch the download.","Size":"Size","Skipped":"Skipped","Something's missing in the library? Let us know what you would like to listen!":"Something's missing in the library? Let us know what you would like to listen!","Sorry, we did not found any album matching your query":"Sorry, we did not found any album matching your query","Sorry, we did not found any artist matching your query":"Sorry, we did not found any artist matching your query","Source":"Source","Source code":"Source code","Source code (%{version})":"Source code (%{version})","Staff member":"Staff member","Start":"Start","Start Upload":"Start Upload","Statistics":"Statistics","Status":"Status","Stop":"Stop","Stop radio":"Stop radio","Stop Upload":"Stop Upload","Submit":"Submit","Submit another request":"Submit another request","Submitted by":"Submitted by","Subsonic":"Subsonic","Subsonic API password":"Subsonic API password","Success":"Success","Suggested choices":"Suggested choices","Syncing changes to server...":"Syncing changes to server...","That's simple: we loved Grooveshark and we want to build something even better.":"That's simple: we loved Grooveshark and we want to build something even better.","The Beatles, Mickael Jackson…":"The Beatles, Mickael Jackson…","The funkwhale logo was kindly designed and provided by Francis Gading.":"The funkwhale logo was kindly designed and provided by Francis Gading.","The plaform is free and open-source, you can install it and modify it without worries":"The plaform is free and open-source, you can install it and modify it without worries","The Subsonic API is not available on this Funkwhale instance.":"The Subsonic API is not available on this Funkwhale instance.","The White Album, Thriller…":"The White Album, Thriller…","There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.":"There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.","This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.":"This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.","This indicate if the remote library granted you access":"This indicate if the remote library granted you access","This is you!":"This is you!","This may affect a lot of elements, please double check this is really what you want.":"This may affect a lot of elements, please double check this is really what you want.","This track is not imported and cannot be played":"This track is not imported and cannot be played","This will completely delete this playlist and cannot be undone.":"This will completely delete this playlist and cannot be undone.","This will completely delete this radio and cannot be undone.":"This will completely delete this radio and cannot be undone.","This will completely disable access to the Subsonic API using from account.":"This will completely disable access to the Subsonic API using from account.","This will erase your local data and disconnect you, do you want to continue?":"This will erase your local data and disconnect you, do you want to continue?","This will log you out from existing devices that use the current password.":"This will log you out from existing devices that use the current password.","This will remove all tracks from this playlist and cannot be undone.":"This will remove all tracks from this playlist and cannot be undone.","Title":"Title","Track":"Track","Track information":"Track information","Track matching filter":"Track matching filter","tracks":"tracks","Tracks":"Tracks","Tracks available in this library":"Tracks available in this library","Tracks favorited":"Tracks favorited","tracks listened":"tracks listened","Trigger scan":"Trigger scan","Type":"Type","Unfortunately, owners of this instance did not yet take the time to complete this page.":"Unfortunately, owners of this instance did not yet take the time to complete this page.","Unknown":"Unknown","Unlimited music":"Unlimited music","Unmute":"Unmute","Update playlist":"Update playlist","Update settings":"Update settings","Update your password":"Update your password","Upload":"Upload","Uploaded files or external source":"Uploaded files or external source","Uploading...":"Uploading...","Use another instance":"Use another instance","Use this comment box to add details to your request if needed":"Use this comment box to add details to your request if needed","Use this flag to enable/disable federation with this library":"Use this flag to enable/disable federation with this library","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.","Use this form to scan an instance and setup federation.":"Use this form to scan an instance and setup federation.","Used":"Used","User":"User","User activity":"User activity","Username":"Username","Username or email":"Username or email","users":"users","Users":"Users","View on MusicBrainz":"View on MusicBrainz","We cannot add the track to a playlist":"We cannot add the track to a playlist","We cannot create the playlist":"We cannot create the playlist","We cannot create your account":"We cannot create your account","We cannot log you in":"We cannot log you in","We cannot save your settings":"We cannot save your settings","We do not track you or bother you with ads":"We do not track you or bother you with ads","We recommend using Picard for that purpose.":"We recommend using Picard for that purpose.","We think listening to music should be simple.":"We think listening to music should be simple.","We're sorry, the page you asked for does not exist:":"We're sorry, the page you asked for does not exist:","We've received your request, you'll get some groove soon ;)":"We've received your request, you'll get some groove soon ;)","Welcome":"Welcome","Welcome on Funkwhale":"Welcome on Funkwhale","What is metadata?":"What is metadata?","When enabled, auto importing will automatically import new tracks published in this library":"When enabled, auto importing will automatically import new tracks published in this library","Why funkwhale?":"Why funkwhale?","Yes":"Yes","Yes, log me out!":"Yes, log me out!","You are currently logged in as %{ username }":"You are currently logged in as %{ username }","You can also skip this step and enter metadata manually.":"You can also skip this step and enter metadata manually.","You can invite friends and family to your instance so they can enjoy your music":"You can invite friends and family to your instance so they can enjoy your music","You can use this interface to build your own custom radio, which will play tracks according to your criteria.":"You can use this interface to build your own custom radio, which will play tracks according to your criteria.","You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.":"You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.","You have a radio playing":"You have a radio playing","You need to select an instance in order to continue":"You need to select an instance in order to continue","You will be logged out from this session and have to log in with the new one":"You will be logged out from this session and have to log in with the new one","You will have to update your password on your clients that use this password.":"You will have to update your password on your clients that use this password.","You will import:":"You will import:","Your email address was confirmed, you can now use the service without limitations.":"Your email address was confirmed, you can now use the service without limitations.","Your Favorites":"Your Favorites","Your music, your way":"Your music, your way","Your password has been updated successfully.":"Your password has been updated successfully.","Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password":"Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password","%{ count } track was added to your queue":["%{ count } track was added to your queue","%{ count } tracks were added to your queue"]},"eo":{"\"%{ title }\", by %{ artist }":"\"%{title}\" je %{artist}","(%{ index } of %{ length })":"(%{index} da %{length})","(empty)":"(malplena)","%{ count } on %{ total } selected":["Unu el %{total} estas selekta","%{count} el %{total} estas selektaj"],"%{ count } track":["%{count} kanto","%{count} kantoj"],"%{ count } track in %{ albumsCount } albums":["%{count} kanto en %{albumsCount} albumo","%{count} kantoj en %{albumsCount} albumoj"],"%{ count } track matching combined filters":["%{count} kanto kongruas kun la tutaj filtriloj","%{count} kantoj kongruas kun la tutaj filtriloj"],"%{ count} track":["%{count} kanto","%{count} kantoj"],"%{ hours } h %{ minutes } min":"%{hours} h %{minutes} min","%{ minutes } min":"%{minutes} min","%{ user } favorited a track":"%{user} stelumis kanton","%{ user } listened to a track":"%{user} aÅskultis kanton","%{ username }'s profile":"Profilo de %{username}","1 album":["Unu albumo","%{count} albumoj"],"1 favorite":["Unu stelumo","%{count} stelumoj"],"1 track":["Unu kanto","%{count} kantoj"],"About %{ instance }":"Pri %{instance}","About Funkwhale":"Pri Funkwhale","About this instance":"Pri tiu instanco","Accepted":"akceptanta","Access disabled":"Atingo malaktivigas","Access your music from a clean interface that focus on what really matters":"Atingas vian muzikon kun pura interfaco ke koncentras Äin sur gravaĵo","Account active":"Aktiva konto","Account settings":"Preferoj de via konto","Account Settings":"Preferoj de via konto","Account status":"Pozicio de via konto","Account's email":"Retadreso de via konto","Action %{ action } was launched successfully on %{ count } element":["Ago %{action} sukcese komenciÄis por %{count} ero","Ago %{action} sukcese komenciÄis por %{count} eroj"],"Actions":"Agoj","Active":"Aktiva","Activity":"Aktivo","Actor":"Aktoro","Add a new library":"Aldoni nova muzikejo","Add filter":"Aldoni filtrilo","Add filters to customize your radio":"Aldonu filtriloj por agordi vian radion","Add to current queue":"Aldoni al aktuala atendovico","Add to favorites":"Aldoni al stelumoj","Add to playlist...":"Aldoni al ludlisto…","Add to queue":"Aldoni al atendovico","Add to this playlist":"Aldoni al tiu ludlisto","Add track":"Aldoni kanton","Admin":"Administranto","Administration":"Administrejo","Album":"Albumo","Album %{ title } (%{ count } track) by %{ artist }":["Albumo %{title} (%{count} kanto) je %{artist}","Albumo %{title} (%{count} kantoj) je %{artist}"],"Album containing %{ count } track, by %{ artist }":["Albumo kun %{count} kanto, je %{artist}","Albumo kun %{count} kantoj, je %{artist}"],"Album page":"Albumpagô","Albums":"Albumoj","Albums by this artist":"Albumoj je ĉi-tiu artisto","All":"Ĉia","An error occured while saving your changes":"Eraro okazis kiam konservi viajn ÅanÄojn","An unknown error happend, this can mean the server is down or cannot be reached":"Nekonata eraro okazis, povus signifi ke la servilo paneas aÅ ne estas atingebla","Any":"Ajn","API":"API","Approve":"Aprobi","Approve access?":"Aprobi atingo?","Approved":"Aprobanta","Are you sure you want to log out?":"Ĉu vi vere volas elsaluti?","Artist":"Artisto","Artist name":"Nomo de artisto","Artist page":"ArtistpaÄo","Artist, album, track...":"Artisto, albumo, kanto…","Artists":"Artistoj","Ascending":"Foste","Auto importing":"AÅtomata importado","Available playlists":"Disponeblaj ludlistoj","Avatar":"Avataro","Back to login":"Reiri al ensalutpaÄo","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Zorgu kiam vi akceptas petoj da sekvado, ĉar Äi signifas ke la sekvanto atingos vian tutan muzikejo.","Bitrate":"Bitrapido","Browse":"Folii","Browse library":"Folii muzikejon","Browsing artists":"Folii artistojn","Browsing federated tracks":"Folii federantajn kantojn","Browsing followers":"Folii sekvadojn","Browsing libraries":"Folii muzikejojn","Browsing playlists":"Folii ludlistojn","Browsing radios":"Folii radiojn","Builder":"Konstruilo","By %{ artist }":"Je %{artist}","By confirming, %{ username } will be denied access to your library.":"Konfirmante, %{username} ne plu rajtos atingi vian muzikejo.","By confirming, %{ username } will be granted access to your library.":"Konfirmante, %{username} rajtos atingi vian muzikejo.","Cancel":"Nuligi","Candidates":"Kandidatoj","Cannot change your password":"Ne eblas ÅanÄi vian pasvorton","Change language":"ÅœanÄi lingvon","Change my password":"ÅœanÄi mian pasvorton","Change password":"ÅœanÄi pasvorton","Change your password":"ÅœanÄi vian pasvorton","Change your password?":"Ĉu vi volas ÅanÄi vian pasvorton?","Changes synced with server":"Konservis ÅanÄoj","Changing your password will also change your Subsonic API password if you have requested one.":"ÅœanÄi vian pasvorton ankaÅ ÅanÄos vian Subsonic API pasvorto se vi petis tiun.","Changing your password will have the following consequences":"ÅœanÄi vian pasvorton tiel rezultigos","Choose your instance":"Elekti vian instanco","Clean library":"Purigi muzikejon","Clear":"Purigi","Clear playlist":"Purigi ludliston","Clear your queue":"Purigi vian atendovico","CLI":"Komandlinia interfaco","Click once, listen for hours using built-in radios":"Alklaki unu foje, aÅskulti enkonstruitajn radiojn dum horoj","Closed":"Fermanta","Code":"Kodo","Collapse":"Malgrandigi","Comment":"Komenti","Config":"Preferoj","Confirm":"Konfirmi","Confirm your email":"Konfirmi vian retadreson","Confirmation code":"Konfirmada kodo","Copy tracks from current queue to playlist":"Kopii kantojn el la aktuala atendovico en tiu ludlisto","Covers, lyrics, our goal is to have them all ;)":"Reludversioj, kantparoloj, nian celon estas havi ĉiujn ;)","Create a funkwhale account":"Krei Funkwhale konton","Create a new playlist":"Krei novan ludliston","Create an account":"Krei konton","Create import":"Krei importadon","Create my account":"Kreu mian konton","Create playlist":"Krei ludliston","Create your own radio":"Krei vian propran radion","Creation date":"Kreodato","Current avatar":"Aktuala avataro","Current track":"Aktuala kanto","Delete":"Forigi","Delete playlist":"Forigi ludliston","Delete radio":"Forigi radion","Deny":"Malrajtu","Deny access?":"Malrajti atingado?","Descending":"Malfoste","Detail":"Detalo","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Elekti ĉu la konton aktivas aÅ ne. Malaktivaj konton ne eblas ensaluti aÅ uzi la servico.","Disable access":"Malatingeblu","Disable Subsonic access":"Malatingeblu Subsonic","Disable Subsonic API access?":"Ĉu vi volas malatingeblu la Subsonic API?","Discover how to use Funkwhale from other apps":"Malkovri kiel vi povas uzi Funkwhale el aliaj aplikaĵoj","Display publicly":"Publike montri","Do you want to clear the playlist \"%{ playlist }\"?":"Ĉu vi volas purigi la \"%{playlist}\" ludliston?","Do you want to confirm this action?":"Ĉu vi volas konfirmi tiun akton?","Do you want to delete the playlist \"%{ playlist }\"?":"Ĉu vi volas forigi la \"%{playlist}\" ludliston?","Do you want to launch %{ action } on %{ count } element?":["Ĉu vi volas komenci %{action} por %{count} ero?","Ĉu vi volas komenci %{action} por %{count} eroj?"],"Do you want to restore your previous queue?":"Ĉu vi volas reÅargi vian antaÅan atendovicon?","Documentation":"Dokumentaro","Download":"ElÅuti","Download tracks":"ElÅuti kantojn","Drag and drop rows to reorder tracks in the playlist":"Treni kaj guti horizontaloj por reordigi kantojn en la ludlisto","Duration":"DaÅro","Easy to use":"Facila uzo","Edit instance info":"Redakti informoj de instanco","Edit...":"Redakti…","Email":"RetmesaÄo","Email address":"Retadreso","Email confirmed":"Konfirmis retadreso","End edition":"Fini redakto","Ensure your music files are properly tagged before uploading them.":"Zorgu ke viajn muzikdosierojn estas korekte etikedanta antaÅ alÅutis ilin.","Enter a radio name...":"Tajpu nomon de radio…","Enter an artist name...":"Tajpu nomon de artisto…","Enter an library domain name...":"Tajpu domajna nomo de instance…","Enter an playlist name...":"Tajpu ludlistan nomon…","Enter your email":"Tajpu vian retadreson","Enter your invitation code (case insensitive)":"Tajpu vian invitkodon (usklecoblindan)","Enter your search query...":"Tajpu vian serĉon…","Enter your username":"Tajpu vian uzantnomon","Enter your username or email":"Tajpu vian uzantnomon aÅ retadreson","Error":"Eraro","Error reporting":"Eraroraportado","Error while applying action":"Eraro kiam ruli akton","Error while asking for a password reset":"Eraro kiam demandi renuligadon de pasvorto","Error while changing your password":"Eraro kiam ÅanÄi vian pasvorton","Error while confirming your email":"Eraro kiam konfirmi vian retadreson","Error while creating invitation":"Eraro kiam krei inviton","Error while saving settings":"Eraro kiam konservi preferojn","Error while scanning library":"Eraro kiam skani muzikejon","Errored":"Eraris","Everyone":"Ĉiu","Everyone on this instance":"Ĉiu en ĉi-tiu instanco","Exclude":"Ekskluzivi","Expand":"Grandigi","Expiration date":"FortempiÄa dato","Expired":"FortempiÄis","Expired/used":"FortempiÄis aÅ uzantiÄis","External source. Supported backends":"Ekstera fonto. Kompateblaj servicoj","Favorites":"Stelumoj","Federate with a new instance":"Federi kun nova instanco","Federated tracks":"Federataj kantoj","Federation":"Federo","File mirroring":"Dosierospegulado","File name":"Nomo de la dosiero","File upload":"Dosiero alÅutado","Files":"Dosieroj","Filter album types":"Filtri albumtipoj","Filter name":"Filtri nomon","Finish import":"Fini importadon","Finished":"Finanto","First, choose where you want to import the music from":"Unue, elekti ejo el vi volas importi muzikon","Follow":"Sekvi","Follow request pending approval":"Peto da sekvado atendis konsenton","Follow status":"Sekva statuso","Followers":"Sekvantoj","Followers only":"Nur sekvantoj","Following":"Sekvata","from %{ album } by %{ artist }":"el %{album} je %{artist}","From album %{ album } by %{ artist }":"El %{album} albumo je %{artist}","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwhale estas senpaga kaj kun libera fontkodo projekto, ke viglas dankon al vonlontuloj. Vi povas helpi nin plibonigi tiun kun cimosignaladoj, trajtosugestoj kaj diskonigado de la projekto al viaj amikoj!","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale funkcias kun aliaj muzikludiloj ke apogas la Subsonic API.","Funkwhale is dead simple to use.":"Uzi Funkwhale facilegas.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale estas dizajna tiel ke estas facile aÅskulti muzikon vi Åatas, aÅ malkovri novajn artistojn.","Funkwhale is free and gives you control on your music.":"Funkwhale estas senpaga kaj lasis vin estri vian muzikon.","Funkwhale takes care of handling your music":"Funkwhale atentas manipuli vian muzikon","Get a new invitation":"Akiri novan inviton","Get me to the library":"Iru al la muzikejo","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Akiri bonegaj metadatumoj pri vian muzikon kun <a href=\"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a>","Go":"Komenci","Go to home page":"Iru hejme","Grab corresponding metadata":"Kolekti la koncernajn metadatumojn","Home":"Hejmo","Hours of music":"Muzikhoroj","However, accessing Funkwhale from those clients require a separate password you can set below.":"Tamen, atingi Funkwhale el tiuj aplikaĵo bezonas alian pasvorton ke vi povas difini malsupre.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Se la retadreso provizanta dum la antaÅa etapo korektas kaj bindas al uzantkonto, vi baldaÅ ricevus retmesaÄon kun renuligadaj instrukcioj.","Import":"Importi","Import #%{ id } launched":"Importado #%{id} komencis","Import %{ count } track":["Importi unu kanto","Importi %{count} kantoj"],"Import batch":"Importaro","Import Batch #%{ id }":"Importaro #%{id}","Import batches":"Importaroj","Import Batches":"Importaroj","Import date":"Importdato","Import detail page":"Importado detalpaÄo","Import music":"Importi muzikon","Import Music":"Importi muzikon","Import music from various platforms, such as YouTube or SoundCloud":"Importi muzikon el multe da servicoj, kiel YouTube aÅ SoundCloud","Import pending":"Importado atendas","Import requests":"Importpetoj","Import source":"Importfonto","Import status":"Importstato","Import this release":"Importi tiun albumon","Import this track":"Importi tiun kanton","Imported":"Importata","Imported URL":"Importanta URL","Imports":"Importadoj","In favorites":"En stelumoj","In library":"En muzikejo","Inactive":"Malaktiva","Input a MusicBrainz ID manually:":"Tajpu MusicBrainz ID mane:","Input the email address binded to your account":"Tajpu la retadreson bindanta al via konto","Insert from queue (%{ count } track)":["Internigi el atendovico (unu kanto)","Internigi el atendovico (%{count} kantoj)"],"Instance information":"Instanca informo","Instance radios":"Instancaj radioj","Instance settings":"Instancaj preferoj","Instance Timeline":"Instanca tempolino","Invitation code":"Invita kodo","Invitation code (optional)":"Invita kodo (nedeviga)","Invitations":"Invitoj","Issue tracker":"Cimspuradilo","Job ID":"Labora ID","Jobs":"Laboroj","Keep a track of your favorite songs":"Konservi postsignojn de viaj preferitaj kantoj","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Konservu vian PRIVATE_TOKEN sekreta, ĉar Äi atingeblas vian konton.","Last activity":"Lasta akto","Last fetched":"Lasta kolektado","Last modification":"Lasta redakto","Launch":"Lanĉi","Launch date":"Lanĉa dato","Launch scan":"Lanĉi skanon","Learn more about this instance":"Lerni pli pri tiu instanco","Leave empty for a random code":"Lasu malplena por hazarda kodo","Leave this field empty if you're requesting the whole discography.":"Lasu malplena se vi volas la tutan albumaron.","Libraries":"Muzikejoj","Library":"Muzikejo","Library files":"Muzikejaj dosieroj","Library name":"Nomo de muzikejo","Library size":"Muzikejgrando","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Ligiloj","Loading timeline...":"Tempolino ÅarÄas…","Log In":"Ensaluti","Log in to your Funkwhale account":"Ensaluti en via Funkwhale konto","Log Out":"Elsaluti","Logged in as %{ username }":"Elsuta je %{username}","Login":"Ensaluti","Logout":"Elsaluti","Looping disabled. Click to switch to single-track looping.":"Ripeto malaktivas. Alklaki por aktivi ripetado de la aktuala kanto.","Looping on a single track. Click to switch to whole queue looping.":"Ripetas unu kanton. Alklaki por aktivi ripetado de la tutan atendovico.","Looping on whole queue. Click to disable looping.":"Ripetas la tutan atendovicon. Alklaki por malaktivi ripeto.","Lyrics":"Teksto","Manage library":"Manipuli muzikejon","Manage playlists":"Manipuli ludlistojn","Manage users":"Manipuli uzantojn","Manage your playlists":"Manipuli viajn ludlistojn","Mark as closed":"Marki fermata","Mark as imported":"Marki importata","Metadata":"Metadatumoj","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Metadatumoj estas datumoj rilatanta al muziko vi volas importi. Äœi enhavas ĉiu informo pri artistoj, albumoj kaj kantoj. Por havi bonega muzikejo, estas rekomendata kolekti datumojn el la <a href=\"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a> projekto, ke similas al Vikipedio sed por muziko.","Music":"Muziko","Music request":"Muzikpeto","Mute":"Silentigi","My account":"Mia konto","My awesome playlist":"Mia mojosa ludlisto","My awesome radio":"Mia mojosa radio","N/A":"ND","Name":"Nomo","New password":"Nova pasvorto","New tracks will be appended here automatically.":"Novaj kantoj estos aldonataj ĉi-tie aÅtomate.","Next step":"BaldaÅa etapo","Next track":"BaldaÅa kanto","No":"Ne","No add-ons, no plugins : you only need a web library":"Nek aldonaĵoj, nek kromprogramoj: vi nur bezonas retmuzikejo","No lyrics available for this track.":"Nenio teksto disponeblas por tiu kanto.","Nobody except me":"Neniu krom mi","Not following":"Ne sekvas","Not imported":"Ne importintas","Not used":"Ne uzantata","Official website":"Oficiala retejo","Old password":"Malnova pasvorto","Once all your files are uploaded, simply click the following button to check the import status.":"Kiam viaj dosieroj estas tute elÅutinta, ĵus alklaki tiu butono por vidi la staton de la importo.","Open":"Malferma","Options":"Preferoj","Or":"AÅ","Ordering":"Ordo","Ordering direction":"Orda direkto","Owner":"Proprietulo","Page Not Found":"Ne eblas trovi tiun paÄon","Page not found!":"Maltrovitas paÄon!","Password":"Pasvorto","Password updated":"Pasvorto aktuliginta","Password updated successfully":"Pasvorto sukcese aktualiginta","Pause track":"PaÅzi kanton","Pending":"Atendas","Pending approval":"Atendas aprobon","Pending follow requests":"Atendantaj petoj da sekvado","Pending import requests":"Atendantaj importpetoj","Pending requests":"Atendantaj petoj","Permissions":"Rajtoj","Play":"Ludi","Play all":"Ludi ĉiu","Play all albums":"Ludi ĉiuj albumoj","Play immediatly":"Ludi tuj","Play next":"Ludi baldaÅe","Play now":"Ludi tuj","Play track":"Ludi kanton","Playlist":"Ludlisto","Playlist containing %{ count } track, by %{ username }":["Ludisto enhavanta unu kanto, je %{username}","Ludisto enhavanta %{count} kantoj, je %{username}"],"Playlist created":"Ludlisto kreiintas","Playlist editor":"Ludlista redaktilo","Playlist name":"Nomo de la ludlisto","Playlist updated":"Ludlisto aktualigintas"},"es":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", de %{ artist }","(%{ index } of %{ length })":"(%{ index } de %{ length })","(empty)":"(vacÃo)","%{ count } on %{ total } selected":["%{ count } de %{ total } elemento seleccionado","%{ count } de %{ total } elementos seleccionados"],"%{ count } track":["%{ count } canción","%{ count } canciones"],"%{ count } track in %{ albumsCount } albums":["%{ count } canción en %{ albumsCount } álbumes","%{ count } canciones en %{ albumsCount } álbumes"],"%{ count } track matching combined filters":["%{ count } canción coincidiendo con filtros combinados","%{ count } canciones coincidiendo con filtros combinados"],"%{ count} track":["%{ count} canción","%{ count } canciones"],"%{ hours } h %{ minutes } min":"%{ hours } h %{ minutes } min","%{ minutes } min":"%{ minutes } min","%{ user } favorited a track":"%{ user } añadió una canción a sus favoritos","%{ user } listened to a track":"%{ user } escuchó una canción","%{ username }'s profile":"Perfil de %{ username }","1 album":["1 álbum","%{ count } álbumes"],"1 favorite":["1 favorito","%{ count } favoritos"],"1 track":["1 canción","%{ count } canciones"],"About %{ instance }":"Sobre %{ instance }","About Funkwhale":"Acerca de Funkwhale","About this instance":"Acerca de esta instancia","Accepted":"Aceptado","Access disabled":"Acceso deshabilitado","Access your music from a clean interface that focus on what really matters":"Accede a tu música con una interfaz limpia y concéntrate en lo que realmente importa","Account active":"Cuenta activa","Account settings":"Configuración de cuenta","Account Settings":"Configuración de Cuenta","Account status":"Estado de cuenta","Account's email":"Correo electrónico de la cuenta","Action %{ action } was launched successfully on %{ count } element":["Acción %{ action } fue iniciado exitosamente en %{ count } elemento","Acción %{ action } fue iniciado exitosamente en %{ count } elementos"],"Actions":"Acciones","Active":"Activo","Activity":"Actividad","Actor":"Actor","Add a new library":"Añadir una nueva biblioteca","Add filter":"Añadir filtro","Add filters to customize your radio":"Añade filtros para personalizar tu radio","Add to current queue":"Añadir a cola de reproducción actual","Add to favorites":"Añadir a favoritos","Add to playlist...":"Añadir a lista de reproducción...","Add to queue":"Añadir a la cola de reproducción","Add to this playlist":"Añadir a esta lista de reproducción","Add track":"Añadir canción","Admin":"Admin","Administration":"Administración","Album":"Ãlbum","Album %{ title } (%{ count } track) by %{ artist }":["Ãlbum %{ title } (%{ count } track) de %{ artist }","Ãlbum %{ title } (%{ count } tracks) de %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Ãlbum que contiene %{ count } canción, de %{ artist }","Ãlbum que contiene %{ count } canciones, de %{ artist }"],"Album page":"Página del álbum","Albums":"Ãlbumes","Albums by this artist":"Ãlbumes de este artista","All":"Todo","An error occured while saving your changes":"Ha ocurrido un error al guardar los cambios","An unknown error happend, this can mean the server is down or cannot be reached":"Ha ocurrido un error desconocido, esto puede significar que el servidor está fuera de servicio o no se puede conectar","Any":"Cualquiera","API":"API","Approve":"Aprobar","Approve access?":"¿Aprobar el acceso?","Approved":"Aprobado","Artist":"Artista","Artist name":"Nombre del artista","Artist page":"Página del artista","Artist, album, track...":"Artista, álbum, canción...","Artists":"Artistas","Ascending":"Ascendente","Ask for a password reset":"Restablecer contraseña","Auto importing":"Autoimportación","Available playlists":"Listas de reproducción disponibles","Avatar":"Avatar","Back to login":"Volver a la página de conección","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Ten cuidado al aceptar solicitudes de seguimiento, porque significa que tu seguidorx podrá acceder a tu biblioteca completa.","Bitrate":"Bitrate","Browse":"Explorar","Browse library":"Explorar biblioteca","Browsing artists":"Explorando artistas","Browsing federated tracks":"Explorando canciones federadas","Browsing followers":"Explorando seguidorxs","Browsing libraries":"Explorando bibliotecas","Browsing playlists":"Explorando listas de reproducción","Browsing radios":"Explorando radios","Builder":"Editor","By %{ artist }":"De %{ artist }","By confirming, %{ username } will be denied access to your library.":"Si confirmas, %{ username } no podrá acceder a tu biblioteca.","By confirming, %{ username } will be granted access to your library.":"Si confirmas, %{ username } podrá acceder a tu biblioteca.","Cancel":"Cancelar","Cannot change your password":"No se puede cambiar la contraseña","Change language":"Cambiar idioma","Change my password":"Cambiar mi contraseña","Change password":"Cambiar contraseña","Change your password":"Cambiar tu contraseña","Change your password?":"¿Cambiar tu contraseña?","Changes synced with server":"Cambios sincronizados con el servidor","Changing your password will also change your Subsonic API password if you have requested one.":"Cambiar tu contraseña también cambiará tu contraseña Subsonic API si pediste una.","Changing your password will have the following consequences":"Cambiar tu contraseña tendrá las siguientes consecuencias","Choose your instance":"Escoge tu instancia","Clean library":"Una biblioteca impecable","Clear playlist":"Vaciar lista de reproducción","Clear your queue":"Vaciar cola de reproducción","CLI":"CLI","Click once, listen for hours using built-in radios":"Pulsa una sola vez y escucha durante horas, gracias a las radios integradas","Code":"Código","Collapse":"Reducir","Config":"Configurar","Confirm":"Confirmar","Confirm your email":"Confirma tu correo electrónico","Confirmation code":"Código de confirmación","Copy tracks from current queue to playlist":"Copiar canciones de cola de reproducción actual a lista de reproducción","Covers, lyrics, our goal is to have them all ;)":"Covers, letras, queremos conseguirlo todo ;)","Create a funkwhale account":"Crear una cuenta de funkwhale","Create a new playlist":"Crear una nueva lista de reproducción","Create an account":"Crear una cuenta","Create import":"Crear importación","Create my account":"Crear mi cuenta","Create playlist":"Crear una lista de reproducción","Create your own radio":"Crear tu propia radio","Creation date":"Fecha de creación","Current avatar":"Avatar actual","Current track":"Canción actual","Delete":"Borrar","Delete playlist":"Borrar lista de reproducción","Delete radio":"Borrar radio","Deny":"Rechazar","Deny access?":"¿Rechazar el acceso?","Descending":"Descendente","Detail":"Detalle","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Determina si la cuenta de usuario es activa o no. Los usuarios inactivos no pueden conectarse ni usar el servicio.","Disable access":"Desactivar el acceso","Disable Subsonic access":"Desactivar el acceso Subsonic","Disable Subsonic API access?":"¿Desactivar el acceso de API Subsonic?","Discover how to use Funkwhale from other apps":"Descubrir cómo utilizar Funkwhale desde otras aplicaciones","Display publicly":"Mostrar públicamente","Do you want to clear the playlist \"%{ playlist }\"?":"¿Quieres vaciar la lista de reproducción \"%{ playlist }\"?","Do you want to confirm this action?":"¿Quieres confirmar esta acción?","Do you want to delete the playlist \"%{ playlist }\"?":"¿Quieres borrar la lista de reproducción \"%{ playlist }\"?","Do you want to delete the radio \"%{ radio }\"?":"¿Quieres borrar la radio \"%{ radio }\"?","Do you want to launch %{ action } on %{ count } element?":["¿Quieres realizar la acción %{ action } en %{ count } elemento?","¿Quieres realizar la acción %{ action } en %{ count } elementos?"],"Do you want to restore your previous queue?":"¿Quieres restaurar tu cola de reproducción anterior?","Documentation":"Documentación","Download":"Descargar","Download tracks":"Descargar canciones","Drag and drop rows to reorder tracks in the playlist":"Arrastra y suelta las filas para reordenar canciones en la lista de reproducción","Duration":"Duración","Easy to use":"Fácil de usar","Edit instance info":"Editar la información de esta instancia","Edit...":"Editar...","Email":"Correo electrónico","Email address":"Dirección de correo electrónico","Email confirmed":"Correo electrónico confirmado","End edition":"Terminar la edición","Ensure your music files are properly tagged before uploading them.":"Asegúrate de que tus archivos de música estén bien etiquetados antes de subirlos.","Enter a radio name...":"Introducir un nombre de radio...","Enter an artist name...":"Introducir un nombre de artista...","Enter an library domain name...":"Introducir un nombre de dominio de biblioteca...","Enter an playlist name...":"Introducir un nombre de lista de reproducción...","Enter your email":"Introducir tu correo electrónico","Enter your invitation code (case insensitive)":"Introducir tu código de invitación (no distingue mayúsculas de minúsculas)","Enter your search query...":"Introducir tu búsqueda...","Enter your username":"Introducir tu nombre de usuario","Enter your username or email":"Introducir tu nombre de usuario o correo electrónico","Error":"Error","Error reporting":"Informes de error","Error while applying action":"Error al aplicar la acción","Error while asking for a password reset":"Error al pedir restablecimiento de contraseña","Error while changing your password":"Error al cambiar tu contraseña","Error while confirming your email":"Error al confirmar tu correo electrónico","Error while creating invitation":"Error al crear la invitación","Error while saving settings":"Error al guardar los cambios","Error while scanning library":"Error al escanear la biblioteca","Errored":"En error","Everyone":"Todo el mundo","Everyone on this instance":"Todo el mundo en esta instancia","Exclude":"Excluir","Expand":"Expandir","Expiration date":"Fecha de caducidad","Expired":"Caducada","Expired/used":"Caducada/usada","External source. Supported backends":"Fuente externa. Back-ends soportados","Favorites":"Favoritos","Federate with a new instance":"Federar con una nueva instancia","Federated tracks":"Canciones federadas","Federation":"Federación","File mirroring":"Replicación de archivos","File name":"Nombre del archivo","File upload":"Subida de archivo","Files":"Archivos","Filter album types":"Filtrar tipos de álbum","Filter name":"Nombre del filtro","Finish import":"Terminar importación","Finished":"Terminado","First, choose where you want to import the music from":"Para empezar, elige la fuente de importación de la música","Follow":"Seguir","Follow request pending approval":"Solicitud de seguimiento pendiente de aprobación","Follow status":"Estado de seguimiento","Followers":"Seguidores","Followers only":"Solo seguidorxs","Following":"Siguiendo","from %{ album } by %{ artist }":"del álbum %{ album } de %{ artist }","From album %{ album } by %{ artist }":"Del álbum %{ album } de %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwhale es un proyecto gratuito de código fuente libre, gestionado por voluntarixs. Puedes ayudarnos a mejorar el servicio informando de errores, sugiriendo mejoras y compartiendo el proyecto con tus amigxs!","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale es compatible con otros reproductores de música que soportan la API Subsonic.","Funkwhale is dead simple to use.":"Funkwhale es facilÃsimo de usar.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale está diseñado para que sea fácil escuchar la música que te gusta, o descubrir nuevos artistas.","Funkwhale is free and gives you control on your music.":"Funkwhale es gratis y te da el control de tu música.","Funkwhale takes care of handling your music":"Funkwhale te ayuda a gestionar tu música","Get a new invitation":"Obtener una nueva invitación","Get me to the library":"Llévame a la biblioteca","Go":"Ir","Go to home page":"Ir a la página principal","Grab corresponding metadata":"Captar metadatos correspondientes","Help us translate Funkwhale":"Ayúdanos a traducir Funkwhale","Home":"Inicio","Hours of music":"Horas de música","However, accessing Funkwhale from those clients require a separate password you can set below.":"Sin embargo, acceder a Funkwhale desde estos clientes requiere una contraseña distinta que podrás configurar a continuación.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Si la dirección de correo electrónico proporcionada en el paso anterior es válida y asociada a una cuenta de usuarix, deberÃas recibir un correo electrónico con las instrucciones de restablecimiento dentro de unos minutos.","Import":"Importación","Import #%{ id } launched":"Importación #%{ id } iniciada","Import %{ count } track":["Importar %{ count } canción","Importar %{ count } canciones"],"Import batch":"Lote de importación","Import Batch #%{ id }":"Lote de importación #%{ id }","Import batches":"Lotes de importación","Import Batches":"Lotes de importación","Import date":"Fecha de importación","Import detail page":"Página de detalles de importación","Import music":"Importar música","Import Music":"Importar música","Import music from various platforms, such as YouTube or SoundCloud":"Importa música desde otras plataformas, como YouTube o SoundCloud","Import pending":"Importación pendiente","Import requests":"Solicitudes de importación","Import source":"Fuente de la importación","Import status":"Estado de la importación","Import this release":"Importar este álbum","Import this track":"Importar esta canción","Imported":"Importado","Imported URL":"URL importada","Imports":"Importaciones","In favorites":"En favoritos","In library":"En biblioteca","Inactive":"Inactivo","Input a MusicBrainz ID manually:":"Introducir ID MusicBrainz de forma manual:","Input the email address binded to your account":"Introducir la dirección de correo electrónico asociada a tu cuenta","Instance information":"Información de esta instancia","Instance radios":"Radios de la instancia","Instance settings":"Ajustes de la instancia","Instance Timeline":"Linea de tiempo de la instancia","Invitation code":"Código de invitación","Invitation code (optional)":"Código de invitación (opcional)","Invitations":"Invitaciones","Issue tracker":"Sistema de seguimiento de incidentes","Job ID":"ID de la tarea","Jobs":"Tareas","Keep a track of your favorite songs":"Apunta tus canciones favoritas","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Mantén tu PRIVATE_TOKEN en secreto ya que permite el acceso a tu cuenta.","Last activity":"Última actividad","Last fetched":"Última recuperación","Last modification":"Última modificación","Launch":"Iniciar","Launch date":"Fecha de inicio","Launch scan":"Iniciar escaneado","Learn more about this instance":"Aprender más acerca de esta instancia","Leave empty for a random code":"Dejar en blanco para un código aleatorio","Leave this field empty if you're requesting the whole discography.":"Deja este campo en blanco si estás pidiendo la discografÃa completa.","Libraries":"Bibliotecas","Library":"Biblioteca","Library files":"Archivos de biblioteca","Library name":"Nombre de biblioteca","Library size":"Tamaño de biblioteca","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Enlaces","Loading timeline...":"Cargando linea de tiempo…","Loading your favorites...":"Cargando tus favoritos…","Log In":"Iniciar sesión","Log in to your Funkwhale account":"Iniciar sesión con tu cuenta de Funkwhale","Log Out":"Cerrar sesión","Logged in as %{ username }":"Sesión iniciada como %{ username }","Login":"Iniciar sesión","Logout":"Cerrar sesión","Looping disabled. Click to switch to single-track looping.":"Bucle deshabilitado. Pulsa para cambiar a reproducción en bucle de la canción actual.","Looping on a single track. Click to switch to whole queue looping.":"Bucle de la canción actual. Pulsa para cambiar a la reproducción en bucle de la cola de reproducción entera.","Looping on whole queue. Click to disable looping.":"Bucle de la cola de reproducción entera. Pulsa para desactivar la reproducción en bucle.","Lyrics":"Letras","Manage library":"Gestionar biblioteca","Manage playlists":"Gestionar listas de reproducción","Manage users":"Gestionar usuarixs","Manage your playlists":"Gestionar tus listas de reproducción","Mark as closed":"Marcar como cerrado","Mark as imported":"Marcar como importado","Metadata":"Metadatos","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Los metadatos son los datos relacionados a la música que quieres importar. Incluyen toda la información de los artistas, álbumes y canciones. Para conseguir una biblioteca de calidad, es recomendado usar los metadatos del proyecto \n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n , una base de datos parecida a Wikipedia, pero para la música.","Music":"Música","Music request":"Solicitud de música","Mute":"Silencio","My account":"Mi cuenta","My awesome playlist":"Mi lista de reproducción molona","My awesome radio":"Mi radio molona","N/A":"N/A","Name":"Nombre","New password":"Nueva contraseña","New tracks will be appended here automatically.":"Las nuevas canciones se agregarán aquà de forma automática.","Next step":"Próximo paso","Next track":"Próxima canción","No":"No","No add-ons, no plugins : you only need a web library":"Sin complementos, sin extensiones : basta con una biblioteca en la web","No lyrics available for this track.":"No hay letra disponible para esta canción.","Nobody except me":"Solo yo","Not following":"No siguiendo","Not imported":"No importado","Not used":"No usado","Official website":"Página oficial","Old password":"Antigua contraseña","Once all your files are uploaded, simply click the following button to check the import status.":"Una vez que todos tus archivos estén subidos, pulsa el siguiente botón para comprobar el estado de la importación.","Open":"Abierta","Options":"Opciones","Or":"O","Ordering":"Orden","Ordering direction":"Dirección del orden","Owner":"Propietario","Page Not Found":"Página no encontrada","Page not found!":"¡Página no encontrada!","Password":"Contraseña","Password updated":"Contraseña actualizada","Password updated successfully":"Contraseña actualizada con éxito","Pause track":"Pausar la canción","Pending":"En espera","Pending approval":"Aprobación pendiente","Pending follow requests":"Solicitudes de seguimiento pendientes","Pending import requests":"Solicitudes de importación pendientes","Pending requests":"Solicitudes pendientes","Permissions":"Permisos","Play":"Reproducir","Play all":"Reproducir todo","Play all albums":"Reproducir todos los álbumes","Play immediatly":"Reproducir inmediatamente","Play next":"Reproducir siguiente","Play now":"Reproducir ahora","Play track":"Reproducir canción","Playlist":"Lista de reproducción","Playlist containing %{ count } track, by %{ username }":["Lista de reproducción con %{ count } canción, de %{ username }","Lista de reproducción con %{ count } canciones, de %{ username }"],"Playlist created":"Lista de reproducción creada","Playlist editor":"Editor de listas de reproducción","Playlist name":"Nombre de lista de reproducción","Playlist updated":"Lista de reproducción actualizada","Playlist visibility":"Visibilidad de lista de reproducción","Playlists":"Listas de reproducción","Playlists? We got them":"¿Listas de reproducción? Las tenemos","Please double-check your password is correct":"Por favor, comprueba que tu contraseña es correcta","Please double-check your username/password couple is correct":"Por favor, comprueba que tu nombre de usuarix y contraseña son correctos","PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px.":"PNG, GIF o JPG. Máximo de 2MB. La imagen será reducida a 400x400px.","Previous step":"Paso anterior","Previous track":"Canción anterior","Proceed to login":"Proceder a inicio de sesión","Published date":"Fecha de publicación","Query template":"Plantilla de consulta","Queue":"Cola de reproducción","Queue shuffled!":"¡Cola de reproducción mezclada!","Radio":"Radio","Radio Builder":"Editor de radio","Radio created":"Radio creada","Radio name":"Nombre de la radio","Radio updated":"Radio actualizada","Radios":"Radios","Recent activity on this instance":"Actividad reciente en esta instancia","Recently added":"Añadidos recientemente","Recently favorited":"Añadidos a favoritos recientemente","Recently listened":"Escuchados recientemente","Refresh":"Recargar","Refused":"Rechazado","Registered since %{ date }":"Inscritx desde %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"La inscripción a esta instancia está cerrada, necesitarás un código de invitación para inscribirte.","regular user":"Usuarix estándar","Remove":"Quitar","Remove avatar":"Quitar avatar","Remove from favorites":"Quitar de favoritos","Request a new password":"Solicitar una nueva contraseña","Request a new Subsonic API password?":"¿Solicitar una nueva contraseña de la API Subsonic?","Request a password":"Solicitar una contraseña","Request music":"Solicitar música","Request some music":"Solicitar música","Request submitted!":"¡Solicitud enviada!","Rerun errored jobs":"Reiniciar las tareas con errores","Rerun job":"Reiniciar tarea","Reset your password":"Restablecer tu contraseña","Result %{ current }/%{ total }":"Resultado %{ current }/%{ total }","Results per page":"Resultados por página","Save":"Guardar","Scan triggered!":"Escaneo iniciado!","Search":"Buscar","Search an entity you want to import:":"Buscar una entidad que te gustarÃa importar:","Search by artist, username, comment...":"Buscar por artista, nombre de usuarix, comentario…","Search by source...":"Buscar por fuente…","Search by submitter, source...":"Buscar por remitente, fuente…","Search by title, artist, domain...":"Buscar por tÃtulo, artista, dominio…","Search by username, domain...":"Buscar por nombre de usuarix, dominio…","Search by username, email, code...":"Buscar por nombre de usuarix, dirección de correo electrónico, código…","Search by username, email, name...":"Buscar por nombre de usuarix, dirrección de correo electrónico, nombre…","Search for artists, albums, tracks...":"Buscar artistas, álbumes, canciones…","Search for some music":"Buscar música","Search on lyrics.wikia.com":"Buscar en lyrics.wikia.com","Search on Wikipedia":"Buscar en Wikipedia","Search query":"Búsqueda","Sections":"Secciones","Select a filter":"Seleccionar un filtro","Select all %{ total } elements":["Seleccionar %{ total } elemento","Seleccionar los %{ total } elementos"],"Select files to upload...":"Seleccionar archivos para subir…","Select only current page":"Seleccionar solo la página actual","Select relevant sources or files for import":"Seleccionar las fuentes o archivos para importar","Send a follow request":"Enviar una solicitud de seguimiento","Settings":"Ajustes","Settings updated":"Ajustes actualizados","Settings updated successfully.":"Ajustes actualizados con éxito.","Settings...":"Ajustes…","Share link":"Compartir enlace","Show 1 more album":["Mostrar 1 álbum adicional","Mostrar %{ count } álbumes adicionales"],"Show 1 more track":["Mostrar 1 canción adicional","Mostrar %{ count } canciones adicionales"],"Show/hide password":"Mostrar/ocultar contraseña","Showing results %{ start }-%{ end } on %{ total }":"Mostrando resultados %{ start }-%{ end } de %{ total }","Shuffle your queue":"Mezclar tu cola de reproducción","Sign Up":"Inscripción","Sign-up":"Inscripción","Simply copy paste the snippet below into a terminal to launch the download.":"Copia y pega el texto de abajo en un terminal para iniciar la descarga.","Size":"Tamaño","Skipped":"Omitido","Something's missing in the library? Let us know what you would like to listen!":"¿Falta algo en la biblioteca? Dinos lo que te gustarÃa escuchar!","Sorry, we did not found any album matching your query":"Lo sentimos, no hemos encontrado ningún álbum que corresponda con tu búsqueda","Sorry, we did not found any artist matching your query":"Lo sentimos, no hemos encontrado ningún artista que corresponda con tu búsqueda","Source":"Fuente","Source code":"Código fuente","Source code (%{version})":"Código fuente (%{version})","Staff member":"Miembro del equipo","Start":"Iniciar","Start Upload":"Iniciar subida","Statistics":"EstadÃsticas","Status":"Estado","Stop":"Parar","Stop radio":"Parar radio","Stop Upload":"Parar subida","Submit":"Enviar","Submit another request":"Enviar otra solicitud","Submitted by":"Presentado por","Subsonic":"Subsonic","Subsonic API password":"Contraseña de la API Subsonic","Success":"Éxito","Suggested choices":"Sugerencias","Syncing changes to server...":"Sincronizando los cambios con el servidor…","That's simple: we loved Grooveshark and we want to build something even better.":"Asà de simple: nos encantó Grooveshark y quisimos hacer algo incluso mejor.","The Beatles, Mickael Jackson…":"Los Beatles, Michael Jackson…","The funkwhale logo was kindly designed and provided by Francis Gading.":"El logotipo de funkwhale fue generosamente diseñado y suplido por Francis Gading.","The plaform is free and open-source, you can install it and modify it without worries":"La plataforma es gratuita y de código fuente libre, puedes instalarla y modificarla sin restricciones","The Subsonic API is not available on this Funkwhale instance.":"La API Subsonic no está disponible en esta instancia de Funkwhale.","The White Album, Thriller…":"El Ãlbum Blanco, Thriller…","There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.":"Actualmente no existe una forma de descargar múltiples canciones directamente de funkwhale en un archivo ZIP. Pero, puedes usar herramientas de linea de comando como cURL para descargar una lista de canciones fácilmente.","This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.":"Esta importación se asociará con la solicitud de música de abajo. Después de terminar la importación, la solicitud será marcada como completada.","This indicate if the remote library granted you access":"Esto indica si la biblioteca te ha concedido el acceso","This is you!":"¡Eres tú!","This may affect a lot of elements, please double check this is really what you want.":"Esto puede afectar a muchos elementos, por favor comprueba si esto es realmente lo que quieres.","This track is not imported and cannot be played":"Esta canción no está importada y no puede ser reproducida","This will completely delete this playlist and cannot be undone.":"Esto borrará por completo esta lista de reproducción y no se podrá deshacer.","This will completely delete this radio and cannot be undone.":"Esto borrará por completo esta radio y no se podrá deshacer.","This will completely disable access to the Subsonic API using from account.":"Esto desactivará por completo el acceso a la API Subsonic desde esta cuenta.","This will erase your local data and disconnect you, do you want to continue?":"Esto borrará tus datos locales y te desconectará, ¿quieres continuar?","This will log you out from existing devices that use the current password.":"Esto cerrará tus sesiones en todos los dispositivos que usan esa contraseña.","This will remove all tracks from this playlist and cannot be undone.":"Esto borrará todas las canciones de esta lista de reproducción y no se podrá deshacer.","Title":"TÃtulo","Track":"Canción","Track information":"Información de la canción","Track matching filter":"Canción correspondiente al filtro","tracks":"Canciones","Tracks":"Canciones","Tracks available in this library":"Canciones disponibles en esta biblioteca","Tracks by this artist":"Canciones de este artista","Tracks favorited":"Canciones en favoritos","tracks listened":"Canciones escuchadas","Trigger scan":"Iniciar escaneo","Type":"Tipo","Unfortunately, owners of this instance did not yet take the time to complete this page.":"Desafortunadamente, lxs propietarixs de esta instancia aún no han tomado el tiempo para completar esta página.","Unknown":"Desconocido","Unlimited music":"Música ilimitada","Unmute":"Activar sonido","Update avatar":"Actualizar avatar","Update playlist":"Actualizar lista de reproducción","Update settings":"Actualizar ajustes","Update your password":"Actualizar tu contraseña","Upload":"Subir","Upload a new avatar":"Subir un nuevo avatar","Uploaded files or external source":"Archivos subidos o fuente externa","Uploading...":"Subiendo…","Use another instance":"Usar otra instancia","Use this comment box to add details to your request if needed":"Usa este campo de comentarios para añadir detalles a tu solicitud si hace falta","Use this flag to enable/disable federation with this library":"Usa este ajuste para activar/desactivar la federación con esta biblioteca","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"Usa este formulario para solicitar un restablecimiento de contraseña. Te mandaremos un correo electrónico a la dirección proporcionada con instrucciones para restablecer tu contraseña.","Use this form to scan an instance and setup federation.":"Usa esta formulario para escanear una instancia y establecer la federación.","Used":"Usado","User":"Usuarix","User activity":"Actividad de usuarix","User radios":"Radios de usuarixs","Username":"Nombre de usuarix","Username or email":"Nombre de usuarix o correo electónico","users":"usuarix","Users":"Usuarix","View on MusicBrainz":"Ver en MusicBrainz","We cannot add the track to a playlist":"No podemos añadir la canción a una lista de reproducción","We cannot create the playlist":"No podemos crear la lista de reproducción","We cannot create your account":"No podemos crear tu cuenta","We cannot log you in":"No se puede iniciar la sesión","We cannot save your avatar":"No podemos guardar tu avatar","We cannot save your settings":"No podemos guardar tus ajustes","We do not track you or bother you with ads":"No te rastreamos y no te molestamos con anuncios","We recommend using Picard for that purpose.":"Recomendamos usar Picard para eso.","We think listening to music should be simple.":"Pensamos que debe ser simple escuchar música.","We're sorry, the page you asked for does not exist:":"Lo sentimos, la página solicitada no existe:","We've received your request, you'll get some groove soon ;)":"Hemos recibido tu solicitud, pronto tendrás algo sabroso ;)","Welcome":"Bienvenidx","Welcome on Funkwhale":"Bienvenidx a Funkwhale","What is metadata?":"¿Qué son los metadatos?","When enabled, auto importing will automatically import new tracks published in this library":"Cuando activas este ajuste, las nuevas canciones publicadas en esta biblioteca se importarán de forma automática","Why funkwhale?":"¿Por qué funkwhale?","Yes":"SÃ","Yes, log me out!":"SÃ, cierra mi sesión!","You are currently logged in as %{ username }":"Tienes iniciada actualmente sesión como %{ username }","You can also skip this step and enter metadata manually.":"También puedes omitir este paso e introducir los metadatos manualmente.","You can invite friends and family to your instance so they can enjoy your music":"Puedes invitar a tus amigxs y tu familia a tu instancia para que ellxs puedan disfrutar de tu música","You can use this interface to build your own custom radio, which will play tracks according to your criteria.":"Puedes usar esta interfaz para hacer tu propia radio personalizada, que reproducirá canciones según tus criterios.","You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.":"Puedes usarlos para disfrutar de tus listas de reproducción y tu música en modo sin conexión, en tu smartphone o tu tablet, por ejemplo.","You have a radio playing":"Estás escuchando una radio","You need to select an instance in order to continue":"Tienes que seleccionar una instancia para poder continuar","You will be logged out from this session and have to log in with the new one":"Se cerrará esta sesión y tendrás que reiniciar sesión con la nueva contraseña","You will have to update your password on your clients that use this password.":"Tendrás que actualizar tu contraseña en los clientes que usan esta contraseña.","You will import:":"Vas a importar:","Your email address was confirmed, you can now use the service without limitations.":"Tu dirección de correo electrónico ha sido confirmada, ahora puedes usar el servicio sin limitaciones.","Your Favorites":"Tus favoritos","Your music, your way":"Tu música, a tu manera","Your password has been updated successfully.":"Tu contraseña ha sido cambiada con éxito.","Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password":"Tu contraseña Subsonic se cambiará a una nueva contraseña aleatoria, cerrando tus sesiones en los dispositivos que usaban la antigua contraseña Subsonic","%{ count } track was added to your queue":["%{ count } canción ha sido añadida a tu cola de reproducción","%{ count } canciones han sido añadidas a tu cola de reproducción"]},"fr_FR":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", de %{ artist }","(%{ index } of %{ length })":"(%{ index } sur %{ length })","(empty)":"(vide)","%{ count } on %{ total } selected":["%{ count } sur %{ total } élément sélectionné","%{ count } sur %{ total } éléments sélectionnés"],"%{ count } track":["%{ count } piste","%{ count } pistes"],"%{ count } track in %{ albumsCount } albums":["%{ count } piste dans %{ albumsCount } albums","%{ count } pistes dans %{ albumsCount } albums"],"%{ count } track matching combined filters":["%{ count } piste correspondant aux filtres sélectionnés","%{ count } pistes correspondant aux filtres sélectionnés"],"%{ count} track":["%{ count} piste","%{ count } pistes"],"%{ hours } h %{ minutes } min":"%{hours} h %{minutes} min","%{ minutes } min":"%{minutes} min","%{ user } favorited a track":"%{ user } a ajouté une piste a ses favoris","%{ user } listened to a track":"%{ user } a écouté une piste","%{ username }'s profile":"Profil de %{ username }","1 album":["1 album","%{ count } albums"],"1 favorite":["1 favoris","%{ count } favoris"],"1 track":["1 piste","%{ count } pistes"],"About %{ instance }":"À propos de %{instance}","About Funkwhale":"À propos de Funkwhale","About this instance":"A propos de cette instance","Accepted":"Accepté","Access disabled":"Accès désactivé","Access your music from a clean interface that focus on what really matters":"Accédez à votre musique depuis une interface épurée, adaptée à ce qui compte vraiment","Account active":"Compte actif","Account settings":"Paramètres du compte","Account Settings":"Paramètres du compte","Account status":"Statut du compte","Account's email":"Email du compte","Action %{ action } was launched successfully on %{ count } element":["L'action %{ action } a été lancée avec succès sur %{ count } élément","L'action %{ action } a été lancée avec succès sur %{ count } éléments"],"Actions":"Actions","Active":"Actif","Activity":"Activité","Actor":"Acteur","Add a new library":"Ajouter une nouvelle bibliothèque","Add filter":"Ajouter des filtres","Add filters to customize your radio":"Ajouter des filtres pour personnaliser votre radio","Add to current queue":"Ajouter à la queue","Add to favorites":"Ajouter aux favoris","Add to playlist...":"Ajouter à une playlist...","Add to queue":"Ajouter à la queue","Add to this playlist":"Ajouter à cette playlist","Add track":"Ajouter une piste","Admin":"Admin","Administration":"Administration","Album":"Album","Album %{ title } (%{ count } track) by %{ artist }":["Album %{ title } (%{ count } piste) par %{ artist }","Album %{ title } (%{ count } pistes) by %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Album incluant %{ count } piste, de %{ artist }","Album incluant %{ count } pistes, de %{ artist }"],"Album page":"Page de l'album","Albums":"Albums","Albums by this artist":"Albums de cet·te artiste","All":"Tout","An error occured while saving your changes":"Une erreur s'est produite pendant l'enregistrement de vos modifications","An unknown error happend, this can mean the server is down or cannot be reached":"Une erreur inconnue s'est produite, cela pourrait signifier que le serveur ne peut pas être accedé","Any":"Tous","API":"API","Approve":"Approuver","Approve access?":"Approuver l'accès ?","Approved":"Approuvé","Are you sure you want to log out?":"Êtes-vous sur de vouloir vous déconnecter ?","Artist":"Artiste","Artist name":"Nom de l'artiste","Artist page":"Page de l'artiste","Artist, album, track...":"Artiste, album, piste...","Artists":"Artistes","Ascending":"Ascendant","Ask for a password reset":"Demander à réinitialiser votre mot de passe","Auto importing":"Import automatique","Available playlists":"Playlists disponibles","Avatar":"Avatar","Back to login":"Retour à la page de connexion","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Soyez prudent·es en acceptant les demandes d'abonnements, car vos abonné·es pourront accéder à l'intégralité de votre bibliothèque.","Bitrate":"Bitrate","Browse":"Parcourir","Browse library":"Parcourir la bibliothèque","Browsing artists":"Parcourir les artistes","Browsing federated tracks":"Parcourir les pistes fédérées","Browsing followers":"Parcourir les abonnés","Browsing libraries":"Parcourir les bibliothèques","Browsing playlists":"Parcourir les playlists","Browsing radios":"Parcourir les radios","Builder":"Éditeur","By %{ artist }":"De %{ artist }","By confirming, %{ username } will be denied access to your library.":"Si vous confirmez, %{ username } se verra refuser l'accès à votre bibliothèque.","By confirming, %{ username } will be granted access to your library.":"Si vous confirmez, %{ username } se verra accorder l'accès à votre bitliothèque.","Cancel":"Annuler","Candidates":"Pistes candidates","Cannot change your password":"Mot de passe ne peut pas être changé","Change language":"Changer de langue","Change my password":"Changer mon mot de passe","Change password":"Changer le mot de passe","Change your password":"Changer votre mot de passe","Change your password?":"Changer le mot de passe ?","Changes synced with server":"Changements synchronisés avec le serveur","Changing your password will also change your Subsonic API password if you have requested one.":"La mise à jour de votre mot de passe impactera également le mot de passe de l'API Subsonic si vous en avez demandé un.","Changing your password will have the following consequences":"Modifier votre mot de passe aura les conséquences suivantes","Choose your instance":"Choisissez votre instance","Clean library":"Une bibliothèque musicale de qualité","Clear":"Effacer","Clear playlist":"Vider la playlist","Clear your queue":"Vider la queue","CLI":"CLI","Click once, listen for hours using built-in radios":"Écoutez de la musique pendant des heures, en un clic, grâce aux radios intégrées.","Closed":"Fermée","Code":"Code","Collapse":"Réduire","Comment":"Commentaire","Config":"Configuration","Confirm":"Confirmer","Confirm your email":"Confirmer votre email","Confirmation code":"Code de confirmation","Copy tracks from current queue to playlist":"Copier les pistes de la queue dans la playlist","Covers, lyrics, our goal is to have them all ;)":"Pochettes d'albums, paroles, notre but est de tout implémenter ;)","Create a funkwhale account":"Créer un compte funkwhale","Create a new playlist":"Créer une nouvelle playlist","Create an account":"Créer un compte","Create import":"Créer un import","Create my account":"Créer mon compte","Create playlist":"Créer une playlist","Create your own radio":"Créer votre propre radio","Creation date":"Date de création","Current avatar":"Avatar actuel","Current track":"Piste actuelle","Delete":"Supprimer","Delete playlist":"Supprimer la playlist","Delete radio":"Supprimer la radio","Deny":"Refuser","Deny access?":"Refuser l'accès ?","Descending":"Descendant","Detail":"Détail","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Détermine si le compte utilisateur est actif ou non. Les comptes inactifs ne peuvent pas se connecter ou utiliser le service.","Disable access":"Désactiver l'accès","Disable Subsonic access":"Désactiver l'accès via Subsonic","Disable Subsonic API access?":"Désactiver l'accès à l'API Subsonic ?","Discover how to use Funkwhale from other apps":"Découvrez comment utiliser Funkwhale sur d'autres applications","Display publicly":"Afficher publiquement","Do you want to clear the playlist \"%{ playlist }\"?":"Voulez-vous vider la playlist \"%{ playlist }\" ?","Do you want to confirm this action?":"Souhaitez-vous confirmer cette action ?","Do you want to delete the playlist \"%{ playlist }\"?":"Voulez-vous supprimer la playlist \"%{ playlist }\" ?","Do you want to launch %{ action } on %{ count } element?":["Voulez-vous effectuer l'action \"%{ action } sur %{ count } élément ?","Voulez-vous effectuer l'action \"%{ action } sur %{ count } éléments ?"],"Do you want to restore your previous queue?":"Souhaitez-vous restaurer votre queue précédente ?","Documentation":"Documentation","Download":"Télécharger","Download tracks":"Télécharger","Drag and drop rows to reorder tracks in the playlist":"Glissez et déposer les lignes pour réordonner les pistes dans la playlist","Duration":"Durée","Easy to use":"Simple à utiliser","Edit instance info":"Éditer les informations de cette instance","Edit...":"Éditer...","Email":"Email","Email address":"Adresse email","Email confirmed":"Email confirmé","End edition":"Terminer l'édition","Ensure your music files are properly tagged before uploading them.":"Vérifier que vos fichiers musicaux sont correctement taggués avant de les envoyer.","Enter a radio name...":"Saisissez un nom de radio...","Enter an artist name...":"Saisissez un nom d'artiste...","Enter an library domain name...":"Saisissez un nom de domaine...","Enter an playlist name...":"Saisissez un nom de playlist...","Enter your email":"Saisissez votre email","Enter your invitation code (case insensitive)":"Saisissez votre code d'invitation (insensible à la casse)","Enter your search query...":"Saisissez votre recherche...","Enter your username":"Saisissez votre nom d'utilisateur·rice","Enter your username or email":"Saisissez votre nom d'utilisateur·rice ou email","Error":"Erreur","Error reporting":"Rapports d'erreur","Error while applying action":"Erreur lors du traitement de l'action","Error while asking for a password reset":"Erreur pendant la demande de réinitialisation de mot de passe","Error while changing your password":"Erreur pendant le changement de mot de passe","Error while confirming your email":"Erreur lors de la confirmation de votre email","Error while creating invitation":"Erreur lors de la création de l'invitation","Error while saving settings":"Erreur pendant l'enregistrement des paramètres","Error while scanning library":"Erreur lors du scan de la bibliothèque","Errored":"En erreur","Everyone":"Tout le monde","Everyone on this instance":"Tout le monde sur cette instance","Exclude":"Exclure","Expand":"Ouvrir","Expiration date":"Date d'expiration","Expired":"Expirée","Expired/used":"Expirée/utilisée","External source. Supported backends":"Source externe. Services supportés","Favorites":"Favoris","Federate with a new instance":"Fédérer avec une nouvelle instance","Federated tracks":"Pistes fédérées","Federation":"Fédération","File mirroring":"Réplication des fichiers","File name":"Nom du fichier","File upload":"Envoi de fichier","Files":"Fichiers","Filter album types":"Filtrer le type d'album","Filter name":"Nom du filtre","Finish import":"Terminer l'import","Finished":"Terminé","First, choose where you want to import the music from":"Tout d'abord, choisissez le mode d'import de la musique","Follow":"Suivre","Follow request pending approval":"Abonnement en attente de validation","Follow status":"Statut de l'abonnement","Followers":"Abonnés","Followers only":"Abonné·es seulement","Following":"Abonné","from %{ album } by %{ artist }":"de l'album %{ album } par %{ artist }","From album %{ album } by %{ artist }":"De l'album %{ album } par %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwale est un projet open-source et gratuit, animé par des bénévoles. Vous pouvez nous aider à améliorer le service en remontant les problèmes que vous rencontrez, en suggérant des améliorations et en parlant du projet autour de vous !","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale est compatible avec d'autres lecteurs de musique qui supportent l'API Subsonic.","Funkwhale is dead simple to use.":"Funkwhale est très simple à utiliser.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale est conçu pour faciliter l'écoute des musiques que vous aimez et découvrir de nouveaux artistes.","Funkwhale is free and gives you control on your music.":"Funkwhale est gratuit et vous donne le contrôle sur votre musique.","Funkwhale takes care of handling your music":"Funkwhale prend soin de votre musique","Get a new invitation":"Obtenir une nouvelle invitation","Get me to the library":"Amenez moi à la bibliothèque","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Obtenez des métadonnées de qualité grâce à <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>","Go":"Aller","Go to home page":"Retourner à la page d'accueil","Grab corresponding metadata":"Récupérer les métadonnées correspondantes","Help us translate Funkwhale":"Aidez nous à traduire Funkwhale","Home":"Accueil","Hours of music":"Heures de musique","However, accessing Funkwhale from those clients require a separate password you can set below.":"Cependant, accéder à Funkwhale depuis ces clients requiert un mot de passe distinct que vous pouvez configurer ci-dessous.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Si l'adresse email que vous avez fournie est valide et associée à un compte utilisateur, vous allez recevoir un email contenant les instructions de réinitialisation au cours des prochaines minutes.","Import":"Import","Import #%{ id } launched":"Import #%{ id } démarré","Import %{ count } track":["Import %{ count } track","Importer %{ count } pistes"],"Import batch":"Lot d'import","Import Batch #%{ id }":"Lot d'imports #%{ id }","Import batches":"Lots d'imports","Import Batches":"Lots d'imports","Import date":"Date d'import","Import detail page":"Page de détail de l'import","Import music":"Importer de la musique","Import Music":"Importer de la musique","Import music from various platforms, such as YouTube or SoundCloud":"Importez de la musique de différentes plate-formes, comme YouTube ou Soundcloud","Import pending":"Import en attente","Import requests":"Requêtes d'import","Import source":"Source de l'import","Import status":"Status de l'import","Import this release":"Importer cet album","Import this track":"Importer cette piste","Imported":"Importé","Imported URL":"URL importée","Imports":"Imports","In favorites":"Dans les favoris","In library":"Dans la bibliothèque","Inactive":"Inactif","Input a MusicBrainz ID manually:":"Saisir manuellement un ID MusicBrainz :","Input the email address binded to your account":"Saisissez l'adresse email associée à votre compte","Insert from queue (%{ count } track)":["Insérer depuis la queue (%{ count } piste)","Insérer depuis la queue (%{ count } pistes)"],"Instance information":"Informations relatives à cette instance","Instance radios":"Radios de l'instance","Instance settings":"Paramètres de l'instance","Instance Timeline":"Fil de l'instance","Invitation code":"Code d'invitation","Invitation code (optional)":"Code d'invitation (optionnel)","Invitations":"Invitations","Issue tracker":"Issue tracker","Job ID":"ID de la tâche","Jobs":"Tâches","Keep a track of your favorite songs":"Gardez une trace de vos chansons favorites","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Gardez votre PRIVATE_TOKEN secret étant donné qu'il permet l'accès à votre compte.","Last activity":"Dernière activité","Last fetched":"Dernière récupération","Last modification":"Dernière modification","Launch":"Démarrer","Launch date":"Date de lancement","Launch scan":"Démarrer le scan","Learn more about this instance":"En apprendre plus à propos de cette instance","Leave empty for a random code":"Laisser vide pour obtenir un code aléatoire","Leave this field empty if you're requesting the whole discography.":"Laisser ce champ vide si vous voulez suggérer toute la discographie.","Libraries":"Bibliothèques","Library":"Bibliothèque","Library files":"Fichiers de la bibliothèque","Library name":"Nom de la bibliothèque","Library size":"Taille de la bibliothèque","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Liens","Loading timeline...":"Chargement de la timeline ...","Loading your favorites...":"Chargement de vos favoris ...","Log In":"Connexion","Log in to your Funkwhale account":"Connectez vous à votre compte Funkwhale","Log Out":"Déconnexion","Logged in as %{ username }":"Connecté·e en tant que %{ username }","Login":"Connexion","Logout":"Déconnexion","Looping disabled. Click to switch to single-track looping.":"Répétition désactivée. Cliquez pour activer la répétition sur la piste actuelle.","Looping on a single track. Click to switch to whole queue looping.":"Répétition sur la piste en cours. Cliquer pour répêter sur l'intégralité de la queue.","Looping on whole queue. Click to disable looping.":"Répétition sur l'intégralité, cliquez pour désactiver la répétition.","Lyrics":"Paroles","Manage library":"Gérer la bibliothèque","Manage playlists":"Gérer les playlists","Manage users":"Gérer les utilisateur·rices","Manage your playlists":"Gérer vos playlists","Mark as closed":"Marquer comme fermé","Mark as imported":"Marquer comme importé","Metadata":"Metadonnées","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Les métadonnées sont les informations relatives à la musique que vous souhaitez importer. Cela inclut notamment toutes les informations concernant les artistes, albums et pistes. Afin d'avoir des métadonnées de qualité, il est recommandé d'utiliser les métadonnées du projet <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n qui est une base de données musicale fonctionnant sur le même modèle que Wikipédia.","Music":"Musique","Music request":"Requête musicale","Mute":"Couper le son","My account":"Mon compte","My awesome playlist":"Ma playlist d'enfer","My awesome radio":"Ma radio d'enfer","N/A":"ND","Name":"Nom","New password":"Nouveau mot de passe","New tracks will be appended here automatically.":"Les nouvelles pistes seront ajoutées ici automatiquement.","Next step":"Prochaine étape","Next track":"Piste suivante","No":"Non","No add-ons, no plugins : you only need a web library":"Pas d'addons ou d'extension à installer, il vous suffit d'une bibliothèque sur le web","No lyrics available for this track.":"Pas de paroles disponibles pour cette piste.","Nobody except me":"Personne à part moi","Not following":"Non abonné·e","Not imported":"Non importé","Not used":"Pas utilisé","Official website":"Site officiel","Old password":"Vieux mot de passe","Once all your files are uploaded, simply click the following button to check the import status.":"Une fois que tous vos fichiers sont chargés, cliquez sur le bouton suivant pour vérifier le statut d'import.","Open":"Accès libre","Options":"Options","Or":"Ou","Ordering":"Ordre","Ordering direction":"Direction","Owner":"Propriétaire","Page Not Found":"Page non trouvée","Page not found!":"Page non trouvée !","Password":"Mot de passe","Password updated":"Mot de passe mis à jour","Password updated successfully":"Mot de passe modifié avec succès","Pause track":"Mettre en pause","Pending":"En attente","Pending approval":"En attente de validation","Pending follow requests":"Demandes d'abonnement en attente","Pending import requests":"Requêtes en attente","Pending requests":"Requêtes en attente","Permissions":"Permissions","Play":"Jouer","Play all":"Tout lire","Play all albums":"Lire tous les albums","Play immediatly":"Jouer immédiatement","Play next":"Lire ensuite","Play now":"Lire maintenant","Play track":"Jouer","Playlist":"Playlist","Playlist containing %{ count } track, by %{ username }":["Playlist contenant %{ count } piste, par %{ username }","Playlist contenant %{ count } pistes, par %{ username }"],"Playlist created":"Playlist créée","Playlist editor":"Éditeur de playlist","Playlist name":"Nom de la playlist","Playlist updated":"Playlist mise à jour","Playlist visibility":"Visibilité de la playlist","Playlists":"Playlists","Playlists? We got them":"Les playlists ? Elles sont là !","Please double-check your password is correct":"Merci de vérifier que votre mot de passe est correct","Please double-check your username/password couple is correct":"Merci de vérifier que votre nom d'utilisateur et mot de passe sont corrects","PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px.":"PNG, GIF ou JPG. 2Mo au plus. L'image sera réduite à 400×400 pixels.","Previous step":"Étape précédente","Previous track":"Piste précédente","Proceed to login":"Poursuivre vers la page de connexion","Published date":"Date de sortie","Query template":"Template de recherche","Queue":"Queue","Queue shuffled!":"La queue a été mélangée !","Radio":"Radio","Radio Builder":"Éditeur de radio","Radio created":"Radio créée","Radio name":"Nom de la radio","Radio updated":"Radio à jour","Radios":"Radios","Recent activity on this instance":"Activité récente sur cette instance","Recently added":"Ajoutés récemment","Recently favorited":"Récemment ajouté aux favoris","Recently listened":"Écoutées récemment","Recording MusicBrainz ID":"ID MusicBrainz de l'enregistrement","Refresh":"Rafraîchir","Refused":"Refusé","Registered since %{ date }":"Inscrit·e depuis le %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"Les inscriptions sont fermées sur cette instance, vous aurez besoin d'un code d'invitation pour vous inscrire.","regular user":"utilisateur·rice standard·e","Remove":"Retirer","Remove avatar":"Supprimer mon avatar","Remove from favorites":"Retirer des favoris","Request a new password":"Demander un nouveau mot de passe","Request a new Subsonic API password?":"Demander un nouveau mot de passe pour l'API Subsonic ?","Request a password":"Demander un mot de passe","Request music":"Demandes de musique","Request some music":"Demandez de la musique","Request submitted!":"Requête envoyée","Rerun errored jobs":"Relancer les tâches échouées","Rerun job":"Relancer la tâche","Reset your password":"Réinitialiser votre mot de passe","Result %{ current }/%{ total }":"Résultat %{ current }/%{ total }","Results per page":"Résultats par page","Save":"Enregistrer","Scan triggered!":"Scan démarré !","Search":"Rechercher","Search an entity you want to import:":"Rechercher une ressource que vous voulez importer :","Search by artist, username, comment...":"Rechercher par artiste, nom d'utilisateur·rice, commentaire...","Search by source...":"Rechercher par source...","Search by submitter, source...":"Rechercher par utilisateur·rice, source...","Search by title, artist, domain...":"Rechercher par titre, artiste, domaine...","Search by username, domain...":"Rechercher par nom d'utilisateur·rice, domaine...","Search by username, email, code...":"Rechercher par nom d'utilisateur·rice, email, code...","Search by username, email, name...":"Rechercher par nom d'utilisateur·rice, email, nom...","Search for artists, albums, tracks...":"Rechercher des artistes, des albums, des pistes","Search for some music":"Rechercher de la musique","Search on lyrics.wikia.com":"Rechercher sur lyrics.wikia.com","Search on Wikipedia":"Rechercher sur Wikipédia","Search query":"Recherche","Sections":"Sections","Select a filter":"Sélectionner un filtre","Select all %{ total } elements":["Selectionner l'ensemble des %{ total } élément","Selectionner l'ensemble des %{ total } éléments"],"Select files to upload...":"Sélectionner les fichiers à envoyer...","Select only current page":"Sélectionner seulement la page actuelle","Select relevant sources or files for import":"Sélectionner les sources ou fichiers à importer","Send a follow request":"Envoyer une demande d'abonnement","Settings":"Paramètres","Settings updated":"Paramètres mis à jour","Settings updated successfully.":"Paramètres modifiés avec succès.","Settings...":"Paramètres...","Share link":"Lien de partage","Show 1 more album":["Montrer 1 album supplémentaire","Montrer %{ count } albums supplémentaires"],"Show 1 more track":["Afficher 1 piste de plus","Afficher %{ count } pistes de plus"],"Show/hide password":"Afficher/masquer le mot de passe","Showing results %{ start }-%{ end } on %{ total }":"Affichage des résultats %{ start }-%{ end } sur %{ total }","Shuffle your queue":"Mélanger votre queue","Sign Up":"Inscription","Sign-up":"Inscription","Simply copy paste the snippet below into a terminal to launch the download.":"Copiez le texte ci-dessous dans un terminal pour lancer le téléchargement.","Size":"Taille","Skipped":"Ignoré","Something's missing in the library? Let us know what you would like to listen!":"Quelque chose manque dans la bibliothèque ? Dîtes nous ce que vous voulez écouter !","Sorry, we did not found any album matching your query":"Désolé, nous n'avons trouvé aucun album correspondant à votre recherche","Sorry, we did not found any artist matching your query":"Désolé, nous n'avons trouver aucun·a artiste correspondant à votre recherche","Source":"Source","Source code":"Code source","Source code (%{version})":"Code source (%{version})","Staff member":"Membre de l'équipe","Start":"Démarrer","Start Upload":"Démarrer l'envoi","Statistics":"Statistiques","Status":"Statut","Stop":"Arrêter","Stop radio":"Arrêter la radio","Stop Upload":"Arrêter l'envoi","Submit":"Valider","Submit another request":"Envoyer une nouvelle requête","Submitted by":"Proposé par","Subsonic":"Subsonic","Subsonic API password":"Mot de passe de l'API Subsonic","Success":"Succès","Suggested choices":"Suggestions","Syncing changes to server...":"Synchronisation des changements avec le serveur...","That's simple: we loved Grooveshark and we want to build something even better.":"C'est simple : nous adorions Grooveshark et nous voulions construire quelque chose d'encore mieux.","The Beatles, Mickael Jackson…":"Les Beatles, Mickael Jackson...","The funkwhale logo was kindly designed and provided by Francis Gading.":"Le logo de Funkwhale a été généreusement dessiné et fourni par Francis Gading.","The plaform is free and open-source, you can install it and modify it without worries":"La plateforme est gratuite et open-source, vous pouvez l'installer et la modifier sans restrictions","The Subsonic API is not available on this Funkwhale instance.":"L'API Subsonic n'est pas disponible sur cette instance Funkwhale.","The White Album, Thriller…":"L'Album Blanc, Thriller...","There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.":"Il n'est pas possible pour le moment de télécharger un ensemble de pistes sous forme d'archive. Cependant, vous pouvez utiliser un outil en ligne de commande tel que cURL pour télécharger facilement une liste de pistes.","This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.":"Cet import sera associé à la requête ci dessous. Une fois l'import terminé, la requête sera marquée comme complétée.","This indicate if the remote library granted you access":"Ceci indique si la bibliothèque distance vous à accordé l'accès","This is you!":"C'est vous !","This may affect a lot of elements, please double check this is really what you want.":"Cette opération peut affecter de nombreux éléments, merci de vérifier que c'est bien ce que vous souhaitez.","This track is not imported and cannot be played":"Cette piste n'est pas importée et ne peut pas être jouée","This will completely delete this playlist and cannot be undone.":"Cela supprimera définitivement cette playlist et ne pourra pas être annulé.","This will completely delete this radio and cannot be undone.":"Cela supprimera définitivement cette radio et ne pourra pas être annulé.","This will completely disable access to the Subsonic API using from account.":"Cela désactivera complétement l'accès à l'API Subsonic depuis votre compte.","This will erase your local data and disconnect you, do you want to continue?":"Cela va effacer vos données locales et vous déconnecter, voulez-vous continuer ?","This will log you out from existing devices that use the current password.":"Cela vous déconnectera sur l'ensemble de vos appareils utilisant ce mot de passe.","This will remove all tracks from this playlist and cannot be undone.":"Cela supprimera toutes les pistes de la playlist et ne pourra pas être annulé.","Title":"Titre","Track":"Piste","Track information":"Information de la piste","Track matching filter":"Piste correspondant au filtre","tracks":"pistes","Tracks":"Pistes","Tracks available in this library":"Pistes disponibles dans cette bibliothèque","Tracks by this artist":"Pistes par cetâ‹…te artiste","Tracks favorited":"Pistes en favoris","tracks listened":"pistes écoutées","Trigger scan":"Déclencher un scan","Type":"Type","Unfortunately, owners of this instance did not yet take the time to complete this page.":"Malheureusement, les gestionnaires de cette instance n'ont pas encore pris le temps de compléter cette page.","Unknown":"Inconnu","Unlimited music":"Musique illimitée","Unmute":"Réactiver le son","Update avatar":"Mettre à jour l'avatar","Update playlist":"Mettre à jour la playlist","Update settings":"Mettre à jour les paramètres","Update your password":"Mettre à jour votre mot de passe","Upload":"Envoi","Upload a new avatar":"Envoyer un nouvel avatar","Uploaded files or external source":"Fichiers envoyés ou source externe","Uploading...":"Envoi en cours...","Use another instance":"Utiliser une autre instance","Use this comment box to add details to your request if needed":"Utilisez ce champ pour ajouter des détails à votre demande, si nécessaire","Use this flag to enable/disable federation with this library":"Utilisez ce réglage pour activer/désactiver la fédération avec cette bibliothèque","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"Utilisez ce formulaire pour demander à réinitialiser votre mot de passe. Vous recevrez un email à l'adresse indiquée contenant les instructions de réinitialisation.","Use this form to scan an instance and setup federation.":"Utilisez ce formulaire pour scanner le catalogue d'une instance et mettre en place la fédération.","Used":"Utilisé","User":"Utilisateur·rice","User activity":"Activité des utilisateur·ice·s","User radios":"Radios des utilisateur·ice·s","Username":"Nom d'utilisateur","Username or email":"Nom d'utilisateur ou email","users":"utilisateur·rice·s","Users":"Utilisateur·ice·s","View on MusicBrainz":"Voir sur MusicBrainz","We cannot add the track to a playlist":"Nous ne pouvons pas ajouter cette piste à une playlist","We cannot create the playlist":"Nous ne pouvons pas créer cette playlist","We cannot create your account":"Nous ne pouvons pas créer votre compte","We cannot log you in":"Erreur lors de la connexion","We cannot save your avatar":"Nous ne pouvons pas enregistrer votre avatar","We cannot save your settings":"Nous ne pouvons pas enregistrer vos paramètres","We do not track you or bother you with ads":"Nous ne vous pistons pas et ne vous exposons pas à des publicités","We recommend using Picard for that purpose.":"Nous recommandons d'utiliser le logiciel Picard pour cela.","We think listening to music should be simple.":"Nous pensons que l'accès à la musique devrait être simple.","We're sorry, the page you asked for does not exist:":"Désolé, la page demandée n’existe pas :","We've received your request, you'll get some groove soon ;)":"Nous avons bien reçu votre requête, vous aurez bientôt de nos nouvelles ;)","Welcome":"Bienvenue","Welcome on Funkwhale":"Bienvenue sur Funkwhale","What is metadata?":"Qu'est-ce que les métadonnées ?","When enabled, auto importing will automatically import new tracks published in this library":"Si ce réglage est activé, les nouvelles pistes ajoutées dans cette bibliothèque seront automatiquement importées","Why funkwhale?":"Pourquoi Funkwhale ?","Yes":"Oui","Yes, log me out!":"Oui, déconnectez-moi !","You are currently logged in as %{ username }":"Vous êtes actuellement connecté·e en tant que %{ username }","You can also skip this step and enter metadata manually.":"Vous pouvez également sauter cette étape et entrer les métadonnées manuellement.","You can invite friends and family to your instance so they can enjoy your music":"Vous pouvez inviter vos ami·es et votre famille sur votre instance pour qu'ils·elles puissent profiter de votre musique","You can use this interface to build your own custom radio, which will play tracks according to your criteria.":"Vous pouvez utiliser cette interface pour réaliser votre propre radio personnalisée, qui jouera les pistes correspondant aux critères indiqués.","You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.":"Vous pouvez les utiliser pour profiter de vos playlists et de votre musique en mode hors-ligne sur votre smatphone ou tablette, par exemple.","You have a radio playing":"Vous écoutez une radio","You need to select an instance in order to continue":"Vous devez choisir une instance pour continuer","You will be logged out from this session and have to log in with the new one":"Vous allez être déconnecté⋅e de cette session et vous allez devoir vous connecter avec votre nouveau mot de passe","You will have to update your password on your clients that use this password.":"Vous devrez mettre à jour votre mot de passe sur l'ensemble des clients utilisant ce mot de passe.","You will import:":"Vous allez importer :","Your email address was confirmed, you can now use the service without limitations.":"Votre adresse email a été confirmée, vous pouvez maintenant utiliser le service sans limitations.","Your Favorites":"Vos favoris","Your music, your way":"Votre musique, à votre façon","Your password has been updated successfully.":"Votre mot de passe a été mis à jour avec succès.","Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password":"Votre mot de passe Subsonic sera remplacé par un nouveau mot de passe aléatoire, ce qui vous déconnectera de tous les appareils utilisant l'ancien mot de passe","%{ count } track was added to your queue":["%{ count } piste a été ajouté à votre queue","%{ count } pistes ont été ajoutées à votre queue"]},"it":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", di %{ artist }","(%{ index } of %{ length })":"(%{ index } su %{ length })","(empty)":"(vuoto)","%{ count } on %{ total } selected":["%{ count } su %{ total } selezionato","%{ count } su %{ total } selezionati"],"%{ count } track":["%{ count } traccia","%{ count } tracce"],"%{ count } track in %{ albumsCount } albums":["%{ count } traccia in %{ albumsCount } album","%{ count } tracce in %{ albumsCount } album"],"%{ count } track matching combined filters":["%{ count } traccia corrisponde ai filtri combinati","%{ count } tracce corrispondono ai filtri combinati"],"%{ count} track":["%{ count} traccia","%{ count} tracce"],"%{ hours } h %{ minutes } min":"%{ hours } o %{ minutes } min","%{ minutes } min":"%{ minutes } min","%{ user } favorited a track":"a %{ user } piace una traccia","%{ user } listened to a track":"%{ user } ha ascoltato una traccia","%{ username }'s profile":"Profilo di %{ username }","1 album":["1 album","%{ count } album"],"1 favorite":["1 mi piace","%{ count } mi piace"],"1 track":["1 traccia","%{ count } tracce"],"About %{ instance }":"A proposito di %{ instance }","About Funkwhale":"A proposito di Funkwhale","About this instance":"A proposito di questa istanza","Accepted":"Accettato","Access disabled":"Accesso disabilitato","Access your music from a clean interface that focus on what really matters":"Accedi alla tua musica da un'interfaccia pulita che si focalizza su quello che conta davvero","Account active":"Account attivo","Account settings":"Impostazioni dell'account","Account Settings":"Impostazioni dell'account","Account status":"Stato dell'account","Account's email":"Email dell'account","Action %{ action } was launched successfully on %{ count } element":["L'azione %{ action } è stata lanciata con successo su %{ count } elemento","L'azione %{ action } è stata lanciata con successo su %{ count } elementi"],"Actions":"Azioni","Active":"Attivo","Activity":"Attività ","Actor":"Attore","Add a new library":"Aggiungi una nuova libreria","Add filter":"Aggiungi filtro","Add filters to customize your radio":"Aggiungi filtri per personalizzare la tua radio","Add to current queue":"Aggiungi alla coda corrente","Add to favorites":"Aggiungi ai preferiti","Add to playlist...":"Aggiungi alla playlist...","Add to queue":"Aggiungi alla coda","Add to this playlist":"Aggiungi a questa playlist","Add track":"Aggiungi traccia","Admin":"Amministratore","Administration":"Amministrazione","Album":"Album","Album %{ title } (%{ count } track) by %{ artist }":["Album %{ title } (%{ count } traccia) di %{ artist }","Album %{ title } (%{ count } tracce) di %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Album contenente %{ count } traccia, di %{ artist }","Album contenente %{ count } tracce, di %{ artist }"],"Album page":"Pagina dell'album","Albums":"Albums","Albums by this artist":"Albums di questo artista","All":"Tutto","An error occured while saving your changes":"C'è stato un errore durante il salvataggio delle tue modifiche","An unknown error happend, this can mean the server is down or cannot be reached":"Si è verificato un errore sconosciuto, questo significa che il server è offline o non può essere raggiunto","Any":"Qualsiasi","API":"API","Approve":"Approva","Approve access?":"Approvi l'accesso?","Approved":"Approvato","Are you sure you want to log out?":"Sei sicuro di volerti disconnettere?","Artist":"Artista","Artist name":"Nome dell'artista","Artist page":"Pagina dell'artista","Artist, album, track...":"Artista, album, traccia...","Artists":"Artisti","Ascending":"Crescente","Ask for a password reset":"Chiedi un reset della password","Auto importing":"Auto importazione","Available playlists":"Playlist disponibili","Avatar":"Avatar","Back to login":"Torna alla pagina di accesso","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Fai attenzione quando accetti le richieste di seguirti, perchè significa che quell'utente avrà accesso a tutta la tua libreria.","Bitrate":"Bitrate","Browse":"Sfoglia","Browse library":"Sfoglia libreria","Browsing artists":"Sfogliando artisti","Browsing federated tracks":"Sfogliando tracce federate","Browsing followers":"Sfogliando followers","Browsing libraries":"Sfogliando librerie","Browsing playlists":"Sfogliando playlists","Browsing radios":"Sfogliando radio","Builder":"Crea","By %{ artist }":"Di %{ artist }","By confirming, %{ username } will be denied access to your library.":"Confermando, a %{ username } sarà negato l'accesso alla tua libreria.","By confirming, %{ username } will be granted access to your library.":"Confermando, a %{ username } sarà consentito l'accesso alla tua libreria.","Cancel":"Annulla","Candidates":"Candidati","Cannot change your password":"Non puoi cambiare la tua password","Change language":"Cambia lingua","Change my password":"Cambia la mia password","Change password":"Cambia password","Change your password":"Cambia la tua password","Change your password?":"Cambiare la tua password?","Changes synced with server":"Modifiche sincronizzate con il server","Changing your password will also change your Subsonic API password if you have requested one.":"Cambiando la tua password cambierà anche la password della API Subsonic se ne hai richiesta una.","Changing your password will have the following consequences":"Cambiare la tua password avrà queste conseguenze","Choose your instance":"Scegli la tua istanza","Clean library":"Pulisci libreria","Clear":"Pulisci","Clear playlist":"Pulisci playlist","Clear your queue":"Pulisci la tua coda","CLI":"CLI","Click once, listen for hours using built-in radios":"Clicca una volta, ascolta per ore utilizzando le radio integrate","Closed":"Chiuso","Code":"Codice","Collapse":"Riduci","Comment":"Commenta","Config":"Configurazione","Confirm":"Conferma","Confirm your email":"Conferma la tua email","Confirmation code":"Codice di conferma","Copy tracks from current queue to playlist":"Copia tracce dalla tua coda corrente alla playlist","Covers, lyrics, our goal is to have them all ;)":"Copertine, testi, il nostro obbiettivo è averli tutti ;)","Create a funkwhale account":"Crea un account funkwhale","Create a new playlist":"Crea una nuova playlist","Create an account":"Crea un account","Create import":"Crea importazione","Create my account":"Crea il mio account","Create playlist":"Crea playlist","Create your own radio":"Crea la tua radio","Creation date":"Data di creazione","Current avatar":"Avatar attuale","Current track":"Traccia corrente","Delete":"Elimina","Delete playlist":"Elimina playlist","Delete radio":"Elimina radio","Deny":"Nega","Deny access?":"Negare accesso?","Descending":"Decrescente","Detail":"Dettaglio","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Determina se un account utente è attivo o meno. Gli utenti inattivi non possono accedere o utilizzare il servizio.","Disable access":"Disabilita accesso","Disable Subsonic access":"Disabilita accesso Subsonic","Disable Subsonic API access?":"Disabilitare l'accesso alle API Subsonic?","Discover how to use Funkwhale from other apps":"Scopri come utilizzare Funkwhale attraverso altre app","Display publicly":"Mostra pubblicamente","Do you want to clear the playlist \"%{ playlist }\"?":"Vuoi pulire la playlist \"%{ playlist }\"?","Do you want to confirm this action?":"Vuoi confermare questa azione?","Do you want to delete the playlist \"%{ playlist }\"?":"Vuoi eliminare la playlist \"%{ playlist }\"?","Do you want to delete the radio \"%{ radio }\"?":"Vuoi eliminare la radio \"%{ radio }\"?","Do you want to launch %{ action } on %{ count } element?":["Vuoi eseguire %{ action } su %{ count } elemento?","Vuoi eseguire %{ action } su %{ count } elementi?"],"Do you want to restore your previous queue?":"Vuoi ripristinare la tua coda precedente?","Documentation":"Documentazione","Download":"Scarica","Download tracks":"Scarica tracce","Drag and drop rows to reorder tracks in the playlist":"Trascina e rilascia righe per riordinare le tracce nella playlist","Duration":"Durata","Easy to use":"Facile da utilizzare","Edit instance info":"Modifica le info dell'istanza","Edit...":"Modifica...","Email":"Email","Email address":"Indirizzo email","Email confirmed":"Email confermata","End edition":"Fine modifica","Ensure your music files are properly tagged before uploading them.":"Assicurati che i tuoi files musicali siano taggati in modo corretto prima di caricarli.","Enter a radio name...":"Inserisci un nome di una radio...","Enter an artist name...":"Inserisci il nome di un artista...","Enter an library domain name...":"Inserisci il nome del dominio di una libreria...","Enter an playlist name...":"Inserisci il nome di una playlist...","Enter your email":"Inserisci la tua email","Enter your invitation code (case insensitive)":"Inserisci il tuo codice di invito (non tiene conto di maiuscole o minuscole)","Enter your search query...":"Inserisci i tuoi criteri di ricerca...","Enter your username":"Inserisci il tuo nome utente","Enter your username or email":"Inserisci il tuo nome utente o l'email","Error":"Errore","Error reporting":"Segnalazione errore","Error while applying action":"Errore durante l'esecuzione dell'azione","Error while asking for a password reset":"Errore durante la richiesta di un reset della password","Error while changing your password":"Errore durante la modifica della password","Error while confirming your email":"Errore durante la conferma della tua email","Error while creating invitation":"Errore durante la creazione dell'invito","Error while saving settings":"Errore durante il salvataggio delle impostazioni","Error while scanning library":"Errore durante la scansione della libreria","Errored":"Si è verificato un errore","Everyone":"Tutti","Everyone on this instance":"Tutti su questa istanza","Exclude":"Escludi","Expand":"Espandi","Expiration date":"Data di scadenza","Expired":"Scaduto","Expired/used":"Scaduto/utilizzato","External source. Supported backends":"Sorgente esterna. Supporta backends","Favorites":"Preferiti","Federate with a new instance":"Unisciti ad una nuova istanza","Federated tracks":"Tracce federate","Federation":"Federazione","File mirroring":"Mirroring dei file","File name":"Nome file","File upload":"Carica file","Files":"Files","Filter album types":"Filtra tipi di album","Filter name":"Filtra nome","Finish import":"Termina importazione","Finished":"Finito","First, choose where you want to import the music from":"Prima, scegli da dove vuoi importare la musica","Follow":"Segui","Follow request pending approval":"Richiesta di seguire in attesa di approvazione","Follow status":"Stato di segui","Followers":"Seguito da","Followers only":"Solo chi segue","Following":"Seguendo","from %{ album } by %{ artist }":"da %{ album } di %{ artist }","From album %{ album } by %{ artist }":"Dall'album %{ album } di %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwhale è un progetto libero e open-source portato avanti da volontari. Puoi aiutarci a migliorare la piattaforma segnalando problemi, suggerendo miglioramenti e condividendo il progetto con i tuoi amici!","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale è compatibile con altri lettori musicali che supportano le Subsonic API.","Funkwhale is dead simple to use.":"Funkwhale è semplicissimo da usare.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale è progettato per permetterti di ascoltare facilmente la musica che ti piace, o per farti scoprire nuovi artisti.","Funkwhale is free and gives you control on your music.":"Funkwhale è gratuito e ti da il controllo sulla tua musica.","Funkwhale takes care of handling your music":"Funkwhale si preoccupa di gestire la tua musica","Get a new invitation":"Ottieni un nuovo invito","Get me to the library":"Portami alla libreria","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Ottieni metadati di qualità sulla tua musica grazie a\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>","Go":"Vai","Go to home page":"Vai alla pagina iniziale","Grab corresponding metadata":"Ottieni metadata corrispondenti","Help us translate Funkwhale":"Aiutaci a tradurre Funkwhale","Home":"Pagina Iniziale","Hours of music":"Ore di musica","However, accessing Funkwhale from those clients require a separate password you can set below.":"Comunque, accedere a Funkwhale da quei client richiede un'altra password che puoi impostare qui sotto.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Se l'indirizzo email fornito nel passo precedente è valido e legato ad un account utente, dovresti ricevere un'email con le istruzioni per il reset nel prossimo paio di minuti.","Import":"Importa","Import #%{ id } launched":"Importazione #%{ id } lanciata","Import %{ count } track":["Importa %{ count } traccia","Importa %{ count } tracce"],"Import batch":"Importa batch","Import Batch #%{ id }":"Importa Batch #%{ id }","Import batches":"Importa più batch","Import Batches":"Importa Batch","Import date":"Importa data","Import detail page":"Pagina dei dettagli di importazione","Import music":"Importa musica","Import Music":"Importa Musica","Import music from various platforms, such as YouTube or SoundCloud":"Importa musica da varie piattaforme, come YouTube o SoundCloud","Import pending":"Importazioni in attesa","Import requests":"Importazioni richieste","Import source":"Importa sorgente","Import status":"Stato dell'importazione","Import this release":"Importa questa versione","Import this track":"Importa questa traccia","Imported":"Importato","Imported URL":"URL importato","Imports":"Importazioni","In favorites":"Nei preferiti","In library":"In libreria","Inactive":"Inattivo","Input a MusicBrainz ID manually:":"Inserisci un ID MusicBrainz manualmente:","Input the email address binded to your account":"Inserisci l'indirizzo email associato al tuo account","Insert from queue (%{ count } track)":["Inserita dalla coda (%{ count } traccia)","Inserite dalla coda (%{ count } tracce)"],"Instance information":"Informazioni sull'istanza","Instance radios":"Radio dell'istanza","Instance settings":"Impostazioni dell'istanza","Instance Timeline":"Timeline dell'Istanza","Invitation code":"Codice di invito","Invitation code (optional)":"Codice d'invito (opzionale)","Invitations":"Inviti","Issue tracker":"Elenco problemi","Job ID":"ID Lavoro","Jobs":"Lavori","Keep a track of your favorite songs":"Tieni d'occhio le tue tracce preferite","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Tieni i tuoi PRIVATE_TOKEN segreti visto che danno accesso al tuo account.","Last activity":"Ultime attività ","Last fetched":"Ultime recuperate","Last modification":"Ultima modifica","Launch":"Inizia","Launch date":"Data d'inizio","Launch scan":"Inizia scansione","Learn more about this instance":"Scopri di più su questa istanza","Leave empty for a random code":"Lascia vuoto per un codice casuale","Leave this field empty if you're requesting the whole discography.":"Lascia questo campo vuoto se vuoi richiedere la discografia completa.","Libraries":"Librerie","Library":"Libreria","Library files":"File della libreria","Library name":"Nome della libreria","Library size":"Dimensione della libreria","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Collegamenti","Loading timeline...":"Caricando la timeline...","Loading your favorites...":"Caricando i tuoi preferiti...","Log In":"Accedi","Log in to your Funkwhale account":"Accedi al tuo account Funkwhale","Log Out":"Disconnetti","Logged in as %{ username }":"Accesso effettuato come %{ username }","Login":"Accedi","Logout":"Disconnettiti","Looping disabled. Click to switch to single-track looping.":"Ripetizione disattivata. Clicca per attivare la ripetizione della singola traccia.","Looping on a single track. Click to switch to whole queue looping.":"Ripeti una singola traccia. Clicca per ripetere l'intera coda.","Looping on whole queue. Click to disable looping.":"Ripete l'intera coda. Clicca per disattivare la ripetizione.","Lyrics":"Testi","Manage library":"Gestisci libreria","Manage playlists":"Gestisci playlist","Manage users":"Gestisci utenti","Manage your playlists":"Gestisci le tue playlist","Mark as closed":"Segna come chiuso","Mark as imported":"Segna come importato","Metadata":"Metadati","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"I metadata sono i dati relativi alla musica che vuoi importare. Questo include tutte le informazioni su artisti, album e tracce. Per far si che tu abbia una libreria di alta qualità , è consigliato ottenere i dati dal progetto \n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n che praticamente è la Wikipedia della musica.","Music":"Musica","Music request":"Richiesta di musica","Mute":"Muto","My account":"Mio account","My awesome playlist":"La mia eccezionale playlist","My awesome radio":"La mia eccezionale radio","N/A":"N/D","Name":"Nome","New password":"Nuova password","New tracks will be appended here automatically.":"Le nuove tracce saranno allegate qui automaticamente.","Next step":"Prossimo passo","Next track":"Prossima traccia","No":"No","No add-ons, no plugins : you only need a web library":"Nessun addon, nessun plugin: ti serve solo una libreria in rete","No lyrics available for this track.":"Nessun testo disponibile per questa traccia.","Nobody except me":"Nessuno tranne me","Not following":"Non seguito","Not imported":"Non importato","Not used":"Non utilizzato","Official website":"Sito ufficiale","Old password":"Vecchia password","Once all your files are uploaded, simply click the following button to check the import status.":"Una volta che tutti i tuoi file sono caricati, clicca semplicemene il pulsante seguente per controllare lo stato dell'importazione.","Open":"Aperto","Options":"Opzioni","Or":"O","Ordering":"Ordinamento","Ordering direction":"Direzione di ordinamento","Owner":"Proprietario","Page Not Found":"Pagina Non Trovata","Page not found!":"Pagina non trovata!","Password":"Password","Password updated":"Password aggiornata","Password updated successfully":"Password aggiornata con successo","Pause track":"Metti in pausa","Pending":"In sospeso","Pending approval":"Approvazione in sospeso","Pending follow requests":"Richiesta di seguire in sospeso","Pending import requests":"Richieste di importazione in sospeso","Pending requests":"Richieste in sospeso","Permissions":"Permessi","Play":"Riproduci","Play all":"Riproduci tutto","Play all albums":"Riproduci tutti gli album","Play immediatly":"Riproduci immediatamente","Play next":"Riproduci la prossima","Play now":"Riproduci ora","Play track":"Riproduci traccia","Playlist":"Lista di riproduzione","Playlist containing %{ count } track, by %{ username }":["Lista di riproduzione contenente %{ count } traccia, di %{ username }","Lista di riproduzione contenente %{ count } tracce, di %{ username }"],"Playlist created":"Lista di riproduzione creata","Playlist editor":"Modifica lista di riproduzione","Playlist name":"Nome lista di riproduzione","Playlist updated":"Lista di riproduzione aggiornata","Playlist visibility":"Visibilità lista di riproduzione","Playlists":"Liste di riproduzione","Playlists? We got them":"Liste di riproduzione? Ce le abbiamo","Please double-check your password is correct":"Per favore controlla se la tua password è corretta","Please double-check your username/password couple is correct":"Per favore controlla se la combinazione nome utente/password è corretta","PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px.":"PNG, GIF or JPG. Massimo 2MB. Saranno scalate a 400x400px.","Previous step":"Passo precedente","Previous track":"Traccia precedente","Proceed to login":"Procedi all'accesso","Published date":"Data di pubblicazione","Query template":"Modello di ricerca","Queue":"Coda","Queue shuffled!":"Coda mischiata!","Radio":"Radio","Radio Builder":"Creatore Radio","Radio created":"Radio creata","Radio name":"Nome radio","Radio updated":"Radio aggiornata","Radios":"Radio","Recent activity on this instance":"Attività recenti su questa istanza","Recently added":"Aggiunte recentemente","Recently favorited":"Preferiti recenti","Recently listened":"Ascoltate recentemente","Recording MusicBrainz ID":"Registrazione MusicBrainzID","Refresh":"Aggiorna","Refused":"Rifiutato","Registered since %{ date }":"Registrato da %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"Le registrazioni sono chiuse su questa istanza, hai bisogno di un codice d'invito per registrarti.","regular user":"utente semplice","Remove":"Rimuovi","Remove avatar":"Rimuovi avatar","Remove from favorites":"Rimuovi dai preferiti","Request a new password":"Richiedi una nuova password","Request a new Subsonic API password?":"Richiedere una nuova password API Subsonic?","Request a password":"Richiedi una password","Request music":"Richiedi musica","Request some music":"Richiedi della musica","Request submitted!":"Richiesta inviata!","Rerun errored jobs":"Riavvia attività con errori","Rerun job":"Riavvia attività ","Reset your password":"Resetta la tua password","Result %{ current }/%{ total }":"Risultato %{ current }/%{ total }","Results per page":"Risultati per pagina","Save":"Salva","Scan triggered!":"Scansione avviata!","Search":"Cerca","Search an entity you want to import:":"Cerca un elemento che vuoi importare:","Search by artist, username, comment...":"Cerca per artista, nome utente, commento...","Search by source...":"Cerca per sorgente...","Search by submitter, source...":"Cerca per utente che ha caricato, sorgente...","Search by title, artist, domain...":"Cerca per titolo, artista, dominio...","Search by username, domain...":"Cerca per nome utente, dominio...","Search by username, email, code...":"Cerca per nome utente, email, codice...","Search by username, email, name...":"Cerca per nome utente, email, nome...","Search for artists, albums, tracks...":"Cerca per artisti, album, tracce...","Search for some music":"Cerca un po' di musica","Search on lyrics.wikia.com":"Cerca su lyrics.wikia.com","Search on Wikipedia":"Cerca su Wikipedia","Search query":"Stringa di ricerca","Sections":"Sezioni","Select a filter":"Seleziona un filtro","Select all %{ total } elements":["Seleziona tutti %{ total } elemento","Seleziona tutti %{ total } elementi"],"Select files to upload...":"Seleziona file da caricare...","Select only current page":"Seleziona solo la pagina attuale","Select relevant sources or files for import":"Seleziona sorgenti adeguate o file da importare","Send a follow request":"Invia una richiesta di seguire","Settings":"Impostazioni","Settings updated":"Impostazioni aggiornate","Settings updated successfully.":"Impostazioni aggiornate con successo.","Settings...":"Impostazioni...","Share link":"Condividi collegamento","Show 1 more album":["Mostra 1 altro album","Mostra %{ count } altri album"],"Show 1 more track":["Mostra 1 altra traccia","Mostra %{ count } altre tracce"],"Show/hide password":"Mostra/nascondi password","Showing results %{ start }-%{ end } on %{ total }":"Mostrando risultati %{ start }-%{ end } su %{ total }","Shuffle your queue":"Mischia la tua coda","Sign Up":"Registrati","Sign-up":"Registrati","Simply copy paste the snippet below into a terminal to launch the download.":"Copia e incolla il codice sottostante in un terminale per iniziare lo scaricamento.","Size":"Dimensione","Skipped":"Saltato","Something's missing in the library? Let us know what you would like to listen!":"Manca qualcosa nella libreria? Facci sapere cosa vorresti ascoltare!","Sorry, we did not found any album matching your query":"Ci dispiace, non abbiamo trovato nessun album corrispondente alla tua ricerca","Sorry, we did not found any artist matching your query":"Ci dispiace, non abbiamo trovato nessun artista corrispondente alla tua ricerca","Source":"Sorgente","Source code":"Codice sorgente","Source code (%{version})":"Codice sorgente (%{version})","Staff member":"Membro dello staff","Start":"Inizia","Start Upload":"Inizia caricamento","Statistics":"Statistiche","Status":"Stato","Stop":"Ferma","Stop radio":"Ferma radio","Stop Upload":"Ferma Caricamento","Submit":"Invia","Submit another request":"Invia un'altra richiesta","Submitted by":"Inviato da","Subsonic":"Subsonic","Subsonic API password":"Password API Subsonic","Success":"Successo","Suggested choices":"Scelte suggerite","Syncing changes to server...":"Sincronizzando le modifiche con il server...","That's simple: we loved Grooveshark and we want to build something even better.":"È molto semplice: amavamo Grooveshark e volevamo creare qualcosa ancora più bello.","The Beatles, Mickael Jackson…":"The Beatles, Michael Jackson…","The funkwhale logo was kindly designed and provided by Francis Gading.":"Il logo di Funkwhale è stato gentilmente disegnato e concesso da Francis Gading.","The plaform is free and open-source, you can install it and modify it without worries":"La piattaforma è libera e open source, puoi installarla e modificarla senza problemi","The Subsonic API is not available on this Funkwhale instance.":"L'API Subsonic non è disponibile su questa istanza Funkwhale.","The White Album, Thriller…":"The White Album, Thriller…","There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.":"Attualmente non c'è modo di scaricare direttamente più tracce da Funkwhale come archivio ZIP. Comunque, puoi usare uno strumento da terminale come cURL per scaricare facilmente una lista di tracce.","This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.":"Questa importazione sarà associata alla richiesta di musica sottostante. Una volta che l'importazione è finita, la richiesta verrà segnata come completata.","This indicate if the remote library granted you access":"Questo indica se la libreria remota ti ha concesso l'accesso","This is you!":"Questo sei tu!","This may affect a lot of elements, please double check this is really what you want.":"Questo può coinvolgere molti elementi, per favore ricontrolla se è proprio quello che vuoi.","This track is not imported and cannot be played":"Questa traccia non è importata e non può essere riprodotta","This will completely delete this playlist and cannot be undone.":"Questo cancellerà questa lista di riproduzione e non può essere annullato.","This will completely delete this radio and cannot be undone.":"Questo cancellerà questa radio e non può essere annullato.","This will completely disable access to the Subsonic API using from account.":"Questo disabiliterà completamente l'accesso alla API Subsonic dagli account.","This will erase your local data and disconnect you, do you want to continue?":"Questo cancellerà i tuoi dati locali e ti disconnetterà , vuoi continuare?","This will log you out from existing devices that use the current password.":"Questo ti disconnetterà dai dispositivi esistenti che utilizzano la password attuale.","This will remove all tracks from this playlist and cannot be undone.":"Questo cancellerà tutte le tracce da questa lista di riproduzione e non può essere annullato.","Title":"Titolo","Track":"Traccia","Track information":"Informazioni traccia","Track matching filter":"Filtro corrispondenze traccia","tracks":"tracce","Tracks":"Tracce","Tracks available in this library":"Tracce disponibili in questa libreria","Tracks by this artist":"Tracce di questo artista","Tracks favorited":"Tracce preferite","tracks listened":"tracce ascoltate","Trigger scan":"Inizia scansione","Type":"Tipo","Unfortunately, owners of this instance did not yet take the time to complete this page.":"Sfortunatamente i proprietari di questa istanza non hanno ancora avuto tempo di completare questa pagina.","Unknown":"Sconosciuto","Unlimited music":"Musica illimitata","Unmute":"Non silenziare","Update avatar":"Aggiorna avatar","Update playlist":"Aggiorna lista di riproduzione","Update settings":"Aggiorna impostazioni","Update your password":"Aggiorna la tua password","Upload":"Carica","Upload a new avatar":"Carica un nuovo avatar","Uploaded files or external source":"File o sorgenti esterne caricati","Uploading...":"Caricamento...","Use another instance":"Usa un'altra istanza","Use this comment box to add details to your request if needed":"Usa questo riquadro di commento per aggiungere dettagli alla tua richiesta se necessario","Use this flag to enable/disable federation with this library":"Usa questa spunta per abilitare/disabilitare la federazione con questa libreria","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"Usa questo modulo per richiedere un reset della password. Ti invieremo una email all'indirizzo fornito con le istruzioni per resettare la tua password.","Use this form to scan an instance and setup federation.":"Usa questo modulo per scansionare un'istanza ed impostare la federazione.","Used":"Usati","User":"Utente","User activity":"Attività utente","User radios":"Radio dell'utente","Username":"Nome utente","Username or email":"Nome utente o email","users":"utenti","Users":"Utenti","View on MusicBrainz":"Vedi su MusicBrainz","We cannot add the track to a playlist":"Non possiamo aggiungere la traccia alla lista di riproduzione","We cannot create the playlist":"Non possiamo creare la lista di riproduzione","We cannot create your account":"Non possiamo creare il tuo account","We cannot log you in":"Non riusciamo a farti accedere","We cannot save your avatar":"Non possiamo salvare il tuo avatar","We cannot save your settings":"Non possiamo salvare le tue impostazioni","We do not track you or bother you with ads":"Noi non ti tracciamo o infastidiamo con pubblicità ","We recommend using Picard for that purpose.":"Ti consigliamo di utilizzare Picard per quello scopo.","We think listening to music should be simple.":"Noi pensiamo che ascoltare musica debba essere semplice.","We're sorry, the page you asked for does not exist:":"Ci dispiace, la pagina che hai richiesto non esiste:","We've received your request, you'll get some groove soon ;)":"Abbiamo ricevuto la tua richiesta, presto avrai da divertirti ;)","Welcome":"Benvenuto","Welcome on Funkwhale":"Benvenuto su Funkwhale","What is metadata?":"Cosa vuol dire metadata?","When enabled, auto importing will automatically import new tracks published in this library":"Quando abilitato, l'importazione automatica importerà autonomamente le nuove tracce pubblicate in questa libreria","Why funkwhale?":"Perchè Funkwhale?","Yes":"Si","Yes, log me out!":"Si, disconnettimi!","You are currently logged in as %{ username }":"Sei attualmente connesso come %{ username }","You can also skip this step and enter metadata manually.":"Puoi anche saltare questo passaggio ed inserire manualmente i metadati.","You can invite friends and family to your instance so they can enjoy your music":"Puoi invitare amici e familiari sulla tua istanza così possono fruire della tua musica","You can use this interface to build your own custom radio, which will play tracks according to your criteria.":"Puoi usare questa interfaccia per creare la tua radio personalizzata, che riprodurrà tracce in accordo con i tuoi criteri.","You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.":"Puoi usarli per godere delle tue liste di riproduzione e musica anche quando non collegato, dal tuo cellulare o tablet, per esempio.","You have a radio playing":"Hai una radio in riproduzione","You need to select an instance in order to continue":"Devi selezionare un'istanza per continuare","You will be logged out from this session and have to log in with the new one":"Sarai disconnesso da questa sessione e dovrai accedere con una nuova","You will have to update your password on your clients that use this password.":"Dovrai aggiornare la tua password sui tuoi dispositivi che utilizzano questa password.","You will import:":"Importerai:","Your email address was confirmed, you can now use the service without limitations.":"Il tuo indirizzo email è stato confermato, ora puoi usare il servizio senza limitazioni.","Your Favorites":"I Tuoi Preferiti","Your music, your way":"La tua musica, il tuo modo di essere","Your password has been updated successfully.":"La tua password è stata aggiornata con successo.","Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password":"La tua password Subsonic sarà cambiata con una nuova e casuale, e sarai disconnesso dai dispositivi che utilizzano ancora la vecchia password Subsonic","%{ count } track was added to your queue":["%{ count } traccia è stata aggiunta alla tua coda","%{ count } tracce sono state aggiunte alla tua coda"]},"oc":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", de %{ artist }","(%{ index } of %{ length })":"(%{ index } sus %{ length })","(empty)":"(voida)","%{ count } on %{ total } selected":["%{ count } sus %{ total } element seleccionat","%{ count } sus %{ total } elements seleccionats"],"%{ count } track":["%{ count } pista","%{ count } pistas"],"%{ count } track in %{ albumsCount } albums":["%{ count } pista dins %{ albumsCount } albums","%{ count } pistas dins %{ albumsCount } albums"],"%{ count } track matching combined filters":["%{ count } pista correspond als filtres seleccionats","%{ count } pistas correspondon als filtres seleccionats"],"%{ count} track":["%{ count} pista","%{ count} pistas"],"%{ hours } h %{ minutes } min":"%{ hours } h %{ minutes } min","%{ minutes } min":"%{ minutes } min","%{ user } favorited a track":"%{ user } a aimat una pista","%{ user } listened to a track":"%{ user } a escotat una pista","%{ username }'s profile":"Perfil de %{ username }","1 album":["1 album","%{ count } albums"],"1 favorite":["1 favorit","%{ count } favorits"],"1 track":["1 piste","%{ count } pistas"],"About %{ instance }":"A prepaus de %{ instance }","About Funkwhale":"A prepaus de Funkwhale","About this instance":"A prepaus d’aquesta instà ncia","Accepted":"Acceptat","Access disabled":"Accès desactivat","Access your music from a clean interface that focus on what really matters":"Accedissètz a vòstra musica d’una interfà cia afinada estant, adaptada a çò que compta vertadièrament","Account active":"Compte actiu","Account settings":"Paramètres del compte","Account Settings":"Paramètres del compte","Account status":"Estat del compte","Account's email":"Adreça electronica del compte","Action %{ action } was launched successfully on %{ count } element":["L’action %{ action } es estada lançada corrèctament sus %{ count } element","L’action %{ action } es estada lançada corrèctament sus %{ count } elements"],"Actions":"Accions","Active":"Actiu","Activity":"Activitat","Actor":"Actor","Add a new library":"Ajustar una nòva bibliotèca","Add filter":"Ajustar de filtres","Add filters to customize your radio":"Ajustar de filtre per dire de personalizar vòstra rà dio","Add to current queue":"Ajustar a la lista de lectura","Add to favorites":"Ajustar als favorits","Add to playlist...":"Ajustar a la lista de lectura...","Add to queue":"Ajustar a la lista","Add to this playlist":"Ajustar a aquesta lista de lectura","Add track":"Ajustar una pista","Admin":"Admin","Administration":"Administracion","Album":"Album","Album %{ title } (%{ count } track) by %{ artist }":["Album %{ title } (%{ count } pista) per %{ artist }","Album %{ title } (%{ count } pistas) per %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Album contenent %{ count } pista, de %{ artist }","Album contenent %{ count } pistas, de %{ artist }"],"Album page":"Pagina de l’album","Albums":"Albums","Albums by this artist":"Albums d’aqueste artista","All":"Tot","An error occured while saving your changes":"Una error s’es producha en enregistrar vòstras modificacions","An unknown error happend, this can mean the server is down or cannot be reached":"Una error desconeguda encontrada, aquò pòt significar que lo servidor es fòra servici o pòt pas èsser atengut","Any":"Totes","API":"API","Approve":"Aprovar","Approve access?":"Aprovar l’accès ?","Approved":"Aprovat","Are you sure you want to log out?":"Volètz vertadièrament vos desconnectar ?","Artist":"Artista","Artist name":"Nom de l’artista","Artist page":"Pagina de l’artista","Artist, album, track...":"Artista, album, pista...","Artists":"Artistas","Ascending":"Ascendent","Ask for a password reset":"Demandar un nòu senhal","Auto importing":"Importacion automatica","Available playlists":"Listas de lectura disponiblas","Avatar":"Avatar","Back to login":"Tornar a la pagina de connexion","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Atencion en acceptar de demandas d’abonament, vòl dire que los seguidors poirà n accedir a vòstra bibliotèca complèta.","Bitrate":"Debit","Browse":"Percórrer","Browse library":"Percórrer la bibliotèca","Browsing artists":"Percórrer los artistas","Browsing federated tracks":"Percórrer las pistas federadas","Browsing followers":"Percórrer los seguidors","Browsing libraries":"Percórrer las bibliotècas","Browsing playlists":"Percórrer las listas de lectura","Browsing radios":"Percórrer las rà dios","Builder":"Editor","By %{ artist }":"De %{ artist }","By confirming, %{ username } will be denied access to your library.":"Se confirmatz, %{ username } poirà pas accedir a vòstra bibliotèca.","By confirming, %{ username } will be granted access to your library.":"Se confirmatz, %{ username } poirà accedir a vòstra bibliotèca.","Cancel":"Anullar","Candidates":"Pistas candidatas","Cannot change your password":"Lo senhal pòt pas se cambiar","Change language":"Cambiar la lenga","Change my password":"Cambiar lo senhal","Change password":"Cambiar lo senhal","Change your password":"Cambiar lo senhal","Change your password?":"Cambiar lo senhal ?","Changes synced with server":"Cambiament sincronizat amb lo servidor","Changing your password will also change your Subsonic API password if you have requested one.":"L’actualizacion de vòstra senhal cambiarà tanben lo de l’API Subsonic se n’avètz un.","Changing your password will have the following consequences":"Lo cambiament de senhal a las consequéncias seguentas","Choose your instance":"Causissètz vòstra instà ncia","Clean library":"Bibliotèca de qualitat","Clear":"Escafar","Clear playlist":"Escafar la lista de lectura","Clear your queue":"Voidar la fila","CLI":"CLI","Click once, listen for hours using built-in radios":"Amb un clic, escotatz d’oras de musica a la rà dio","Closed":"Tampada","Code":"Còdi","Collapse":"Plegar","Comment":"Comentari","Config":"Configuracion","Confirm":"Confirmar","Confirm your email":"Confirmar vòstra adreça electronica","Confirmation code":"Còdi de confirmacion","Copy tracks from current queue to playlist":"Copiar las pistas de la fila a la lista de lectura","Covers, lyrics, our goal is to have them all ;)":"Jaqueta d’albums, paraulas, nòstra tòca es d’o aver tot ;)","Create a funkwhale account":"Crear un compte funkwhale","Create a new playlist":"Crear una nòva lista de lectura","Create an account":"Crear un compte","Create import":"Crear un import","Create my account":"Crear mon compte","Create playlist":"Crear una lista de lectura","Create your own radio":"Crear vòstra pròpria rà dio","Creation date":"Data de creacion","Current avatar":"Avatar actual","Current track":"Pista actuala","Delete":"Suprimir","Delete playlist":"Suprimir la lista de lectura","Delete radio":"Suprimir la rà dio","Deny":"Refusar","Deny access?":"Refusar l’accès ?","Descending":"Descendent","Detail":"Detalhs","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Determina se l’utilizaire es actiu o non. Los compte inactius se pòdon pas connectar nimai utilizar lo servici.","Disable access":"Desactivar l’accès","Disable Subsonic access":"Desactivar l’accès via Subsonic","Disable Subsonic API access?":"Desactivar l’accès a l’API Subsonic ?","Discover how to use Funkwhale from other apps":"Aprenètz a utilizar Funkwhale amb d’autras aplicacions","Display publicly":"Mostrar publicament","Do you want to clear the playlist \"%{ playlist }\"?":"Volètz voidar la lista de lectura « %{ playlist } »  ?","Do you want to confirm this action?":"Volètz confirmar aquesta accion ?","Do you want to delete the playlist \"%{ playlist }\"?":"Volètz suprimir la lista de lectura « %{ playlist } »  ?","Do you want to delete the radio \"%{ radio }\"?":"Volètz suprimir la rà dio « %{ playlist } »  ?","Do you want to launch %{ action } on %{ count } element?":["Volètz lançar l’accion « %{ action } » sus %{ count } element ?","Volètz lançar l’accion « %{ action } » sus %{ count } elements ?"],"Do you want to restore your previous queue?":"Volètz restablir vòstra fila precedenta ?","Documentation":"Documentacion","Download":"Telecargar","Download tracks":"Telecargar las pistas","Drag and drop rows to reorder tracks in the playlist":"Lisatz las linhas per triar las pistas de la lista de lectura","Duration":"Durada","Easy to use":"Simple d’utilizar","Edit instance info":"Editrar las informacions d’aquesta instà ncia","Edit...":"Editar...","Email":"Corrièl","Email address":"Adreça electronica","Email confirmed":"Corrièl confirmat","End edition":"Acabar l’edicion","Ensure your music files are properly tagged before uploading them.":"Verificatz que vòstres fichièrs musicals son corrèctament etiquetats abans de los enviar.","Enter a radio name...":"Escrivètz un nom de rà dio...","Enter an artist name...":"Escrivètz un nom d’artista...","Enter an library domain name...":"Escrivètz un nom de domeni...","Enter an playlist name...":"Escrivètz un nom de lista de lectura...","Enter your email":"Escrivètz vòstre adreça electronica","Enter your invitation code (case insensitive)":"Escrivètz vòstre còdi d’invitacion (pas sensible a la cassa)","Enter your search query...":"Escrivètz vòstra recèrca...","Enter your username":"Escrivètz vòstre nom d’utilizaire","Enter your username or email":"Escrivètz vòstre nom d’utilizaire o corrièl","Error":"Error","Error reporting":"Rapòrt d’error","Error while applying action":"Error en tractar l’accion","Error while asking for a password reset":"Error en demandar un novèl senhal","Error while changing your password":"Error en cambiar lo senhal","Error while confirming your email":"Error en confirmar l’adreça electronica","Error while creating invitation":"Error en crear l’invitacion","Error while saving settings":"Error en enregistrar los paramètres","Error while scanning library":"Error en analizar la bibliotèca","Errored":"Perturbat","Everyone":"Tot lo monde","Everyone on this instance":"Lo monde d’aquesta instà ncia","Exclude":"Exclure","Expand":"Dobrir","Expiration date":"Data d’expiracion","Expired":"Expirada","Expired/used":"Expirada/utilizada","External source. Supported backends":"Font extèrna. Servicis compatibles","Favorites":"Favorits","Federate with a new instance":"Federar amb una nòva instà ncia","Federated tracks":"Pistas federadas","Federation":"Federacion","File mirroring":"Còpia dels fichièrs","File name":"Nom del fichièr","File upload":"MandadÃs del fichièr","Files":"Fichièrs","Filter album types":"Filtrar lo tipe d’album","Filter name":"Nom del filtre","Finish import":"Acabar l’import","Finished":"Acabat","First, choose where you want to import the music from":"D’en primièr, causissètz lo mòde d’import per la musica","Follow":"Seguir","Follow request pending approval":"Abonament en espèra de validacion","Follow status":"Estatut de l’abonament","Followers":"Seguidors","Followers only":"Seguidors solament","Following":"Abonat","from %{ album } by %{ artist }":"de l’album %{ album } per %{ artist }","From album %{ album } by %{ artist }":"De l’album %{ album } per %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwhale es un projècte liure e gratuit, menat per de benevols. Podètz ajudar a melhorar lo servici en senhalar los problèmas que trobatz, en suggerir de melhoraments e ne’n parlant altorn de vos !","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale es compatible amb d’autres lectors de musica compatibles amb l’API Subsonic.","Funkwhale is dead simple to use.":"Funkwhale es simple d’utilizar.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale es concebut per facilitar l’escota de las musicas que vos agradan e descobrir de novèls artistas.","Funkwhale is free and gives you control on your music.":"Funkwhale es a gratÃs e vos dòna lo contròla de vòstra musica.","Funkwhale takes care of handling your music":"Funkwhale prend cura de vòstra musica","Get a new invitation":"Obténer una novèla invitacion","Get me to the library":"Menatz-me a la bibliotèca","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Obtenètz de metadonadas de qualitat per vòstra musica grà cia a\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>","Go":"Zo","Go to home page":"Tornar a l’acuèlh","Grab corresponding metadata":"Recuperar las metadonadas ligadas","Help us translate Funkwhale":"Ajudar a traduire Funkwhale","Home":"Acuèlh","Hours of music":"Oras de musica","However, accessing Funkwhale from those clients require a separate password you can set below.":"Pr’aquò, accedir a Funkwhale d’un client estant demanda un senhal diferent que podètz configurar çai-jos.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Se l’adreça qu’avètz provesida es valida e associada a un compte utilizaire, sètz per recebre un messatge amb las consignas de reïnicializacion d’aquà una estona.","Import":"Import","Import #%{ id } launched":"Import #%{ id } aviat","Import %{ count } track":["Import %{ count } pista","Import %{ count } pistas"],"Import batch":"Part d’import","Import Batch #%{ id }":"Part d’imports #%{ id }","Import batches":"Parts d’imports","Import Batches":"Parts d’imports","Import date":"Data d’import","Import detail page":"Pagina de detalhs de l’import","Import music":"Importar de musica","Import Music":"Importar de musica","Import music from various platforms, such as YouTube or SoundCloud":"Importatz la musica de diferentas plataforma, coma YouTube o Soundcloud","Import pending":"Import en espèra","Import requests":"Requèstas d’import","Import source":"Font de l’import","Import status":"Estatut de l’import","Import this release":"Importar aquesta album","Import this track":"Importar aquesta pista","Imported":"Importat","Imported URL":"URL importadas","Imports":"Imports","In favorites":"Als favorits","In library":"A la bibliotèca","Inactive":"Actiu","Input a MusicBrainz ID manually:":"Picar manualament un ID MasicBrainz :","Input the email address binded to your account":"Escrivètz l’adreça ligada a vòstre compte","Insert from queue (%{ count } track)":["Inserir de la fila (%{ count } pista)","Inserir de la fila (%{ count } pistas)"],"Instance information":"Info. de l’instà ncia","Instance radios":"Rà dios de l’instà ncia","Instance settings":"Paramètres de l’intà ncia","Instance Timeline":"Flux de l’instà ncia","Invitation code":"Còdi d’invitacion","Invitation code (optional)":"Còdi d’invitacion (opcional)","Invitations":"Invitacions","Issue tracker":"Traçador de problèmas","Job ID":"ID de la tasca","Jobs":"Tascas","Keep a track of your favorite songs":"Gardatz una traça de vòstras cançons favoritas","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Gardatz vòstre PRIVATE_TOKEN secrèt estant que permet l’accès a vòstre compte.","Last activity":"Darrièra activitat","Last fetched":"Darrièra recuperacion","Last modification":"Darrièra modificacion","Launch":"Aviar","Launch date":"Data de lançament","Launch scan":"Aviar l’analisi","Learn more about this instance":"Ne saber mai tocant aquesta instà ncia","Leave empty for a random code":"Daissar void per obténer un còdi aleatòri","Leave this field empty if you're requesting the whole discography.":"Daissar aqueste camp void se volètz suggerir totas las discografia.","Libraries":"Bibliotècas","Library":"Bibliotèca","Library files":"Fichièrs de la bibliotèca","Library name":"Nom de la bibliotèca","Library size":"Talha de la bibliotèca","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Ligams","Loading timeline...":"Cargament del flux d’actualitat...","Loading your favorites...":"Cargament de vòstres favorits...","Log In":"Connexion","Log in to your Funkwhale account":"Connectatz-vos a vòstre compte Funkwhale","Log Out":"Desconnexion","Logged in as %{ username }":"Connectat coma %{ username }","Login":"Connexion","Logout":"Desconnexion","Looping disabled. Click to switch to single-track looping.":"Repeticion desactivada. Clicatz per activar la repeticion de la pista actuala.","Looping on a single track. Click to switch to whole queue looping.":"Repeticion de la pista actuala. Clicatz per activar la repeticion de tota la fila.","Looping on whole queue. Click to disable looping.":"Repeticion de tota la fila, clicatz per desactivar la repeticion.","Lyrics":"Paraulas","Manage library":"Gerir la bibliotèca","Manage playlists":"Gerir las listas de lectura","Manage users":"Gerir los utilizaires","Manage your playlists":"Gerir vòstras listas de lectura","Mark as closed":"Marcar coma tampat","Mark as imported":"Marcar coma importat","Metadata":"Metadonadas","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Las metadonadas son d’informacions relativas a la musica que volètz importar. Aquò concerna totas las informacions tocant los artistas, album e pistas. Per dire d’aver de metadonadas de qualitat, es recomandat d’emplegar las metadonadas del projècte\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n , que podètz veire coma lo Wikipèdia de la musica.","Music":"Musica","Music request":"Requèsta musicala","Mute":"Copar lo son","My account":"Mon compte","My awesome playlist":"Ma lista de lectura tròp crana","My awesome radio":"Ma rà dio tròp crana","N/A":"ND","Name":"Nom","New password":"Nòu senhal","New tracks will be appended here automatically.":"Las novèlas pistas serà n automaticament ajustadas aquÃ.","Next step":"Etapa seguenta","Next track":"Pista seguenta","No":"Non","No add-ons, no plugins : you only need a web library":"Cap d’extension d’installar, vos cal pas qu’una bibliotèca sul web","No lyrics available for this track.":"Cap de paraulas pas disponiblas per aquesta pista.","Nobody except me":"Degun fòra ieu","Not following":"Pas abonat","Not imported":"Pas importat","Not used":"Pas utilizat","Official website":"Site oficial","Old password":"Senhal precedent","Once all your files are uploaded, simply click the following button to check the import status.":"Un còp totes los fichièrs cargats, clicatz lo boton seguent per verificar l’estatut de l’import.","Open":"Accès liure","Options":"Opcions","Or":"O","Ordering":"Ã’rdre","Ordering direction":"Direccion","Owner":"Proprietari","Page Not Found":"Pagina pas trobada","Page not found!":"Pagina pas trobada !","Password":"Senhal","Password updated":"Senhal actualizat","Password updated successfully":"Senhal corrèctament modificat","Pause track":"Pausar","Pending":"En espèra","Pending approval":"En espèra de validacion","Pending follow requests":"Demandas d’abonament en espèra","Pending import requests":"Requèstas en espèra","Pending requests":"Requèsta en espèra","Permissions":"Autorizacions","Play":"Legir","Play all":"O legir tot","Play all albums":"Legir totes los albums","Play immediatly":"Legir sulcòp","Play next":"Legir en seguida","Play now":"Legir ara","Play track":"Legir","Playlist":"Lista de lectura","Playlist containing %{ count } track, by %{ username }":["Lista de lectura contenent %{ count } pista, per %{ username }","Lista de lectura contenent %{ count } pistas, per %{ username }"],"Playlist created":"Lista de lectura creada","Playlist editor":"Editor de lista de lectura","Playlist name":"Nom de la lista de lectura","Playlist updated":"Lista de lectura actualizada","Playlist visibility":"Visibilitat de la lista de lectura","Playlists":"Listas de lectura","Playlists? We got them":"Las listas de lectura ? Son aicÃ !","Please double-check your password is correct":"Mercés de verificar que lo senhal es corrèct","Please double-check your username/password couple is correct":"Mercés de verificar que lo nom d’utilizaire e lo senhal son corrècts","PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px.":"PNG, GIF o JPG. 2Mo al maximum. L’imatge serà retalhat en 400×400 pixèls.","Previous step":"Etapa precedenta","Previous track":"Pista precedenta","Proceed to login":"Contunhar cap a la pagina de connexion","Published date":"Data de sortida","Query template":"Modèl de recèrca","Queue":"Fila","Queue shuffled!":"La fila es estada mesclada !","Radio":"Rà dio","Radio Builder":"Editor de rà dio","Radio created":"Nom de la rà dio","Radio name":"Nom de la rà dio","Radio updated":"Rà dio actualizada","Radios":"Rà dios","Recent activity on this instance":"Activitats recentas d’aquesta instà ncia","Recently added":"Ajustats i a res","Recently favorited":"Ajustadas als favorits i a res","Recently listened":"Escotadas i a res","Recording MusicBrainz ID":"ID MuzicBrainz de l’enregistrament","Refresh":"Actualizar","Refused":"Refusat","Registered since %{ date }":"Marcat dempuèi %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"Las inscripcions son tampadas sus aquestà instà ncia, aurètz de téner un còdi d’invitacion per vos marcar.","regular user":"utilizaire estandard","Remove":"Tirar","Remove avatar":"Suprimir l’avatar","Remove from favorites":"Tirar dels favorits","Request a new password":"Demandar un nòu senhal","Request a new Subsonic API password?":"Demandar un nòu senhal per l’API Subsonic ?","Request a password":"Demandar un senhal","Request music":"Demandas de musica","Request some music":"Demandatz de musica","Request submitted!":"Requèsta enviada","Rerun errored jobs":"Tornar aviar las tascas fracassadas","Rerun job":"Reaviar la tasca","Reset your password":"Reïnicializar lo senhal","Result %{ current }/%{ total }":"Resultat %{ current }/%{ total }","Results per page":"Resultats per pagina","Save":"Enregistrar","Scan triggered!":"Analisi aviat !","Search":"Recercar","Search an entity you want to import:":"Recercar una ressorga que volètz importar :","Search by artist, username, comment...":"Recercar per artista, nom d’utilizaire, comentari...","Search by source...":"Recercar per font...","Search by submitter, source...":"Recercar per utilizaire, font...","Search by title, artist, domain...":"Recercar per tÃtol, artista, domeni...","Search by username, domain...":"Recercar per nom d’utilizaire, domeni...","Search by username, email, code...":"Recercar per nom d’utilizaire, corrièl, còdi...","Search by username, email, name...":"Recercar per nom d’utilizaire, corrièl, nom...","Search for artists, albums, tracks...":"Recercar d’artistas, d’albums, de pistas...","Search for some music":"Recercar de musica","Search on lyrics.wikia.com":"Recercar sus lyrics.wikia.com","Search on Wikipedia":"Recercar sus Wikipèdia","Search query":"Recèrca","Sections":"Seccions","Select a filter":"Seleccionar un filtre","Select all %{ total } elements":["Seleccionar l’ensemble dels %{ total } element","Seleccionar l’ensemble dels %{ total } elements"],"Select files to upload...":"Seleccionar los fichièrs per enviar...","Select only current page":"Seleccionar solament la pagina actuala","Select relevant sources or files for import":"Seleccionar las fonts o los fichièrs d’importar","Send a follow request":"Enviar una demanda d’abonament","Settings":"Paramètres","Settings updated":"Paramètres actualizats","Settings updated successfully.":"Paramètres corrèctament modificats.","Settings...":"Paramètres...","Share link":"Ligam de partatge","Show 1 more album":["Mostrar 1 album mai","Mostrar %{ count } albums mai"],"Show 1 more track":["Mostrar 1 pista mai","Mostrar %{ count } pistas mai"],"Show/hide password":"Mostrar/amagar lo senhal","Showing results %{ start }-%{ end } on %{ total }":"Afichatge dels resultats %{ start }-%{ end } sus %{ total }","Shuffle your queue":"Mesclar la fila","Sign Up":"Inscripcion","Sign-up":"Inscripcion","Simply copy paste the snippet below into a terminal to launch the download.":"Copiatz lo tèxte çai-jos dins un terminal per lançar lo telecargament.","Size":"Talha","Skipped":"Ignorat","Something's missing in the library? Let us know what you would like to listen!":"Manca quicòm a la bibliotèca ? Digatz-nos çò que volètz escotar !","Sorry, we did not found any album matching your query":"O planhèm, avèm pas trobat cap d’album que correspond a vòstra recèrca","Sorry, we did not found any artist matching your query":"O planhèm, avèm pas trobat cap d’artista que correspond a vòstra recèrca","Source":"Font","Source code":"Còdi font","Source code (%{version})":"Còdi font (%{version})","Staff member":"Membre de la còla","Start":"Aviar","Start Upload":"Aviar lo mandadÃs","Statistics":"Estatisticas","Status":"Estatut","Stop":"Arrestar","Stop radio":"Arrestar la rà dio","Stop Upload":"Arrestar lo mandadÃs","Submit":"Validar","Submit another request":"Enviar una novèla requèsta","Submitted by":"Prepausat per","Subsonic":"Subsonic","Subsonic API password":"Senhal de l’API Subsonic","Success":"Succès","Suggested choices":"Suggestions","Syncing changes to server...":"Sincronizacion dels cambiaments amb lo servidor...","That's simple: we loved Grooveshark and we want to build something even better.":"Es simple : nos agradava Grooveshark e voliam construire quicòm de melhor.","The Beatles, Mickael Jackson…":"Los Beatles, Mickael Jackson…","The funkwhale logo was kindly designed and provided by Francis Gading.":"Lo logotipe de Funkwhale foguèt dessenhat e fornit per Francis Gading.","The plaform is free and open-source, you can install it and modify it without worries":"La plataforma es gratuita e liura, podètz l’installar e la modificar sens cap de limit","The Subsonic API is not available on this Funkwhale instance.":"L’API Subsonic es pas disponibla per aquesta instà ncia Funkwhale.","The White Album, Thriller…":"L'Album Blanc, Thriller…","There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.":"Es pas possible pel moment de telecargar un ensemble de pistas coma un archiu ZIP. Pr’aquò, podètz utilizar una aisina en linha de comanda coma cURL per telecargar facilament una lista de pistas.","This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.":"Aqueste import serà associat a la requèsta çai-jos. Un còp acabat, la requèsta sera marcada coma completada.","This indicate if the remote library granted you access":"Aquò indica se la bibliotèca alonhada vos a donat l’accès","This is you!":"Sètz vos !","This may affect a lot of elements, please double check this is really what you want.":"Aquesta operacion pòt afectar mantun elements, mercés de verificar s’es ben çò que desiratz.","This track is not imported and cannot be played":"Aquesta pista es pas importada e òm pòt pas la legir","This will completely delete this playlist and cannot be undone.":"Aquò escafarà aquesta lista de lectura per totjorn e poirà pas èsser anullat.","This will completely delete this radio and cannot be undone.":"Aquò escafarà aquesta rà dio per totjorn e poirà pas èsser anullat.","This will completely disable access to the Subsonic API using from account.":"Aquò desactivarà complètament l’accès a l’API Subsonic de vòstre compte estant.","This will erase your local data and disconnect you, do you want to continue?":"Aquò escafarà vòstras donadas localas e vos desconnectarà , volètz contunhar ?","This will log you out from existing devices that use the current password.":"Aquò vos desconnectarà de totes los periferics qu’utilizan aqueste senhal.","This will remove all tracks from this playlist and cannot be undone.":"Aquò escafarà totas las pistas de la lista de lectura e poirà pas èsser anullat.","Title":"TÃtol","Track":"Pista","Track information":"Informacions de la pista","Track matching filter":"Pista correspondent al filtre","tracks":"pistas","Tracks":"Pistas","Tracks available in this library":"Pistas disponiblas dins aquesta bibliotèca","Tracks by this artist":"Pistas d’aqueste artista","Tracks favorited":"Pistas en favorits","tracks listened":"pistas escotadas","Trigger scan":"Aviar un analisi","Type":"Tipe","Unfortunately, owners of this instance did not yet take the time to complete this page.":"Malurosament, los gestionaris d’aquesta instà ncia completèron pas aquesta pagina.","Unknown":"Desconegut","Unlimited music":"Musica sens cap de limit","Unmute":"Restablir lo son","Update avatar":"Actualizar l’avatar","Update playlist":"Actualizar la lista de lectura","Update settings":"Actualizar los paramètres","Update your password":"Actualizar vòstre senhal","Upload":"MandadÃs","Upload a new avatar":"Enviar un nòu avatar","Uploaded files or external source":"Fichièrs enviats o font extèrna","Uploading...":"MandadÃs en cors...","Use another instance":"Utilizar una autra instà ncia","Use this comment box to add details to your request if needed":"Utilizatz aqueste camp per ajustar de detalhs a vòstra demanda, se cal","Use this flag to enable/disable federation with this library":"Utilizatz aqueste paramètre per activar/desactivar la deferacion amb aquesta bibliotèca","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"Garnissètz aqueste formulari per demandar un nòu senhal. Auretz un corrièl a vòstra adreça indicada contenent las consignas de reïnicializacion.","Use this form to scan an instance and setup federation.":"Utilizatz aqueste formulari per analizar lo catalòg d’una instà ncia e establir la federacion.","Used":"Utilizat","User":"Utilizaire","User activity":"Activitat dels utilizaires","User radios":"Rà dios dels utilizaires","Username":"Nom d’utilizaire","Username or email":"Nom d’utilizaire o corrièl","users":"utilizaires","Users":"Utilizaires","View on MusicBrainz":"Veire sus MusicBrainz","We cannot add the track to a playlist":"Podèm pas ajustar aquesta pista a una lista de lectura","We cannot create the playlist":"Podèm pas crear aquesta lista de lectura","We cannot create your account":"Podèm pas crear vòstre compte","We cannot log you in":"Error pendent la connexion","We cannot save your avatar":"Podèm pas enregistrar vòstre avatar","We cannot save your settings":"Podèm pas enregistrar vòstres paramètres","We do not track you or bother you with ads":"Vos pistam pas e vos mostram pas cap de reclama","We recommend using Picard for that purpose.":"Vos recomandam d’utilizar lo logicial Picard per aquò far.","We think listening to music should be simple.":"Pensam que l’accès a la musica deuriá èsser simple.","We're sorry, the page you asked for does not exist:":"O planhèm, la pagina demandada existÃs pas :","We've received your request, you'll get some groove soon ;)":"Avèm ben recebut vòstra requèsta, aurètz lèu de novèlas ;)","Welcome":"La benvenguda","Welcome on Funkwhale":"La benvenguda a Funkwhale","What is metadata?":"Qu’es aquò las metadonadas ?","When enabled, auto importing will automatically import new tracks published in this library":"S’aqueste paramètre es activat, las novèlas pistas ajustadas a aquesta bibliotèca serà n automaticament importadas","Why funkwhale?":"Perque Funkwhale ?","Yes":"Ã’c","Yes, log me out!":"Ã’c-ben, desconnectatz-me !","You are currently logged in as %{ username }":"Sètz connectat coma %{ username }","You can also skip this step and enter metadata manually.":"Podètz passar aquesta etapa e dintrar las metadonadas manualament.","You can invite friends and family to your instance so they can enjoy your music":"Podètz convidar vòstres amics e vòstra familha a aquesta instà ncia per que pòscan profeitar de vòstra musica","You can use this interface to build your own custom radio, which will play tracks according to your criteria.":"Podètz utilizar aquesta interfà cia per realizar vòstra pròpria rà dio personalizada, que jogarà las listas segon los critèris indicats.","You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.":"Podètz los utilizar per profeitar de vòstras listas de lectura e de vòstra musica en mòde fòra linha sus vòstre mobil, tableta, per exemple.","You have a radio playing":"Escotatz una rà dio","You need to select an instance in order to continue":"Vos cal causir una instà ncia per contunhar","You will be logged out from this session and have to log in with the new one":"Sètz per èsser desconnectat d’aquesta session e vos caldrà vos connectar amb lo nòu senhal","You will have to update your password on your clients that use this password.":"Vos caldrà actualizar lo senhal sus totes los clients qu’utilizan aqueste senhal.","You will import:":"Sètz per importar :","Your email address was confirmed, you can now use the service without limitations.":"Vòstra adreça electronica es confirmada, podètz ara utilizar lo servici sens cap de limitacions.","Your Favorites":"Vòstres favorits","Your music, your way":"Vòstra musica, coma volètz","Your password has been updated successfully.":"Vòstre senhal es corrèctament cambiat.","Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password":"Vòstre senhal Subsonic serà remplaçat per un nòu aleatòri, aquò vos desconnectarà de totes los periferics qu’utilizan l’ancian senhal","%{ count } track was added to your queue":["%{ count } pista ajustada a la fila","%{ count } pistas ajustadas a la fila"]},"pl":{"\"%{ title }\", by %{ artist }":"„%{ title }â€, od %{ artist }","(%{ index } of %{ length })":"(%{ index } z %{ length })","(empty)":"(pusta)","%{ count } on %{ total } selected":["%{ count } z %{ total } zaznaczonego","%{ count } z %{ total } zaznaczonych","%{ count } z %{ total } zaznaczonych"],"%{ count } track":["%{ count } utwór","%{ count } utwory","%{ count } utworów"],"%{ count } track in %{ albumsCount } albums":["%{ count } utwór w %{ albumsCount } albumach","%{ count } utwory w %{ albumsCount } albumach","%{ count } utworow w %{ albumsCount } albumach"],"%{ count } track matching combined filters":["%{ count } utwór zgodny z wybranymi filtrami","%{ count } utwory zgodne z wybranymi filtrami","%{ count } utworów zgodnych z wybranymi filtrami"],"%{ count} track":["%{ count} utwór","%{ count} utwory","%{ count} utworów"],"%{ hours } h %{ minutes } min":"%{ hours } godz. %{ minutes } min","%{ minutes } min":"%{ minutes } min","%{ user } favorited a track":"%{ user } dodaÅ‚ utwór do ulubionych","%{ user } listened to a track":"%{ user } sÅ‚uchaÅ‚ utworu","%{ username }'s profile":"Profil %{ username }","1 album":["1 album","%{ count } albumy","%{ count } albumów"],"1 favorite":["1 polubienie","%{ count} polubienia","%{ count} polubieÅ„"],"1 track":["1 utwór","%{ count } utwory","%{ count } utworów"],"About %{ instance }":"O %{ instance }","About Funkwhale":"O Funkwhale","About this instance":"O tej instancji","Accepted":"Zaakceptowano","Access disabled":"Brak dostÄ™pu","Access your music from a clean interface that focus on what really matters":"Uzyskaj dostÄ™p do swojej muzyki z przejrzystego interfejsu skupionego na tym, co naprawdÄ™ ważne","Account active":"Konto aktywne","Account settings":"Ustawienia konta","Account Settings":"Ustawienia konta","Account status":"Stan konta","Account's email":"Adres e-mail konta","Action %{ action } was launched successfully on %{ count } element":["DziaÅ‚anie %{ action } zostaÅ‚o rozpoczÄ™te pomyÅ›lnie na %{ count } elemencie","DziaÅ‚anie %{ action } zostaÅ‚o rozpoczÄ™te pomyÅ›lnie na %{ count } elementach","DziaÅ‚anie %{ action } zostaÅ‚o rozpoczÄ™te pomyÅ›lnie na %{ count } elementach"],"Actions":"DziaÅ‚ania","Active":"Aktywny","Activity":"Aktywność","Actor":"Aktor","Add a new library":"Dodaj nowÄ… bibliotekÄ™","Add filter":"Dodaj filtr","Add filters to customize your radio":"Dodaj filtry aby dostosować swoje radio","Add to current queue":"Dodaj do obecnej kolejki","Add to favorites":"Dodaj do ulubionych","Add to playlist...":"Dodaj do playlisty…","Add to queue":"Dodaj do kolejki","Add to this playlist":"Dodaj do tej playlisty","Add track":"Dodaj utwór","Admin":"Administrator","Administration":"Administracja","Album":"Album","Album %{ title } (%{ count } track) by %{ artist }":["Album %{ title } (%{ count } utwór) od %{ artist }","Album %{ title } (%{ count } utwory) od %{ artist }","Album %{ title } (%{ count } utworów) od %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Album zawiera %{ count } utwór od %{ artist }","Album zawiera %{ count } utwory od %{ artist }","Album zawiera %{ count } utworów od %{ artist }"],"Album page":"Strona albumu","Albums":"Albumy","Albums by this artist":"Albumy tego wykonawcy","All":"Wszystkie","An error occured while saving your changes":"WystÄ…piÅ‚ błąd podczas zapisywania zmian","An unknown error happend, this can mean the server is down or cannot be reached":"WystÄ…piÅ‚ nieznany błąd, może oznaczać to że serwer jest wyłączony lub nieosiÄ…galny","Any":"Dowolne","API":"API","Approve":"Zaakceptuj","Approve access?":"Pozwolić na dostÄ™p?","Approved":"Pozwolono","Are you sure you want to log out?":"Czy na pewno chcesz siÄ™ wylogować?","Artist":"Wykonawca","Artist name":"Nazwa wykonawcy","Artist page":"Strona wykonawcy","Artist, album, track...":"Wykonawca, album, utwór…","Artists":"Wykonawcy","Ascending":"RosnÄ…co","Ask for a password reset":"PoproÅ› o zresetowanie hasÅ‚a","Auto importing":"Automatyczne importowanie","Available playlists":"DostÄ™pne playlisty","Avatar":"Awatar","Back to login":"Wróć do logowania","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Zachowaj ostrożność akceptujÄ…c proÅ›by o możliwość Å›ledzenia, ponieważ Å›ledzÄ…cy bÄ™dzie miaÅ‚ dostÄ™p do caÅ‚ej Twojej biblioteki.","Bitrate":"Bitrate","Browse":"PrzeglÄ…daj","Browse library":"PrzeglÄ…daj bibliotekÄ™","Browsing artists":"PrzeglÄ…danie wykonawców","Browsing federated tracks":"PrzeglÄ…danie sfederowanych utworów","Browsing followers":"PrzeglÄ…danie Å›ledzÄ…cych","Browsing libraries":"PrzeglÄ…danie bibliotek","Browsing playlists":"PrzeglÄ…danie list odtwarzania","Browsing radios":"PrzeglÄ…danie radiów","Builder":"Budowanie","By %{ artist }":"Od %{ artist }","By confirming, %{ username } will be denied access to your library.":"Po potwierdzeniu %{ username } nie bÄ™dzie miaÅ‚ dostÄ™pu do Twojej biblioteki.","By confirming, %{ username } will be granted access to your library.":"Po potwierdzeniu %{ username } uzyska dostÄ™p do Twojej biblioteki.","Cancel":"Anuluj","Candidates":"Kandydaci","Cannot change your password":"Nie udaÅ‚o siÄ™ zmienić Twojego hasÅ‚a","Change language":"ZmieÅ„ jÄ™zyk","Change my password":"ZmieÅ„ moje hasÅ‚o","Change password":"ZmieÅ„ hasÅ‚o","Change your password":"ZmieÅ„ swoje hasÅ‚o","Change your password?":"Zmienić Twoje hasÅ‚o?","Changes synced with server":"Zsynchronizowano zmiany z serwerem","Changing your password will also change your Subsonic API password if you have requested one.":"ZMiana Twojego hasÅ‚a zmieni też Twoje hasÅ‚o API Subsonic, jeżeli uzyskaÅ‚eÅ› je.","Changing your password will have the following consequences":"Zmiana hasÅ‚a bÄ™dzie miaÅ‚a nastÄ™pujÄ…ce konsekwencje","Choose your instance":"Wybierz instancjÄ™","Clean library":"Przejrzysta biblioteka","Clear":"Wyczyść","Clear playlist":"Wyczyść listÄ™ odtwarzania","Clear your queue":"Wyczyść swojÄ… kolejkÄ™","CLI":"CLI","Click once, listen for hours using built-in radios":"NaciÅ›nij raz, sÅ‚uchaj godzinami dziÄ™ki wbudowanemu radio","Closed":"ZamkniÄ™te","Code":"Kod","Collapse":"ZwiÅ„","Comment":"Komentarz","Config":"Konfiguracja","Confirm":"Potwierdź","Confirm your email":"Potwierdź swój e-mail","Confirmation code":"Kod potwierdzajÄ…cy","Copy tracks from current queue to playlist":"Skopiuj utwory z obecnej kolejki do listy odtwarzania","Covers, lyrics, our goal is to have them all ;)":"Covery, teksty, naszym celem jest mieć je wszystkie ;)","Create a funkwhale account":"Utwórz konto funkwhale","Create a new playlist":"Utwórz nowÄ… listÄ™ odtwarzania","Create an account":"Utwórz konto","Create import":"Utwórz importowanie","Create my account":"Utwórz konto","Create playlist":"Utwórz listÄ™ odtwarzania","Create your own radio":"Utwórz wÅ‚asne radio","Creation date":"Data utworzenia","Current avatar":"Obecny awatar","Current track":"Obecny utwór","Delete":"UsuÅ„","Delete playlist":"UsuÅ„ listÄ™ odtwarzania","Delete radio":"UsuÅ„ radio","Deny":"Odmów","Deny access?":"Odmówić dostÄ™pu?","Descending":"MalejÄ…co","Detail":"Szczegół","Determine if the user account is active or not. Inactive users cannot login or use the service.":"OkreÅ›la, czy konto użytkownika jest aktywne. Nieaktywni użytkownicy nie mogÄ… zalogować siÄ™ i korzystać z usÅ‚ugi.","Disable access":"Wyłącz dostÄ™p","Disable Subsonic access":"Wyłącz dostÄ™p Subsonic","Disable Subsonic API access?":"Wyłączyć dostÄ™p do API Subsonic?","Discover how to use Funkwhale from other apps":"Odkryj, jak korzystać z Funkwhale z innych aplikacji","Display publicly":"WyÅ›wietlaj publicznie","Do you want to clear the playlist \"%{ playlist }\"?":"Czy chcesz wyczyÅ›cić listÄ™ odtwarzania „%{ playlist }â€?","Do you want to confirm this action?":"Czy chcesz potwierdzić to dziaÅ‚anie?","Do you want to delete the playlist \"%{ playlist }\"?":"Czy chcesz usunąć listÄ™ odtwarzania „%{ playlist }â€?","Do you want to delete the radio \"%{ radio }\"?":"Czy chcesz usunąć radio „%{ radio }â€?","Do you want to launch %{ action } on %{ count } element?":["Czy chcesz wykonać dziaÅ‚anie %{ action } na %{ count } elemencie?","Czy chcesz wykonać dziaÅ‚anie %{ action } na %{ count } elementach?","Czy chcesz wykonać dziaÅ‚anie %{ action } na %{ count } elementach?"],"Do you want to restore your previous queue?":"Czy chcesz przywrócić poprzedniÄ… kolejkÄ™?","Documentation":"Dokumentacja","Download":"Pobierz","Download tracks":"Pobierz utwory","Drag and drop rows to reorder tracks in the playlist":"PrzeciÄ…gnij i upuść aby zmienić kolejność utworów w liÅ›cie odtwarzania","Duration":"DÅ‚ugość","Easy to use":"Prosty w użyciu","Edit instance info":"Edytuj informacje o instancji","Edit...":"Edytuj…","Email":"E-mail","Email address":"Adres e-mail","Email confirmed":"Potwierdzono e-mail","End edition":"ZakoÅ„cz edytowanie","Ensure your music files are properly tagged before uploading them.":"Upewnij siÄ™, że pliki muzyczne sÄ… odpowiednio otagowane zanim je wyÅ›lesz.","Enter a radio name...":"Wprowadź nazwÄ™ radia…","Enter an artist name...":"Wprowadź nazwÄ™ wykonawcy…","Enter an library domain name...":"Wprowadź nazwÄ™ domeny biblioteki…","Enter an playlist name...":"Wprowadź nazwÄ™ listy odtwarzania…","Enter your email":"Wprowadź swój e-mail","Enter your invitation code (case insensitive)":"Wprowadź swój kod zapraszajÄ…cy (wielkość znaków nie ma znaczenia)","Enter your search query...":"Wprowadź swoje kryterium wyszukiwania…","Enter your username":"Wprowadź swojÄ… nazwÄ™ użytkownika","Enter your username or email":"Wprowadź swojÄ… nazwÄ™ użytkownika lub e-mail","Error":"Błąd","Error reporting":"ZgÅ‚aszanie błędów","Error while applying action":"Błąd podczas zastosowywania dziaÅ‚ania","Error while asking for a password reset":"WystÄ…piÅ‚ błąd podczas proÅ›by o zresetowanie hasÅ‚a","Error while changing your password":"WystÄ…piÅ‚ błąd podczas zmiany hasÅ‚a","Error while confirming your email":"WystÄ…piÅ‚ błąd podczas potwierdzania adresu e-mail","Error while creating invitation":"WystÄ…piÅ‚ błąd podczas tworzenia zaproszenia","Error while saving settings":"WystÄ…piÅ‚ błąd podczas zapisywania ustawieÅ„","Error while scanning library":"WystÄ…piÅ‚ błąd podczas przeszukiwania biblioteki","Errored":"ZakoÅ„czono błędem","Everyone":"Wszyscy","Everyone on this instance":"Wszyscy na tej instancji","Exclude":"Wyłącz","Expand":"RozwiÅ„","Expiration date":"Data wygaÅ›niÄ™cia","Expired":"Wyczerpany","Expired/used":"Wyczerpany/zużyty","External source. Supported backends":"ZewnÄ™trzne źródÅ‚o. ObsÅ‚ugiwane back-endy","Favorites":"Ulubione","Federate with a new instance":"Federuj z nowÄ… instancjÄ…","Federated tracks":"Sfederowane utwory","Federation":"Federacja","File mirroring":"Powielanie plików","File name":"Nazwa pliku","File upload":"WysyÅ‚anie pliku","Files":"Pliki","Filter album types":"Filtruj rodzaje albumów","Filter name":"Filtruj nazwÄ™","Finish import":"ZakoÅ„cz importowanie","Finished":"UkoÅ„czono","First, choose where you want to import the music from":"Najpierw wybierz, skÄ…d chcesz zaimportować muzykÄ™","Follow":"Åšledź","Follow request pending approval":"ProÅ›ba o możliwość Å›ledzenia oczekuje na zatwierdzenie","Follow status":"Stan Å›ledzenia","Followers":"ÅšledzÄ…cy","Followers only":"Tylko dla Å›ledzÄ…cych","Following":"Åšledzisz","from %{ album } by %{ artist }":"z %{ album } od %{ artist }","From album %{ album } by %{ artist }":"Z albumu %{ album } od %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"Funkwhale jest wolnym i otwartoźródÅ‚owym projektem rozwijanym przez wolontariuszy. Możesz pomóc nam ulepszać platformÄ™ zgÅ‚aszajÄ…c błędy, propozycje funkcji i polecajÄ…c projekt znajomym!","Funkwhale is compatible with other music players that support the Subsonic API.":"Funkwhale jest kompatybilny z innymi odtwarzaczami muzycznymi obsÅ‚ugujÄ…cymi API Subsonic.","Funkwhale is dead simple to use.":"Funkwhale jest niezwykle prosty w użyciu.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"Funkwhale zostaÅ‚ zaprojektowany, aby uczynić sÅ‚uchanie muzyki którÄ… lubisz i poznawanie nowych wykonawców prostym.","Funkwhale is free and gives you control on your music.":"Funkwhale jest wolny i oddaje Ci kontrolÄ™ nad TwojÄ… muzykÄ….","Funkwhale takes care of handling your music":"Funkwhale dba o TwojÄ… bibliotekÄ™ muzycznÄ…","Get a new invitation":"Uzyskaj nowe zaproszenie","Get me to the library":"Pokaż mi bibliotekÄ™","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Uzyskaj dobrej jakoÅ›ci metadane o Twojej muzyce dziÄ™ki\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>","Go":"Przejdź","Go to home page":"Przejdź na stronÄ™ głównÄ…","Grab corresponding metadata":"Uzyskaj odpowiednie metadane","Help us translate Funkwhale":"Pomóż nam tÅ‚umaczyć Funkwhale","Home":"Strona główna","Hours of music":"Godziny muzyki","However, accessing Funkwhale from those clients require a separate password you can set below.":"Korzystanie z Funkwhale z tych klientów wymaga jednak oddzielnego hasÅ‚a, które możesz ustawić poniżej.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Jeżeli adres e-mail podany w poprzednim kroku jest prawidÅ‚owy i przypisany do konta użytkownika, powinieneÅ› dostać wiadomość z instrukcjami resetowania hasÅ‚a w przeciÄ…gu kilku minut.","Import":"Importuj","Import #%{ id } launched":"RozpoczÄ™to importowanie #%{ id }","Import %{ count } track":["Importuj %{ count } utwór","Importuj %{ count } utwory","Importuj %{ count } utwów"],"Import batch":"Importowanie wsadowe","Import Batch #%{ id }":"Importowanie wsadowe #%{ id }","Import batches":"Importuj wsadowo","Import Batches":"Importowania wsadowe","Import date":"Data zaimportowania","Import detail page":"Strona szczegółów importowania","Import music":"Importuj muzykÄ™","Import Music":"Importuj muzykÄ™","Import music from various platforms, such as YouTube or SoundCloud":"Importuj muzykÄ™ z różnych platform, takich jak YouTube i SoundCloud","Import pending":"OczekujÄ…ce importowanie","Import requests":"ProÅ›by o zaimportowanie","Import source":"ŹródÅ‚o importu","Import status":"Stan importu","Import this release":"Importuj to wydanie","Import this track":"Importuj ten utwór","Imported":"Zaimportowano","Imported URL":"Zaimportowany URL","Imports":"Importy","In favorites":"W ulubionych","In library":"W bibliotece","Inactive":"Nieaktywny","Input a MusicBrainz ID manually:":"Wprowadź ID MusicBrainz rÄ™cznie:","Input the email address binded to your account":"Wprowadź adres e-mail przypisany do Twojego konta","Insert from queue (%{ count } track)":["Dodaj z kolejki (%{ count } utwór)","Dodaj z kolejki (%{ count } utwory)","Dodaj z kolejki (%{ count } utworów)"],"Instance information":"Informacje o instancji","Instance radios":"Radia instancji","Instance settings":"Ustawienia instancji","Instance Timeline":"OÅ› czasu instancji","Invitation code":"Kod zapraszajÄ…cy","Invitation code (optional)":"Kod zapraszajÄ…cy (nieobowiÄ…zkowy)","Invitations":"Zaproszenia","Issue tracker":"Åšledzenie błędów","Job ID":"ID zadania","Jobs":"Zadania","Keep a track of your favorite songs":"Zachowaj kontrolÄ™ nad ulubionymi utworami","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Zachowaj swój PRIVATE_TOKEN dla siebie, ponieważ daje on dostÄ™p do Twojego konta.","Last activity":"Ostatnia aktywność","Last fetched":"Ostatnio dodane","Last modification":"Ostatnia modyfikacja","Launch":"Uruchom","Launch date":"Data uruchomienia","Launch scan":"Uruchom skanowanie","Learn more about this instance":"Dowiedz siÄ™ wiÄ™cej o tej instancji","Leave empty for a random code":"Pozostaw puste, aby wygenerować kod","Leave this field empty if you're requesting the whole discography.":"Pozostaw to pole puste, jeżeli chcesz całą dyskografiÄ™.","Libraries":"Biblioteki","Library":"Biblioteka","Library files":"Pliki z biblioteki","Library name":"Nazwa biblioteki","Library size":"Rozmiar biblioteki","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"OdnoÅ›niki","Loading timeline...":"Åadowanie osi czasu…","Loading your favorites...":"Åadowanie Twoich ulubionych…","Log In":"Zaloguj siÄ™","Log in to your Funkwhale account":"Zaloguj siÄ™ na swoje konto Funkwhale","Log Out":"Wyloguj siÄ™","Logged in as %{ username }":"Zalogowano jako %{ username }","Login":"Logowanie","Logout":"Wyloguj siÄ™","Looping disabled. Click to switch to single-track looping.":"ZapÄ™tlanie jest wyłączone. NaciÅ›nij, aby przełączyć na powtarzanie jednego utworu.","Looping on a single track. Click to switch to whole queue looping.":"ZapÄ™tlanie jednego utworu jest włączone. NaciÅ›nij, aby przełączyć na powtarzanie caÅ‚ej kolejki.","Looping on whole queue. Click to disable looping.":"ZapÄ™tlanie caÅ‚ej kolejki jest włączone. NaciÅ›nij, aby wyłączyć zapÄ™tlanie.","Lyrics":"Tekst","Manage library":"ZarzÄ…dzaj bibliotekÄ…","Manage playlists":"ZarzÄ…dzaj listami odtwarzania","Manage users":"ZarzÄ…dzaj użytkownikami","Manage your playlists":"ZarzÄ…dzaj swoimi listami odtwarzania","Mark as closed":"Oznacz jako zamkniÄ™tÄ…","Mark as imported":"Oznacz jako zaimportowanÄ…","Metadata":"Metadane","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Metadane to dane zwiÄ…zane z muzykÄ…, którÄ… chcesz zaimportować. ZaliczajÄ… siÄ™ do nicj wszystkie dane o wykonawcy, albumach i utworach. Aby uzyskać dopracowanÄ… bibliotekÄ™, polecamy uzyskać dane z projektu\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>,\n który jest czymÅ› w stylu Wikipedii dla muzyki.","Music":"Muzyka","Music request":"ProÅ›ba o muzykÄ™","Mute":"Wycisz","My account":"Moje konto","My awesome playlist":"Moja wspaniaÅ‚a playlista","My awesome radio":"Moje wspaniaÅ‚e radio","N/A":"N/A","Name":"Nazwa","New password":"Nowe hasÅ‚o","New tracks will be appended here automatically.":"Nowe utwory automatycznie pojawiÄ… siÄ™ tutaj.","Next step":"NastÄ™pny krok","Next track":"NastÄ™pny utwór","No":"Nie","No add-ons, no plugins : you only need a web library":"Brak wtyczek, brak dodatków: potrzebujesz tylko biblioteki sieciowej","No lyrics available for this track.":"Tekst nie jest dostÄ™pny dla tego utworu.","Nobody except me":"Nikt poza mnÄ…","Not following":"Nie Å›ledzisz","Not imported":"Nie zaimportowano","Not used":"Nie użyty","Official website":"Oficjalna strona","Old password":"Poprzednie hasÅ‚o","Once all your files are uploaded, simply click the following button to check the import status.":"Kiedy wszystkie pliki z zostanÄ… wysÅ‚ane, naciÅ›nij nastÄ™pujÄ…cy przycisk, aby sprawdzić stan importowania.","Open":"Otwórz","Options":"Opcje","Or":"Lub","Ordering":"PorzÄ…dkowanie","Ordering direction":"Kolejność porzÄ…dkowania","Owner":"WÅ‚aÅ›ciciel","Page Not Found":"Nie odnaleziono strony","Page not found!":"Nie odnaleziono strony!","Password":"Haslo","Password updated":"Zmieniono hasÅ‚o","Password updated successfully":"PomyÅ›lnie zmieniono hasÅ‚o","Pause track":"Wstrzymaj utwór","Pending":"OczekujÄ…ce","Pending approval":"Oczekiwanie na przyjÄ™cie","Pending follow requests":"OczekujÄ…ce proÅ›by o możliwość Å›ledzenia","Pending import requests":"OczekujÄ…ce proÅ›by o zaimportowanie","Pending requests":"OczekujÄ…ce proÅ›by","Permissions":"Uprawnienia","Play":"Odtwórz","Play all":"Odtwórz wszystkie","Play all albums":"Odtwórz wszystkie albumy","Play immediatly":"Odtwórz natychmiastowo","Play next":"Odtwórz nastÄ™pny","Play now":"Odtwórz teraz","Play track":"Odtwórz utwór","Playlist":"Lista odtwarzania","Playlist containing %{ count } track, by %{ username }":["Lista odtwarzania zawierajÄ…ca %{ count } utwór od %{ username }","Lista odtwarzania zawierajÄ…ca %{ count } utwory od %{ username }","Lista odtwarzania zawierajÄ…ca %{ count } utworów od %{ username }"],"Playlist created":"Utworzono listÄ™ odtwarzania","Playlist editor":"Edytor list odtwarzania","Playlist name":"Nazwa listy odtwarzania","Playlist updated":"Zaktualizowano listÄ™ odtwarzania","Playlist visibility":"Widoczność listy odtwarzania","Playlists":"Listy odtwarzania","Playlists? We got them":"Listy odtwarzania? Mamy je","Please double-check your password is correct":"Sprawdź dwukrotnie, czy Twoje hasÅ‚o jest poprawne","Please double-check your username/password couple is correct":"Sprawdź dwukrotnie, czy połączenie nazwy użytkownika i hasÅ‚a jest poprawne","PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px.":"PNG, GIF lub JPG. Maksymalnie 2MB. Zostanie pomniejszony do 400x400 pikseli.","Previous step":"Poprzedni krok","Previous track":"Poprzedni utwór","Proceed to login":"Przejdź, aby zalogować siÄ™","Published date":"Data opublikowania","Query template":"Szablon zapytania","Queue":"Kolejka","Queue shuffled!":"Wymieszano kolejkÄ™!","Radio":"Radio","Radio Builder":"Tworzenie radia","Radio created":"Utworzono radio","Radio name":"Nazwa radia","Radio updated":"Zaktualizowano radio","Radios":"Radia","Recent activity on this instance":"Ostatnia aktywność na tej instancji","Recently added":"Ostatnio dodane","Recently favorited":"Ostatnio dodane do ulubionych","Recently listened":"Ostatnio sÅ‚uchane","Recording MusicBrainz ID":"ID MusicBrainz nagrania","Refresh":"OdÅ›wież","Refused":"Odmówiono","Registered since %{ date }":"Zarejestrowany od %{ date }","Registration are closed on this instance, you will need an invitation code to signup.":"Rejestracja na tej instancji jest wyłączona, potrzebujesz kodu zapraszajÄ…cego aby zarejestrować siÄ™.","regular user":"zwykÅ‚y użytkownik","Remove":"UsuÅ„","Remove avatar":"UsuÅ„ awatar","Remove from favorites":"UsuÅ„ z ulubionych","Request a new password":"PoproÅ› o nowe hasÅ‚o","Request a new Subsonic API password?":"Poprosić o nowe hasÅ‚o API Subsonic?","Request a password":"PoproÅ› o nowe hasÅ‚o","Request music":"WyÅ›lij proÅ›bÄ™ o muzykÄ™","Request some music":"PoproÅ› o trochÄ™ muzyki","Request submitted!":"WysÅ‚ano proÅ›bÄ™!","Rerun errored jobs":"Uruchom ponownie zadania zakoÅ„czone błędem","Rerun job":"Uruchom ponownie zadanie","Reset your password":"Ustaw nowe hasÅ‚o","Result %{ current }/%{ total }":"Wynik %{ current }/%{ total }","Results per page":"Wyniki na stronÄ™","Save":"Zapisz","Scan triggered!":"WywoÅ‚ano skanowanie!","Search":"Szukaj","Search an entity you want to import:":"Szukaj zawartoÅ›ci którÄ… chcesz zaimportować:","Search by artist, username, comment...":"Szukaj wedÅ‚ug wykonawcy, nazwy użytkownika, komentarzu…","Search by source...":"Szukaj wedÅ‚ug źródÅ‚a…","Search by submitter, source...":"Szukaj wedÅ‚ug wysyÅ‚ajÄ…cego, źródÅ‚a…","Search by title, artist, domain...":"Szukaj wedÅ‚ug tytuÅ‚u, wykonawcy, domeny…","Search by username, domain...":"Szukaj wedÅ‚ug nazwy użytkownika, domeny…","Search by username, email, code...":"Szukaj wedÅ‚ug nazwy użytkownika, adresu e-mail, kodu…","Search by username, email, name...":"Szukaj wedÅ‚ug nazwy użytkownika, adresu e-mail, nazwy…","Search for artists, albums, tracks...":"Szukaj wykonawców, albumów, utworów…","Search for some music":"Wyszukaj trochÄ™ muzyki","Search on lyrics.wikia.com":"Szukaj na lyrics.wikia.com","Search on Wikipedia":"Szukaj na Wikipedii","Search query":"Kryterium wyszukiwania","Sections":"Sekcje","Select a filter":"Zaznacz filtr","Select all %{ total } elements":["Zaznacz %{ total } element","Zaznacz wszystkie %{ total } elementy","Zaznacz wszystkie %{ total } elementów"],"Select files to upload...":"Wybierz pliki do wysÅ‚ania…","Select only current page":"Zaznacz tylko obecnÄ… stronÄ™","Select relevant sources or files for import":"Wybierz odpowiednie źródÅ‚a i pliki do zaimportowania","Send a follow request":"WyÅ›lij proÅ›bÄ™ o możliwość Å›ledzenia","Settings":"Ustawienia","Settings updated":"Zaktualizowano ustawienia","Settings updated successfully.":"PomyÅ›lnie zaktualizowano ustawienia.","Settings...":"Ustawienia…","Share link":"UdostÄ™pnij odnoÅ›nik","Show 1 more album":["Pokaż 1 kolejny album","Pokaż %{ count } kolejne albumy","Pokaż %{ count } kolejnych albumów"],"Show 1 more track":["Pokaż 1 kolejny utwór","Pokaż %{ count } kolejne utwory","Pokaż %{ count } kolejnych utworów"],"Show/hide password":"Pokaż/ukryj hasÅ‚o","Showing results %{ start }-%{ end } on %{ total }":"WyÅ›wietlanie wyników %{ start }-%{ end } z %{ total }","Shuffle your queue":"Wymieszaj kolejkÄ™","Sign Up":"Rejestracja","Sign-up":"Rejestracja","Simply copy paste the snippet below into a terminal to launch the download.":"Po prostu skopiuj i wklej poniższy urywek do terminala aby zacząć pobieranie.","Size":"Rozmiar","Skipped":"PominiÄ™to","Something's missing in the library? Let us know what you would like to listen!":"Brakuje czegoÅ› w bibliotece? Powiedz nam, czego chcesz posÅ‚uchać!","Sorry, we did not found any album matching your query":"Przepraszamy, nie znaleziono albumu speÅ‚niajÄ…cego Twoje kryteria","Sorry, we did not found any artist matching your query":"Przepraszamy, nie znaleziono wykonawcy speÅ‚niajÄ…cego Twoje kryteria","Source":"ŹródÅ‚o","Source code":"Kod źródÅ‚owy","Source code (%{version})":"Kod źródÅ‚owy (%{version})","Staff member":"CzÅ‚onek administracji","Start":"Rozpocznij","Start Upload":"Rozpocznij wysyÅ‚anie","Statistics":"Statystyki","Status":"Stan","Stop":"Zatrzymaj","Stop radio":"Zatrzymaj radio","Stop Upload":"Zatrzymaj wysyÅ‚anie","Submit":"WyÅ›lij","Submit another request":"WyÅ›lij kolejnÄ… proÅ›bÄ™","Submitted by":"WysÅ‚ano przez","Subsonic":"Subsonic","Subsonic API password":"HasÅ‚o API Subsonic","Success":"Powodzenie","Suggested choices":"Polecane wybory","Syncing changes to server...":"Synchronizowanie zmian z serwerem…","That's simple: we loved Grooveshark and we want to build something even better.":"To proste: kochamy Grooveshark i chcemy utworzyć coÅ› jeszcze lepszego.","The Beatles, Mickael Jackson…":"The Beatles, Klocuch…","The funkwhale logo was kindly designed and provided by Francis Gading.":"Logo Funkwhale zostaÅ‚o zaprojektowane i dostarczone przez Francisa Gadinga.","The plaform is free and open-source, you can install it and modify it without worries":"Platforma jest wolna i otwartoźródÅ‚owa, każdy może bez zmartwieÅ„ zainstalować i modyfikować jÄ…","The Subsonic API is not available on this Funkwhale instance.":"API Subsonic nie jest dostÄ™pne na tej instancji Funkwhale.","The White Album, Thriller…":"The White Album, Aezakmi…","There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks.":"Obecnie nie istnieje sposób na bezpoÅ›rednie pobranie wielu utworów z funkwhale jako archiwum ZIP. Możesz jednak użyć narzÄ™dzi takich jak cURL, aby Å‚atwo pobrać listÄ™ utworów.","This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled.":"To importowanie zostanie przypisane do poniższego żądania. Gdy importowanie zakoÅ„czy siÄ™, żądanie zostanie oznaczone jako wypeÅ‚nione.","This indicate if the remote library granted you access":"Wskazuje to, czy masz dostÄ™p do zdalnej biblioteki","This is you!":"To Ty!","This may affect a lot of elements, please double check this is really what you want.":"Może to wpÅ‚ywać na wiele rzeczy, sprawdź dwukrotnie czy to na pewno to, czego chcesz.","This track is not imported and cannot be played":"Ten utwór nie zostaÅ‚ zaimportowany i nie może zostać odtworzony","This will completely delete this playlist and cannot be undone.":"To caÅ‚kowicie usunie listÄ™ odtwarzania i nie może zostać cofniÄ™te.","This will completely delete this radio and cannot be undone.":"To bezpowrotnie usunie radio.","This will completely disable access to the Subsonic API using from account.":"To caÅ‚kowicie wyłączy dostÄ™p do API Subsonic z tego konta.","This will erase your local data and disconnect you, do you want to continue?":"To wyczyÅ›ci Twoje lokalne dane i rozłączy CiÄ™, czy chcesz kontynuować?","This will log you out from existing devices that use the current password.":"To wyloguje CiÄ™ z urzÄ…dzeÅ„ na których jesteÅ› obecnie zalogowany.","This will remove all tracks from this playlist and cannot be undone.":"To bezpowrotnie usunie wszystkie utwory z tej listy odtwarzania.","Title":"TytuÅ‚","Track":"Utwór","Track information":"Informacje o utworze","Track matching filter":"Utwór zgodny z filtrem","tracks":"utwory","Tracks":"Utwory","Tracks available in this library":"Utwory dostÄ™pne w bibliotece","Tracks by this artist":"Utwory tego wykonawcy","Tracks favorited":"Ulubione utwory","tracks listened":"wysÅ‚uchane utwory","Trigger scan":"WywoÅ‚aj skanowanie","Type":"Rodzaj","Unfortunately, owners of this instance did not yet take the time to complete this page.":"Niestety, wÅ‚aÅ›ciciele tej instancji nie znaleźli czasu na wypeÅ‚nienie tej strony.","Unknown":"Nieznany","Unlimited music":"Nieograniczona muzyka","Unmute":"Cofnij wyciszenie","Update avatar":"Aktualizuj awatar","Update playlist":"Aktualizuj listÄ™ odtwarzania","Update settings":"Aktualizuj ustawienia","Update your password":"Aktualizuj swoje hasÅ‚o","Upload":"WyÅ›lij","Upload a new avatar":"Dodaj nowy awatar","Uploaded files or external source":"WysÅ‚ane pliki lub z zewnÄ™trznego źródÅ‚a","Uploading...":"WysyÅ‚anie…","Use another instance":"Skorzystaj z innej instancji","Use this comment box to add details to your request if needed":"Użyj tego pola komentarzy, aby dodać szczegóły zgÅ‚oszenia, jeżeli potrzebne","Use this flag to enable/disable federation with this library":"Użyj tej opcji aby wyłączyć/włączyć federacjÄ™ dla tej biblioteki","Use this form to request a password reset. We will send an email to the given address with instructions to reset your password.":"Użyj tego formularza aby poprosić o zresetowanie hasÅ‚a. Otrzymasz e-mail z instrukcjami resetowania hasÅ‚a na podany adres.","Use this form to scan an instance and setup federation.":"Użyj tego formularza aby przeskanować instancjÄ™ i skonfigurować federacjÄ™.","Used":"Zużyty","User":"Użytkownik","User activity":"Aktywność użytkownika","User radios":"Radia użytkownika","Username":"Nazwa użytkownika","Username or email":"Nazwa użytkownika lub adres e-mail","users":"użytkownicy","Users":"Użytkownicy","View on MusicBrainz":"WyÅ›wietl na MusicBrainz","We cannot add the track to a playlist":"Nie udaÅ‚o siÄ™ dodać tego utworu do listy odtwarzania","We cannot create the playlist":"Nie udaÅ‚o siÄ™ utworzyć listy odtwarzania","We cannot create your account":"Nie udaÅ‚o siÄ™ utworzyć Ci konta","We cannot log you in":"Nie udaÅ‚o siÄ™ zalogować CiÄ™","We cannot save your avatar":"Nie udaÅ‚o siÄ™ zapisać awatara","We cannot save your settings":"Nie udaÅ‚o siÄ™ zapisać ustawieÅ„","We do not track you or bother you with ads":"Nie Å›ledzimy CiÄ™ i nie wyÅ›wietlamy Ci reklam","We recommend using Picard for that purpose.":"Polecamy używać do tego Picard.","We think listening to music should be simple.":"Uważamy, że sÅ‚uchanie muzyki powinno być proste.","We're sorry, the page you asked for does not exist:":"Przepraszamy, strona której szukasz nie istnieje:","We've received your request, you'll get some groove soon ;)":"OtrzymaliÅ›my Twoje zgÅ‚oszenie, wkrótce dostaniesz trochÄ™ groove-u ;)","Welcome":"Witamy","Welcome on Funkwhale":"Witamy na Funkwhale","What is metadata?":"Czym sÄ… metadane?","When enabled, auto importing will automatically import new tracks published in this library":"Jeżeli włączone, automatyczne importowanie bÄ™dzie automatycznie importować nowe utwory opublikowane w tej bibliotece","Why funkwhale?":"Dlaczego funkwhale?","Yes":"Tak","Yes, log me out!":"Tak, wyloguj mnie!","You are currently logged in as %{ username }":"JesteÅ› obecnie zalogowany jako %{ username }","You can also skip this step and enter metadata manually.":"Możesz też pominąć ten krok i wprowadzić metadane rÄ™cznie.","You can invite friends and family to your instance so they can enjoy your music":"Możesz zaprosić znajomych i rodzinÄ™ na swojÄ… instancjÄ™, aby mogli siÄ™ cieszyć dodanÄ… przez Ciebie muzykÄ…","You can use this interface to build your own custom radio, which will play tracks according to your criteria.":"Możesz używać tego interfejsu aby utworzyć wÅ‚asne radio, które bÄ™dzie odtwarzać utwory pasujÄ…ce do Twoich kryteriów.","You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance.":"Możesz używać tego, aby cieszyć siÄ™ muzykÄ… i swojÄ… listÄ… odtwarzania w trybie offline, na przykÅ‚ad na smartfonie i tablecie.","You have a radio playing":"Odtwarzasz radio","You need to select an instance in order to continue":"Musisz wybrać instancjÄ™ aby kontynuować","You will be logged out from this session and have to log in with the new one":"Zostaniesz wylogowany z tej sesji i musisz zalogować siÄ™ nowym hasÅ‚em","You will have to update your password on your clients that use this password.":"BÄ™dziesz musiaÅ‚ zmienić hasÅ‚o na klientach używajÄ…cych tego hasÅ‚a.","You will import:":"Zaimportujesz:","Your email address was confirmed, you can now use the service without limitations.":"Twój adres e-mail zostaÅ‚ potwierdzony, możesz używać usÅ‚ugi bez ograniczeÅ„.","Your Favorites":"Twoje ulubione","Your music, your way":"Twoja muzyka, po Twojemu","Your password has been updated successfully.":"Twoje hasÅ‚o zostaÅ‚o pomyÅ›lnie zmienione.","Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password":"Twoje hasÅ‚o Subsonic zostanie zmienione na nowe, losowe i zostaniesz wylogowany z urzÄ…dzeÅ„ korzystajÄ…cych ze starego hasÅ‚a Subsonic","%{ count } track was added to your queue":["Dodano %{ count } utwór do kolejki","Dodano %{ count } utwory do kolejki","Dodano %{ count } utworów do kolejki"]},"pt_PT":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", de %{ artist }","(empty)":"(vazio)","%{ count } track":["%{ count } tema","%{ count } temas"],"%{ count } track in %{ albumsCount } albums":["%{ count } tema em %{ albumsCount } álbuns","%{ count } temas em %{ albumsCount } álbuns"],"%{ count } track matching combined filters":["%{ count } música corresponde aos filtros selecionados","%{ count } músicas correspondem aos filtros selecionados"],"%{ count} track":["%{ count} música","%{ count } músicas"],"%{ user } favorited a track":"%{ user } gostou de uma música","%{ user } listened to a track":"%{ user } escutou uma música","%{ username }'s profile":"%{ username } perfil","1 album":["1 álbum","%{ count } álbums"],"1 favorite":["1 preferida","%{ count } preferidas"],"1 track":["1 música","%{ count } músicas"],"About %{ instance }":"Sobre %{ instance }","About Funkwhale":"Sobre Funkwhale","About this instance":"Sobre esta instância","Accepted":"Aceitado","Access disabled":"Acesso desativado","Access your music from a clean interface that focus on what really matters":"Acesse sua música a partir de uma interface limpa que se concentra no que realmente importa","Account active":"Conta ativa","Account settings":"Configurações da conta","Account Settings":"Configurações da conta","Account status":"Status da Conta","Account's email":"Email da conta","Action %{ action } was launched successfully on %{ count } element":["A ação %{ action } foi lançada com sucesso em %{ count } item","A ação %{ action } foi lançada com sucesso em %{ count } itens"],"Actions":"Ações","Active":"Ativo","Activity":"Atividade","Actor":"Ator","Add a new library":"Adicione uma nova biblioteca","Add filter":"Adicionar um filtro","Add filters to customize your radio":"Adicione filtros para personalizar seu rádio","Add to current queue":"Adicionar à fila atual","Add to favorites":"Adicionar aos favoritos","Add to playlist...":"Adicionar à Playlist...","Add to queue":"Adicionar à fila","Add to this playlist":"Adicionar a esta playlist","Add track":"Adicionar música","Admin":"Admin","Administration":"Administração","Album":"Ãlbum","Album page":"Página do álbum","Albums":"Ãlbuns","Albums by this artist":"Ãlbuns deste artista","All":"Tudo","An error occured while saving your changes":"Ocorreu um erro ao salvar suas mudanças","An unknown error happend, this can mean the server is down or cannot be reached":"Um erro desconhecido aconteceu, isso pode significar que o servidor está inoperante ou não pode ser alcançado","Any":"Qualquer","API":"API","Approve":"Aprovar","Approve access?":"Aprovar acesso?","Approved":"Aprovado","Are you sure you want to log out?":"Tem certeza que deseja sair?","Artist":"Artista","Artist name":"Nome do artista","Artist page":"Página do artista","Artist, album, track...":"Artista, álbum, música ...","Artists":"Artistas","Ask for a password reset":"Peça uma redefinição de senha","Auto importing":"Importação automática","Available playlists":"Playlists disponÃveis","Avatar":"Avatar","Back to login":"Volte ao login","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Tenha cuidado ao aceitar as solicitações a seguir, pois isso significa que o seguidor terá acesso a toda a sua biblioteca.","Browse":"Procurar","Browse library":"Navegar pela biblioteca","Browsing artists":"Procurando artistas","Browsing federated tracks":"Procurando músicas federadas","Browsing followers":"Navegando seguidores","Browsing libraries":"Navegue por bibliotecas","Browsing playlists":"Procure playlists","Browsing radios":"Procure radios","Builder":"Construtor","By %{ artist }":"Por %{ artist }","By confirming, %{ username } will be denied access to your library.":"Ao confirmar, %{ username } não terá acesso à sua biblioteca.","By confirming, %{ username } will be granted access to your library.":"Ao confirmar, %{ username } terá acesso à sua biblioteca.","Cancel":"Cancelar","Candidates":"Candidatos","Cannot change your password":"Não é possÃvel alterar sua senha","Change language":"Mudar idioma","Change my password":"Mudar minha senha","Change password":"Mudar senha","Change your password":"Mude sua senha","Change your password?":"Mude sua senha?","Changes synced with server":"Modificações sincronizadas com o servidor","Changing your password will also change your Subsonic API password if you have requested one.":"Mudar sua senha também muda sua senha da API Subsonic se você tiver solicitado uma.","Changing your password will have the following consequences":"Alterar sua senha terá as seguintes consequências","Choose your instance":"Escolha sua instância","Clean library":"Biblioteca limpa","Clear":"Claro","Clear playlist":"Limpar playlist","Clear your queue":"Limpar sua fila","CLI":"CLI","Click once, listen for hours using built-in radios":"Clique uma vez, ouça por horas usando rádios","Closed":"Fechado","Code":"Código","Collapse":"Colapso","Comment":"Comentário","Config":"Configuração","Confirm":"Confirme","Confirm your email":"Confirme seu email","Confirmation code":"Código de confirmação","Copy tracks from current queue to playlist":"Copiar músicas da fila atual para a playlist","Covers, lyrics, our goal is to have them all ;)":"Capas, letras, nosso objetivo é tê-los todos ;)","Create a funkwhale account":"Crie uma conta funkwhale","Create a new playlist":"Crie uma nova playlist","Create an account":"Crie a sua conta","Create import":"Criar importação","Create my account":"Criar a minha conta","Create playlist":"Crie uma playlist","Create your own radio":"Crie seu próprio rádio","Creation date":"Data de criação","Current avatar":"Avatar atual","Current track":"Música atual","Delete":"Suprimir","Delete playlist":"Suprimir Playlist","Delete radio":"Suprimir radio","Deny":"Negar","Deny access?":"Negar acesso?","Descending":"Descendente","Detail":"Detalhe","Determine if the user account is active or not. Inactive users cannot login or use the service.":"Determine se a conta do usuário está ativa ou não. Usuários inativos não podem fazer autenticação ou usar o serviço.","Disable access":"Desativar acesso","Disable Subsonic access":"Desativar o acesso a Subsonic","Disable Subsonic API access?":"Desativar o acesso o API Subsonic?","Discover how to use Funkwhale from other apps":"Descubra como usar o Funkwhale em outros aplicativos","Display publicly":"Exibir publicamente","Do you want to clear the playlist \"%{ playlist }\"?":"Você quer limpar a playlist \"%{ playlist }\"?","Do you want to confirm this action?":"Você quer confirmar esta ação?","Do you want to delete the playlist \"%{ playlist }\"?":"Você deseja excluir a playlist \"%{ playlist }\"?","Do you want to delete the radio \"{{ radio }}\"?":"Você deseja excluir a radio \"{{ radio }}\"?","Do you want to launch %{ action } on %{ count } element?":["Deseja lançar %{ action } no %{ count } elemento?","Deseja lançar %{ action } nos %{ count } elementos?"],"Do you want to restore your previous queue?":"Você quer restaurar sua fila anterior?","Documentation":"Documentação","Download":"Descarregar","Download tracks":"Descarregar músicas","Drag and drop rows to reorder tracks in the playlist":"Arraste e solte as linhas para reordenar as músicas da playlist","Duration":"Duração","Easy to use":"Fácil de usar","Edit instance info":"Editar informações da instância","Edit...":"Editar...","Email":"Email","Email address":"Endereço de e-mail","Email confirmed":"E-mail confirmado","Ensure your music files are properly tagged before uploading them.":"Certifique-se de que seus arquivos de música estejam marcados corretamente antes de carregá-los.","Enter a radio name...":"Indicar um nome de rádio ...","Enter an artist name...":"Indicar um nome de artista ...","Enter an library domain name...":"Indicar um nome de domÃnio de biblioteca ...","Enter an playlist name...":"Indicar um nome de playlist...","Enter your email":"Insira seu email","Enter your invitation code (case insensitive)":"Indicar seu código de convite (não diferencia maiúsculas de minúsculas)","Enter your search query...":"Insira sua consulta de pesquisa ...","Enter your username":"Indicar seu nome de usuário","Enter your username or email":"Indicar seu nome de usuário ou email","Error":"Erro","Error reporting":"Relatório de erros","Error while applying action":"Erro ao aplicar a ação","Error while asking for a password reset":"Erro ao solicitar uma redefinição de senha","Error while changing your password":"Erro ao alterar sua senha","Error while confirming your email":"Erro ao confirmar seu email","Error while creating invitation":"Erro ao criar convite","Error while saving settings":"Erro ao salvar configurações","Error while scanning library":"Erro ao verificar biblioteca","Errored":"Errado","Everyone":"Todo o mundo","Everyone on this instance":"Todos nessa instância","Exclude":"Excluir","Expand":"Expandir","Expiration date":"Data de vencimento","Expired":"Expirado","Expired/used":"Expirado / usados","Favorites":"Favoritas","Federate with a new instance":"Federar com uma nova instância","Federated tracks":"Músicas federadas","Federation":"Federação","File name":"Nome do ficheiro","File upload":"Enviar ficheiros","Files":"Ficheiros","Filter album types":"Filtrar tipos de álbuns","Filter name":"Nome do filtro","Finish import":"Acabar a importação","Finished":"Acabado","First, choose where you want to import the music from":"Primeiro, escolha onde você quer importar a música de","Follow":"Segue","Follow request pending approval":"Aprovar a solicitação de seguir pendente","Follow status":"Siga o status","Followers":"Seguidores","Followers only":"Só seguidores","Following":"Seguir","from %{ album } by %{ artist }":"de %{ album } por %{ artist }","From album %{ album } by %{ artist }":"Do álbum %{ album } por %{ artist }","Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!":"O Funkwhale é um projeto gratuito e de código aberto executado por voluntários. Você pode nos ajudar a melhorar a plataforma reportando bugs, sugerindo recursos e compartilhando o projeto com seus amigos!","Funkwhale is compatible with other music players that support the Subsonic API.":"O Funkwhale é compatÃvel com outros players de música que suportam a API Subsonic.","Funkwhale is dead simple to use.":"Funkwhale é muito simples de usar.","Funkwhale is designed to make it easy to listen to music you like, or to discover new artists.":"O Funkwhale foi projetado para facilitar a escuta da música que você gosta ou descobrir novos artistas.","Funkwhale is free and gives you control on your music.":"O Funkwhale é gratuito e permite controlar sua música.","Funkwhale takes care of handling your music":"Funkwhale cuida da sua música","Get a new invitation":"Receba um novo convite","Get me to the library":"Me leve para a biblioteca","Get quality metadata about your music thanks to\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>":"Obtenha metadados de qualidade sobre sua música\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>","Go":"Vá","Go to home page":"Vá para a página inicial","Grab corresponding metadata":"Pegue os metadados correspondentes","Home":"Casa","Hours of music":"Horas de música","However, accessing Funkwhale from those clients require a separate password you can set below.":"No entanto, acessar o Funkwhale desses clientes requer uma senha separada que você pode definir abaixo.","ID":"ID","If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes.":"Se o endereço de e-mail fornecido na etapa anterior for válido e vinculado a uma conta de usuário, você deverá receber um e-mail com instruções de redefinição nos próximos minutos.","Import":"Importação","Import #%{ id } launched":"Importação#%{ id } lançado","Import %{ count } track":["Importar %{ count } música","Importar %{ count } músicas"],"Import batch":"Importa lote","Import Batch #%{ id }":"Importa lote #%{ id }","Import batches":"Importação de lotes","Import Batches":"Importação de lotes","Import date":"Data de importação","Import music":"Importar música","Import Music":"Importar Música","Import music from various platforms, such as YouTube or SoundCloud":"Importe músicas de várias plataformas, como o YouTube ou o SoundCloud","Import pending":"Importação pendente","Import requests":"Solicitações de importação","Import source":"Origem de importação","Import status":"Status de Importação","Import this release":"Importar esta publicação","Import this track":"Importar esta música","Imported":"Importado","Imported URL":"URL importado","Imports":"Importações","In favorites":"Nos favoritos","In library":"Na biblioteca","Inactive":"Inativo","Input a MusicBrainz ID manually:":"Insira um ID do MusicBrainz manualmente:","Input the email address binded to your account":"Insira o endereço de e-mail vinculado à sua conta","Insert from queue (%{ count } track)":["Inserir da fila (%{ count } música)","Inserir da fila (%{ count } músicas)"],"Instance information":"Informação da instância","Instance radios":"Rádios da instância","Instance settings":"Configurações da instância","Instance Timeline":"Linha do tempo da instância","Invitation code":"Código de Convite","Invitation code (optional)":"Código de convite (opcional)","Invitations":"Convites","Issue tracker":"Rastreador de problemas","Keep your PRIVATE_TOKEN secret as it gives access to your account.":"Mantenha o seu PRIVATE_TOKEN segredo, pois dá acesso à sua conta.","Last activity":"Ultima atividade","Last fetched":"Última recuperação","Last modification":"Última modificação","Launch":"Lançamento","Launch date":"Data de lançamento","Learn more about this instance":"Saiba mais sobre esta instância","Leave empty for a random code":"Deixar vazio para um código aleatório","Leave this field empty if you're requesting the whole discography.":"Deixe essa área vazia se você estiver solicitando toda a discografia.","Libraries":"Bibliotecas","Library":"Biblioteca","Library files":"Ficheiros da biblioteca","Library name":"Nome da biblioteca","Library size":"Tamanho da biblioteca","library@demo.funkwhale.audio":"library@demo.funkwhale.audio","Links":"Ligações","Loading timeline...":"Carregando a linha do tempo ...","Loading your favorites...":"Carregando seus favoritos ...","Log In":"Autenticação","Log in to your Funkwhale account":"Logar na sua conta Funkwhale","Log Out":"Sair","Logged in as %{ username }":"Conectado como %{ username }","Login":"Entrar","Logout":"Sair","Looping disabled. Click to switch to single-track looping.":"Looping desativado. Clique para alternar para um loop de musica única.","Looping on a single track. Click to switch to whole queue looping.":"Looping em uma única música. Clique para alternar para todo o loop da fila.","Looping on whole queue. Click to disable looping.":"Looping na fila inteira. Clique para desativar o loop.","Lyrics":"Letras","Manage library":"Gerenciar biblioteca","Manage playlists":"Gerenciar playlists","Manage users":"Gerenciar usuários","Manage your playlists":"Gerenciar suas playlists","Mark as closed":"Marcar como fechado","Mark as imported":"Marcar como importado","Metadata":"Metadados","Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n project, which you can think about as the Wikipedia of music.":"Metadados são os dados relacionados à música que você deseja importar. Isso inclui todas as informações sobre os artistas, álbuns e músicas. Para ter uma biblioteca de alta qualidade, recomenda-se obter dados do\n <a href=\"https://musicbrainz.org\" target=\"_blank\">\n MusicBrainz\n </a>\n projeto, que você pode considerar como a Wikipedia da música.","Music":"Música","Music request":"Pedido de música","Mute":"Mudo","My account":"Minha conta","My awesome playlist":"Minha playlist incrÃvel","My awesome radio":"Meu rádio incrÃvel","Name":"Nome","New password":"Nova senha","New tracks will be appended here automatically.":"Novas músicas serão adicionadas automaticamente aqui.","Next step":"Próxima etapa","Next track":"Música seguinte","No":"Não","No add-ons, no plugins : you only need a web library":"Sem add-ons, sem plugins: você só precisa de uma biblioteca da Web","No lyrics available for this track.":"Nenhuma letra disponÃvel para esta música.","Nobody except me":"Ninguém, exceto eu","Not following":"Não seguir","Not imported":"Não importado","Not used":"Não usado","Official website":"Website oficial","Old password":"Senha Antiga","Once all your files are uploaded, simply click the following button to check the import status.":"Depois que todos os seus ficheiros foram carregados, basta clicar no botão a seguir para verificar o status de importação.","Options":"Opções","Ordering":"Ordenar","Ordering direction":"Direção de ordenar","Owner":"Proprietário","Page Not Found":"Página não encontrada","Page not found!":"Página não encontrada!","Password":"Palavra-passe","Password updated":"Senha atualizada","Password updated successfully":"Senha atualizada com sucesso","Pause track":"Parar música","Pending":"Pendente","Pending approval":"Aprovação pendente","Pending import requests":"Pedidos de importação pendentes","Pending requests":"Solicitações pendentes","Permissions":"Permissões","Play all":"Jogar tudo","Play all albums":"Jogar todos os álbuns","Play immediatly":"Jogar imediatamente","Play next":"Jogar seguinte","Play now":"Jogue agora","Play track":"Jogar mÅ©sica","Playlist":"Playlist","Playlist containing %{ count } track, by %{ username }":["Playlist contendo%{ count } música, por %{ username }","Playlist contendo %{ count } músicas, por %{ username }"],"Playlist created":"Playlist criada","Playlist editor":"Editor de playlist","Playlist name":"Nome da playlist","Playlist updated":"Playlist atualizada","Playlist visibility":"Visibilidade da playlist","Playlists":"Playlists","Please double-check your password is correct":"Por favor, verifique novamente se sua senha está correta"},"sv":{"\"%{ title }\", by %{ artist }":"\"%{ title }\", av %{ artist }","(%{ index } of %{ length })":"(%{ index } av %{ length })","(empty)":"(tom)","%{ count } on %{ total } selected":["%{ count } av %{ total } vald","%{ count } av %{ total } valda"],"%{ count } track":["%{ count } spÃ¥r","%{ count } spÃ¥r"],"%{ count } track in %{ albumsCount } albums":["%{ count } spÃ¥r i %{ albumsCount } album","%{ count } spÃ¥r i %{ albumsCount } album"],"%{ count } track matching combined filters":["%{ count } spÃ¥r som matchar kombinerade filter","%{ count } spÃ¥r som matchar kombinerade filter"],"%{ count} track":["%{ count } spÃ¥r","%{ count } spÃ¥r"],"%{ hours } h %{ minutes } min":"%{ hours } h %{ minutes } min","%{ minutes } min":"%{ minutes } min","%{ user } favorited a track":"%{ user } favoritmarkerade ett spÃ¥r","%{ user } listened to a track":"%{ user } lyssnade pÃ¥ ett spÃ¥r","%{ username }'s profile":"%{ username }s profil","1 album":["1 album","%{ count } album"],"1 favorite":["1 favorit","%{ count } favoriter"],"1 track":["1 spÃ¥r","%{ count } spÃ¥r"],"About %{ instance }":"Om %{ instance }","About Funkwhale":"Om Funkwhale","About this instance":"Om denna instans","Accepted":"Accepterad","Access disabled":"TillgÃ¥ng inaktiverad","Access your music from a clean interface that focus on what really matters":"FÃ¥ tillgÃ¥ng till din musik via ett rent gränssnitt som fokuserar pÃ¥ det som verkligen är viktigt","Account active":"Konto aktivt","Account settings":"Kontoinställningar","Account Settings":"Kontoinställningar","Account status":"Kontostatus","Account's email":"Kontots e-postadress","Action %{ action } was launched successfully on %{ count } element":["Ã…tgärd %{ action } togs framgÃ¥ngrikt pÃ¥ %{ count } element","Ã…tgärd %{ action } togs framgÃ¥ngrikt pÃ¥ %{ count } element"],"Actions":"Ã…tgärder","Active":"Aktiv","Activity":"Aktivitet","Actor":"Aktör","Add a new library":"Lägg till ett nytt bibliotek","Add filter":"Lägg till filter","Add filters to customize your radio":"Lägg till filter för att skräddarsy din radio","Add to current queue":"Lägg till i nuvarande kö","Add to favorites":"Lägg till i favoriter","Add to playlist...":"Lägg till i spellista...","Add to queue":"Lägg till i kö","Add to this playlist":"Lägg till i denna spellista","Add track":"Lägg till spÃ¥r","Admin":"Administratör","Administration":"Administration","Album":"Album","Album %{ title } (%{ count } track) by %{ artist }":["Album %{ title } (%{ count } spÃ¥r) av %{ artist }","Album %{ title } (%{ count } spÃ¥r) av %{ artist }"],"Album containing %{ count } track, by %{ artist }":["Album med %{ count } spÃ¥r, av %{ artist }","Album med %{ count } spÃ¥r, av %{ artist }"],"Album page":"Albumsida","Albums":"Album","Albums by this artist":"Album av denna artist","All":"Allt","An error occured while saving your changes":"Ett fel inträffade när dina ändringar sparades","An unknown error happend, this can mean the server is down or cannot be reached":"Ett okänt fel inträffade, detta kan betyda att servern är nere eller inte kan nÃ¥s","API":"API","Approve":"Godkänn","Approve access?":"Godkänn Ã¥tkomst?","Approved":"Godkännt","Are you sure you want to log out?":"Är du säker pÃ¥ att du vill logga ut?","Artist":"Artist","Artist name":"Artistnamn","Artist page":"Artistsida","Artist, album, track...":"Artist, album, spÃ¥r...","Artists":"Artister","Ascending":"Stigande","Ask for a password reset":"Begär lösenordsÃ¥terställning","Auto importing":"Automatisk import","Available playlists":"Tillgängliga spellistor","Avatar":"Avatar","Back to login":"Tillbaka till inloggning","Be careful when accepting follow requests, as it means the follower will have access to your entire library.":"Var försiktig när du accepterar följare, dÃ¥ det innebär att följaren fÃ¥r tillgÃ¥ng till hela ditt bibliotek.","Bitrate":"Bitrate","Browse":"Bläddra","Browse library":"Bläddra i biblioteket","Browsing artists":"Bläddra artister","By %{ artist }":"Av %{ artist }","By confirming, %{ username } will be denied access to your library.":"Genom att bekräfta kommer %{ username } att nekas Ã¥tkomst till ditt bibliotek.","By confirming, %{ username } will be granted access to your library.":"Genom att godkänna ger du %{ username } tillgÃ¥ng till ditt bibliotek.","Cancel":"Ã…ngra","Candidates":"Kandidater","Cannot change your password":"Kan inte ändra lösenord","Change language":"Ändra sprÃ¥k","Change my password":"Ändra mitt lösenord","Change password":"Ändra lösenord","Change your password":"Ändra ditt lösenord","Change your password?":"Ändra ditt lösenord?","Changes synced with server":"Ändringar synkade med servern","Changing your password will have the following consequences":"Ändring av lösenord har följande konsekvenser","Choose your instance":"Välj din instans"}} \ No newline at end of file diff --git a/front/src/views/admin/library/Base.vue b/front/src/views/admin/library/Base.vue index 65cd1a667ed026196e23b3651acdec04db5d0e95..114f64ac5954d6ef1d5c33a6e7ba0e13e3d55a1f 100644 --- a/front/src/views/admin/library/Base.vue +++ b/front/src/views/admin/library/Base.vue @@ -32,3 +32,12 @@ export default { } } </script> + +<style scoped> + +.ui.menu .item > .label { + position: absolute; + right: -2em; +} + +</style> diff --git a/front/src/views/federation/Base.vue b/front/src/views/federation/Base.vue index 417b3f3f7bf3d731dce93cbdd207c10ee9776467..75628d53e0995f93172f9b8eea99e4b606f9dfb0 100644 --- a/front/src/views/federation/Base.vue +++ b/front/src/views/federation/Base.vue @@ -50,3 +50,12 @@ export default { } } </script> + +<style scoped> + +.ui.menu .item > .label { + position: absolute; + right: -2em; +} + +</style> diff --git a/front/src/views/playlists/Detail.vue b/front/src/views/playlists/Detail.vue index f9d2327759f814ff582769534cf9edcabffc5b04..5e69f4dd1eae989fe4c12a8c7dc031884b196ea3 100644 --- a/front/src/views/playlists/Detail.vue +++ b/front/src/views/playlists/Detail.vue @@ -24,13 +24,13 @@ <play-button class="orange" :tracks="tracks"><translate>Play all</translate></play-button> <button class="ui icon button" - v-if="playlist.user.id === $store.state.auth.profile.id" + v-if="$store.state.auth.profile && playlist.user.id === $store.state.auth.profile.id" @click="edit = !edit"> <i class="pencil icon"></i> <template v-if="edit"><translate>End edition</translate></template> <template v-else><translate>Edit...</translate></template> </button> - <dangerous-button v-if="playlist.user.id === $store.state.auth.profile.id" class="labeled icon" :action="deletePlaylist"> + <dangerous-button v-if="$store.state.auth.profile && playlist.user.id === $store.state.auth.profile.id" class="labeled icon" :action="deletePlaylist"> <i class="trash icon"></i> <translate>Delete</translate> <p slot="modal-header"> <translate :translate-params="{playlist: playlist.name}">Do you want to delete the playlist "%{ playlist }"?</translate> diff --git a/front/static/.gitkeep b/front/static/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/front/static/favicon.png b/front/static/favicon.png deleted file mode 100644 index 0220a4202cf807816c57b0433bed5bc97fa3f875..0000000000000000000000000000000000000000 Binary files a/front/static/favicon.png and /dev/null differ diff --git a/front/test/e2e/custom-assertions/elementCount.js b/front/test/e2e/custom-assertions/elementCount.js deleted file mode 100644 index c0d5fe00af8ecd2541f8d5347be15ed17932f69c..0000000000000000000000000000000000000000 --- a/front/test/e2e/custom-assertions/elementCount.js +++ /dev/null @@ -1,26 +0,0 @@ -// A custom Nightwatch assertion. -// the name of the method is the filename. -// can be used in tests like this: -// -// browser.assert.elementCount(selector, count) -// -// for how to write custom assertions see -// http://nightwatchjs.org/guide#writing-custom-assertions -exports.assertion = function (selector, count) { - this.message = 'Testing if element <' + selector + '> has count: ' + count - this.expected = count - this.pass = function (val) { - return val === this.expected - } - this.value = function (res) { - return res.value - } - this.command = function (cb) { - var self = this - return this.api.execute(function (selector) { - return document.querySelectorAll(selector).length - }, [selector], function (res) { - cb.call(self, res) - }) - } -} diff --git a/front/test/e2e/nightwatch.conf.js b/front/test/e2e/nightwatch.conf.js deleted file mode 100644 index f019c0ac440c7dc531d9b61640b26e28a0ebcee3..0000000000000000000000000000000000000000 --- a/front/test/e2e/nightwatch.conf.js +++ /dev/null @@ -1,46 +0,0 @@ -require('babel-register') -var config = require('../../config') - -// http://nightwatchjs.org/gettingstarted#settings-file -module.exports = { - src_folders: ['test/e2e/specs'], - output_folder: 'test/e2e/reports', - custom_assertions_path: ['test/e2e/custom-assertions'], - - selenium: { - start_process: true, - server_path: require('selenium-server').path, - host: '127.0.0.1', - port: 4444, - cli_args: { - 'webdriver.chrome.driver': require('chromedriver').path - } - }, - - test_settings: { - default: { - selenium_port: 4444, - selenium_host: 'localhost', - silent: true, - globals: { - devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port) - } - }, - - chrome: { - desiredCapabilities: { - browserName: 'chrome', - javascriptEnabled: true, - acceptSslCerts: true - } - }, - - firefox: { - desiredCapabilities: { - browserName: 'firefox', - javascriptEnabled: true, - acceptSslCerts: true - } - } - } -} diff --git a/front/test/e2e/runner.js b/front/test/e2e/runner.js deleted file mode 100644 index 85d67d6bae0a2aa3b86e29a34e3e4f5703c99bbb..0000000000000000000000000000000000000000 --- a/front/test/e2e/runner.js +++ /dev/null @@ -1,33 +0,0 @@ -// 1. start the dev server using production config -process.env.NODE_ENV = 'testing' -var server = require('../../build/dev-server.js') - -server.ready.then(() => { - // 2. run the nightwatch test suite against it - // to run in additional browsers: - // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings" - // 2. add it to the --env flag below - // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox` - // For more information on Nightwatch's config file, see - // http://nightwatchjs.org/guide#settings-file - var opts = process.argv.slice(2) - if (opts.indexOf('--config') === -1) { - opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']) - } - if (opts.indexOf('--env') === -1) { - opts = opts.concat(['--env', 'chrome']) - } - - var spawn = require('cross-spawn') - var runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' }) - - runner.on('exit', function (code) { - server.close() - process.exit(code) - }) - - runner.on('error', function (err) { - server.close() - throw err - }) -}) diff --git a/front/test/e2e/specs/test.js b/front/test/e2e/specs/test.js deleted file mode 100644 index a7b1bd920fd7869da00aabfb2c1ed80382f4c40c..0000000000000000000000000000000000000000 --- a/front/test/e2e/specs/test.js +++ /dev/null @@ -1,19 +0,0 @@ -// For authoring Nightwatch tests, see -// http://nightwatchjs.org/guide#usage - -module.exports = { - 'default e2e tests': function (browser) { - // automatically uses dev Server port from /config.index.js - // default: http://localhost:8080 - // see nightwatch.conf.js - const devServer = browser.globals.devServerURL - - browser - .url(devServer) - .waitForElementVisible('#app', 5000) - .assert.elementPresent('.hello') - .assert.containsText('h1', 'Welcome to Your Vue.js App') - .assert.elementCount('img', 1) - .end() - } -} diff --git a/front/test/unit/index.js b/front/test/unit/index.js deleted file mode 100644 index c69f33fd8a0fb2796073222645c42c7c15188a6e..0000000000000000000000000000000000000000 --- a/front/test/unit/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import Vue from 'vue' - -Vue.config.productionTip = false - -// require all test files (files that ends with .spec.js) -const testsContext = require.context('./specs', true, /\.spec$/) -testsContext.keys().forEach(testsContext) - -// require all src files except main.js for coverage. -// you can also change this to match only the subset of files that -// you want coverage for. -const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/) -srcContext.keys().forEach(srcContext) diff --git a/front/test/unit/karma.conf.js b/front/test/unit/karma.conf.js deleted file mode 100644 index 193aaff7662983b2b428af919c5b18b6e9179303..0000000000000000000000000000000000000000 --- a/front/test/unit/karma.conf.js +++ /dev/null @@ -1,38 +0,0 @@ -// This is a karma config file. For more details see -// http://karma-runner.github.io/0.13/config/configuration-file.html -// we are also using it with karma-webpack -// https://github.com/webpack/karma-webpack - -var webpackConfig = require('../../build/webpack.test.conf') - -module.exports = function (config) { - config.set({ - // to run in additional browsers: - // 1. install corresponding karma launcher - // http://karma-runner.github.io/0.13/config/browsers.html - // 2. add it to the `browsers` array below. - browsers: ['PhantomJS'], - frameworks: ['mocha', 'sinon-stub-promise', 'sinon-chai', 'phantomjs-shim'], - reporters: ['spec', 'coverage'], - files: [ - '../../node_modules/es6-promise/dist/es6-promise.auto.js', - './index.js' - ], - preprocessors: { - './index.js': ['webpack', 'sourcemap'] - }, - captureTimeout: 15000, - retryLimit: 1, - webpack: webpackConfig, - webpackMiddleware: { - noInfo: true - }, - coverageReporter: { - dir: './coverage', - reporters: [ - { type: 'lcov', subdir: '.' }, - { type: 'text-summary' } - ] - } - }) -} diff --git a/front/test/unit/.eslintrc b/front/tests/unit/.eslintrc similarity index 100% rename from front/test/unit/.eslintrc rename to front/tests/unit/.eslintrc diff --git a/front/test/unit/specs/components/common.spec.js b/front/tests/unit/specs/components/common.spec.js similarity index 90% rename from front/test/unit/specs/components/common.spec.js rename to front/tests/unit/specs/components/common.spec.js index 1af4144ca858bb1c264d43cc602994569ce8fc8b..c0ae3a65e666b14170c3be83966e80922b42370e 100644 --- a/front/test/unit/specs/components/common.spec.js +++ b/front/tests/unit/specs/components/common.spec.js @@ -1,3 +1,5 @@ +import {expect} from 'chai' + import Username from '@/components/common/Username.vue' import { render } from '../../utils' diff --git a/front/test/unit/specs/filters/filters.spec.js b/front/tests/unit/specs/filters/filters.spec.js similarity index 97% rename from front/test/unit/specs/filters/filters.spec.js rename to front/tests/unit/specs/filters/filters.spec.js index f4789ca48c640c0da83ab7d89cf148f60270854c..8ee6b4b710bfe6ce5727a3f8797588551516a227 100644 --- a/front/test/unit/specs/filters/filters.spec.js +++ b/front/tests/unit/specs/filters/filters.spec.js @@ -1,3 +1,5 @@ +import {expect} from 'chai' + import {truncate, markdown, ago, capitalize, year} from '@/filters' describe('filters', () => { diff --git a/front/test/unit/specs/store/auth.spec.js b/front/tests/unit/specs/store/auth.spec.js similarity index 94% rename from front/test/unit/specs/store/auth.spec.js rename to front/tests/unit/specs/store/auth.spec.js index 46901cd16edd25ee9be4f7137a8835f1336174fb..05581979fb122e9f4d789d653ef1baa56d827226 100644 --- a/front/test/unit/specs/store/auth.spec.js +++ b/front/tests/unit/specs/store/auth.spec.js @@ -1,4 +1,6 @@ var sinon = require('sinon') +import {expect} from 'chai' + import moxios from 'moxios' import store from '@/store/auth' @@ -8,7 +10,7 @@ describe('store/auth', () => { var sandbox beforeEach(function () { - sandbox = sinon.sandbox.create() + sandbox = sinon.createSandbox() moxios.install() }) afterEach(function () { @@ -84,7 +86,7 @@ describe('store/auth', () => { }) }) describe('actions', () => { - it('logout', (done) => { + it('logout', () => { testAction({ action: store.actions.logout, params: {state: {}}, @@ -96,18 +98,18 @@ describe('store/auth', () => { { type: 'queue/reset', payload: null, options: {root: true} }, { type: 'radios/reset', payload: null, options: {root: true} } ] - }, done) + }) }) - it('check jwt null', (done) => { + it('check jwt null', () => { testAction({ action: store.actions.check, params: {state: {}}, expectedMutations: [ { type: 'authenticated', payload: false } ] - }, done) + }) }) - it('check jwt set', (done) => { + it('check jwt set', () => { testAction({ action: store.actions.check, params: {state: {token: 'test', username: 'user'}}, @@ -118,9 +120,9 @@ describe('store/auth', () => { { type: 'fetchProfile' }, { type: 'refreshToken' } ] - }, done) + }) }) - it('login success', (done) => { + it('login success', () => { moxios.stubRequest('token/', { status: 200, response: { @@ -139,9 +141,9 @@ describe('store/auth', () => { expectedActions: [ { type: 'fetchProfile' } ] - }, done) + }) }) - it('login error', (done) => { + it('login error', () => { moxios.stubRequest('token/', { status: 500, response: { @@ -160,7 +162,7 @@ describe('store/auth', () => { done() }) }) - it('fetchProfile', (done) => { + it('fetchProfile', () => { const profile = { username: 'bob', permissions: { @@ -183,9 +185,9 @@ describe('store/auth', () => { { type: 'favorites/fetch', payload: null, options: {root: true} }, { type: 'playlists/fetchOwn', payload: null, options: {root: true} } ] - }, done) + }) }) - it('refreshToken', (done) => { + it('refreshToken', () => { moxios.stubRequest('token/refresh/', { status: 200, response: {token: 'newtoken'} @@ -196,7 +198,7 @@ describe('store/auth', () => { expectedMutations: [ { type: 'token', payload: 'newtoken' } ] - }, done) + }) }) }) }) diff --git a/front/test/unit/specs/store/favorites.spec.js b/front/tests/unit/specs/store/favorites.spec.js similarity index 92% rename from front/test/unit/specs/store/favorites.spec.js rename to front/tests/unit/specs/store/favorites.spec.js index 6d4314ca661a2ffbb3865d3a4edc53a2b40b1cc8..1c0f29a9de5ae70b7563a8add3dc4a81e79f025c 100644 --- a/front/test/unit/specs/store/favorites.spec.js +++ b/front/tests/unit/specs/store/favorites.spec.js @@ -1,3 +1,5 @@ +import {expect} from 'chai' + import store from '@/store/favorites' import { testAction } from '../../utils' @@ -28,7 +30,7 @@ describe('store/favorites', () => { }) }) describe('actions', () => { - it('toggle true', (done) => { + it('toggle true', () => { testAction({ action: store.actions.toggle, payload: 1, @@ -36,9 +38,9 @@ describe('store/favorites', () => { expectedActions: [ { type: 'set', payload: {id: 1, value: true} } ] - }, done) + }) }) - it('toggle true', (done) => { + it('toggle true', () => { testAction({ action: store.actions.toggle, payload: 1, @@ -46,7 +48,7 @@ describe('store/favorites', () => { expectedActions: [ { type: 'set', payload: {id: 1, value: false} } ] - }, done) + }) }) }) }) diff --git a/front/test/unit/specs/store/instance.spec.js b/front/tests/unit/specs/store/instance.spec.js similarity index 93% rename from front/test/unit/specs/store/instance.spec.js rename to front/tests/unit/specs/store/instance.spec.js index 4b06cb5f029bc0b2180cb4e3aa90854eda4b73b2..b60b1fd477e888f3a4a70b98d940fb05dccebdcb 100644 --- a/front/test/unit/specs/store/instance.spec.js +++ b/front/tests/unit/specs/store/instance.spec.js @@ -1,3 +1,4 @@ +import {expect} from 'chai' var sinon = require('sinon') import moxios from 'moxios' import store from '@/store/instance' @@ -7,7 +8,7 @@ describe('store/instance', () => { var sandbox beforeEach(function () { - sandbox = sinon.sandbox.create() + sandbox = sinon.createSandbox() moxios.install() }) afterEach(function () { @@ -26,7 +27,7 @@ describe('store/instance', () => { }) }) describe('actions', () => { - it('fetchSettings', (done) => { + it('fetchSettings', () => { moxios.stubRequest('instance/settings/', { status: 200, response: [ @@ -64,7 +65,7 @@ describe('store/instance', () => { } } ] - }, done) + }) }) }) }) diff --git a/front/test/unit/specs/store/player.spec.js b/front/tests/unit/specs/store/player.spec.js similarity index 93% rename from front/test/unit/specs/store/player.spec.js rename to front/tests/unit/specs/store/player.spec.js index 1e6c9b33a5fd3c2c43911e4c8ae26e78bd239558..a110bf4c2472ce9dea25128fab1165c7da5118cc 100644 --- a/front/test/unit/specs/store/player.spec.js +++ b/front/tests/unit/specs/store/player.spec.js @@ -1,3 +1,5 @@ +import {expect} from 'chai' + import store from '@/store/player' import { testAction } from '../../utils' @@ -100,7 +102,7 @@ describe('store/player', () => { }) }) describe('actions', () => { - it('incrementVolume', (done) => { + it('incrementVolume', () => { testAction({ action: store.actions.incrementVolume, payload: 0.2, @@ -108,27 +110,27 @@ describe('store/player', () => { expectedMutations: [ { type: 'volume', payload: 0.7 + 0.2 } ] - }, done) + }) }) - it('toggle play false', (done) => { + it('toggle play false', () => { testAction({ action: store.actions.togglePlay, params: {state: {playing: false}}, expectedMutations: [ { type: 'playing', payload: true } ] - }, done) + }) }) - it('toggle play true', (done) => { + it('toggle play true', () => { testAction({ action: store.actions.togglePlay, params: {state: {playing: true}}, expectedMutations: [ { type: 'playing', payload: false } ] - }, done) + }) }) - it('trackEnded', (done) => { + it('trackEnded', () => { testAction({ action: store.actions.trackEnded, payload: {test: 'track'}, @@ -137,9 +139,9 @@ describe('store/player', () => { { type: 'trackListened', payload: {test: 'track'} }, { type: 'queue/next', payload: null, options: {root: true} } ] - }, done) + }) }) - it('trackEnded calls populateQueue if last', (done) => { + it('trackEnded calls populateQueue if last', () => { testAction({ action: store.actions.trackEnded, payload: {test: 'track'}, @@ -149,9 +151,9 @@ describe('store/player', () => { { type: 'radios/populateQueue', payload: null, options: {root: true} }, { type: 'queue/next', payload: null, options: {root: true} } ] - }, done) + }) }) - it('trackErrored', (done) => { + it('trackErrored', () => { testAction({ action: store.actions.trackErrored, payload: {test: 'track'}, @@ -163,16 +165,16 @@ describe('store/player', () => { expectedActions: [ { type: 'queue/next', payload: null, options: {root: true} } ] - }, done) + }) }) - it('updateProgress', (done) => { + it('updateProgress', () => { testAction({ action: store.actions.updateProgress, payload: 1, expectedMutations: [ { type: 'currentTime', payload: 1 } ] - }, done) + }) }) }) }) diff --git a/front/test/unit/specs/store/playlists.spec.js b/front/tests/unit/specs/store/playlists.spec.js similarity index 86% rename from front/test/unit/specs/store/playlists.spec.js rename to front/tests/unit/specs/store/playlists.spec.js index e82af60bbb470f59bae63d1b2fe89ee30ca6bbb5..0fe0c0ae2e1332492580bf56893a14914cb8149a 100644 --- a/front/test/unit/specs/store/playlists.spec.js +++ b/front/tests/unit/specs/store/playlists.spec.js @@ -1,3 +1,4 @@ +import {expect} from 'chai' var sinon = require('sinon') import moxios from 'moxios' import store from '@/store/playlists' @@ -8,7 +9,7 @@ describe('store/playlists', () => { var sandbox beforeEach(function () { - sandbox = sinon.sandbox.create() + sandbox = sinon.createSandbox() moxios.install() }) afterEach(function () { @@ -24,13 +25,13 @@ describe('store/playlists', () => { }) }) describe('actions', () => { - it('fetchOwn does nothing with no user', (done) => { + it('fetchOwn does nothing with no user', () => { testAction({ action: store.actions.fetchOwn, payload: null, params: {state: { playlists: [] }, rootState: {auth: {profile: {}}}}, expectedMutations: [] - }, done) + }) }) }) }) diff --git a/front/test/unit/specs/store/queue.spec.js b/front/tests/unit/specs/store/queue.spec.js similarity index 86% rename from front/test/unit/specs/store/queue.spec.js rename to front/tests/unit/specs/store/queue.spec.js index cc2f04fa087714cd8a0fcb8afc03be87ab9688f9..373f4938e034864d65db318ba82a550fdcc012c4 100644 --- a/front/test/unit/specs/store/queue.spec.js +++ b/front/tests/unit/specs/store/queue.spec.js @@ -1,4 +1,6 @@ var sinon = require('sinon') +import {expect} from 'chai' + import _ from 'lodash' import store from '@/store/queue' @@ -9,7 +11,7 @@ describe('store/queue', () => { beforeEach(function () { // Create a sandbox for the test - sandbox = sinon.sandbox.create() + sandbox = sinon.createSandbox() }) afterEach(function () { @@ -83,7 +85,7 @@ describe('store/queue', () => { }) }) describe('actions', () => { - it('append at end', (done) => { + it('append at end', () => { testAction({ action: store.actions.append, payload: {track: 4, skipPlay: true}, @@ -91,9 +93,9 @@ describe('store/queue', () => { expectedMutations: [ { type: 'insert', payload: {track: 4, index: 3} } ] - }, done) + }) }) - it('append at index', (done) => { + it('append at index', () => { testAction({ action: store.actions.append, payload: {track: 2, index: 1, skipPlay: true}, @@ -101,9 +103,9 @@ describe('store/queue', () => { expectedMutations: [ { type: 'insert', payload: {track: 2, index: 1} } ] - }, done) + }) }) - it('append and play', (done) => { + it('append and play', () => { testAction({ action: store.actions.append, payload: {track: 3}, @@ -114,9 +116,9 @@ describe('store/queue', () => { expectedActions: [ { type: 'resume' } ] - }, done) + }) }) - it('appendMany', (done) => { + it('appendMany', () => { const tracks = [{title: 1}, {title: 2}] testAction({ action: store.actions.appendMany, @@ -127,9 +129,9 @@ describe('store/queue', () => { { type: 'append', payload: {track: tracks[1], index: 1, skipPlay: true} }, { type: 'resume' } ] - }, done) + }) }) - it('appendMany at index', (done) => { + it('appendMany at index', () => { const tracks = [{title: 1}, {title: 2}] testAction({ action: store.actions.appendMany, @@ -140,34 +142,34 @@ describe('store/queue', () => { { type: 'append', payload: {track: tracks[1], index: 2, skipPlay: true} }, { type: 'resume' } ] - }, done) + }) }) - it('cleanTrack after current', (done) => { + it('cleanTrack after current', () => { testAction({ action: store.actions.cleanTrack, payload: 3, - params: {state: {currentIndex: 2}}, + params: {state: {currentIndex: 2, tracks: []}}, expectedMutations: [ { type: 'splice', payload: {start: 3, size: 1} } ] - }, done) + }) }) - it('cleanTrack before current', (done) => { + it('cleanTrack before current', () => { testAction({ action: store.actions.cleanTrack, payload: 1, - params: {state: {currentIndex: 2}}, + params: {state: {currentIndex: 2, tracks: []}}, expectedMutations: [ { type: 'splice', payload: {start: 1, size: 1} }, { type: 'currentIndex', payload: 1 } ] - }, done) + }) }) - it('cleanTrack current', (done) => { + it('cleanTrack current', () => { testAction({ action: store.actions.cleanTrack, payload: 2, - params: {state: {currentIndex: 2}}, + params: {state: {currentIndex: 2, tracks: []}}, expectedMutations: [ { type: 'splice', payload: {start: 2, size: 1} }, { type: 'currentIndex', payload: 2 } @@ -175,88 +177,88 @@ describe('store/queue', () => { expectedActions: [ { type: 'player/stop', payload: null, options: {root: true} } ] - }, done) + }) }) - it('resume when ended', (done) => { + it('resume when ended', () => { testAction({ action: store.actions.resume, params: {state: {ended: true}, rootState: {player: {errored: false}}}, expectedActions: [ { type: 'next' } ] - }, done) + }) }) - it('resume when errored', (done) => { + it('resume when errored', () => { testAction({ action: store.actions.resume, params: {state: {ended: false}, rootState: {player: {errored: true}}}, expectedActions: [ { type: 'next' } ] - }, done) + }) }) - it('skip resume when not ended or not error', (done) => { + it('skip resume when not ended or not error', () => { testAction({ action: store.actions.resume, params: {state: {ended: false}, rootState: {player: {errored: false}}}, expectedActions: [] - }, done) + }) }) - it('previous when at beginning', (done) => { + it('previous when at beginning', () => { testAction({ action: store.actions.previous, params: {state: {currentIndex: 0}}, expectedActions: [ { type: 'currentIndex', payload: 0 } ] - }, done) + }) }) - it('previous after less than 3 seconds of playback', (done) => { + it('previous after less than 3 seconds of playback', () => { testAction({ action: store.actions.previous, params: {state: {currentIndex: 1}, rootState: {player: {currentTime: 1}}}, expectedActions: [ { type: 'currentIndex', payload: 0 } ] - }, done) + }) }) - it('previous after more than 3 seconds of playback', (done) => { + it('previous after more than 3 seconds of playback', () => { testAction({ action: store.actions.previous, params: {state: {currentIndex: 1}, rootState: {player: {currentTime: 3}}}, expectedActions: [ { type: 'currentIndex', payload: 1 } ] - }, done) + }) }) - it('next on last track when looping on queue', (done) => { + it('next on last track when looping on queue', () => { testAction({ action: store.actions.next, params: {state: {tracks: [1, 2], currentIndex: 1}, rootState: {player: {looping: 2}}}, expectedActions: [ { type: 'currentIndex', payload: 0 } ] - }, done) + }) }) - it('next track when last track', (done) => { + it('next track when last track', () => { testAction({ action: store.actions.next, params: {state: {tracks: [1, 2], currentIndex: 1}, rootState: {player: {looping: 0}}}, expectedMutations: [ { type: 'ended', payload: true } ] - }, done) + }) }) - it('next track when not last track', (done) => { + it('next track when not last track', () => { testAction({ action: store.actions.next, params: {state: {tracks: [1, 2], currentIndex: 0}, rootState: {player: {looping: 0}}}, expectedActions: [ { type: 'currentIndex', payload: 1 } ] - }, done) + }) }) - it('currentIndex', (done) => { + it('currentIndex', () => { testAction({ action: store.actions.currentIndex, payload: 1, @@ -268,9 +270,9 @@ describe('store/queue', () => { { type: 'player/errored', payload: false, options: {root: true} }, { type: 'currentIndex', payload: 1 } ] - }, done) + }) }) - it('currentIndex with radio and many tracks remaining', (done) => { + it('currentIndex with radio and many tracks remaining', () => { testAction({ action: store.actions.currentIndex, payload: 1, @@ -282,9 +284,9 @@ describe('store/queue', () => { { type: 'player/errored', payload: false, options: {root: true} }, { type: 'currentIndex', payload: 1 } ] - }, done) + }) }) - it('currentIndex with radio and less than two tracks remaining', (done) => { + it('currentIndex with radio and less than two tracks remaining', () => { testAction({ action: store.actions.currentIndex, payload: 1, @@ -299,9 +301,9 @@ describe('store/queue', () => { expectedActions: [ { type: 'radios/populateQueue', payload: null, options: {root: true} } ] - }, done) + }) }) - it('clean', (done) => { + it('clean', () => { testAction({ action: store.actions.clean, expectedMutations: [ @@ -313,9 +315,9 @@ describe('store/queue', () => { { type: 'player/stop', payload: null, options: {root: true} }, { type: 'currentIndex', payload: -1 } ] - }, done) + }) }) - it('shuffle', (done) => { + it('shuffle', () => { let _shuffle = sandbox.stub(_, 'shuffle') let tracks = ['a', 'b', 'c', 'd', 'e'] let shuffledTracks = ['e', 'd', 'c'] @@ -329,7 +331,7 @@ describe('store/queue', () => { expectedActions: [ { type: 'appendMany', payload: {tracks: ['a', 'b'].concat(shuffledTracks)} } ] - }, done) + }) }) }) }) diff --git a/front/test/unit/specs/store/radios.spec.js b/front/tests/unit/specs/store/radios.spec.js similarity index 85% rename from front/test/unit/specs/store/radios.spec.js rename to front/tests/unit/specs/store/radios.spec.js index 3a8c48f04ec942ee8ecf8d71c8a64a4e009987ab..ff14f6145cd91a2326f01b3967bac82cb1f66797 100644 --- a/front/test/unit/specs/store/radios.spec.js +++ b/front/tests/unit/specs/store/radios.spec.js @@ -1,4 +1,6 @@ var sinon = require('sinon') +import {expect} from 'chai' + import moxios from 'moxios' import store from '@/store/radios' import { testAction } from '../../utils' @@ -7,7 +9,7 @@ describe('store/radios', () => { var sandbox beforeEach(function () { - sandbox = sinon.sandbox.create() + sandbox = sinon.createSandbox() moxios.install() }) afterEach(function () { @@ -28,7 +30,7 @@ describe('store/radios', () => { }) }) describe('actions', () => { - it('start', (done) => { + it('start', () => { moxios.stubRequest('radios/sessions/', { status: 200, response: {id: 2} @@ -51,23 +53,23 @@ describe('store/radios', () => { expectedActions: [ { type: 'populateQueue' } ] - }, done) + }) }) - it('stop', (done) => { - testAction({ + it('stop', () => { + return testAction({ action: store.actions.stop, expectedMutations: [ { type: 'current', payload: null }, { type: 'running', payload: false } ] - }, done) + }) }) - it('populateQueue', (done) => { + it('populateQueue', () => { moxios.stubRequest('radios/tracks/', { status: 201, response: {track: {id: 1}} }) - testAction({ + return testAction({ action: store.actions.populateQueue, params: { state: {running: true, current: {session: 1}}, @@ -77,17 +79,17 @@ describe('store/radios', () => { expectedActions: [ { type: 'queue/append', payload: {track: {id: 1}}, options: {root: true} } ] - }, done) + }) }) - it('populateQueue does nothing when not running', (done) => { + it('populateQueue does nothing when not running', () => { testAction({ action: store.actions.populateQueue, params: {state: {running: false}}, expectedActions: [] - }, done) + }) }) - it('populateQueue does nothing when too much errors', (done) => { - testAction({ + it('populateQueue does nothing when too much errors', () => { + return testAction({ action: store.actions.populateQueue, payload: {test: 'track'}, params: { @@ -95,7 +97,7 @@ describe('store/radios', () => { state: {running: true} }, expectedActions: [] - }, done) + }) }) }) }) diff --git a/front/test/unit/specs/store/ui.spec.js b/front/tests/unit/specs/store/ui.spec.js similarity index 94% rename from front/test/unit/specs/store/ui.spec.js rename to front/tests/unit/specs/store/ui.spec.js index ddce055a571e887a3b7bf3bcefdff901e033ea40..2f810e064346355f7df8b2fbaec8ac9d1df1ff0e 100644 --- a/front/test/unit/specs/store/ui.spec.js +++ b/front/tests/unit/specs/store/ui.spec.js @@ -1,3 +1,4 @@ +import {expect} from 'chai' import store from '@/store/ui' describe('store/ui', () => { diff --git a/front/test/unit/utils.js b/front/tests/unit/utils.js similarity index 74% rename from front/test/unit/utils.js rename to front/tests/unit/utils.js index 6471fc97f710385ff20dcfe2fdd4ee9ac7b9ec36..642b3b5098b7f846f9a2ead9b7ab7e14f56f8127 100644 --- a/front/test/unit/utils.js +++ b/front/tests/unit/utils.js @@ -1,5 +1,7 @@ // helper for testing action with expected mutations import Vue from 'vue' +import {expect} from 'chai' + export const render = (Component, propsData) => { const Constructor = Vue.extend(Component) @@ -23,38 +25,32 @@ export const testAction = ({action, payload, params, expectedMutations, expected const commit = (type, payload) => { const mutation = expectedMutations[mutationsCount] - try { - expect(mutation.type).to.equal(type) - if (payload) { - expect(mutation.payload).to.deep.equal(payload) - } - } catch (error) { - done(error) + expect(mutation.type).to.equal(type) + if (payload) { + expect(mutation.payload).to.deep.equal(payload) } mutationsCount++ if (isOver()) { - done() + return } } // mock dispatch const dispatch = (type, payload, options) => { const a = expectedActions[actionsCount] - try { - expect(a.type).to.equal(type) - if (payload) { - expect(a.payload).to.deep.equal(payload) - } - if (a.options) { - expect(options).to.deep.equal(a.options) - } - } catch (error) { - done(error) + if (!a) { + throw Error(`Unexecpted action ${type}`) + } + expect(a.type).to.equal(type) + if (payload) { + expect(a.payload).to.deep.equal(payload) + } + if (a.options) { + expect(options).to.deep.equal(a.options) } - actionsCount++ if (isOver()) { - done() + return } } @@ -67,13 +63,14 @@ export const testAction = ({action, payload, params, expectedMutations, expected expect(actionsCount).to.equal(0) } if (isOver()) { - done() + return } } // call the action with mocked store and arguments let promise = action({ commit, dispatch, ...params }, payload) if (promise) { - return promise.then(end) + promise.then(end) + return promise } else { return end() } diff --git a/front/vue.config.js b/front/vue.config.js new file mode 100644 index 0000000000000000000000000000000000000000..243c8bc0f571496ac871b837cd83ff01ce0e7245 --- /dev/null +++ b/front/vue.config.js @@ -0,0 +1,41 @@ + +module.exports = { + configureWebpack: { + resolve: { + alias: { + 'vue$': 'vue/dist/vue.esm.js' + } + } + }, + devServer: { + disableHostCheck: true, + proxy: { + '^/rest': { + target: 'http://nginx:6001', + changeOrigin: true, + }, + '^/staticfiles': { + target: 'http://nginx:6001', + changeOrigin: true, + }, + '^/.well-known': { + target: 'http://nginx:6001', + changeOrigin: true, + }, + '^/media': { + target: 'http://nginx:6001', + changeOrigin: true, + }, + '^/federation': { + target: 'http://nginx:6001', + changeOrigin: true, + ws: true, + }, + '^/api': { + target: 'http://nginx:6001', + changeOrigin: true, + ws: true, + }, + } + } +} diff --git a/front/yarn.lock b/front/yarn.lock index 5c69d78893cdf414feba6c5412acbba6edb4f380..b3d6a460b9a089424ed76e390f02445b5fcd6cc6 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -2,11 +2,672 @@ # yarn lockfile v1 -"@panter/vue-i18next@^0.9.1": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@panter/vue-i18next/-/vue-i18next-0.9.1.tgz#a24694d37b7e2f54f67ac8a485f634203660e98d" +"@babel/code-frame@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" + dependencies: + "@babel/highlight" "7.0.0-beta.44" + +"@babel/code-frame@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz#d18c2f4c4ba8d093a2bcfab5616593bfe2441a27" + dependencies: + "@babel/highlight" "7.0.0-beta.47" + +"@babel/core@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-beta.47.tgz#b9c164fb9a1e1083f067c236a9da1d7a7d759271" + dependencies: + "@babel/code-frame" "7.0.0-beta.47" + "@babel/generator" "7.0.0-beta.47" + "@babel/helpers" "7.0.0-beta.47" + "@babel/template" "7.0.0-beta.47" + "@babel/traverse" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + babylon "7.0.0-beta.47" + convert-source-map "^1.1.0" + debug "^3.1.0" + json5 "^0.5.0" + lodash "^4.17.5" + micromatch "^2.3.11" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" + dependencies: + "@babel/types" "7.0.0-beta.44" + jsesc "^2.5.1" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/generator@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.47.tgz#1835709f377cc4d2a4affee6d9258a10bbf3b9d1" + dependencies: + "@babel/types" "7.0.0-beta.47" + jsesc "^2.5.1" + lodash "^4.17.5" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.47.tgz#354fb596055d9db369211bf075f0d5e93904d6f6" + dependencies: + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.47.tgz#d5917c29ee3d68abc2c72f604bc043f6e056e907" + dependencies: + "@babel/helper-explode-assignable-expression" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-call-delegate@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.47.tgz#96b7804397075f722a4030d3876f51ec19d8829b" + dependencies: + "@babel/helper-hoist-variables" "7.0.0-beta.47" + "@babel/traverse" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-define-map@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.47.tgz#43a9def87c5166dc29630d51b3da9cc4320c131c" + dependencies: + "@babel/helper-function-name" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + lodash "^4.17.5" + +"@babel/helper-explode-assignable-expression@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.47.tgz#56b688e282a698f4d1cf135453a11ae8af870a19" + dependencies: + "@babel/traverse" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-function-name@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.44" + "@babel/template" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-function-name@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.47.tgz#8057d63e951e85c57c02cdfe55ad7608d73ffb7d" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.47" + "@babel/template" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-get-function-arity@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" + dependencies: + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-get-function-arity@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.47.tgz#2de04f97c14b094b55899d3fa83144a16d207510" + dependencies: + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-hoist-variables@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.47.tgz#ce295d1d723fe22b2820eaec748ed701aa5ae3d0" + dependencies: + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-member-expression-to-functions@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.47.tgz#35bfcf1d16dce481ef3dec66d5a1ae6a7d80bb45" + dependencies: + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-module-imports@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.47.tgz#5af072029ffcfbece6ffbaf5d9984c75580f3f04" + dependencies: + "@babel/types" "7.0.0-beta.47" + lodash "^4.17.5" + +"@babel/helper-module-transforms@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.47.tgz#7eff91fc96873bd7b8d816698f1a69bbc01f3c38" + dependencies: + "@babel/helper-module-imports" "7.0.0-beta.47" + "@babel/helper-simple-access" "7.0.0-beta.47" + "@babel/helper-split-export-declaration" "7.0.0-beta.47" + "@babel/template" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + lodash "^4.17.5" + +"@babel/helper-optimise-call-expression@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.47.tgz#085d864d0613c5813c1b7c71b61bea36f195929e" + dependencies: + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-plugin-utils@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.47.tgz#4f564117ec39f96cf60fafcde35c9ddce0e008fd" + +"@babel/helper-regex@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.47.tgz#b8e3b53132c4edbb04804242c02ffe4d60316971" + dependencies: + lodash "^4.17.5" + +"@babel/helper-remap-async-to-generator@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.47.tgz#444dc362f61470bd61a745ebb364431d9ca186c2" + dependencies: + "@babel/helper-annotate-as-pure" "7.0.0-beta.47" + "@babel/helper-wrap-function" "7.0.0-beta.47" + "@babel/template" "7.0.0-beta.47" + "@babel/traverse" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-replace-supers@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.47.tgz#310b206a302868a792b659455ceba27db686cbb7" + dependencies: + "@babel/helper-member-expression-to-functions" "7.0.0-beta.47" + "@babel/helper-optimise-call-expression" "7.0.0-beta.47" + "@babel/traverse" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-simple-access@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.47.tgz#234d754acbda9251a10db697ef50181eab125042" + dependencies: + "@babel/template" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + lodash "^4.17.5" + +"@babel/helper-split-export-declaration@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" + dependencies: + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-split-export-declaration@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz#e11277855472d8d83baf22f2d0186c4a2059b09a" + dependencies: + "@babel/types" "7.0.0-beta.47" + +"@babel/helper-wrap-function@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.47.tgz#6528b44a3ccb4f3aeeb79add0a88192f7eb81161" + dependencies: + "@babel/helper-function-name" "7.0.0-beta.47" + "@babel/template" "7.0.0-beta.47" + "@babel/traverse" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/helpers@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-beta.47.tgz#f9b42ed2e4d5f75ec0fb2e792c173e451e8d40fd" + dependencies: + "@babel/template" "7.0.0-beta.47" + "@babel/traverse" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + +"@babel/highlight@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/highlight@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.47.tgz#8fbc83fb2a21f0bd2b95cdbeb238cf9689cad494" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/plugin-proposal-async-generator-functions@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.47.tgz#571142284708c5ad4ec904d9aa705461a010be53" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-remap-async-to-generator" "7.0.0-beta.47" + "@babel/plugin-syntax-async-generators" "7.0.0-beta.47" + +"@babel/plugin-proposal-class-properties@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.47.tgz#08c1a1dfc92d0f5c37b39096c6fb883e1ca4b0f5" + dependencies: + "@babel/helper-function-name" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-replace-supers" "7.0.0-beta.47" + "@babel/plugin-syntax-class-properties" "7.0.0-beta.47" + +"@babel/plugin-proposal-decorators@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0-beta.47.tgz#5e8943c8f8eb3301f911ef0dcd3ed64cf28c723e" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/plugin-syntax-decorators" "7.0.0-beta.47" + +"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.47.tgz#e1529fddc88e948868ee1d0edaa27ebd9502322d" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.47" + +"@babel/plugin-proposal-optional-catch-binding@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.47.tgz#8c6453919537517ea773bb8f3fceda4250795efa" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.47" + +"@babel/plugin-proposal-unicode-property-regex@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.47.tgz#34d7e4811bdc4f512400bb29d01051842528c8d5" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-regex" "7.0.0-beta.47" + regexpu-core "^4.1.4" + +"@babel/plugin-syntax-async-generators@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.47.tgz#8ab94852bf348badc866af85bd852221f0961256" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-syntax-class-properties@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.47.tgz#de52bed12fd472c848e1562f57dd4a202fe27f11" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-syntax-decorators@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0-beta.47.tgz#a42f10fcd651940bc475d93b3ac23432b4a8a293" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-syntax-dynamic-import@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.47.tgz#ee964915014a687701ee8e15c289e31a7c899e60" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-syntax-jsx@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.47.tgz#f3849d94288695d724bd205b4f6c3c99e4ec24a4" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.47.tgz#21da514d94c138b2261ca09f0dec9abadce16185" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-syntax-optional-catch-binding@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.47.tgz#0b1c52b066aa36893c41450773a5adb904cd4024" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-arrow-functions@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.47.tgz#d6eecda4c652b909e3088f0983ebaf8ec292984b" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-async-to-generator@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.47.tgz#5723816ea1e91fa313a84e6ee9cc12ff31d46610" + dependencies: + "@babel/helper-module-imports" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-remap-async-to-generator" "7.0.0-beta.47" + +"@babel/plugin-transform-block-scoped-functions@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.47.tgz#e422278e06c797b43c45f459d83c7af9d6237002" dependencies: - deepmerge "^2.0.0" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-block-scoping@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.47.tgz#b737cc58a81bea57efd5bda0baef9a43a25859ad" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + lodash "^4.17.5" + +"@babel/plugin-transform-classes@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.47.tgz#7aff9cbe7b26fd94d7a9f97fa90135ef20c93fb6" + dependencies: + "@babel/helper-annotate-as-pure" "7.0.0-beta.47" + "@babel/helper-define-map" "7.0.0-beta.47" + "@babel/helper-function-name" "7.0.0-beta.47" + "@babel/helper-optimise-call-expression" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-replace-supers" "7.0.0-beta.47" + "@babel/helper-split-export-declaration" "7.0.0-beta.47" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.47.tgz#56ef2a021769a2b65e90a3e12fd10b791da9f3e0" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-destructuring@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.47.tgz#452b607775fd1c4d10621997837189efc0a6d428" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-dotall-regex@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.47.tgz#d8da9b706d4bfc68dec9d565661f83e6e8036636" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-regex" "7.0.0-beta.47" + regexpu-core "^4.1.3" + +"@babel/plugin-transform-duplicate-keys@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.47.tgz#4aabeda051ca3007e33a207db08f1a0cf9bd253b" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.47.tgz#930e1abf5db9f4db5b63dbf97f3581ad0be1e907" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-for-of@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.47.tgz#527d5dc24e4a4ad0fc1d0a3990d29968cb984e76" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-function-name@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.47.tgz#fb443c81cc77f3206a863b730b35c8c553ce5041" + dependencies: + "@babel/helper-function-name" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-literals@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.47.tgz#448fad196f062163684a38f10f14e83315892e9c" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-modules-amd@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.47.tgz#84564419b11c1be6b9fcd4c7b3a6737f2335aac4" + dependencies: + "@babel/helper-module-transforms" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-modules-commonjs@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.47.tgz#dfe5c6d867aa9614e55f7616736073edb3aab887" + dependencies: + "@babel/helper-module-transforms" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-simple-access" "7.0.0-beta.47" + +"@babel/plugin-transform-modules-systemjs@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.47.tgz#8514dbcdfca3345abd690059e7e8544e16ecbf05" + dependencies: + "@babel/helper-hoist-variables" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-modules-umd@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.47.tgz#6dcfb9661fdd131b20b721044746a7a309882918" + dependencies: + "@babel/helper-module-transforms" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-new-target@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.47.tgz#4b5cb7ce30d7bffa105a1f43ed07d6ae206a4155" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-object-super@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.47.tgz#ca8e5f326c5011c879f3a6ed749e58bd10fff05d" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-replace-supers" "7.0.0-beta.47" + +"@babel/plugin-transform-parameters@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.47.tgz#46a4236040a6552a5f165fb3ddd60368954b0ddd" + dependencies: + "@babel/helper-call-delegate" "7.0.0-beta.47" + "@babel/helper-get-function-arity" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-regenerator@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.47.tgz#86500e1c404055fb98fc82b73b09bd053cacb516" + dependencies: + regenerator-transform "^0.12.3" + +"@babel/plugin-transform-runtime@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.47.tgz#1700938fa8710909cbf28f7dd39f9b40688b09fd" + dependencies: + "@babel/helper-module-imports" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-shorthand-properties@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.47.tgz#00be44c4fad8fe2c00ed18ea15ea3c88dd519dbb" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-spread@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.47.tgz#3feadb02292ed1e9b75090d651b9df88a7ab5c50" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-sticky-regex@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.47.tgz#c0aa347d76b5dc87d3b37ac016ada3f950605131" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-regex" "7.0.0-beta.47" + +"@babel/plugin-transform-template-literals@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.47.tgz#5f7b5badf64c4c5da79026aeab03001e62a6ee5f" + dependencies: + "@babel/helper-annotate-as-pure" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-typeof-symbol@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.47.tgz#03c612ec09213eb386a81d5fa67c234ee4b2034c" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + +"@babel/plugin-transform-unicode-regex@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.47.tgz#efed0b2f1dfbf28283502234a95b4be88f7fdcb6" + dependencies: + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/helper-regex" "7.0.0-beta.47" + regexpu-core "^4.1.3" + +"@babel/preset-env@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-beta.47.tgz#a3dab3b5fac4de56e3510bdbcb528f1cbdedbe2d" + dependencies: + "@babel/helper-module-imports" "7.0.0-beta.47" + "@babel/helper-plugin-utils" "7.0.0-beta.47" + "@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.47" + "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.47" + "@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.47" + "@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.47" + "@babel/plugin-syntax-async-generators" "7.0.0-beta.47" + "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.47" + "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.47" + "@babel/plugin-transform-arrow-functions" "7.0.0-beta.47" + "@babel/plugin-transform-async-to-generator" "7.0.0-beta.47" + "@babel/plugin-transform-block-scoped-functions" "7.0.0-beta.47" + "@babel/plugin-transform-block-scoping" "7.0.0-beta.47" + "@babel/plugin-transform-classes" "7.0.0-beta.47" + "@babel/plugin-transform-computed-properties" "7.0.0-beta.47" + "@babel/plugin-transform-destructuring" "7.0.0-beta.47" + "@babel/plugin-transform-dotall-regex" "7.0.0-beta.47" + "@babel/plugin-transform-duplicate-keys" "7.0.0-beta.47" + "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.47" + "@babel/plugin-transform-for-of" "7.0.0-beta.47" + "@babel/plugin-transform-function-name" "7.0.0-beta.47" + "@babel/plugin-transform-literals" "7.0.0-beta.47" + "@babel/plugin-transform-modules-amd" "7.0.0-beta.47" + "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.47" + "@babel/plugin-transform-modules-systemjs" "7.0.0-beta.47" + "@babel/plugin-transform-modules-umd" "7.0.0-beta.47" + "@babel/plugin-transform-new-target" "7.0.0-beta.47" + "@babel/plugin-transform-object-super" "7.0.0-beta.47" + "@babel/plugin-transform-parameters" "7.0.0-beta.47" + "@babel/plugin-transform-regenerator" "7.0.0-beta.47" + "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.47" + "@babel/plugin-transform-spread" "7.0.0-beta.47" + "@babel/plugin-transform-sticky-regex" "7.0.0-beta.47" + "@babel/plugin-transform-template-literals" "7.0.0-beta.47" + "@babel/plugin-transform-typeof-symbol" "7.0.0-beta.47" + "@babel/plugin-transform-unicode-regex" "7.0.0-beta.47" + browserslist "^3.0.0" + invariant "^2.2.2" + semver "^5.3.0" + +"@babel/runtime@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.47.tgz#273f5e71629e80f6cbcd7507503848615e59f7e0" + dependencies: + core-js "^2.5.3" + regenerator-runtime "^0.11.1" + +"@babel/template@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + lodash "^4.2.0" + +"@babel/template@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.47.tgz#0473970a7c0bee7a1a18c1ca999d3ba5e5bad83d" + dependencies: + "@babel/code-frame" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + babylon "7.0.0-beta.47" + lodash "^4.17.5" + +"@babel/traverse@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/generator" "7.0.0-beta.44" + "@babel/helper-function-name" "7.0.0-beta.44" + "@babel/helper-split-export-declaration" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + debug "^3.1.0" + globals "^11.1.0" + invariant "^2.2.0" + lodash "^4.2.0" + +"@babel/traverse@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.47.tgz#0e57fdbb9ff3a909188b6ebf1e529c641e6c82a4" + dependencies: + "@babel/code-frame" "7.0.0-beta.47" + "@babel/generator" "7.0.0-beta.47" + "@babel/helper-function-name" "7.0.0-beta.47" + "@babel/helper-split-export-declaration" "7.0.0-beta.47" + "@babel/types" "7.0.0-beta.47" + babylon "7.0.0-beta.47" + debug "^3.1.0" + globals "^11.1.0" + invariant "^2.2.0" + lodash "^4.17.5" + +"@babel/types@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" + dependencies: + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^2.0.0" + +"@babel/types@7.0.0-beta.47": + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.47.tgz#e6fcc1a691459002c2671d558a586706dddaeef8" + dependencies: + esutils "^2.0.2" + lodash "^4.17.5" + to-fast-properties "^2.0.0" + +"@intervolga/optimize-cssnano-plugin@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" + dependencies: + cssnano "^4.0.0" + cssnano-preset-default "^4.0.0" + postcss "^7.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a" + +"@sinonjs/commons@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.0.2.tgz#3e0ac737781627b8844257fadc3d803997d0526e" + dependencies: + type-detect "4.0.8" + +"@sinonjs/formatio@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + dependencies: + samsam "1.3.0" + +"@sinonjs/samsam@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.0.0.tgz#9163742ac35c12d3602dece74317643b35db6a80" "@types/babel-types@*", "@types/babel-types@^7.0.0": version "7.0.4" @@ -19,8 +680,124 @@ "@types/babel-types" "*" "@types/node@*": - version "10.5.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.1.tgz#d578446f4abff5c0b49ade9b4e5274f6badaadfc" + version "10.5.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.8.tgz#6f14ccecad1d19332f063a6a764f8907801fece0" + +"@vue/babel-preset-app@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-3.0.0.tgz#56bbd624eb78fa1d5f7bf992ac62e6fc7557bd71" + dependencies: + "@babel/plugin-proposal-class-properties" "7.0.0-beta.47" + "@babel/plugin-proposal-decorators" "7.0.0-beta.47" + "@babel/plugin-syntax-dynamic-import" "7.0.0-beta.47" + "@babel/plugin-syntax-jsx" "7.0.0-beta.47" + "@babel/plugin-transform-runtime" "7.0.0-beta.47" + "@babel/preset-env" "7.0.0-beta.47" + "@babel/runtime" "7.0.0-beta.47" + babel-helper-vue-jsx-merge-props "^2.0.3" + babel-plugin-dynamic-import-node "^2.0.0" + babel-plugin-transform-vue-jsx "^4.0.1" + +"@vue/cli-overlay@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-3.0.0.tgz#580340afde2cf155b71c67907f27a69b906416b6" + +"@vue/cli-plugin-babel@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-3.0.0.tgz#5e3e2ae3435929b26994250692fa7a20e5cd6883" + dependencies: + "@babel/core" "7.0.0-beta.47" + "@vue/babel-preset-app" "^3.0.0" + babel-loader "^8.0.0-0" + +"@vue/cli-plugin-eslint@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.0.0.tgz#97b163df1272b39e61e18c8add5dfe28a92375c4" + dependencies: + "@vue/cli-shared-utils" "^3.0.0" + babel-eslint "^8.2.5" + eslint "^4.19.1" + eslint-loader "^2.0.0" + eslint-plugin-vue "^4.5.0" + +"@vue/cli-plugin-unit-mocha@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-mocha/-/cli-plugin-unit-mocha-3.0.0.tgz#615202a9d4aa09adbd360ad4b94ec797d19805d2" + dependencies: + "@vue/cli-shared-utils" "^3.0.0" + jsdom "^11.11.0" + jsdom-global "^3.0.2" + mocha "^5.2.0" + mocha-webpack "^2.0.0-beta.0" + +"@vue/cli-service@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-3.0.0.tgz#c808a846072dcf5751aad786439f53fc0a812bf4" + dependencies: + "@intervolga/optimize-cssnano-plugin" "^1.0.5" + "@vue/cli-overlay" "^3.0.0" + "@vue/cli-shared-utils" "^3.0.0" + "@vue/preload-webpack-plugin" "^1.1.0" + "@vue/web-component-wrapper" "^1.2.0" + acorn "^5.7.1" + address "^1.0.3" + autoprefixer "^8.6.5" + cache-loader "^1.2.2" + case-sensitive-paths-webpack-plugin "^2.1.2" + chalk "^2.4.1" + clipboardy "^1.2.3" + cliui "^4.1.0" + copy-webpack-plugin "^4.5.2" + css-loader "^1.0.0" + debug "^3.1.0" + escape-string-regexp "^1.0.5" + file-loader "^1.1.11" + friendly-errors-webpack-plugin "^1.7.0" + fs-extra "^6.0.1" + globby "^8.0.1" + hash-sum "^1.0.2" + html-webpack-plugin "^3.2.0" + launch-editor-middleware "^2.2.1" + lodash.defaultsdeep "^4.6.0" + lodash.mapvalues "^4.6.0" + lodash.transform "^4.6.0" + mini-css-extract-plugin "^0.4.1" + minimist "^1.2.0" + ora "^2.1.0" + portfinder "^1.0.13" + postcss-loader "^2.1.6" + read-pkg "^4.0.1" + semver "^5.5.0" + slash "^2.0.0" + source-map-url "^0.4.0" + ssri "^6.0.0" + string.prototype.padend "^3.0.0" + thread-loader "^1.1.5" + uglifyjs-webpack-plugin "^1.2.7" + url-loader "^1.0.1" + vue-loader "^15.3.0" + webpack "^4.15.1" + webpack-bundle-analyzer "^2.13.1" + webpack-chain "^4.8.0" + webpack-dev-server "^3.1.4" + webpack-merge "^4.1.3" + yorkie "^2.0.0" + +"@vue/cli-shared-utils@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.0.0.tgz#f4886ce9a62dd2088e112af4d54f61c1667318d0" + dependencies: + chalk "^2.4.1" + execa "^0.10.0" + joi "^13.0.0" + launch-editor "^2.2.1" + node-ipc "^9.1.1" + opn "^5.3.0" + ora "^2.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + semver "^5.5.0" + string.prototype.padstart "^3.0.0" "@vue/component-compiler-utils@^1.2.1": version "1.3.1" @@ -36,33 +813,217 @@ source-map "^0.5.6" vue-template-es2015-compiler "^1.6.0" +"@vue/component-compiler-utils@^2.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.1.2.tgz#75e7cc8496baecbb0994dc8783571d9ff07737fe" + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^6.0.20" + postcss-selector-parser "^3.1.1" + prettier "1.13.7" + source-map "^0.5.6" + vue-template-es2015-compiler "^1.6.0" + +"@vue/preload-webpack-plugin@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.0.tgz#d768dba004261c029b53a77c5ea2d5f9ee4f3cce" + +"@vue/test-utils@^1.0.0-beta.20": + version "1.0.0-beta.24" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.24.tgz#da7c3165f49f57f23fdb98caccba0f511effb76f" + dependencies: + lodash "^4.17.4" + +"@vue/web-component-wrapper@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1" + +"@webassemblyjs/ast@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.13.tgz#81155a570bd5803a30ec31436bc2c9c0ede38f25" + dependencies: + "@webassemblyjs/helper-module-context" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/wast-parser" "1.5.13" + debug "^3.1.0" + mamacro "^0.0.3" + +"@webassemblyjs/floating-point-hex-parser@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz#29ce0baa97411f70e8cce68ce9c0f9d819a4e298" + +"@webassemblyjs/helper-api-error@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz#e49b051d67ee19a56e29b9aa8bd949b5b4442a59" + +"@webassemblyjs/helper-buffer@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz#873bb0a1b46449231137c1262ddfd05695195a1e" + dependencies: + debug "^3.1.0" + +"@webassemblyjs/helper-code-frame@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz#1bd2181b6a0be14e004f0fe9f5a660d265362b58" + dependencies: + "@webassemblyjs/wast-printer" "1.5.13" + +"@webassemblyjs/helper-fsm@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz#cdf3d9d33005d543a5c5e5adaabf679ffa8db924" + +"@webassemblyjs/helper-module-context@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz#dc29ddfb51ed657655286f94a5d72d8a489147c5" + dependencies: + debug "^3.1.0" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz#03245817f0a762382e61733146f5773def15a747" + +"@webassemblyjs/helper-wasm-section@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz#efc76f44a10d3073b584b43c38a179df173d5c7d" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-buffer" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/wasm-gen" "1.5.13" + debug "^3.1.0" + +"@webassemblyjs/ieee754@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz#573e97c8c12e4eebb316ca5fde0203ddd90b0364" + dependencies: + ieee754 "^1.1.11" + +"@webassemblyjs/leb128@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.13.tgz#ab52ebab9cec283c1c1897ac1da833a04a3f4cee" + dependencies: + long "4.0.0" + +"@webassemblyjs/utf8@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.13.tgz#6b53d2cd861cf94fa99c1f12779dde692fbc2469" + +"@webassemblyjs/wasm-edit@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz#c9cef5664c245cf11b3b3a73110c9155831724a8" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-buffer" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/helper-wasm-section" "1.5.13" + "@webassemblyjs/wasm-gen" "1.5.13" + "@webassemblyjs/wasm-opt" "1.5.13" + "@webassemblyjs/wasm-parser" "1.5.13" + "@webassemblyjs/wast-printer" "1.5.13" + debug "^3.1.0" + +"@webassemblyjs/wasm-gen@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz#8e6ea113c4b432fa66540189e79b16d7a140700e" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/ieee754" "1.5.13" + "@webassemblyjs/leb128" "1.5.13" + "@webassemblyjs/utf8" "1.5.13" + +"@webassemblyjs/wasm-opt@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz#147aad7717a7ee4211c36b21a5f4c30dddf33138" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-buffer" "1.5.13" + "@webassemblyjs/wasm-gen" "1.5.13" + "@webassemblyjs/wasm-parser" "1.5.13" + debug "^3.1.0" + +"@webassemblyjs/wasm-parser@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz#6f46516c5bb23904fbdf58009233c2dd8a54c72f" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-api-error" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/ieee754" "1.5.13" + "@webassemblyjs/leb128" "1.5.13" + "@webassemblyjs/utf8" "1.5.13" + +"@webassemblyjs/wast-parser@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz#5727a705d397ae6a3ae99d7f5460acf2ec646eea" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/floating-point-hex-parser" "1.5.13" + "@webassemblyjs/helper-api-error" "1.5.13" + "@webassemblyjs/helper-code-frame" "1.5.13" + "@webassemblyjs/helper-fsm" "1.5.13" + long "^3.2.0" + mamacro "^0.0.3" + +"@webassemblyjs/wast-printer@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz#bb34d528c14b4f579e7ec11e793ec50ad7cd7c95" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/wast-parser" "1.5.13" + long "^3.2.0" + +"@webpack-contrib/schema-utils@^1.0.0-beta.0": + version "1.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz#bf9638c9464d177b48209e84209e23bee2eb4f65" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chalk "^2.3.2" + strip-ansi "^4.0.0" + text-table "^0.2.0" + webpack-log "^1.1.2" + +abab@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" + +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -abbrev@1.0.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" +accepts@~1.3.4, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: - mime-types "~2.1.11" + mime-types "~2.1.18" negotiator "0.6.1" -accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" +acorn-bigint@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/acorn-bigint/-/acorn-bigint-0.2.0.tgz#0f45a5290537799a3b07085689a186881cb53784" + dependencies: + acorn "^5.2.1" + +acorn-class-fields@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/acorn-class-fields/-/acorn-class-fields-0.1.2.tgz#20782f304af42257feff5bd4a5c335291473bf58" dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" + acorn "^5.3.0" -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" dependencies: - acorn "^4.0.3" + acorn "^5.0.0" acorn-globals@^3.0.0: version "3.1.0" @@ -70,55 +1031,87 @@ acorn-globals@^3.0.0: dependencies: acorn "^4.0.4" +acorn-globals@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" + dependencies: + acorn "^5.0.0" + +acorn-import-meta@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/acorn-import-meta/-/acorn-import-meta-0.2.1.tgz#ac91e06e00facece7e96ff76a0fe9ec7b1cb5b5c" + dependencies: + acorn "^5.4.1" + +acorn-json-superset@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/acorn-json-superset/-/acorn-json-superset-0.1.0.tgz#b5b911a1777ea63a48fcfc64353e787305e8a945" + dependencies: + acorn "^5.4.1" + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" +acorn-numeric-separator@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/acorn-numeric-separator/-/acorn-numeric-separator-0.1.1.tgz#aa455a1d95ae887231de97e0681abbe28b065e8d" + dependencies: + acorn "^5.2.1" + +acorn-optional-catch-binding@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/acorn-optional-catch-binding/-/acorn-optional-catch-binding-0.1.0.tgz#d9a1874dbffce1eb3495836e5e75b2ad9c300868" + dependencies: + acorn "^5.2.1" + +acorn-private-methods@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/acorn-private-methods/-/acorn-private-methods-0.1.1.tgz#32c13cf24d05bf1c9be04914b41491c59d75a195" + dependencies: + acorn "^5.4.0" + +acorn-stage3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/acorn-stage3/-/acorn-stage3-0.6.0.tgz#d2814cec8e2f8bcb0407ba657fbe0cfb118f9bc2" + dependencies: + acorn "^5.5.0" + acorn-bigint "^0.2.0" + acorn-class-fields "^0.1.1" + acorn-dynamic-import "^3.0.0" + acorn-import-meta "^0.2.1" + acorn-json-superset "^0.1.0" + acorn-numeric-separator "^0.1.1" + acorn-optional-catch-binding "^0.1.0" + acorn-private-methods "^0.1.1" + acorn@^3.0.4, acorn@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.3, acorn@^4.0.4, acorn@~4.0.2: +acorn@^4.0.4, acorn@~4.0.2: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -acorn@^5.5.3: +acorn@^5.0.0, acorn@^5.2.1, acorn@^5.3.0, acorn@^5.4.0, acorn@^5.4.1, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" +address@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" -agent-base@2: +ajv-keywords@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" - dependencies: - extend "~3.0.0" - semver "~5.0.1" - -ajv-keywords@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" ajv-keywords@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" - -ajv@^4.7.0, ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" -ajv@^5.0.0, ajv@^5.1.0: +ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: @@ -128,13 +1121,13 @@ ajv@^5.0.0, ajv@^5.1.0: json-schema-traverse "^0.3.0" ajv@^6.1.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" + version "6.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" dependencies: - fast-deep-equal "^1.0.0" + fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - uri-js "^3.0.2" + json-schema-traverse "^0.4.1" + uri-js "^4.2.1" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" @@ -144,7 +1137,7 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: +alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -152,9 +1145,9 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" +ansi-escapes@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" ansi-html@0.0.7: version "0.0.7" @@ -178,13 +1171,6 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -196,9 +1182,13 @@ aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" +arch@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -227,6 +1217,14 @@ arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -235,710 +1233,196 @@ array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arraybuffer.slice@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assertion-error@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b" - -assertion-error@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -ast-types@0.x.x: - version "0.11.3" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -async@1.x, async@^1.4.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.0.0, async@^2.1.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc" - -autoprefixer@^6.3.1, autoprefixer@^6.7.2: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.2.1, aws4@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" - -axios@^0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" - dependencies: - follow-redirects "^1.2.5" - is-buffer "^1.1.5" - -babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.22.1, babel-core@^6.26.0, babel-core@~6: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-eslint@^7.1.1: - version "7.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" - dependencies: - babel-code-frame "^6.22.0" - babel-traverse "^6.23.1" - babel-types "^6.23.0" - babylon "^6.17.0" - -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-bindify-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-explode-class@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" - dependencies: - babel-helper-bindify-decorators "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@7: - version "7.1.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-istanbul@^4.1.1: - version "4.1.6" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.13.0" - find-up "^2.1.0" - istanbul-lib-instrument "^1.10.1" - test-exclude "^4.2.1" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-async-generators@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-generator-functions@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-generators "^6.5.0" - babel-runtime "^6.22.0" +array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" -babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" + define-properties "^1.1.2" + es-abstract "^1.7.0" -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" -babel-plugin-transform-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" - dependencies: - babel-helper-explode-class "^6.24.1" - babel-plugin-syntax-decorators "^6.13.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-types "^6.24.1" +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: - babel-runtime "^6.22.0" + array-uniq "^1.0.1" -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" dependencies: - babel-runtime "^6.22.0" + safer-buffer "~2.1.0" -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" dependencies: - babel-runtime "^6.22.0" + util "0.10.3" -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" +async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" +async@^2.3.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + lodash "^4.17.10" -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" +atob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" +autoprefixer@^8.6.5: + version "8.6.5" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.6.5.tgz#343f3d193ed568b3208e00117a1b96eb691d4ee9" dependencies: - babel-runtime "^6.22.0" + browserslist "^3.2.8" + caniuse-lite "^1.0.30000864" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.23" + postcss-value-parser "^3.2.3" -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" +aws4@^1.6.0, aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" -babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" +axios@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" + follow-redirects "^1.3.0" + is-buffer "^1.1.5" -babel-plugin-transform-object-rest-spread@^6.22.0: +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" +babel-eslint@^8.2.5: + version "8.2.6" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9" dependencies: - regenerator-transform "^0.10.0" + "@babel/code-frame" "7.0.0-beta.44" + "@babel/traverse" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + eslint-scope "3.7.1" + eslint-visitor-keys "^1.0.0" -babel-plugin-transform-runtime@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" - dependencies: - babel-runtime "^6.22.0" +babel-helper-vue-jsx-merge-props@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" +babel-loader@^8.0.0-0: + version "8.0.0-beta.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.0-beta.4.tgz#c3fab00696c385c70c04dbe486391f0eb996f345" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.3.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" -babel-preset-stage-2@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" +babel-plugin-dynamic-import-node@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.0.0.tgz#d6fc3f6c5e3bdc34e49c15faca7ce069755c0a57" dependencies: babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-class-properties "^6.24.1" - babel-plugin-transform-decorators "^6.24.1" - babel-preset-stage-3 "^6.24.1" + object.assign "^4.1.0" -babel-preset-stage-3@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-generator-functions "^6.24.1" - babel-plugin-transform-async-to-generator "^6.24.1" - babel-plugin-transform-exponentiation-operator "^6.24.1" - babel-plugin-transform-object-rest-spread "^6.22.0" +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" -babel-register@^6.22.0, babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" +babel-plugin-transform-vue-jsx@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-4.0.1.tgz#2c8bddce87a6ef09eaa59869ff1bfbeeafc5f88d" dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" + esutils "^2.0.2" -babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.18.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -947,33 +1431,25 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.17.0, babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" +babylon@7.0.0-beta.44: + version "7.0.0-beta.44" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" +babylon@7.0.0-beta.47: + version "7.0.0-beta.47" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80" -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - base64-js@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" base@^0.11.1: version "0.11.2" @@ -987,17 +1463,15 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" -better-assert@~1.0.0: +bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" dependencies: - callsite "1.0.0" + tweetnacl "^0.14.3" bfj-node4@^5.2.0: version "5.3.1" @@ -1015,17 +1489,13 @@ binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" dependencies: inherits "~2.0.0" -bluebird@^3.0.5, bluebird@^3.1.1, bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.1: +bluebird@^3.1.1, bluebird@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -1033,7 +1503,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -body-parser@1.18.2, body-parser@^1.16.1: +body-parser@1.18.2: version "1.18.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" dependencies: @@ -1048,41 +1518,28 @@ body-parser@1.18.2, body-parser@^1.16.1: raw-body "2.3.2" type-is "~1.6.15" -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" dependencies: - hoek "4.x.x" + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" -brace-expansion@^1.0.0, brace-expansion@^1.1.7: +brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" - dependencies: - expand-range "^0.1.0" - braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" @@ -1110,9 +1567,13 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" -browser-stdout@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" +browser-process-hrtime@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" @@ -1126,20 +1587,21 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: safe-buffer "^5.0.1" browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" evp_bytestokey "^1.0.0" browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" browserify-rsa@^4.0.0: version "4.0.1" @@ -1166,23 +1628,28 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" +browserslist@^3.0.0, browserslist@^3.2.8: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" -browserslist@^2.1.2: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" +browserslist@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.1.tgz#61c05ce2a5843c7d96166408bc23d58b5416e818" dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" + caniuse-lite "^1.0.30000865" + electron-to-chromium "^1.3.52" + node-releases "^1.0.0-alpha.10" buffer-from@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" buffer-xor@^1.0.3: version "1.0.3" @@ -1240,16 +1707,25 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cache-loader@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5" + dependencies: + loader-utils "^1.1.0" + mkdirp "^0.5.1" + neo-async "^2.5.0" + schema-utils "^0.4.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" @@ -1284,26 +1760,22 @@ camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" + browserslist "^4.0.0" + caniuse-lite "^1.0.0" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000824" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000824.tgz#bba3ff425296e04caa37fe426259206a7056551b" - -caniuse-lite@^1.0.30000792: - version "1.0.30000824" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000824.tgz#de3bc1ba0bff4937302f8cb2a8632a8cc1c07f9a" +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000865: + version "1.0.30000874" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000874.tgz#a641b1f1c420d58d9b132920ef6ba87bbdcd2223" -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" +case-sensitive-paths-webpack-plugin@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192" caseless@~0.12.0: version "0.12.0" @@ -1316,22 +1788,18 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chai-nightwatch@~0.1.x: - version "0.1.1" - resolved "https://registry.yarnpkg.com/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz#1ca56de768d3c0868fe7fc2f4d32c2fe894e6be9" - dependencies: - assertion-error "1.0.0" - deep-eql "0.1.3" - -chai@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" +chai@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" dependencies: assertion-error "^1.0.1" - deep-eql "^0.1.3" - type-detect "^1.0.0" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1341,15 +1809,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: @@ -1363,9 +1823,17 @@ character-parser@^2.1.1: dependencies: is-regex "^1.0.3" +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +check-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + check-types@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d" + version "7.4.0" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" cheerio@^1.0.0-rc.2: version "1.0.0-rc.2" @@ -1378,24 +1846,9 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^1.4.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chokidar@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" +chokidar@^2.0.0, chokidar@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" dependencies: anymatch "^2.0.0" async-each "^1.0.0" @@ -1404,26 +1857,27 @@ chokidar@^2.0.2: inherits "^2.0.1" is-binary-path "^1.0.0" is-glob "^4.0.0" + lodash.debounce "^4.0.8" normalize-path "^2.1.1" path-is-absolute "^1.0.0" readdirp "^2.0.0" - upath "^1.0.0" + upath "^1.0.5" optionalDependencies: - fsevents "^1.1.2" + fsevents "^1.2.2" chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" -chromedriver@^2.27.2: - version "2.37.0" - resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-2.37.0.tgz#e7867c8236f6bb89024737bbffc9a4b33ded658b" +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" dependencies: - del "^3.0.0" - extract-zip "^1.6.5" - kew "^0.7.0" - mkdirp "^0.5.1" - request "^2.83.0" + tslib "^1.9.0" + +ci-info@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -1436,12 +1890,6 @@ circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1451,17 +1899,17 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-css@4.1.x, clean-css@^4.1.11: +clean-css@4.1.x: version "4.1.11" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" dependencies: source-map "0.5.x" -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" +clean-css@^4.1.11: + version "4.2.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" dependencies: - restore-cursor "^1.0.1" + source-map "~0.6.0" cli-cursor@^2.1.0: version "2.1.0" @@ -1469,7 +1917,7 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-spinners@^1.0.1: +cli-spinners@^1.1.0: version "1.3.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" @@ -1477,6 +1925,13 @@ cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" +clipboardy@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.3.tgz#0526361bf78724c1f20be248d428e365433c07ef" + dependencies: + arch "^2.1.0" + execa "^0.8.0" + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -1493,9 +1948,9 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" +cliui@^4.0.0, cliui@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" @@ -1518,13 +1973,9 @@ co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" -co@~3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda" - -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" +coa@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af" dependencies: q "^1.1.2" @@ -1539,101 +1990,91 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" dependencies: - color-name "^1.1.1" + color-name "1.1.1" + +color-name@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" -color-name@^1.0.0, color-name@^1.1.1: +color-name@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" dependencies: color-name "^1.0.0" + simple-swizzle "^0.2.2" -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" +color@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@^1.1.0, colors@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.1.tgz#f4a3d302976aaf042356ba1ade3b1a2c62d9d794" + color-convert "^1.9.1" + color-string "^1.5.2" colors@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combine-lists@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" - dependencies: - lodash "^4.5.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" -combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: +combined-stream@1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: delayed-stream "~1.0.0" -commander@2.15.x, commander@^2.13.0, commander@^2.9.0, commander@~2.15.0: +commander@2.15.1: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" -commander@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" +commander@2.16.x, commander@~2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" + +commander@^2.13.0: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" - -component-emitter@1.2.1, component-emitter@^1.2.1: +component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" +compressible@~2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7" + dependencies: + mime-db ">= 1.34.0 < 2" + +compression@^1.5.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db" + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.14" + debug "2.6.9" + on-headers "~1.0.1" + safe-buffer "5.1.2" + vary "~1.1.2" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^1.5.0, concat-stream@^1.5.2: +concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -1642,26 +2083,10 @@ concat-stream@^1.5.0, concat-stream@^1.5.2: readable-stream "^2.2.2" typedarray "^0.0.6" -config-chain@~1.1.5: - version "1.1.11" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - connect-history-api-fallback@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" -connect@^3.6.0: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1672,12 +2097,6 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" -consolidate@^0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63" - dependencies: - bluebird "^3.1.1" - consolidate@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" @@ -1705,7 +2124,7 @@ content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@^1.5.0: +convert-source-map@^1.1.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -1732,9 +2151,9 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" -copy-webpack-plugin@^4.0.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.1.tgz#fc4f68f4add837cc5e13d111b20715793225d29c" +copy-webpack-plugin@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz#d53444a8fea2912d806e78937390ddd7e632ee5c" dependencies: cacache "^10.0.4" find-cache-dir "^1.0.0" @@ -1745,45 +2164,51 @@ copy-webpack-plugin@^4.0.1: p-limit "^1.0.0" serialize-javascript "^1.4.0" -core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: - version "2.5.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0" +core-js@^2.4.0, core-js@^2.5.3: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" +cosmiconfig@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" dependencies: is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" + js-yaml "^3.9.0" + parse-json "^4.0.0" + require-from-string "^2.0.1" + +cosmiconfig@^5.0.0: + version "5.0.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.9.0" + parse-json "^4.0.0" create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" dependencies: bn.js "^4.1.0" elliptic "^6.0.0" create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" dependencies: cipher-base "^1.0.1" inherits "^2.0.1" - ripemd160 "^2.0.0" + md5.js "^1.3.4" + ripemd160 "^2.0.1" sha.js "^2.4.0" create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -1792,13 +2217,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-env@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-4.0.0.tgz#16083862d08275a4628b0b243b121bedaa55dd80" - dependencies: - cross-spawn "^5.1.0" - is-windows "^1.0.0" - cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" @@ -1814,17 +2232,15 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" dependencies: - boom "5.x.x" + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" crypto-browserify@^3.11.0: version "3.12.0" @@ -1842,22 +2258,27 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-color-names@0.0.4: +css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" -css-loader@^0.28.0: - version "0.28.11" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" +css-declaration-sorter@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz#d0e3056b0fd88dc1ea9dceff435adbe9c702a7f8" + dependencies: + postcss "^6.0.0" + timsort "^0.3.0" + +css-loader@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56" dependencies: babel-code-frame "^6.26.0" css-selector-tokenizer "^0.7.0" - cssnano "^3.10.0" icss-utils "^2.1.0" loader-utils "^1.0.2" lodash.camelcase "^4.3.0" - object-assign "^4.1.1" - postcss "^5.0.6" + postcss "^6.0.23" postcss-modules-extract-imports "^1.2.0" postcss-modules-local-by-default "^1.2.0" postcss-modules-scope "^1.1.0" @@ -1865,6 +2286,10 @@ css-loader@^0.28.0: postcss-value-parser "^3.3.0" source-list-map "^2.0.0" +css-select-base-adapter@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990" + css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -1874,6 +2299,15 @@ css-select@^1.1.0, css-select@~1.2.0: domutils "1.5.1" nth-check "~1.0.1" +css-select@~1.3.0-rc0: + version "1.3.0-rc0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231" + dependencies: + boolbase "^1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "^1.0.1" + css-selector-tokenizer@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" @@ -1882,6 +2316,28 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha25: + version "1.0.0-alpha25" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha25.tgz#1bbfabfbf6eeef4f01d9108ff2edd0be2fe35597" + dependencies: + mdn-data "^1.0.0" + source-map "^0.5.3" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + +css-url-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" + css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" @@ -1890,49 +2346,83 @@ cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -cssnano@^3.10.0, cssnano@^3.4.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" +cssnano-preset-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz#c334287b4f7d49fb2d170a92f9214655788e3b6b" + dependencies: + css-declaration-sorter "^3.0.0" + cssnano-util-raw-cache "^4.0.0" + postcss "^6.0.0" + postcss-calc "^6.0.0" + postcss-colormin "^4.0.0" + postcss-convert-values "^4.0.0" + postcss-discard-comments "^4.0.0" + postcss-discard-duplicates "^4.0.0" + postcss-discard-empty "^4.0.0" + postcss-discard-overridden "^4.0.0" + postcss-merge-longhand "^4.0.0" + postcss-merge-rules "^4.0.0" + postcss-minify-font-values "^4.0.0" + postcss-minify-gradients "^4.0.0" + postcss-minify-params "^4.0.0" + postcss-minify-selectors "^4.0.0" + postcss-normalize-charset "^4.0.0" + postcss-normalize-display-values "^4.0.0" + postcss-normalize-positions "^4.0.0" + postcss-normalize-repeat-style "^4.0.0" + postcss-normalize-string "^4.0.0" + postcss-normalize-timing-functions "^4.0.0" + postcss-normalize-unicode "^4.0.0" + postcss-normalize-url "^4.0.0" + postcss-normalize-whitespace "^4.0.0" + postcss-ordered-values "^4.0.0" + postcss-reduce-initial "^4.0.0" + postcss-reduce-transforms "^4.0.0" + postcss-svgo "^4.0.0" + postcss-unique-selectors "^4.0.0" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + +cssnano-util-raw-cache@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz#be0a2856e25f185f5f7a2bcc0624e28b7f179a9f" dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" + postcss "^6.0.0" -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" +cssnano-util-same-parent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz#d2a3de1039aa98bc4ec25001fa050330c2a16dac" + +cssnano@^4.0.0: + version "4.0.5" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.0.5.tgz#8789b5fdbe7be05d8a0f7e45c4c789ebe712f5aa" dependencies: - clap "^1.0.9" - source-map "^0.5.3" + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.0" + is-resolvable "^1.0.0" + postcss "^6.0.0" + +csso@^3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + dependencies: + css-tree "1.0.0-alpha.29" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" + +cssstyle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.0.0.tgz#79b16d51ec5591faec60e688891f15d2a5705129" + dependencies: + cssom "0.3.x" currently-unhandled@^0.4.1: version "0.4.1" @@ -1940,10 +2430,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -1960,54 +2446,33 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-uri-to-buffer@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" +data-urls@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f" + dependencies: + abab "^1.0.4" + whatwg-mimetype "^2.0.0" + whatwg-url "^6.4.0" date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -dateformat@^1.0.6: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" - -dateformat@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" +dateformat@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" -debug@2, debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" -debug@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - -debug@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" - dependencies: - ms "0.7.2" - -debug@2.6.8: - version "2.6.8" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" - dependencies: - ms "2.0.0" - -debug@^3.1.0: +debug@3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -2021,23 +2486,44 @@ decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" -deep-eql@0.1.3, deep-eql@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" dependencies: - type-detect "0.1.1" + type-detect "^4.0.0" -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" +deep-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" -deepmerge@^2.0.0, deepmerge@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.0.tgz#511a54fff405fc346f0240bb270a3e9533a31102" +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + +deepmerge@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.1.tgz#e862b4e45ea0555072bf51e7fd0d9845170ae768" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" define-property@^0.2.5: version "0.2.5" @@ -2058,18 +2544,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -degenerator@~1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" - dependencies: - ast-types "0.x.x" - escodegen "1.x.x" - esprima "3.x.x" - del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" @@ -2124,35 +2598,21 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - -diff@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" - -diff@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" +detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" -diff@^3.1.0: +diff@3.5.0, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -2171,7 +2631,24 @@ django-channels@^1.1.6: dependencies: reconnecting-websocket "^3.0.3" -doctrine@^2.0.0: +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: @@ -2187,15 +2664,6 @@ dom-converter@~0.1: dependencies: utila "~0.3" -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" @@ -2215,6 +2683,12 @@ domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + dependencies: + webidl-conversions "^4.0.2" + domhandler@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" @@ -2222,8 +2696,8 @@ domhandler@2.1: domelementtype "1" domhandler@^2.3.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" dependencies: domelementtype "1" @@ -2257,21 +2731,26 @@ duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.4.2, duplexify@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" -easygettext@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/easygettext/-/easygettext-2.5.0.tgz#56c695816482cb6ab29a3c3454998274d8845972" +easy-stack@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.0.tgz#12c91b3085a37f0baa336e9486eac4bf94e3e788" + +easygettext@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/easygettext/-/easygettext-2.6.3.tgz#25395378a8b54eac9aba25611bcde7c1a6de7284" dependencies: "@vue/component-compiler-utils" "^1.2.1" acorn "^5.5.3" + acorn-stage3 "^0.6.0" cheerio "^1.0.0-rc.2" minimist "^1.2.0" pofile "^1.0.10" @@ -2279,44 +2758,27 @@ easygettext@^2.5.0: vue-template-compiler "^2.5.16" ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" dependencies: jsbn "~0.1.0" - -editorconfig@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34" - dependencies: - bluebird "^3.0.5" - commander "^2.9.0" - lru-cache "^3.2.0" - semver "^5.1.0" - sigmund "^1.0.1" + safer-buffer "^2.1.0" ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -ejs@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-0.7.1.tgz#6dab41cbdee572986db328a2a8d22040f20fba7c" - -ejs@2.5.7: - version "2.5.7" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" - ejs@^2.5.7: - version "2.5.8" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.8.tgz#2ab6954619f225e6193b7ac5f7c39c48fefe4380" + version "2.6.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.42" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz#95c33bf01d0cc405556aec899fe61fd4d76ea0f9" +electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.52: + version "1.3.57" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.57.tgz#61b2446f16af26fb8873210007a7637ad644c82d" elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2330,7 +2792,7 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encodeurl@~1.0.1, encodeurl@~1.0.2: +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2340,89 +2802,63 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "2.3.3" - engine.io-parser "1.3.2" - has-cors "1.1.0" - indexof "0.0.1" - parsejson "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - ws "1.1.2" - xmlhttprequest-ssl "1.5.3" - yeast "0.1.2" - -engine.io-parser@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" - dependencies: - after "0.8.2" - arraybuffer.slice "0.0.6" - base64-arraybuffer "0.1.5" - blob "0.0.4" - has-binary "0.1.7" - wtf-8 "1.0.0" - -engine.io@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" - dependencies: - accepts "1.3.3" - base64id "1.0.0" - cookie "0.3.1" - debug "2.3.3" - engine.io-parser "1.3.2" - ws "1.1.2" - -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + tapable "^1.0.0" entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.3: +errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" dependencies: prr "~1.0.1" -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" dependencies: is-arrayish "^0.2.1" error-stack-parser@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.1.tgz#a3202b8fb03114aa9b40a0e3669e48b2b65a010a" + version "2.0.2" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d" + dependencies: + stackframe "^1.0.4" + +es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" dependencies: - stackframe "^1.0.3" + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.42" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" +es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.45" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.1" next-tick "1" -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: +es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" dependencies: @@ -2430,47 +2866,13 @@ es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-promise@^4.0.3, es6-promise@^4.2.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: +es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" dependencies: d "1" es5-ext "~0.10.14" -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2479,20 +2881,9 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@1.8.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -escodegen@1.x.x: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" +escodegen@^1.9.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -2501,31 +2892,9 @@ escodegen@1.x.x: optionalDependencies: source-map "~0.6.1" -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-standard@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-6.2.1.tgz#d3a68aafc7191639e7ee441e7348739026354292" - -eslint-friendly-formatter@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/eslint-friendly-formatter/-/eslint-friendly-formatter-2.0.7.tgz#657f95a19af4989636afebb1cc9de6cebbd088ee" - dependencies: - chalk "^1.0.0" - extend "^3.0.0" - minimist "^1.2.0" - text-table "^0.2.0" - -eslint-loader@^1.7.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13" +eslint-loader@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.0.tgz#61334c548aeb0b8e20ec3a552fb7a88c47261c6a" dependencies: loader-fs-cache "^1.0.0" loader-utils "^1.0.2" @@ -2533,78 +2902,100 @@ eslint-loader@^1.7.1: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-plugin-html@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-2.0.3.tgz#7c89883ab0c85fa5d28b666a14a4e906aa90b897" +eslint-plugin-html@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-4.0.5.tgz#e8ec7e16485124460f3bff312016feb0a54d9659" + dependencies: + htmlparser2 "^3.8.2" + +eslint-plugin-vue@^4.5.0: + version "4.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz#c829b9fc62582c1897b5a0b94afd44ecca511e63" + dependencies: + vue-eslint-parser "^2.0.3" + +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: - htmlparser2 "^3.8.2" + esrecurse "^4.1.0" + estraverse "^4.1.1" -eslint-plugin-promise@^3.4.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" -eslint-plugin-standard@^2.0.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.3.1.tgz#6765bd2a6d9ecdc7bdf1b145ae4bb30e2b7b86f8" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@^3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" +eslint@^4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" dependencies: - babel-code-frame "^6.16.0" - chalk "^1.1.3" - concat-stream "^1.5.2" - debug "^2.1.1" - doctrine "^2.0.0" - escope "^3.6.0" - espree "^3.4.0" + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.4" esquery "^1.0.0" - estraverse "^4.2.0" esutils "^2.0.2" file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.14.0" - ignore "^3.2.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" + inquirer "^3.0.6" is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.7.5" - strip-bom "^3.0.0" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + regexpp "^1.0.1" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" strip-json-comments "~2.0.1" - table "^3.7.8" + table "4.0.2" text-table "~0.2.0" - user-home "^2.0.0" -espree@^3.4.0: +espree@^3.5.2, espree@^3.5.4: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" -esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@3.x.x, esprima@^3.1.3: +esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" esquery@^1.0.0: version "1.0.1" @@ -2618,10 +3009,6 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -2638,24 +3025,23 @@ ev-emitter@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" +eventemitter3@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -eventsource-polyfill@^0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz#10e0d187f111b167f28fdab918843ce7d818f13c" +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -2664,6 +3050,18 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -2676,17 +3074,17 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - -expand-braces@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" dependencies: - array-slice "^0.2.3" - array-unique "^0.2.1" - braces "^0.1.2" + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" expand-brackets@^0.1.4: version "0.1.5" @@ -2706,20 +3104,13 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" - dependencies: - is-number "^0.1.1" - repeat-string "^0.2.2" - expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" dependencies: fill-range "^2.1.0" -express@^4.14.1, express@^4.16.2: +express@^4.16.2: version "4.16.3" resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" dependencies: @@ -2767,9 +3158,17 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" +extend@~3.0.1, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" extglob@^0.3.1: version "0.3.2" @@ -2790,24 +3189,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-text-webpack-plugin@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz#756ef4efa8155c3681833fbc34da53b941746d6c" - dependencies: - async "^2.1.2" - loader-utils "^1.0.2" - schema-utils "^0.3.0" - webpack-sources "^1.0.1" - -extract-zip@^1.6.5: - version "1.6.6" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" - dependencies: - concat-stream "1.6.0" - debug "2.6.9" - mkdirp "0.5.0" - yauzl "2.4.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2820,6 +3201,21 @@ fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + +fast-glob@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.0.1" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.1" + micromatch "^3.1.10" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -2832,18 +3228,23 @@ fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" dependencies: - pend "~1.2.0" + websocket-driver ">=0.5.1" -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" +faye-websocket@~0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" dependencies: escape-string-regexp "^1.0.5" - object-assign "^4.1.0" file-entry-cache@^2.0.0: version "2.0.0" @@ -2852,15 +3253,12 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -file-loader@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" +file-loader@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" dependencies: loader-utils "^1.0.2" - -file-uri-to-path@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + schema-utils "^0.4.5" filename-regex@^2.0.0: version "2.0.1" @@ -2871,12 +3269,12 @@ filesize@^3.5.11: resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" dependencies: is-number "^2.1.0" isobject "^2.0.0" - randomatic "^1.1.3" + randomatic "^3.0.0" repeat-element "^1.1.2" repeat-string "^1.5.2" @@ -2889,18 +3287,6 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - finalhandler@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" @@ -2936,7 +3322,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: @@ -2968,9 +3354,9 @@ flush-write-stream@^1.0.0: inherits "^2.0.1" readable-stream "^2.0.4" -follow-redirects@^1.2.5: - version "1.4.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" +follow-redirects@^1.0.0, follow-redirects@^1.3.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.2.tgz#5a9d80e0165957e5ef0c1210678fc5c4acb9fb03" dependencies: debug "^3.1.0" @@ -2994,19 +3380,15 @@ for-own@^1.0.0: dependencies: for-in "^1.0.1" +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.3.1: +form-data@~2.3.1, form-data@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" dependencies: @@ -3014,12 +3396,6 @@ form-data@~2.3.1: combined-stream "1.0.6" mime-types "^2.1.12" -formatio@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb" - dependencies: - samsam "1.x" - forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -3034,7 +3410,7 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" -friendly-errors-webpack-plugin@^1.1.3: +friendly-errors-webpack-plugin@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136" dependencies: @@ -3049,13 +3425,19 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" +fs-extra@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" dependencies: graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" fs-write-stream-atomic@^1.0.8: version "1.0.10" @@ -3070,22 +3452,14 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0, fsevents@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" +fsevents@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" + nan "^2.9.2" + node-pre-gyp "^0.10.0" -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: +fstream@^1.0.0, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" dependencies: @@ -3094,17 +3468,14 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -ftp@~0.3.10: - version "0.3.10" - resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" - dependencies: - readable-stream "1.1.x" - xregexp "2.0.0" - -function-bind@^1.0.2: +function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -3119,24 +3490,18 @@ gauge@~2.7.3: wide-align "^1.1.0" gaze@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" dependencies: globule "^1.0.0" -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" get-size@^2.0.2: version "2.0.3" @@ -3150,17 +3515,6 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" -get-uri@2: - version "2.0.1" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.1.tgz#dbdcacacd8c608a38316869368117697a1631c59" - dependencies: - data-uri-to-buffer "1" - debug "2" - extend "3" - file-uri-to-path "1" - ftp "~0.3.10" - readable-stream "2" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3191,35 +3545,18 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob@7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" -glob@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" +glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" @@ -3233,20 +3570,9 @@ glob@^6.0.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^9.14.0, globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +globals@^11.0.1, globals@^11.1.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" globby@^5.0.0: version "5.0.0" @@ -3280,25 +3606,33 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" +globby@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + globule@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" + version "1.2.1" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" dependencies: glob "~7.1.1" - lodash "~4.17.4" + lodash "~4.17.10" minimatch "~3.0.2" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -growl@1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" gzip-size@^4.1.0: version "4.1.0" @@ -3307,40 +3641,14 @@ gzip-size@^4.1.0: duplexer "^0.1.1" pify "^3.0.0" -handlebars@^4.0.1: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - har-validator@~5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" @@ -3348,34 +3656,27 @@ har-validator@~5.0.3: ajv "^5.1.0" har-schema "^2.0.0" +har-validator@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" + dependencies: + ajv "^5.3.0" + har-schema "^2.0.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" -has-binary@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" - dependencies: - isarray "0.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3407,17 +3708,11 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" +has@^1.0.0, has@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" dependencies: - inherits "^2.0.1" + function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" @@ -3431,41 +3726,20 @@ hash-sum@^1.0.2: resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + version "1.1.5" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" dependencies: inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hasha@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" - dependencies: - is-stream "^1.0.1" - pinkie-promise "^2.0.0" - -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" + minimalistic-assert "^1.0.1" he@1.1.1, he@1.1.x, he@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -3474,55 +3748,72 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" +hoek@5.x.x: + version "5.0.4" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.4.tgz#0f7fa270a1cafeb364a4b2ddfaa33f864e4157da" -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" +hosted-git-info@^2.1.4: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" +howler@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/howler/-/howler-2.0.14.tgz#28e37800fea002fea147a3ca033660c4f1288a99" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" -hosted-git-info@^2.1.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" html-comment-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + dependencies: + whatwg-encoding "^1.0.1" + html-entities@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" html-minifier@^3.2.3: - version "3.5.14" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.14.tgz#88653b24b344274e3e3d7052f1541ebea054ac60" + version "3.5.19" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.19.tgz#ed53c4b7326fe507bc3a1adbcc3bbb56660a2ebd" dependencies: camel-case "3.0.x" clean-css "4.1.x" - commander "2.15.x" + commander "2.16.x" he "1.1.x" param-case "2.1.x" relateurl "0.2.x" - uglify-js "3.3.x" + uglify-js "3.4.x" -html-webpack-plugin@^2.28.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" dependencies: - bluebird "^3.4.7" html-minifier "^3.2.3" loader-utils "^0.2.16" lodash "^4.17.3" pretty-error "^2.0.2" + tapable "^1.0.0" toposort "^1.0.0" + util.promisify "1.0.0" htmlparser2@^3.8.2, htmlparser2@^3.9.1: version "3.9.2" @@ -3544,6 +3835,10 @@ htmlparser2@~3.3.0: domutils "1.1" readable-stream "1.0" +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + http-errors@1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" @@ -3562,37 +3857,26 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -http-proxy-agent@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" - dependencies: - agent-base "2" - debug "2" - extend "3" +http-parser-js@>=0.4.0: + version "0.4.13" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" -http-proxy-middleware@^0.17.3: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" +http-proxy-middleware@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" dependencies: http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.13.0, http-proxy@^1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" + is-glob "^4.0.0" + lodash "^4.17.5" + micromatch "^3.1.9" -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" +http-proxy@^1.16.2: + version "1.17.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" http-signature@~1.2.0: version "1.2.0" @@ -3606,18 +3890,16 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -https-proxy-agent@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" - dependencies: - agent-base "2" - debug "2" - extend "3" - iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@^0.4.17, iconv-lite@^0.4.4: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -3628,24 +3910,49 @@ icss-utils@^2.1.0: dependencies: postcss "^6.0.1" -ieee754@^1.1.4: - version "1.1.11" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" +ieee754@^1.1.11, ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" -ignore@^3.2.0, ignore@^3.3.5: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +ignore@^3.3.3, ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" -imagesloaded@latest: +imagesloaded@4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" dependencies: ev-emitter "^1.0.0" +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + dependencies: + import-from "^2.1.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + dependencies: + resolve-from "^3.0.0" + +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3683,39 +3990,40 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@^1.3.4, ini@~1.3.0: +ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inject-loader@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/inject-loader/-/inject-loader-3.0.1.tgz#844a4596150cf6b864c2f79806d40a2caee4c2c7" - dependencies: - babel-core "~6" - -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" cli-width "^2.0.0" - figures "^1.3.5" + external-editor "^2.0.4" + figures "^2.0.0" lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" through "^2.3.6" -interpret@^1.0.0: +internal-ip@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" + +interpret@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.2.2: +invariant@^2.2.0, invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -3725,17 +4033,13 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ip@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" - -ip@^1.1.4: +ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" +ipaddr.js@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" is-absolute-url@^2.0.0: version "2.1.0" @@ -3757,6 +4061,10 @@ is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -3773,6 +4081,27 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + +is-ci@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3785,6 +4114,10 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -3874,24 +4207,6 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" -is-my-ip-valid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: - version "2.17.2" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - is-my-ip-valid "^1.0.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-number@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" - is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -3912,12 +4227,6 @@ is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - dependencies: - is-number "^4.0.0" - is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -3934,10 +4243,6 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3952,15 +4257,11 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" -is-promise@^2.0.0: +is-promise@^2.0.0, is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-regex@^1.0.3: +is-regex@^1.0.3, is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" dependencies: @@ -3970,16 +4271,20 @@ is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" dependencies: html-comment-regex "^1.1.0" +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -3988,10 +4293,14 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" -is-windows@^1.0.0, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -4000,9 +4309,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" -isbinaryfile@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" +isemail@3.x.x: + version "3.1.3" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.1.3.tgz#64f37fc113579ea12523165c3ebe3a71a56ce571" + dependencies: + punycode "2.x.x" isexe@^2.0.0: version "2.0.0" @@ -4022,62 +4333,40 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-lib-coverage@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" +javascript-stringify@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" -istanbul-lib-instrument@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" +joi@^13.0.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-13.6.0.tgz#877d820e3ad688a49c32421ffefc746bfbe2d0a0" dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.0" - semver "^5.3.0" - -istanbul@^0.4.0: - version "0.4.5" - resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" + hoek "5.x.x" + isemail "3.x.x" + topo "3.x.x" jquery@x.*: version "3.3.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" -js-base64@^2.1.8, js-base64@^2.1.9: - version "2.4.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" - -js-beautify@^1.6.3: - version "1.7.5" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.7.5.tgz#69d9651ef60dbb649f65527b53674950138a7919" - dependencies: - config-chain "~1.1.5" - editorconfig "^0.13.2" - mkdirp "~0.5.0" - nopt "~3.0.1" +js-base64@^2.1.8: + version "2.4.8" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz#57a9b130888f956834aa40c5b165ba59c758f033" -js-logger@^1.3.0: +js-logger@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.4.1.tgz#f0230dc5e84e120f213d6e5a6b767a913d290335" +js-message@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" + +js-queue@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948" + dependencies: + easy-stack "^1.0.0" + js-stringify@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -4086,65 +4375,106 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@3.x, js-yaml@^3.4.3, js-yaml@^3.5.1: - version "3.11.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +js-yaml@^3.9.0, js-yaml@^3.9.1: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" +js-yaml@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: argparse "^1.0.7" - esprima "^2.6.0" + esprima "^4.0.0" jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +jsdom-global@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9" + +jsdom@^11.11.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: +json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json3@3.3.2: +json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" -json5@^0.5.0, json5@^0.5.1: +json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" optionalDependencies: graceful-fs "^4.1.6" @@ -4152,10 +4482,6 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -4172,105 +4498,17 @@ jstransformer@1.0.0: is-promise "^2.0.0" promise "^7.0.1" +just-extend@^1.1.27: + version "1.1.27" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-1.1.27.tgz#ec6e79410ff914e472652abfa0e603c03d60e905" + jwt-decode@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79" -karma-coverage@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.1.tgz#5aff8b39cf6994dc22de4c84362c76001b637cf6" - dependencies: - dateformat "^1.0.6" - istanbul "^0.4.0" - lodash "^3.8.0" - minimatch "^3.0.0" - source-map "^0.5.1" - -karma-mocha@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" - dependencies: - minimist "1.2.0" - -karma-phantomjs-launcher@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2" - dependencies: - lodash "^4.0.1" - phantomjs-prebuilt "^2.1.7" - -karma-phantomjs-shim@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/karma-phantomjs-shim/-/karma-phantomjs-shim-1.5.0.tgz#e8db65883480f0dbd184cc961d39c64511742200" - -karma-sinon-chai@^1.3.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/karma-sinon-chai/-/karma-sinon-chai-1.3.3.tgz#a597e5b4a1369fe7b3d7d76c09ed2061a38e747f" - dependencies: - lolex "^1.6.0" - -karma-sinon-stub-promise@^1.0.0: +killable@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/karma-sinon-stub-promise/-/karma-sinon-stub-promise-1.0.0.tgz#617e9666e6fce77d63082cb94b637974c84a36bc" - -karma-sourcemap-loader@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" - dependencies: - graceful-fs "^4.1.2" - -karma-spec-reporter@0.0.30: - version "0.0.30" - resolved "https://registry.yarnpkg.com/karma-spec-reporter/-/karma-spec-reporter-0.0.30.tgz#d10b5c8bb441cb1c6adf56785f89d395f2e9093a" - dependencies: - colors "^1.1.2" - -karma-webpack@^2.0.2: - version "2.0.13" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.13.tgz#cf56e3056c15b7747a0bb2140fc9a6be41dd9f02" - dependencies: - async "^2.0.0" - babel-runtime "^6.0.0" - loader-utils "^1.0.0" - lodash "^4.0.0" - source-map "^0.5.6" - webpack-dev-middleware "^1.12.0" - -karma@^1.4.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - chokidar "^1.4.1" - colors "^1.1.0" - combine-lists "^1.0.0" - connect "^3.6.0" - core-js "^2.2.0" - di "^0.0.1" - dom-serialize "^2.2.0" - expand-braces "^0.1.1" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^3.8.0" - log4js "^0.6.31" - mime "^1.3.4" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "1.7.3" - source-map "^0.5.3" - tmp "0.0.31" - useragent "^2.1.12" - -kew@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -4292,11 +4530,18 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" +launch-editor-middleware@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" + dependencies: + launch-editor "^2.2.1" + +launch-editor@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" + dependencies: + chalk "^2.3.0" + shell-quote "^1.6.1" lazy-cache@^1.0.3: version "1.0.4" @@ -4308,6 +4553,10 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -4325,15 +4574,6 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - loader-fs-cache@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" @@ -4354,7 +4594,7 @@ loader-utils@^0.2.16: json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: @@ -4369,64 +4609,6 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash._arraycopy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" - -lodash._arrayeach@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._baseclone@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7" - dependencies: - lodash._arraycopy "^3.0.0" - lodash._arrayeach "^3.0.0" - lodash._baseassign "^3.0.0" - lodash._basefor "^3.0.0" - lodash.isarray "^3.0.0" - lodash.keys "^3.0.0" - -lodash._baseclone@^4.0.0: - version "4.5.7" - resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - -lodash._basecreate@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" - -lodash._basefor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" - -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - -lodash._stack@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/lodash._stack/-/lodash._stack-4.1.3.tgz#751aa76c1b964b047e76d14fc72a093fcb5e2dd0" - lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -4435,121 +4617,94 @@ lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" -lodash.clone@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-3.0.3.tgz#84688c73d32b5a90ca25616963f189252a997043" - dependencies: - lodash._baseclone "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash.clonedeep@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" -lodash.create@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" - dependencies: - lodash._baseassign "^3.0.0" - lodash._basecreate "^3.0.0" - lodash._isiterateecall "^3.0.0" - -lodash.defaultsdeep@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz#6c1a586e6c5647b0e64e2d798141b8836158be8a" - dependencies: - lodash._baseclone "^4.0.0" - lodash._stack "^4.0.0" - lodash.isplainobject "^4.0.0" - lodash.keysin "^4.0.0" - lodash.mergewith "^4.0.0" - lodash.rest "^4.0.0" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" -lodash.isplainobject@^4.0.0: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" +lodash.defaultsdeep@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz#bec1024f85b1bd96cbea405b23c14ad6443a6f81" -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" -lodash.keysin@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-4.2.0.tgz#8cc3fb35c2d94acc443a1863e02fa40799ea6f28" +lodash.mapvalues@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.mergewith@^4.0.0, lodash.mergewith@^4.6.0: +lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" -lodash.rest@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" lodash.tail@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^3.8.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.4: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - -lodash@^4.15.0: +lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" -log-symbols@^2.1.0: +log-symbols@^2.1.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" dependencies: chalk "^2.0.1" -log4js@^0.6.31: - version "0.6.38" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" +loglevel@^1.4.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" + +loglevelnext@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" dependencies: - readable-stream "~1.0.2" - semver "~4.3.3" + es6-symbol "^3.1.1" + object.assign "^4.1.0" -lolex@^1.5.2, lolex@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.6.0.tgz#3a9a0283452a47d7439e72731b9e07d7386e49f6" +lolex@^2.3.2, lolex@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.1.tgz#e40a8c4d1f14b536aa03e42a537c7adbaf0c20be" + +long@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + +long@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: - js-tokens "^3.0.0" + js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0: +loud-rejection@^1.0.0, loud-rejection@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" dependencies: @@ -4560,40 +4715,23 @@ lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lru-cache@4.1.x, lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" - dependencies: - pseudomap "^1.0.1" - -lru-cache@^4.1.2: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@~2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" - -macaddress@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - make-dir@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" dependencies: pify "^3.0.0" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -4608,29 +4746,23 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -masonry-layout@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/masonry-layout/-/masonry-layout-4.1.1.tgz#e8c8c6f5a9e621a75203ac4b7000855a36f6753e" +masonry-layout@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/masonry-layout/-/masonry-layout-4.2.0.tgz#43835c6b6e0d72eff2c31a118c8000cccc4ab965" dependencies: get-size "^2.0.2" outlayer "^2.1.0" -masonry-layout@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/masonry-layout/-/masonry-layout-4.2.1.tgz#1c878b85a88866ba6b39b9bd0e162348aed7ce13" +masonry-layout@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/masonry-layout/-/masonry-layout-4.2.2.tgz#d57b44af13e601bfcdc423f1dd8348b5524de348" dependencies: get-size "^2.0.2" outlayer "^2.1.0" -masonry@latest: - version "0.0.2" - resolved "https://registry.yarnpkg.com/masonry/-/masonry-0.0.2.tgz#c06a0b2efc043727eadd16b35fdae93a3908f432" - dependencies: - ejs "0.7.1" - -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" +math-random@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" md5.js@^1.3.4: version "1.3.4" @@ -4639,6 +4771,10 @@ md5.js@^1.3.4: hash-base "^3.0.0" inherits "^2.0.1" +mdn-data@^1.0.0, mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -4649,7 +4785,7 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" -memory-fs@^0.4.0, memory-fs@~0.4.1: +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: @@ -4681,11 +4817,15 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" +merge2@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5, micromatch@^2.3.11: +micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -4703,7 +4843,7 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.4, micromatch@^3.1.8: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -4728,63 +4868,70 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" +"mime-db@>= 1.34.0 < 2", mime-db@~1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19: + version "2.1.19" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" dependencies: - mime-db "~1.33.0" - -mime@1.3.x: - version "1.3.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + mime-db "~1.35.0" mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -mime@^1.3.4, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" +mime@^2.0.3, mime@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" +mini-css-extract-plugin@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz#d2bcf77bb2596b8e4bd9257e43d3f9164c2e86cb" + dependencies: + "@webpack-contrib/schema-utils" "^1.0.0-beta.0" + loader-utils "^1.1.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" -minimatch@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" mississippi@^2.0.0: version "2.0.0" @@ -4815,58 +4962,53 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -mkdirp@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" - dependencies: - minimist "0.0.8" - mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" -mkpath@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d" - -mocha-nightwatch@3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/mocha-nightwatch/-/mocha-nightwatch-3.2.2.tgz#91bcb9b3bde057dd7677c78125e491e58d66647c" +mocha-webpack@^2.0.0-beta.0: + version "2.0.0-beta.0" + resolved "https://registry.yarnpkg.com/mocha-webpack/-/mocha-webpack-2.0.0-beta.0.tgz#d85fc9a70f82a4ad595b7702a1181605dfa59549" dependencies: - browser-stdout "1.3.0" - commander "2.9.0" - debug "2.2.0" - diff "1.4.0" - escape-string-regexp "1.0.5" - glob "7.0.5" - growl "1.9.2" - json3 "3.3.2" - lodash.create "3.1.1" - mkdirp "0.5.1" - supports-color "3.1.2" + babel-runtime "^6.18.0" + chalk "^2.3.0" + chokidar "^2.0.2" + glob-parent "^3.1.0" + globby "^7.1.1" + interpret "^1.0.1" + is-glob "^4.0.0" + loader-utils "^1.1.0" + lodash "^4.3.0" + memory-fs "^0.4.1" + nodent-runtime "^3.0.3" + normalize-path "^2.0.1" + progress "^2.0.0" + source-map-support "^0.5.0" + strip-ansi "^4.0.0" + toposort "^1.0.0" + yargs "^11.0.0" -mocha@^3.2.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" dependencies: - browser-stdout "1.3.0" - commander "2.9.0" - debug "2.6.8" - diff "3.2.0" + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" escape-string-regexp "1.0.5" - glob "7.1.1" - growl "1.9.2" + glob "7.1.2" + growl "1.10.5" he "1.1.1" - json3 "3.3.2" - lodash.create "3.1.1" + minimatch "3.0.4" mkdirp "0.5.1" - supports-color "3.1.2" + supports-color "5.4.0" -moment@^2.20.1: - version "2.22.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.0.tgz#7921ade01017dd45186e7fee5f424f0b8663a730" +moment@^2.22.2: + version "2.22.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" move-concurrently@^1.0.1: version "1.0.1" @@ -4883,36 +5025,38 @@ moxios@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/moxios/-/moxios-0.4.0.tgz#fc0da2c65477d725ca6b9679d58370ed0c52f53b" -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.10.0, nan@^2.3.0: +nan@^2.10.0, nan@^2.9.2: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" define-property "^2.0.2" extend-shallow "^3.0.2" fragment-cache "^0.2.1" - is-odd "^2.0.0" is-windows "^1.0.2" kind-of "^6.0.2" object.pick "^1.3.0" @@ -4920,44 +5064,43 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -native-promise-only@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" +needle@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" neo-async@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" - -netmask@~1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" + version "2.5.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" next-tick@1: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" -nightwatch@^0.9.12: - version "0.9.20" - resolved "https://registry.yarnpkg.com/nightwatch/-/nightwatch-0.9.20.tgz#156d17cd058cbc31f43ab18e915f7ec297fb53e0" - dependencies: - chai-nightwatch "~0.1.x" - ejs "2.5.7" - lodash.clone "3.0.3" - lodash.defaultsdeep "4.3.2" - minimatch "3.0.3" - mkpath "1.0.0" - mocha-nightwatch "3.2.2" - optimist "0.6.1" - proxy-agent "2.0.0" - q "1.4.1" +nice-try@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" + +nise@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.2.tgz#a9a3800e3994994af9e452333d549d60f72b8e8c" + dependencies: + "@sinonjs/formatio" "^2.0.0" + just-extend "^1.1.27" + lolex "^2.3.2" + path-to-regexp "^1.7.0" + text-encoding "^0.6.4" no-case@^2.2.0: version "2.3.2" @@ -4965,24 +5108,35 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-gyp@^3.3.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" +node-forge@0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" dependencies: fstream "^1.0.0" glob "^7.0.3" graceful-fs "^4.1.2" - minimatch "^3.0.2" mkdirp "^0.5.0" nopt "2 || 3" npmlog "0 || 1 || 2 || 3 || 4" osenv "0" - request "2" + request "^2.87.0" rimraf "2" semver "~5.3.0" tar "^2.0.0" which "1" +node-ipc@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" + dependencies: + event-pubsub "4.3.0" + js-message "1.0.5" + js-queue "2.0.0" + node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" @@ -5011,25 +5165,30 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" dependencies: detect-libc "^1.0.2" - hawk "3.1.3" mkdirp "^0.5.1" + needle "^2.2.1" nopt "^4.0.1" + npm-packlist "^1.1.6" npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" + rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" + tar "^4" -node-sass@^4.5.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.8.3.tgz#d077cc20a08ac06f661ca44fb6f19cd2ed41debb" +node-releases@^1.0.0-alpha.10: + version "1.0.0-alpha.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.10.tgz#61c8d5f9b5b2e05d84eba941d05b6f5202f68a2a" + dependencies: + semver "^5.3.0" + +node-sass@^4.9.3: + version "4.9.3" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224" dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -5044,14 +5203,18 @@ node-sass@^4.5.3: meow "^3.7.0" mkdirp "^0.5.1" nan "^2.10.0" - node-gyp "^3.3.1" + node-gyp "^3.8.0" npmlog "^4.0.0" - request "~2.79.0" + request "2.87.0" sass-graph "^2.2.4" stdout-stream "^1.4.0" "true-case-path" "^1.0.2" -"nopt@2 || 3", nopt@3.x, nopt@~3.0.1: +nodent-runtime@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/nodent-runtime/-/nodent-runtime-3.2.1.tgz#9e2755d85e39f764288f0d4752ebcfe3e541e00e" + +"nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: @@ -5073,7 +5236,11 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + +normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -5083,14 +5250,20 @@ normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" +normalize-url@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.2.0.tgz#98d0948afc82829f374320f405fe9ca55a5f8567" + +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + +npm-packlist@^1.1.6: + version "1.1.11" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" npm-run-path@^2.0.0: version "2.0.2" @@ -5107,7 +5280,7 @@ npm-run-path@^2.0.0: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@~1.0.1: +nth-check@^1.0.1, nth-check@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" dependencies: @@ -5121,22 +5294,22 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -oauth-sign@~0.8.1, oauth-sign@~0.8.2: +nwsapi@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.8.tgz#e3603579b7e162b3dbedae4fb24e46f771d8fa24" + +oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -5149,12 +5322,32 @@ object-hash@^1.1.4: version "1.3.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" +object-keys@^1.0.11, object-keys@^1.0.8: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" dependencies: isobject "^3.0.0" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -5168,22 +5361,35 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" dependencies: ee-first "1.1.1" -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: +on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -onetime@^1.0.0: - version "1.1.0" - resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -5194,27 +5400,11 @@ opener@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" -opn@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -optimist@0.6.1, optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optimize-css-assets-webpack-plugin@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-1.3.2.tgz#eb27456e21eefbd8080f31e8368c59684e585a2c" +opn@^5.1.0, opn@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" dependencies: - cssnano "^3.4.0" - underscore "^1.8.3" - webpack-sources "^0.1.0" + is-wsl "^1.1.0" optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" @@ -5227,24 +5417,28 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - -ora@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" +ora@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b" dependencies: - chalk "^2.1.0" + chalk "^2.3.1" cli-cursor "^2.1.0" - cli-spinners "^1.0.1" - log-symbols "^2.1.0" + cli-spinners "^1.1.0" + log-symbols "^2.2.0" + strip-ansi "^4.0.0" + wcwidth "^1.0.1" + +original@>=0.0.5: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + dependencies: + url-parse "^1.4.3" os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -5262,7 +5456,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -5286,8 +5480,8 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" p-limit@^1.0.0, p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" dependencies: p-try "^1.0.0" @@ -5305,30 +5499,6 @@ p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" -pac-proxy-agent@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d" - dependencies: - agent-base "2" - debug "2" - extend "3" - get-uri "2" - http-proxy-agent "1" - https-proxy-agent "1" - pac-resolver "~2.0.0" - raw-body "2" - socks-proxy-agent "2" - -pac-resolver@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd" - dependencies: - co "~3.0.6" - degenerator "~1.0.2" - ip "1.0.1" - netmask "~1.0.4" - thunkify "~2.1.1" - pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" @@ -5348,8 +5518,8 @@ param-case@2.1.x: no-case "^2.2.0" parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -5372,30 +5542,23 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" dependencies: "@types/node" "*" -parsejson@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" - dependencies: - better-assert "~1.0.0" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - dependencies: - better-assert "~1.0.0" - parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" @@ -5422,21 +5585,21 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1: +path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" path-to-regexp@0.1.7: version "0.1.7" @@ -5456,21 +5619,19 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" dependencies: pify "^3.0.0" +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + version "3.0.16" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -5478,32 +5639,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -phantomjs-prebuilt@^2.1.14, phantomjs-prebuilt@^2.1.7: - version "2.1.16" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" - dependencies: - es6-promise "^4.0.3" - extract-zip "^1.6.5" - fs-extra "^1.0.0" - hasha "^2.2.0" - kew "^0.7.0" - progress "^1.1.8" - request "^2.81.0" - request-progress "^2.0.1" - which "^1.2.10" - pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -5534,162 +5673,150 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" pofile@^1.0.10: version "1.0.11" resolved "https://registry.yarnpkg.com/pofile/-/pofile-1.0.11.tgz#35aff58c17491d127a07336d5522ebc9df57c954" +portfinder@^1.0.13, portfinder@^1.0.9: + version "1.0.16" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.16.tgz#a6a68be9c352bc66c1a4c17a261f661f3facaf52" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" +postcss-calc@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-6.0.1.tgz#3d24171bbf6e7629d422a436ebfe6dd9511f4330" dependencies: - postcss "^5.0.4" + css-unit-converter "^1.1.1" + postcss "^6.0.0" + postcss-selector-parser "^2.2.2" + reduce-css-calc "^2.0.0" -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" +postcss-colormin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.1.tgz#6f1c18a0155bc69613f2ff13843e2e4ae8ff0bbe" dependencies: - postcss "^5.0.14" + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" +postcss-convert-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz#77d77d9aed1dc4e6956e651cc349d53305876f62" dependencies: - postcss "^5.0.16" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" +postcss-discard-comments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz#9684a299e76b3e93263ef8fd2adbf1a1c08fd88d" dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" + postcss "^6.0.0" -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" +postcss-discard-duplicates@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz#42f3c267f85fa909e042c35767ecfd65cb2bd72c" dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" + postcss "^6.0.0" -postcss-load-config@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" +postcss-discard-empty@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz#55e18a59c74128e38c7d2804bcfa4056611fb97f" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" + postcss "^6.0.0" -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" +postcss-discard-overridden@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz#4a0bf85978784cf1f81ed2c1c1fd9d964a1da1fa" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" + postcss "^6.0.0" -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" +postcss-load-config@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" + cosmiconfig "^4.0.0" + import-cwd "^2.0.0" -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" +postcss-loader@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740" dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" + loader-utils "^1.1.0" + postcss "^6.0.0" + postcss-load-config "^2.0.0" + schema-utils "^0.4.0" -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" +postcss-merge-longhand@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz#bffc7c6ffa146591c993a0bb8373d65f9a06d4d0" dependencies: - postcss "^5.0.4" + css-color-names "0.0.4" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" +postcss-merge-rules@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz#430fd59b3f2ed2e8afcd0b31278eda39854abb10" dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^6.0.0" + postcss-selector-parser "^3.0.0" vendors "^1.0.0" -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" +postcss-minify-font-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz#4cc33d283d6a81759036e757ef981d92cbd85bed" dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" +postcss-minify-gradients@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz#3fc3916439d27a9bb8066db7cdad801650eb090e" dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" +postcss-minify-params@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz#05e9166ee48c05af651989ce84d39c1b4d790674" dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" + alphanum-sort "^1.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" uniqs "^2.0.0" -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" +postcss-minify-selectors@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz#b1e9f6c463416d3fcdcb26e7b785d95f61578aad" dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^6.0.0" + postcss-selector-parser "^3.0.0" postcss-modules-extract-imports@^1.2.0: version "1.2.0" @@ -5718,50 +5845,104 @@ postcss-modules-values@^1.3.0: icss-replace-symbols "^1.1.0" postcss "^6.0.1" -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" +postcss-normalize-charset@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz#24527292702d5e8129eafa3d1de49ed51a6ab730" + dependencies: + postcss "^6.0.0" + +postcss-normalize-display-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz#950e0c7be3445770a160fffd6b6644c3c0cd8f89" + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz#ee9343ab981b822c63ab72615ecccd08564445a3" + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz#b711c592cf16faf9ff575e42fa100b6799083eff" + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz#718cb6d30a6fac6ac6a830e32c06c07dbc66fe5d" + dependencies: + has "^1.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz#0351f29886aa981d43d91b2c2bd1aea6d0af6d23" + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz#5acd5d47baea5d17674b2ccc4ae5166fa88cdf97" dependencies: - postcss "^5.0.5" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" +postcss-normalize-url@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz#b7a9c8ad26cf26694c146eb2d68bd0cf49956f0d" dependencies: is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" + normalize-url "^3.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" +postcss-normalize-whitespace@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz#1da7e76b10ae63c11827fa04fc3bb4a1efe99cc0" dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" +postcss-ordered-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz#58b40c74f72e022eb34152c12e4b0f9354482fc2" dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + cssnano-util-get-arguments "^4.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" +postcss-reduce-initial@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz#f2d58f50cea2b0c5dc1278d6ea5ed0ff5829c293" dependencies: - postcss "^5.0.4" + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^6.0.0" -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" +postcss-reduce-transforms@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz#f645fc7440c35274f40de8104e14ad7163edf188" dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: +postcss-selector-parser@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" dependencies: @@ -5769,7 +5950,7 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^3.1.1: +postcss-selector-parser@^3.0.0, postcss-selector-parser@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" dependencies: @@ -5777,53 +5958,28 @@ postcss-selector-parser@^3.1.1: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" +postcss-svgo@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.0.tgz#c0bbad02520fc636c9d78b0e8403e2e515c32285" dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" + is-svg "^3.0.0" + postcss "^6.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" +postcss-unique-selectors@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz#04c1e9764c75874261303402c41f0e9769fc5501" dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" + alphanum-sort "^1.0.0" + postcss "^6.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1: - version "6.0.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.21.tgz#8265662694eddf9e9a5960db6da33c39e4cd069d" - dependencies: - chalk "^2.3.2" - source-map "^0.6.1" - supports-color "^5.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" -postcss@^6.0.20: +postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.20, postcss@^6.0.23: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" dependencies: @@ -5831,22 +5987,30 @@ postcss@^6.0.20: source-map "^0.6.1" supports-color "^5.4.0" +postcss@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.2.tgz#7b5a109de356804e27f95a960bef0e4d5bc9bb18" + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@^1.13.0: +prettier@1.13.7: version "1.13.7" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" +prettier@^1.13.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.2.tgz#0ac1c6e1a90baa22a62925f41963c841983282f9" + pretty-error@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -5854,7 +6018,7 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" -private@^0.1.6, private@^0.1.7: +private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -5866,9 +6030,9 @@ process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" promise-inflight@^1.0.1: version "1.0.1" @@ -5880,41 +6044,28 @@ promise@^7.0.1: dependencies: asap "~2.0.3" -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - proxy-addr@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + version "2.0.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" dependencies: forwarded "~0.1.2" - ipaddr.js "1.6.0" - -proxy-agent@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499" - dependencies: - agent-base "2" - debug "2" - extend "3" - http-proxy-agent "1" - https-proxy-agent "1" - lru-cache "~2.6.5" - pac-proxy-agent "1" - socks-proxy-agent "2" + ipaddr.js "1.8.0" prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" -pseudomap@^1.0.1, pseudomap@^1.0.2: +pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" +psl@^1.1.24: + version "1.1.29" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" + public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + version "4.0.2" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -6023,10 +6174,10 @@ pump@^2.0.0, pump@^2.0.1: once "^1.3.1" pumpify@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" dependencies: - duplexify "^3.5.3" + duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" @@ -6034,59 +6185,45 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" +punycode@2.x.x, punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -punycode@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - -q@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - -qs@6.5.1, qs@~6.5.1: +qs@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" -qs@~6.3.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" +qs@~6.5.1, qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" -querystring@0.2.0, querystring@^0.2.0: +querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" +querystringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" + +randomatic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" @@ -6101,15 +6238,15 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: +range-parser@^1.0.3, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -raven-js@^3.22.3: - version "3.24.0" - resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.24.0.tgz#59464d8bc4b3812ae87a282e9bb98ecad5b4b047" +raven-js@^3.26.4: + version "3.26.4" + resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.26.4.tgz#32aae3a63a9314467a453c94c89a364ea43707be" -raw-body@2, raw-body@2.3.2: +raw-body@2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" dependencies: @@ -6118,11 +6255,11 @@ raw-body@2, raw-body@2.3.2: iconv-lite "0.4.19" unpipe "1.0.0" -rc@^1.1.7: - version "1.2.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" dependencies: - deep-extend "~0.4.0" + deep-extend "^0.6.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" @@ -6134,13 +6271,6 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -6149,15 +6279,15 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" dependencies: - load-json-file "^2.0.0" normalize-package-data "^2.3.2" - path-type "^2.0.0" + parse-json "^4.0.0" + pify "^3.0.0" -"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -6169,7 +6299,7 @@ read-pkg@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0, readable-stream@~1.0.2: +readable-stream@1.0: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -6178,15 +6308,6 @@ readable-stream@1.0, readable-stream@~1.0.2: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -6196,20 +6317,6 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - reconnecting-websocket@^3.0.3: version "3.2.2" resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-3.2.2.tgz#8097514e926e9855e03c39e76efa2e3d1f371bee" @@ -6221,34 +6328,31 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" +reduce-css-calc@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz#c20e9cda8445ad73d4ff4bea960c6f8353791708" dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" + css-unit-converter "^1.1.1" + postcss-value-parser "^3.3.0" -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" +regenerate-unicode-properties@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" dependencies: - balanced-match "^0.4.2" + regenerate "^1.4.0" -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" +regenerate@^1.2.1, regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" -regenerator-runtime@^0.11.0: +regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" +regenerator-transform@^0.12.3: + version "0.12.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.12.4.tgz#aa9b6c59f4b97be080e972506c560b3bccbfcff0" dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" private "^0.1.6" regex-cache@^0.4.2: @@ -6264,6 +6368,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpp@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -6272,24 +6380,37 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" +regexpu-core@^4.1.3, regexpu-core@^4.1.4: + version "4.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + regenerate "^1.4.0" + regenerate-unicode-properties "^7.0.0" + regjsgen "^0.4.0" + regjsparser "^0.3.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.0.2" regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" +regjsgen@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" + regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" +regjsparser@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" + dependencies: + jsesc "~0.5.0" + relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -6312,10 +6433,6 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" -repeat-string@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" - repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -6326,15 +6443,23 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request-progress@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise-native@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" dependencies: - throttleit "^1.0.0" + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" -request@2, request@^2.81.0, request@^2.83.0: - version "2.85.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" +request@2.87.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" @@ -6344,7 +6469,6 @@ request@2, request@^2.81.0, request@^2.83.0: forever-agent "~0.6.1" form-data "~2.3.1" har-validator "~5.0.3" - hawk "~6.0.2" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -6354,111 +6478,82 @@ request@2, request@^2.81.0, request@^2.83.0: performance-now "^2.1.0" qs "~6.5.1" safe-buffer "^5.1.1" - stringstream "~0.0.5" tough-cookie "~2.3.3" tunnel-agent "^0.6.0" uuid "^3.1.0" -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" +request@^2.87.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" + aws-sign2 "~0.7.0" + aws4 "^1.8.0" caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" + combined-stream "~1.0.6" + extend "~3.0.2" forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" tunnel-agent "^0.6.0" - uuid "^3.0.0" - -request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" + uuid "^3.3.2" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" +require-from-string@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -require-uncached@^1.0.2: +require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" -requires-port@1.x.x: +requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" -resolve@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.6, resolve@^1.3.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.0.tgz#2bdf5374811207285df0df652b78f118ab8f3c5e" +resolve@^1.1.6, resolve@^1.3.2: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" dependencies: path-parse "^1.0.5" -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -6470,30 +6565,38 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" dependencies: - hash-base "^2.0.0" + hash-base "^3.0.0" inherits "^2.0.1" -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: - once "^1.3.0" + is-promise "^2.1.0" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" @@ -6501,21 +6604,35 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" dependencies: ret "~0.1.10" -samsam@1.x, samsam@^1.1.3: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +samsam@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" @@ -6528,25 +6645,27 @@ sass-graph@^2.2.4: scss-tokenizer "^0.2.3" yargs "^7.0.0" -sass-loader@^6.0.5: - version "6.0.7" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" +sass-loader@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d" dependencies: clone-deep "^2.0.1" loader-utils "^1.0.1" lodash.tail "^4.1.1" neo-async "^2.5.0" pify "^3.0.0" + semver "^5.5.0" -sax@~1.2.1: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" +schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" dependencies: - ajv "^5.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" scss-tokenizer@^0.2.3: version "0.2.3" @@ -6555,28 +6674,26 @@ scss-tokenizer@^0.2.3: js-base64 "^2.1.8" source-map "^0.4.2" -selenium-server@^3.0.1: - version "3.11.0" - resolved "https://registry.yarnpkg.com/selenium-server/-/selenium-server-3.11.0.tgz#fb20b049805d6a663ab4a609dd505fd9eddd7d15" +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" -semantic-ui-css@^2.2.10: - version "2.3.1" - resolved "https://registry.yarnpkg.com/semantic-ui-css/-/semantic-ui-css-2.3.1.tgz#a5485c640c98cce29d8ddde3eff3434566a068e0" +selfsigned@^1.9.1: + version "1.10.3" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" + dependencies: + node-forge "0.7.5" + +semantic-ui-css@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/semantic-ui-css/-/semantic-ui-css-2.3.3.tgz#134794cde03344092f2728ff61bf9203cf172834" dependencies: jquery x.* -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" -semver@~4.3.3: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - -semver@~5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" - semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -6600,8 +6717,20 @@ send@0.16.2: statuses "~1.4.0" serialize-javascript@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + +serve-index@^1.7.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" serve-static@1.13.2: version "1.13.2" @@ -6675,13 +6804,14 @@ shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" -shelljs@^0.7.5, shelljs@^0.7.6: - version "0.7.8" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" showdown@^1.8.6: version "1.8.6" @@ -6693,46 +6823,43 @@ shvl@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/shvl/-/shvl-1.3.1.tgz#6c20a17b4a20b08e9f8cab60c50a92229fcc176e" -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -sinon-chai@^2.8.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d" - -sinon-stub-promise@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/sinon-stub-promise/-/sinon-stub-promise-4.0.0.tgz#6d498ba1198557cd01e3466af92dc7df725192c2" +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + dependencies: + is-arrayish "^0.3.1" -sinon@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-2.4.1.tgz#021fd64b54cb77d9d2fb0d43cdedfae7629c3a36" +sinon@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-6.1.5.tgz#41451502d43cd5ffb9d051fbf507952400e81d09" dependencies: - diff "^3.1.0" - formatio "1.2.0" - lolex "^1.6.0" - native-promise-only "^0.8.1" - path-to-regexp "^1.7.0" - samsam "^1.1.3" - text-encoding "0.6.4" - type-detect "^4.0.0" + "@sinonjs/commons" "^1.0.1" + "@sinonjs/formatio" "^2.0.0" + "@sinonjs/samsam" "^2.0.0" + diff "^3.5.0" + lodash.get "^4.4.2" + lolex "^2.7.1" + nise "^1.4.2" + supports-color "^5.4.0" + type-detect "^4.0.8" slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" -smart-buffer@^1.0.13: - version "1.1.15" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: version "2.1.1" @@ -6761,82 +6888,23 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - -socket.io-adapter@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" - dependencies: - debug "2.3.3" - socket.io-parser "2.3.1" - -socket.io-client@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "2.3.3" - engine.io-client "1.8.3" - has-binary "0.1.7" - indexof "0.0.1" - object-component "0.0.3" - parseuri "0.0.5" - socket.io-parser "2.3.1" - to-array "0.1.4" - -socket.io-parser@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" - dependencies: - component-emitter "1.1.2" - debug "2.2.0" - isarray "0.0.1" - json3 "3.3.2" - -socket.io@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" - dependencies: - debug "2.3.3" - engine.io "1.8.3" - has-binary "0.1.7" - object-assign "4.1.0" - socket.io-adapter "0.5.0" - socket.io-client "1.7.3" - socket.io-parser "2.3.1" - -socks-proxy-agent@2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" - dependencies: - agent-base "2" - extend "3" - socks "~1.1.5" - -socks@~1.1.5: - version "1.1.10" - resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" +sockjs-client@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.5.tgz#1bb7c0f7222c40f42adf14f4442cbd1269771a83" dependencies: - ip "^1.1.4" - smart-buffer "^1.0.13" + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" dependencies: - is-plain-obj "^1.0.0" + faye-websocket "^0.10.0" + uuid "^3.0.1" sortablejs@^1.7.0: version "1.7.0" @@ -6846,50 +6914,41 @@ source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" -source-list-map@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" - source-map-resolve@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" dependencies: - atob "^2.0.0" + atob "^2.1.1" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" +source-map-support@^0.5.0: + version "0.5.8" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.8.tgz#04f5581713a8a65612d0175fbf3a01f80a162613" dependencies: - source-map "^0.5.6" + buffer-from "^1.0.0" + source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@0.5.x, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.3: +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.4.2, source-map@^0.4.4: +source-map@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" -source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - spdx-correct@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" @@ -6912,6 +6971,29 @@ spdx-license-ids@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" +spdy-transport@^2.0.18: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -6923,13 +7005,14 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" + version "1.14.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" dashdash "^1.12.0" getpass "^0.1.1" + safer-buffer "^2.0.2" optionalDependencies: bcrypt-pbkdf "^1.0.0" ecc-jsbn "~0.1.1" @@ -6942,7 +7025,15 @@ ssri@^5.2.4: dependencies: safe-buffer "^5.1.1" -stackframe@^1.0.3: +ssri@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.0.tgz#fc21bfc90e03275ac3e23d5a42e38b8a1cbc130d" + +stable@~0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + +stackframe@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" @@ -6957,10 +7048,6 @@ static-extend@^0.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - statuses@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" @@ -6971,6 +7058,10 @@ stdout-stream@^1.4.0: dependencies: readable-stream "^2.0.1" +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -6979,19 +7070,19 @@ stream-browserify@^2.0.1: readable-stream "^2.0.2" stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" stream-http@^2.7.2: - version "2.8.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4" + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" - readable-stream "^2.3.3" + readable-stream "^2.3.6" to-arraybuffer "^1.0.0" xtend "^4.0.0" @@ -6999,10 +7090,6 @@ stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -7011,13 +7098,29 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string.prototype.padstart@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz#5bcfad39f4649bb2d031292e19bcf0b510d4b242" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + string_decoder@^1.0.0, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -7028,10 +7131,6 @@ string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" -stringstream@~0.0.4, stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -7050,10 +7149,6 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -7064,85 +7159,71 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" - dependencies: - has-flag "^1.0.0" - -supports-color@^2.0.0: +strip-indent@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" -supports-color@^3.1.0, supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -supports-color@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" +stylehacks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.0.tgz#64b323951c4a24e5fc7b2ec06c137bf32d155e8a" dependencies: - has-flag "^3.0.0" + browserslist "^4.0.0" + postcss "^6.0.0" + postcss-selector-parser "^3.0.0" -supports-color@^5.4.0: +supports-color@5.4.0, supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" dependencies: has-flag "^3.0.0" -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +svgo@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a" dependencies: - coa "~1.0.1" + coa "~2.0.1" colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" + css-select "~1.3.0-rc0" + css-select-base-adapter "~0.1.0" + css-tree "1.0.0-alpha25" + css-url-regex "^1.1.0" + csso "^3.5.0" + js-yaml "~3.10.0" mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" + object.values "^1.0.4" + sax "~1.2.4" + stable "~0.1.6" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" +table@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" +tapable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.0.0, tar@^2.2.1: +tar@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -7150,17 +7231,19 @@ tar@^2.0.0, tar@^2.2.1: fstream "^1.0.2" inherits "2" -test-exclude@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" +tar@^4: + version "4.4.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" dependencies: - arrify "^1.0.1" - micromatch "^3.1.8" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" -text-encoding@0.6.4: +text-encoding@^0.6.4: version "0.6.4" resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" @@ -7168,9 +7251,13 @@ text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" +thread-loader@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-1.2.0.tgz#35dedb23cf294afbbce6c45c1339b950ed17e7a4" + dependencies: + async "^2.3.0" + loader-runner "^2.3.0" + loader-utils "^1.1.0" through2@^2.0.0: version "2.0.3" @@ -7183,36 +7270,26 @@ through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -thunkify@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" - -time-stamp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" +thunky@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" timers-browserify@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" dependencies: setimmediate "^1.0.4" -tmp@0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" - dependencies: - os-tmpdir "~1.0.1" +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" -tmp@0.0.x: +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" dependencies: os-tmpdir "~1.0.2" -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -7221,6 +7298,10 @@ to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -7247,16 +7328,35 @@ token-stream@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" +topo@3.x.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.0.tgz#37e48c330efeac784538e0acd3e62ca5e231fe7a" + dependencies: + hoek "5.x.x" + toposort@^1.0.0: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" + version "1.0.7" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + +tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" -tough-cookie@~2.3.0, tough-cookie@~2.3.3: +tough-cookie@~2.3.3: version "2.3.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" dependencies: punycode "^1.4.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + dependencies: + punycode "^2.1.0" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -7272,8 +7372,12 @@ trim-right@^1.0.1: glob "^6.0.4" tryer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz#027b69fa823225e551cace3ef03b11f6ab37c1d7" + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" tty-browserify@0.0.0: version "0.0.0" @@ -7285,10 +7389,6 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -7299,15 +7399,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - -type-detect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - -type-detect@^4.0.0: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -7322,14 +7414,21 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uglify-js@3.3.x: - version "3.3.20" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.20.tgz#dc8bdee7d454c7d31dddc36f922d170bfcee3a0a" +uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + +uglify-js@3.4.x: + version "3.4.7" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.7.tgz#4df6b92e54789aa921a254cb1e33704d6ec12b89" dependencies: - commander "~2.15.0" + commander "~2.16.0" source-map "~0.6.1" -uglify-js@^2.6, uglify-js@^2.6.1, uglify-js@^2.8.29: +uglify-js@^2.6.1: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: @@ -7342,25 +7441,37 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" +uglifyjs-webpack-plugin@^1.2.4, uglifyjs-webpack-plugin@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00" dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" -ultron@1.0.x: +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" -underscore@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" union-value@^1.0.0: version "1.0.0" @@ -7375,12 +7486,6 @@ uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" -uniqid@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" - dependencies: - macaddress "^0.2.8" - uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" @@ -7397,10 +7502,18 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -7408,17 +7521,17 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" -uri-js@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa" +uri-js@^4.2.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" dependencies: punycode "^2.1.0" @@ -7426,12 +7539,24 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-loader@^0.5.8: - version "0.5.9" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" +url-join@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" + +url-loader@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.0.1.tgz#61bc53f1f184d7343da2728a1289ef8722ea45ee" dependencies: - loader-utils "^1.0.2" - mime "1.3.x" + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^0.4.3" + +url-parse@^1.1.8, url-parse@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15" + dependencies: + querystringify "^2.0.0" + requires-port "^1.0.0" url@^0.11.0: version "0.11.0" @@ -7441,34 +7566,32 @@ url@^0.11.0: querystring "0.2.0" use@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - dependencies: - kind-of "^6.0.2" - -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - dependencies: - os-homedir "^1.0.0" - -useragent@^2.1.12: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -util@0.10.3, util@^0.10.3: +util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: inherits "2.0.1" +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + dependencies: + inherits "2.0.3" + utila@~0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" @@ -7481,13 +7604,13 @@ utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" -uuid@^3.0.0, uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" +uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" validate-npm-package-license@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" @@ -7497,8 +7620,8 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" vendors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + version "1.0.2" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" verror@1.10.0: version "1.10.0" @@ -7514,88 +7637,90 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" -void-elements@^2.0.0, void-elements@^2.0.1: +void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" -vue-gettext@^2.0.31: - version "2.0.31" - resolved "https://registry.yarnpkg.com/vue-gettext/-/vue-gettext-2.0.31.tgz#0f113bea6aed747e2a809ae4a0db83eaac0b07fc" +vue-eslint-parser@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" + dependencies: + debug "^3.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + lodash "^4.17.4" + +vue-gettext@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vue-gettext/-/vue-gettext-2.1.0.tgz#e4932037a8601412dd9f7d7d7a5d60c4bdb341d1" -vue-hot-reload-api@^2.1.0: +vue-hot-reload-api@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926" -vue-lazyload@^1.1.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/vue-lazyload/-/vue-lazyload-1.2.2.tgz#73335ed32db25264f5957df1a21d277823423743" +vue-lazyload@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/vue-lazyload/-/vue-lazyload-1.2.6.tgz#baa04c172d52a812608eb12c7a6bfb14f5c91079" -vue-loader@^12.1.0: - version "12.2.2" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-12.2.2.tgz#2b3a764f27018f975bc78cb8b1f55137548ee2d7" +vue-loader@^15.3.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.3.0.tgz#b474d10a4e93d934a78c147fc3e314b370e9fc54" dependencies: - consolidate "^0.14.0" + "@vue/component-compiler-utils" "^2.0.0" hash-sum "^1.0.2" - js-beautify "^1.6.3" loader-utils "^1.1.0" - lru-cache "^4.0.1" - postcss "^5.0.21" - postcss-load-config "^1.1.0" - postcss-selector-parser "^2.0.0" - resolve "^1.3.3" - source-map "^0.5.6" - vue-hot-reload-api "^2.1.0" - vue-style-loader "^3.0.0" - vue-template-es2015-compiler "^1.2.2" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" -vue-masonry@^0.10.16: - version "0.10.17" - resolved "https://registry.yarnpkg.com/vue-masonry/-/vue-masonry-0.10.17.tgz#39ae7f412ff8492a713b39ad2b3d41c34fb76b91" +vue-masonry@^0.11.5: + version "0.11.5" + resolved "https://registry.yarnpkg.com/vue-masonry/-/vue-masonry-0.11.5.tgz#9b2916388c267dea3dab60a1d808f10e6a5784df" dependencies: - imagesloaded latest - masonry latest - masonry-layout "4.1.1" + imagesloaded "4.1.4" + masonry-layout "4.2.0" vue "^2.0.0" -vue-router@^2.3.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.8.1.tgz#9833c9ee57ac83beb0269056fefee71713f20695" +vue-router@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9" -vue-style-loader@^3.0.0, vue-style-loader@^3.0.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-3.1.2.tgz#6b66ad34998fc9520c2f1e4d5fa4091641c1597a" +vue-style-loader@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.1.tgz#7c1d051b24f60b1707602b549ed50b4c8111d316" dependencies: hash-sum "^1.0.2" loader-utils "^1.0.2" -vue-template-compiler@^2.3.3, vue-template-compiler@^2.5.16: - version "2.5.16" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz#93b48570e56c720cdf3f051cc15287c26fbd04cb" +vue-template-compiler@^2.5.16, vue-template-compiler@^2.5.17: + version "2.5.17" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.17.tgz#52a4a078c327deb937482a509ae85c06f346c3cb" dependencies: de-indent "^1.0.2" he "^1.1.0" -vue-template-es2015-compiler@^1.2.2, vue-template-es2015-compiler@^1.6.0: +vue-template-es2015-compiler@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18" -vue-upload-component@^2.7.4: - version "2.8.5" - resolved "https://registry.yarnpkg.com/vue-upload-component/-/vue-upload-component-2.8.5.tgz#680de2934f55c6a38da7b382d0f37fd79995dd42" +vue-upload-component@^2.8.11: + version "2.8.11" + resolved "https://registry.yarnpkg.com/vue-upload-component/-/vue-upload-component-2.8.11.tgz#7dd207144ba9502760aecf77d42e4ab072b94b07" -vue@^2.0.0, vue@^2.5.16: - version "2.5.16" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085" +vue@^2.0.0, vue@^2.5.17: + version "2.5.17" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.17.tgz#0f8789ad718be68ca1872629832ed533589c6ada" -vuedraggable@^2.14.1: +vuedraggable@^2.16.0: version "2.16.0" resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.16.0.tgz#52127081a2adb3de5fabd214d404ff3eee63575a" dependencies: sortablejs "^1.7.0" -vuex-persistedstate@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/vuex-persistedstate/-/vuex-persistedstate-2.5.2.tgz#751752f03bdf6d7fc855106f0666f2ce13b415b5" +vuex-persistedstate@^2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/vuex-persistedstate/-/vuex-persistedstate-2.5.4.tgz#a19710ad7f9a08cea4e65fc585924d9fdac7384a" dependencies: deepmerge "^2.1.0" shvl "^1.3.0" @@ -7608,17 +7733,39 @@ vuex@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.0.1.tgz#e761352ebe0af537d4bb755a9b9dc4be3df7efd2" -watchpack@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + dependencies: + browser-process-hrtime "^0.1.2" + +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" -webpack-bundle-analyzer@^2.2.1: - version "2.11.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.11.1.tgz#b9fbfb6a32c0a8c1c3237223e90890796b950ab9" +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + +webpack-bundle-analyzer@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.1.tgz#07d2176c6e86c3cdce4c23e56fae2a7b6b4ad526" dependencies: acorn "^5.3.0" bfj-node4 "^5.2.0" @@ -7633,75 +7780,138 @@ webpack-bundle-analyzer@^2.2.1: opener "^1.4.3" ws "^4.0.0" -webpack-dev-middleware@^1.10.0, webpack-dev-middleware@^1.12.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" +webpack-chain@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.8.0.tgz#06fc3dbb9f2707d4c9e899fc6250fbcf2afe6fd1" + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^1.6.0" + +webpack-dev-middleware@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz#8b32aa43da9ae79368c1bf1183f2b6cf5e1f39ed" dependencies: + loud-rejection "^1.6.0" memory-fs "~0.4.1" - mime "^1.5.0" + mime "^2.1.0" path-is-absolute "^1.0.0" range-parser "^1.0.3" - time-stamp "^2.0.0" + url-join "^4.0.0" + webpack-log "^1.0.1" -webpack-hot-middleware@^2.18.0: - version "2.22.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.22.0.tgz#db58c9dd2bd78e7f3868cccb42a20d24b00a7ade" +webpack-dev-server@^3.1.4: + version "3.1.5" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz#87477252e1ac6789303fb8cd3e585fa5d508a401" dependencies: ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^2.0.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.16.2" html-entities "^1.2.0" - querystring "^0.2.0" + http-proxy-middleware "~0.18.0" + import-local "^1.0.0" + internal-ip "1.2.0" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.19" + sockjs-client "1.1.5" + spdy "^3.4.1" strip-ansi "^3.0.0" + supports-color "^5.1.0" + webpack-dev-middleware "3.1.3" + webpack-log "^1.1.2" + yargs "11.0.0" -webpack-merge@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.2.tgz#5d372dddd3e1e5f8874f5bf5a8e929db09feb216" +webpack-log@^1.0.1, webpack-log@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" dependencies: - lodash "^4.17.5" + chalk "^2.1.0" + log-symbols "^2.1.0" + loglevelnext "^1.0.1" + uuid "^3.1.0" -webpack-sources@^0.1.0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" +webpack-merge@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.4.tgz#0fde38eabf2d5fd85251c24a5a8c48f8a3f4eb7b" dependencies: - source-list-map "~0.1.7" - source-map "~0.5.3" + lodash "^4.17.5" -webpack-sources@^1.0.1: +webpack-sources@^1.0.1, webpack-sources@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@3: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" +webpack@^4.15.1: + version "4.16.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.16.5.tgz#29fb39462823d7eb8aefcab8b45f7f241db0d092" + dependencies: + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-module-context" "1.5.13" + "@webassemblyjs/wasm-edit" "1.5.13" + "@webassemblyjs/wasm-opt" "1.5.13" + "@webassemblyjs/wasm-parser" "1.5.13" + acorn "^5.6.2" + acorn-dynamic-import "^3.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1" + micromatch "^3.1.8" mkdirp "~0.5.0" + neo-async "^2.5.0" node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" + schema-utils "^0.4.4" + tapable "^1.0.0" + uglifyjs-webpack-plugin "^1.2.4" + watchpack "^1.5.0" webpack-sources "^1.0.1" - yargs "^8.0.2" -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" +websocket-driver@>=0.5.1: + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + dependencies: + http-parser-js ">=0.4.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" + dependencies: + iconv-lite "0.4.19" + +whatwg-mimetype@^2.0.0, whatwg-mimetype@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4" + +whatwg-url@^6.4.0, whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" which-module@^1.0.0: version "1.0.0" @@ -7711,17 +7921,17 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@1, which@^1.1.1, which@^1.2.10, which@^1.2.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" +which@1, which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: isexe "^2.0.0" wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" dependencies: - string-width "^1.0.2" + string-width "^1.0.2 || 2" window-size@0.1.0: version "0.1.0" @@ -7738,13 +7948,15 @@ wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" -wordwrap@^1.0.0, wordwrap@~1.0.0: +wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" +worker-farm@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" @@ -7763,13 +7975,6 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - ws@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" @@ -7777,17 +7982,15 @@ ws@^4.0.0: async-limiter "~1.0.0" safe-buffer "~5.1.0" -wtf-8@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" - -xmlhttprequest-ssl@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + dependencies: + async-limiter "~1.0.0" -xregexp@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" @@ -7805,24 +8008,45 @@ yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" dependencies: camelcase "^3.0.0" -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - yargs-parser@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" dependencies: camelcase "^4.1.0" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + yargs@^10.0.3: version "10.1.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" @@ -7840,6 +8064,23 @@ yargs@^10.0.3: y18n "^3.2.1" yargs-parser "^8.1.0" +yargs@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + yargs@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" @@ -7858,24 +8099,6 @@ yargs@^7.0.0: y18n "^3.2.1" yargs-parser "^5.0.0" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" @@ -7885,12 +8108,11 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" +yorkie@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" dependencies: - fd-slicer "~1.0.1" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + execa "^0.8.0" + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0"