# Welcome to the contributing guide for PeerTube
-Interesting in contributing? Awesome!
+Interested in contributing? Awesome!
-**Quick Links:**
+**This guide will present you the following contribution topics:**
* [Translate](#translate)
* [Give your feedback](#give-your-feedback)
* [Write documentation](#write-documentation)
* [Develop](#develop)
-
+ * [Improve the website](#improve-the-website)
+ * [Troubleshooting](#troubleshooting)
+ * [Tutorials](#tutorials)
## Translate
* Models sent/received by the controllers are defined in [/shared/models](/shared/models) directory
+## Improve the website
+
+PeerTube's website is [joinpeertube.org](https://joinpeertube.org), where people can learn about the project and how it works – note that it is not a PeerTube instance, but rather the project's homepage.
+
+You can help us improve it too!
+
+It is not hosted on GitHub but on [Framasoft](https://framasoft.org/)'s own [GitLab](https://about.gitlab.com/) instance, [FramaGit](https://framagit.org): https://framagit.org/framasoft/peertube/joinpeertube
+
+
## Develop
Don't hesitate to talk about features you want to develop by creating/commenting an issue
$ npm run dev
```
-### Federation
+### Testing the federation of PeerTube servers
Create a PostgreSQL user **with the same name as your username** in order to avoid using the *postgres* user.
Then, we can create the databases (if they don't already exist):
Instance configurations are in `config/test-{1,2,3,4,5,6}.yaml`.
Note that only instance 2 has transcoding enabled.
+
+### Troubleshooting
+
+Please check out the issues and [list of common errors](https://docs.joinpeertube.org/lang/en/devdocs/troubleshooting.html).
+
+### Tutorials
+
+Please check out the related section in the [development documentation](https://docs.joinpeertube.org/lang/en/devdocs/index.html#tutorials). Contribute tutorials at [framagit.org/framasoft/peertube/documentation](https://framagit.org/framasoft/peertube/documentation).
/test4/
/test5/
/test6/
+/server/tests/fixtures/video_high_bitrate_1080p.mp4
# Production
/storage/
- g++-4.9
postgresql: "9.4"
-cache: yarn
+cache:
+ directories:
+ - $HOME/.cache/yarn
+ - $HOME/fixtures
sudo: false
- env: TEST_SUITE=api-1
- env: TEST_SUITE=api-2
- env: TEST_SUITE=api-3
+ - env: TEST_SUITE=api-4
- env: TEST_SUITE=cli
- env: TEST_SUITE=lint
- env: TEST_SUITE=jest
## Vocabulary
- - **Fediverse:** several servers following each others.
+ - **Fediverse:** several servers following one another, several users
+ following each other. Designates federated communities in general.
+ - **Vidiverse:** same as Fediverse, but federating videos specifically.
- **Instance:** a server which runs PeerTube in the fediverse.
- **Origin instance:** the instance on which the video was uploaded and which
is seeding (through the WebSeed protocol) the video.
+ - **Cache instance:** an instance that decided to make available a WebSeed
+ of its own for a video originating from another instance. It sends a `ptCache`
+ activity to notify the origin instance, which will then update its list of
+ WebSeeds for the video.
- **Following:** the action of a PeerTube instance which will follow another
instance (subscribe to its videos).
* All the requests are retried several times if they fail.
### Instance
- * An instance has a websocket tracker which is responsible for all the video
- uploaded in it.
+ * An instance has a websocket tracker which is responsible for all videos
+ uploaded by its users.
* An instance has an administrator that can follow other instances.
* An instance can be configured to follow back automatically.
* An instance can blacklist other instances (only used in "follow back"
# Changelog
+## v1.1.0-alpha.2 (since v1.1.0-alpha.1)
+
+### Security/Maintenance/Federation
+
+ * Add HTTP Signature in addition to Linked Signature:
+ * It's faster
+ * Will allow us to use RSA Signature 2018 in the future without too much incompatibilities in the peertube federation
+
+### Features
+
+ * Set shorter keyframe interval for transcoding (2 seconds) ([@Nutomic](https://github.com/nutomic))
+ * Add ability to disable webtorrent (as a user) ([@rigelk](https://github.com/rigelk))
+ * Make abuse-delete clearer ([@barbeque](https://github.com/barbeque))
+ * Adding minimum signup age conforming to ceiling GPDR age ([@rigelk](https://github.com/rigelk))
+ * Feature/description support fields length 1000 ([@McFlat](https://github.com/mcflat))
+
+### Bug fixes
+
+ * Scale bitrate linearly with FPS ([@Nutomic](https://github.com/nutomic))
+ * AP mimeType -> mediaType
+ * PeerTube is not in beta anymore
+ * PeerTube is not in alpha anymore :p
+ * Fix optimize old videos script
+
+
## v1.0.1
-### SECURITY
+### Security/Maintenance/Federation
* Add HTTP Signature in addition to Linked Signature:
* It's faster
* Will allow us to use RSA Signature 2018 in the future without too much incompatibilities in the peertube federation
+## v1.1.0-alpha.1
+
+We released this alpha version because some admins/users need some moderation tools we implemented in recent weeks.
+This release could contain bugs. Don't expect a stable v1.1.0 until December :)
+
+### Scripts
+
+ * Use DB information from config/production.yaml in upgrade script ([@ldidry](https://github.com/ldidry))
+ * Add REPL script ([@McFlat](https://github.com/mcflat))
+
+### Docker
+
+ * Add search and import settings env settings env variables ([@kaiyou](https://github.com/kaiyou))
+ * Add docker dev image ([@am97](https://github.com/am97))
+
+### Features
+
+ * Automatically resume videos if the user is logged in
+ * Hide automatically the menu when the window is resized ([@BO41](https://github.com/BO41))
+ * Remove confirm modal for JavaScript/CSS injection ([@scanlime](https://github.com/scanlime))
+ * Set bitrate limits for transcoding ([@Nutomic](https://github.com/nutomic))
+ * Add moderation tools in the account page
+ * Add bulk actions in users table (Delete/Ban for now)
+ * Add search filter in admin users table
+ * Add search filter in admin following
+ * Add search filter in admin followers
+ * Add ability to list all local videos
+ * Add ability for users to mute an account or an instance
+ * Add ability for administrators to mute an account or an instance
+ * Rename "News" category to "News & Politics" ([@daker](https://github.com/daker))
+ * Add explicit error message when changing video ownership ([@lucas-dclrcq](https://github.com/lucas-dclrcq))
+ * Improve description of the HTTP video import feature ([@rigelk](https://github.com/rigelk))
+
+
## v1.0.0
-Announcement scheduled for october 15
+### SECURITY
+
+ * Add more headers to HTTP signature to avoid actor impersonation by replaying modified signed HTTP requests (thanks Thibaut Girka)
### Bug fixes
* [rigelk](https://github.com/rigelk)
* [gegeweb](https://github.com/gegeweb)
* [Jorropo](https://github.com/Jorropo)
+ * [Nutomic](https://github.com/Nutomic)
+ * [BO41](https://github.com/BO41)
* [bnjbvr](https://github.com/bnjbvr)
* [DavidLibeau](https://github.com/DavidLibeau)
* [jankeromnes](https://github.com/jankeromnes)
+ * [JohnXLivingston](https://github.com/JohnXLivingston)
+ * [kaiyou](https://github.com/kaiyou)
* [DimitriGilbert](https://github.com/DimitriGilbert)
* [floSoX](https://github.com/floSoX)
* [Green-Star](https://github.com/Green-Star)
* [joshmorel](https://github.com/joshmorel)
* [rezonant](https://github.com/rezonant)
- * [kaiyou](https://github.com/kaiyou)
- * [Nutomic](https://github.com/Nutomic)
- * [JohnXLivingston](https://github.com/JohnXLivingston)
+ * [ldidry](https://github.com/ldidry)
* [okhin](https://github.com/okhin)
+ * [daftaupe](https://github.com/daftaupe)
* [fflorent](https://github.com/fflorent)
- * [ldidry](https://github.com/ldidry)
* [dedesite](https://github.com/dedesite)
* [Nautigsam](https://github.com/Nautigsam)
- * [BO41](https://github.com/BO41)
- * [daftaupe](https://github.com/daftaupe)
+ * [am97](https://github.com/am97)
* [dadall](https://github.com/dadall)
* [jonathanraes](https://github.com/jonathanraes)
* [LecygneNoir](https://github.com/LecygneNoir)
+ * [anoadragon453](https://github.com/anoadragon453)
+ * [McFlat](https://github.com/McFlat)
* [rhaamo](https://github.com/rhaamo)
* [mrflos](https://github.com/mrflos)
* [jocelynj](https://github.com/jocelynj)
+ * [lucas-dclrcq](https://github.com/lucas-dclrcq)
* [lucaspontoexe](https://github.com/lucaspontoexe)
+ * [scanlime](https://github.com/scanlime)
* [flyingrub](https://github.com/flyingrub)
+ * [SerCom-KC](https://github.com/SerCom-KC)
* [tcitworld](https://github.com/tcitworld)
* [valvin1](https://github.com/valvin1)
- * [am97](https://github.com/am97)
* [taziden](https://github.com/taziden)
* [sticmac](https://github.com/sticmac)
+ * [barbeque](https://github.com/barbeque)
* [luzpaz](https://github.com/luzpaz)
* [louistio](https://github.com/louistio)
* [qsypoq](https://github.com/qsypoq)
+ * [daker](https://github.com/daker)
+ * [xyproto](https://github.com/xyproto)
* [Anton-Latukha](https://github.com/Anton-Latukha)
* [noplanman](https://github.com/noplanman)
* [austinheap](https://github.com/austinheap)
* [benabbottnz](https://github.com/benabbottnz)
* [ewft](https://github.com/ewft)
* [bradsk88](https://github.com/bradsk88)
- * [WildYorkies](https://github.com/WildYorkies)
* [Ealhad](https://github.com/Ealhad)
+ * [clementbrizard](https://github.com/clementbrizard)
* [DeeJayBro](https://github.com/DeeJayBro)
* [Edznux](https://github.com/Edznux)
* [ebrehault](https://github.com/ebrehault)
* [jlebras](https://github.com/jlebras)
* [alcalyn](https://github.com/alcalyn)
* [mkody](https://github.com/mkody)
- * [lucas-dclrcq](https://github.com/lucas-dclrcq)
* [zapashcanon](https://github.com/zapashcanon)
* [mart-e](https://github.com/mart-e)
- * [scanlime](https://github.com/scanlime)
* [1000i100](https://github.com/1000i100)
* [zeograd](https://github.com/zeograd)
* [PhieF](https://github.com/PhieF)
* [imbsky](https://github.com/imbsky)
* [ctlaltdefeat](https://github.com/ctlaltdefeat)
* [jomo](https://github.com/jomo)
+ * [lsde](https://github.com/lsde)
* [memoryboxes](https://github.com/memoryboxes)
* [norrist](https://github.com/norrist)
* [osauzet](https://github.com/osauzet)
* [gorkaazk](https://trad.framasoft.org/zanata/profile/view/gorkaazk)
* [gwendald](https://trad.framasoft.org/zanata/profile/view/gwendald)
* [h3zjp](https://trad.framasoft.org/zanata/profile/view/h3zjp)
+ * [jfblanc](https://trad.framasoft.org/zanata/profile/view/jfblanc)
* [jhertel](https://trad.framasoft.org/zanata/profile/view/jhertel)
* [jorropo](https://trad.framasoft.org/zanata/profile/view/jorropo)
* [kedemferre](https://trad.framasoft.org/zanata/profile/view/kedemferre)
* [nbrucy](https://trad.framasoft.org/zanata/profile/view/nbrucy)
* [nitai](https://trad.framasoft.org/zanata/profile/view/nitai)
* [noncommutativegeo](https://trad.framasoft.org/zanata/profile/view/noncommutativegeo)
+ * [nopsidy](https://trad.framasoft.org/zanata/profile/view/nopsidy)
* [nvivant](https://trad.framasoft.org/zanata/profile/view/nvivant)
* [osoitz](https://trad.framasoft.org/zanata/profile/view/osoitz)
* [outloudvi](https://trad.framasoft.org/zanata/profile/view/outloudvi)
- [Are you going to use the Steem blockchain?](#are-you-going-to-use-the-steem-blockchain)
- [Are you going to support advertisements?](#are-you-going-to-support-advertisements)
- [What is "creation dynamic" and why not modify it?](#what-is-creation-dynamic-and-why-not-modify-it)
+- [I have found a security vulnerability in PeerTube. Where and how should I report it?](#i-have-found-a-security-vulnerability-in-peertube-where-and-how-should-i-report-it)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Yes, the origin server always seeds videos uploaded on it thanks to
[Webseed](http://www.bittorrent.org/beps/bep_0019.html).
+It can also be helped by other servers using [redundancy](/support/doc/redundancy.md).
## What is WebSeed?
* **RAM** -> nginx ~ 6MB, peertube ~ 120MB, postgres ~ 10MB, redis ~ 5MB
So you would need:
- * **CPU** 1 core if you don't enable transcoding, 2 at least if you enable it
+ * **CPU** 1 core if you don't enable transcoding, 2 at least if you enable it (works with 1 but this is really slow)
* **RAM** 1GB
* **Storage** Completely depends on how many videos your users will upload
Yes you can, but you won't be able to send data to users that watch the video in their web browser.
The reason is they connects to peers through WebRTC whereas your BitTorrent client uses classic TCP/UDP.
-We hope to see compatibility with WebRTC in popular BitTorrent client in the future. See this issue for more information: https://github.com/webtorrent/webtorrent/issues/369
+To check if your BitTorrent client supports WebTorrent you can see this issue: https://github.com/webtorrent/webtorrent/issues/369
## Why host on GitHub and Framagit?
With that being said, know that we are not against these features *per se*.
We are always open to discussion about potential PRs bringing in features, even of that kind. But we certainly won't dedicate our limited resources to develop them ourselves when there is so much to be done elsewhere.
+
+## I have found a security vulnerability in PeerTube. Where and how should I report it?
+
+We have a policy for contributions related to security. Please refer to [SECURITY.md](./SECURITY.md)
<h1 align="center">
<a href="https://joinpeertube.org">
- <img src="https://joinpeertube.org/img/brand.png" alt="PeerTube">
- <a>
+ <img src="https://joinpeertube.org/img/brand.png" alt="PeerTube">
+ </a>
</h1>
<p align=center>
<strong><a href="https://joinpeertube.org">Website</a></strong>
| <strong><a href="https://instances.joinpeertube.org">Join an instance</a></strong>
- | <strong><a href="#package-create-your-own-instance">Create one</a></strong>
+ | <strong><a href="#package-create-your-own-instance">Create an instance</a></strong>
| <strong><a href="#contact">Chat with us</a></strong>
</p>
directly in the web browser with <a href="https://github.com/feross/webtorrent">WebTorrent</a>.
</p>
-<p align="center">
-<strong>We have run <a href="https://www.kisskissbankbank.com/en/projects/peertube-a-free-and-federated-video-platform">a crowdfunding campaign</a> to pave the road to version 1.0 of PeerTube. Thanks to everyone who pitched in and shared the news around. You can now check out <a href="https://github.com/Chocobozzz/PeerTube/milestone/1">the corresponding milestone</a> and help its development!</strong>
-</p>
-
<p align="center">
<strong>Client</strong>
<br />
<p align="center">
- <a href="https://peertube.cpy.re/videos/watch/a8ea95b8-0396-49a6-8f30-e25e25fb2828">
+ <a href="https://framatube.org/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3">
<img src="https://lutim.cpy.re/8cZDRIEF.png" alt="screenshot" />
</a>
</p>
<h3 align="right">Keep in touch with video creators</h3>
<p align="right">
-Follow your favorite channels from PeerTube or really any other place. No need to have an account on the instance you watched a video to follow its author, you can do all of that from the Fediverse (Mastodon, Pleroma and plenty others), or just with good ol' RSS.
+Follow your favorite channels from PeerTube or really any other place. No need to have an account on the instance you watched a video to follow its author, you can do all of that from the Fediverse (Mastodon, Pleroma, and plenty others), or just with good ol' RSS.
</p>
---
In addition to visitors using WebTorrent to share the load among them, instances can help each other by caching one another's videos. This way even small instances have a way to show content to a wider audience, as they will be shouldered by friend instances (more about that in our <a href="/support/doc/redundancy.md">redundancy guide</a>).
</p>
<p align="right">
-Content creators can get help from their viewers in the simplest way possible: a support button showing a message linking to their donation accounts or really anything else. No more pay-per-view and advertisments that hurt visitors and <strike>incentivize</strike> alter creativity (more about that in our <a href="./FAQ.md">FAQ</a>).
+Content creators can get help from their viewers in the simplest way possible: a support button showing a message linking to their donation accounts or really anything else. No more pay-per-view and advertisements that hurt visitors and <strike>incentivize</strike> alter creativity (more about that in our <a href="./FAQ.md">FAQ</a>).
</p>
---
* [peertube.cpy.re](https://peertube.cpy.re)
* [peertube2.cpy.re](https://peertube2.cpy.re)
* [peertube3.cpy.re](https://peertube3.cpy.re)
- * [Video](https://framatube.org/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3) What is PeerTube?
- * [Video](https://peertube.cpy.re/videos/watch/f78a97f8-a142-4ce1-a5bd-154bf9386504)
- to see what the "decentralization feature" looks like
- * [Video](https://peertube.cpy.re/videos/watch/da2b08d4-a242-4170-b32a-4ec8cbdca701) to see
- the communication between PeerTube and [Mastodon](https://github.com/tootsuite/mastodon)
+ * [Video](https://framatube.org/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3) explaining what PeerTube is
+ * [Video](https://peertube.cpy.re/videos/watch/da2b08d4-a242-4170-b32a-4ec8cbdca701) showing the communication between PeerTube and [Mastodon](https://github.com/tootsuite/mastodon)
:question: Motivation
----------------------------------------------------------------
why we need to use a P2P protocol to limit the server load. Thanks to
[WebTorrent](https://github.com/feross/webtorrent), we can make BitTorrent inside the web browser, as of today.
+:raised_hands: Contributing
+----------------------------------------------------------------
+
+You don't need to be a coder to help!
+
+You can give us your feedback, report bugs, help us translate PeerTube, write documentation, and more. Check out the [contributing
+guide](/.github/CONTRIBUTING.md) to know how, it takes less than 2 minutes to get started. :wink:
+
+You can also join the cheerful bunch that makes our community:
+
+* Chat<a name="contact"></a>:
+ * IRC : **[#peertube on chat.freenode.net:6697](https://kiwiirc.com/client/irc.freenode.net/#peertube)**
+ * Matrix (bridged on the IRC channel) : **[#peertube:matrix.org](https://matrix.to/#/#peertube:matrix.org)**
+* Forum:
+ * Framacolibri: [https://framacolibri.org/c/peertube](https://framacolibri.org/c/peertube)
+
+Feel free to reach out if you have any questions or ideas! :speech_balloon:
+
:package: Create your own instance
----------------------------------------------------------------
See the [community packages](https://docs.joinpeertube.org/lang/en/docs/install.html), which cover various platforms (including [YunoHost](https://install-app.yunohost.org/?app=peertube) and [Docker](/support/doc/docker.md)).
-:wrench: Contribute/Translate/Test
-----------------------------------------------------------------
-
-*Spoiler alert*: you don't need to be a coder to help!
-
-See the [contributing
-guide](/.github/CONTRIBUTING.md). Or simply join the cheerful bunch that makes our community:
-
- * Chat<a name="contact"></a>:
- * IRC : **[#peertube on chat.freenode.net:6697](https://kiwiirc.com/client/irc.freenode.net/#peertube)**
- * Matrix (bridged on the IRC channel) : **[#peertube:matrix.org](https://matrix.to/#/#peertube:matrix.org)**
- * Forum:
- * Framacolibri: [https://framacolibri.org/c/peertube](https://framacolibri.org/c/peertube)
-
:book: Documentation
----------------------------------------------------------------
* [Import videos (YouTube, Dailymotion, Vimeo...)](/support/doc/tools.md)
* [Upload videos from the CLI](/support/doc/tools.md)
- * [Admin server tools (create transcoding jobs, prune storage...)](/develop/support/doc/tools.md#server-tools)
+ * [Admin server tools (create transcoding jobs, prune storage...)](/support/doc/tools.md#server-tools)
### Technical documentation
:heart: Supports of our crowdfunding
----------------------------------------------------------------
+We have run [a crowdfunding campaign](https://www.kisskissbankbank.com/en/projects/peertube-a-free-and-federated-video-platform) to pave the road to the version 1.0.0 of PeerTube. Thanks to everyone who pitched in and shared the news around!
+
Quonfucius, IP Solution, \_Laure\_, @lex666, 0x010C, 3dsman, 3rw4n-G3D, aallrd, Abel-Berger, Adam-Odell, adechambost, adim, adngdb, Adrien Thurotte, Adrien-BARAN, Adrien-Hamraoui, Adrien-Horcholle, Adrien-Luxey, Adrien-Polar, Adrien-Touminet, Agathe Begault, Agence-Différente, Ahmed-Al-Ahmed, aiprole, akpoptro, Al-Nimr, Alain-Delgrange, Alain-Fyon, Alain-Girard, Alain-MICHEL, Aleksandar-Aleksandrov, Alex-Chancellé, Alex-Dufournet, Alex-Gleason, Alexander-Murray-Watters, Alexandre-Alapetite, Alexandre-Badez, Alexandre-Giuliani, Alexandre-Mercier, Alexandre-Roux-2, Alexandre-SIMON, Alexandre29, Alexia-Monsavoir, Alexis-Frn, Alexis-Gros, Alexis-Kauffmann, alfajet, Alias, alinemont, Aliocha-Lang, Alllightlong, aloisdg, Amanda Hinault, André-Rabe, Anne-PROTAS, antoine, Antoine Derouin, Antoine-Beauvillain, Antoine-Deléron, antomoro, Antón López, Antonin-DENIS, Antonin-Segault, aokami, Apichat-Apichat, Ar-To, ARIAS-Frédéric-2, ariasuni, Aris-Papathéodorou, Arnaud -Vigoureux , Arnaud-Mounier, Arnaud-Risler, Arnaud-Vigouroux, Arnulf, Arthur-Bellier, arthur-bello, Arthur-Charron, Arthur-De Kimpe, Arthur.Ball, Arthur.Frin, Arvi-LEFEVRE, athanael.fr, auber38, Auguste Psqr, Aurélien-Tamisier, Avel-Musicavel, axel-guegant, Axel-Plat, Aymeric-Dlv, Ayst, Azenilion, Bandino, baptiste-lemoine, Baptiste-Rochez, baruica, Bastien-Dangin, batlab, bcourtine, Bea-Schaack-2, beaufils, beaumme, Belmont1, Ben-Geeraerts, Ben-Meijering, Benjamin-Baratta, Benjamin-Roussel, Benoît Joffre, Benoîtdd, Bernard-Legrand, Bernard-Vauquelin, Bernhard-Hayden, bertrand.arlabosse, bigsicret, bjg, bnjbvr, bob\_isat, bobstechsite, Bolton-Allan, Boov', Boris-ARGAUD, Brice.Francois, broz42, Bruno Lefèvre, Bruno-Douville, Bruno-Fortabat, Bruno-Gadaleta, Bruno-VASTA, Bumblebee, Butchcassidy, Cadiou-Christophe, calendros, Candy-Ming, cappitaine, Carmen-Drocourt, carrigns, case, Cathy-Barbet, CBach, ccazin, Cecile-Obernesser, Cecilia-:), Cédric-Bleschet, Cédric.Bayle, Cestdoncvrai, cgay, champ contrechamp, chapa, charlerlin, charles-jacquin, Charlie-Duclut, charlotte-cgondre78, Chris-Doe, chris-louba, Christel-Berthelot, Christian-FERRARIS, christiannavelot, Christophe-Bastin, christophe-beziers la fosse, Christophe-Pieret, Christophe-Verhaege, christophec, Christopher-Bero, chtfn, chud, Claire-C, clairezed, Claude-POUGHEON, Clément-Hubert, Clément-Morelle, clydeb, Comamanel, Côme Chilliet, Confederac.io, Consulting-AZAPTEC, Corentin3892, CryoGen, cyp, Cypher-Goat, Cyril, Cyril\_M\_, Cyril-MONMOUTON, Cyril-Waechter, Damien-Gabard, Damien-Garaud, Dams3132, Daniel Kuebler, Daniel Waxweiler, Daniel-Bartsch, Daniel-PIPALA, Daniel-Struck, Daniel-Thul, Danny-Joerger, DansLeRuSH, DantSu, Dany-Marcoux, Daouzli-Adel, Darfeld, Darth\_Judge, Dashcom, David-BADOIL, David-Benoist, David-Dormoy, David-Gil-2, David-Velasco, David-Wagner, David-writ, davlgd, davyg2, dbudo72300, de Folleville -Matthieu , DeBugs, Denis-Lecourtiller, Denis-Vannier, Desmu, Didier-Bove, Diego-Crespo, Dimitri-Stouney, dino, Dinosaure, Doc Skellington, Dominique-Brun, dr4Ke, DreamClassier, DRogueRonin, dussydelf, Dylan-Moonfire, Ealhad, Edouard-SCHWEISGUTH, Elanndelh--, ElodieEtJimmy, Éloi-Rivard, Elric-Noel, Elwan-Héry, Emilie-Wietzke, Emilien-Ghomi, eparth, Eric-Bouhana, Eric-Hendricks, Eric.Vales, Erwan-Moreau, Erzender, ESS\_Clem, Etienne-Baqué, Etienne-Botek, Etienne-Lmn, Ex-Serv, fabeveynes, Fabien BERINI ( Rehvaro ) , Fabien Freling, Fabien-Roualdes, Fabien.Abraini, Fabien.Bonneval, fabrice-simon, farlistener, Felix-ROBICHON, FelixDouet, FHE, Fiamoa-McBenson, flamwenco, Flopômpôm, FloraGC, Florent-Deschamps, Florent-Fayolle, Florent-Mallet, Florent-Vasseur, Florent.Duveau, Florestan Fournier, Florian Kohrt, Florian-Bellafont, Florian-Douay, Florian-LE GOFF, Florian-Siegenthaler, Florian.Freyss, fobrice, FOKUZA, Fol-De Dol, FP45, Francis.Moraud, François-Dambrine, François-Deguerry, Francois-Goer, François-Lecomte, François-Lemaire, François-Malterre, François-MORLET, François-Schoubben, François-Xavier-Davanne, François-Zajéga, francois.peyratout, Frathom, Fred-Fred-2, Frédéric GUÉLEN, Frédéric-Blumstein, Frédéric-Meurou, Frederic-Reynaud, Frédéric-Sagot, Frek, FrenchHope, freyja, FugazziPL, Funky-Whale, Gabriel-Devillers, Gabriel-Mirété, Galedas, GardoToF, Gaspard-Kemlin, GauthierPLM, Gauvain "GovanifY" Roussel-Tarbouriech, Gavy, gdquest, Geek Faëries, Geneviève-Perello, Geoffroy-MANAUD, Geojulien, Georges-Dutreix, Georges-Sempéré, Gerald-Vannier, Gérard-Brasquet, Gérard-Sensevy, Gerrit-Großkopf, GGBNM, Ghislain-Fabre, Gil-Felot, Gilles-Brossier, Gilles-Moisan, Gilles-SACLIER, Gilles-Trossevin, Gilou, GinGa, ginkgopr, glazzara, Glen-Lomax, Gof, Gonçalves-Daniel, goofy-goofy, grandlap, GRAP-Groupement Régional Alimentaire de Proximité, greg-chapuis, Grégoire-Delbeke, Grégory-Becq, Grégory-Goulaouic, Gregouw, Grizix, GrosCaillou, Grummfy, grumph, guiaug, Guillaume-Allart, Guillaume-Chambert, Guillaume-Chaslot, Guillaume-David, Guillaume-Duc, Guillaume-Gay, Guillaume-Lecoquierre, Guillaume007, guillaumefavre, Guiraud-Dominique, Guy-Torreilles, GwendalL, gwlolos, Hanna-E, Hanno-Wagner, Harald-Eilertsen, Harpocrate, Hebus82, Hellmut, Henri-ROS, hervelc, hguilbert, Hisham-Muhammad, Hoang-Mai-Lesaffre, Homerc, homosapienssapiens, hoper, Hoshin, Hugo-Lagouge, Hugo-SIMANCAS, Hugo-Simon, Hylm, IchbinRob, Ivan-Ogai, Ivan.D'halluin, Ivar-Troost, J-C-2, Jacques-Roos, James-Moore, James-Valleroy, Jan-Aagaard, Jan-Keromnes, Jancry, Janko-Mihelić, jano31coa, Jboot, jcgross, Jean CHARPENTIER, jean claude-skowron, Jean Dos, jean luc-PERROT, Jean-Baptiste-Maneyrol, Jean-charles-Surbayrole, Jean-claude-Jouanne, jean-dreyfus, jean-FISCHER, JEAN-FRANCOIS-BOUDEAU, Jean-Francois-Ducrot, Jean-François-PETITBON, Jean-François-Tomasi, Jean-Galland, Jean-louis-Bergamo, Jean-Luc-PIPO, Jean-Marie-Graïc, Jean-Martin Laval, Jean-Noel-Bruletout, Jean-Paul-GIBERT, Jean-Paul-Lescat, jean-philippe-bénétrix, Jean-Philippe-Eisenbarth, Jean-Philippe-Renaudet, Jean-Philippe-Rennard, Jean-Sébastien-Renaud, Jean-Yves Kiger, Jean-Yves-DUPARC, Jeanne-Corvellec, jeansebastien, Jelv, Jérémie -Wach, Jeremie-Lestel, Jérémy-Korwin, Jérôme-Avond, Jerome-Bu, Jerome-Denis, Jérôme-ISNARD, jerome-simonato, JeromeD, Jery, Jezza, Jim-McDoniel, jl-M-2, jlanca, jlcpuzzle, jn-m, jnthnctt, joakim.faiss, Joe-Riche, Joévin-SOULENQ, Johann-FONTAINE, John-Devor, John-Doe, Jojo-Boulix, Jonas-Aparicio, Jonathan-Dollé, Jonathan-Kohler, Jonathan-LAURENT, Jos-van den Oever, Joseph-Lawson, Jozef-Knaperek, jroger, ju, jubarbu, Julianoe-G, Julie-Bultez, Julien Loudet, Julien Maulny (alcalyn), Julien-AILHAUD, Julien-Aubin, Julien-Biaudet, Julien-Bréchet, Julien-Cochennec, Julien-Duroure, Julien-Huon, Julien-Lemaire, Julien-Weber, jyb, K-\_, KalambakA, Kanor, kari-kimber, Karim-Jouini, karl-bienfait, Kdecherf, Keplerpondorskell, kevin-Beranger, Kevin-Nguyen, King-Of Peons, Kioob, kloh, kokoklems, Konstantin-Kovar, Kriĉjo, Kyâne-PICHOU, L'elfe-Sylvain, La Gonz, Lara-Dufour, lareinedeselfes, Laurence-Giroud, laurent-fuentes, Laurent-HEINTZ, Laurent-PICQUENOT, ldubost, lebidibule, LeChi, LeDivinBueno, Legrave, Les Assortis, Leyokki-Tk, LibreEnFete-en Tregor, LilO. Moino, Liloumuloup, Linuxine-T, lionel-lachaud, Lionel-Schinckus, Loïc-L'Anton, Loïc.Guérin, Louis-Gatin, Louis-Marie-BAER, Louis-Rémi.Babé, Louis-Roche, Louisclement, Lu, ludovic-lainard, Ludovic-Pénet, Lukas-Steiblys, lusoheart, Mad Sugar, maguy-giorgi, mahen, maiido, Malphas, ManetteBE, Manon-Amalric, Manuel-Vazquez, ManuInzesky, Manumerique, Marc-BESSIERES, Marc-DUFOURNET, Marc-GASSER, Marc-Honnorat, marc-wilzius, marc.ribault.1, Marco-Heisig, Marie-PACHECO, Marien-Fressinaud, Marius-Lemonnier, Mark-O'Donovan, marliebo, marmat8951, mart1n, martensite, Mathdatech, Mathias-Bocquet, Mathieu-Amirault, Mathieu-B., Mathieu-Cornic, Mathieu-VIRAMAN, Matías-Pérez, Matilin-Torre, matt.faure, Mattéo-Delabre, Matthias-Devlamynck, Matthieu-Bollot, Matthieu-De Beule, Matthieu-DEVILLERS, Matthieu-Dupont de Dinechin, Matthieu-Gaudé, Matthieu-Sauboua-Beneluz, matthieublanco, MatthieuSchneider, Max-PENY, Maxime-de WYROW, Maxime-Desjardin, Maxime-Forest, maxime-haag, Maxime-Mangel, Maximilian Praeger, Mayeul-Cantan, Mayeul-Guiraud, mcg1712, metalvinze, Mewen, mheiber, Michael-Koppmann, Michael-Loew, Michael-Q. Bid, Michal-Herda, Michal-Noga, Michel-DUPONT, Michel-Le Lagadec, Michel-POUSSIER, Michel-Roux, Mickaël-Gauvin, Mickael-Liegard, MicMP3Man, Miguel-de la Cruz, Mike-Kasprzak, Mimon-Lapompe, Mister-Ocelot, mjhvc, Moutmout, MouTom, MP, mphdp, Mr-Tea, msellebulle, Mushussu, mylainos, nanouckd, Nasser-Debruyere, Nat-Tuck, Nathan.B, nayya, nazgulz666, Neal-Wilson, neeev, neodarz-neodarz, NepsKi, Nestorvep, NHenry, Nialix, NicoD, Nicolas-Auvray, nicolas-k, Nicolas-Pinault, Nicolas-Ruffel, NicolasCARPi, nicolaslegland, niconil, Niles, nitot, Nono1965, Norbert, Norde, Numcap, obergix, Obrow, Okki, Olivier-Calzi, Olivier-Ganneval, Olivier-Marouzé, Olivier-Mondoloni, olivier-pierret, Oncela-Petit Chat, Óskar-Sturluson, p3n15634n7, Paindesegle, Pas De-Panique, Pascal-BLEUSE, Pascal-Larramendy, Patrice-Jabeneau, patrice-maertens, patrick-bappel, PATRICK-GRANDIN, Patrick-MERCIER, Patrickl , Paul-Härle, Paul-Tardy, pbramy, Pedro-CADETE, Perrine-de Coëtlogon, Peter\_Fillgod, Petter-Joelson, Philippe-BATTMANN, Philippe-Cabaud, Philippe-Debar, philippe-giffard, Philippe-Lallemant, Philippe-Le Van, philippe-lhardy, Philippe-Thébault, Philippe-VINCENT-2, PhilOGM, Pierre 'catwell' Chapuis, Pierre Gros, Pierre-Antoine-Champin, Pierre-Bresson-2, Pierre-d'Alençon, Pierre-Equoy, Pierre-Girardeau, Pierre-Houmeau, Pierre-Marijon, Pierre-petch, Pierrick-Couturier, Pilou-CaraGk, Piotr-Miszczak, Pla, Plastic Yogi, PME2050, pmiossec, Pofilo, Polioman, Polios63, Poutchiny, PRALLET-Claude, PtrckVllnv, Pulov Yuran, queertube, Quentin-Dugne, Quentin-PAGÈS, ra-mon, Radhwan-Ben Madhkour, Raphaël-Brocq, Raphaël-Grolimund, Raphaël-Piédallu, raphane, Raphip, Raven, Raymond-Lutz, Razael, Rebecca-Breu, Remi-Durand, Rémi-Herrmann, Rémi-Verschelde, Remigho, Remix-the commons, Remy-Grauby, Rémy-Pradier, Renaud-Vincent, rgggn, rigelk, rip, Rivinbeg, Robert-Riemann, Robin Biechy, Roger-FRATTE, roipoussiere, Rolindes-Arroyo, Romain Théry-Hermain, Romain-Bouyé, Romain-Ortiz, RomainVENNE, Romuald-EYRAUD, royhome, Rudy-aparicio, Rusty-Dwyer, rverchere, sajous.net, Salah-ZERGUI, Sam-R, Samh, Samuel Tardieu, Samuel-FAYET, Samuel-Verschelde, Sanpi, Sascha-Brendel, Schwartz, Se7h, Sebastiaan-Glazenborg, Sebastian-Hugentobler, Sébastien Adam, Septie, Ser Eole, Severin-Suveren, severine-roger, shlagevuk-shlagevuk, Siegfried-Ehret, Simon-Hemery, Simon-Larcher, Simon-Reiser, Simounet, Siri-Louie, sissssou, skarab, Skurious, skynebula, Sohga-Sohga, Solène-Rapenne, solinux, Sophie-Imbach , Sosthen, Spiderweak, Stanislas-ANDRE, Stanislas-Michalak, starmatt, Steef, Stefan-Petrovski, Stéphane-Girardon, Stéphanie-Baltus, Stev-3d, Stoori, SuckyStrike, Sufflope, Sulfurax, SundownDEV, Swann-Fournial, Syk, Syluban, Sylv1c, Sylvain Bellone, Sylvain P, Sylvain\_M, Sylvain-Cazaux, Sylvain-GLAIZE, sylvain.arrachart, Sylvestre Ledru, sylvie-boutet, Sylvie-TORRES, tael67, tang35, tangi\_b, Tarulien, Taunya-Debolt, Tazimut-Khaelyor, terry-maire, Thanaen, Thatoo, Théophile-Noiré, Thibault-Vlieghe, Thierry-Chancé, Thierry-Fenasse, Thomas-Aurel, Thomas-CALVEZ, thomas-constans, Thomas-Kuntz, thomassin-loucas, Thosbk, ticosc, Tim-Albers, Tinapa -Itastri, TkPx, TM, tnntwister, TomR, Tomus, Tonio-Bilos, tony-carnide, Toover, toto-leroidelasaucisse, ToumToum, TP., trigrou, Tristan-Porteries, Tryph, Tursiops, tzilliox, U-&\_\`HbAAe4onnpN9!e+/#42\*5>k^E, Ulrich-Norbisrath, Un Sur Quatre, Valerio-Paladino, Valerio-Pilo, Valeryan\_24, Valou69, Vegattitude, Velome, Vergogne, Vero-Pajot, vianneyb, Victo-Sab, Victor -Hery, Victorien-Labalette, Vincent-Corrèze, Vincent-Fromentin, Vincent-Lamy, Vincent-Lasseur, VINCENT-PEYRET, vmorel, Walter-van Holst, Watsdesign, Wesley-Moore, williampolletdev, win100, wyk, Xaloc-Xaloc, Xavier ALT, Xavier-Chantry, Xavier-Godard, XoD, Yaaann, Yann-Delaunoy, Yann-Nave, yannick-grenzinger, yanselmetti, Ykatsot, Yohann-Bacha, yopox, Youen-Toupin, Yves-Caniou, Yves-Gerech, zar-rok, ZeBlackPearl, ZeGreg
-**Introduction**
-
Security is core to our values, and we value the input of hackers acting in good faith to help us maintain a high standard for the security and privacy for our users. This includes encouraging responsible vulnerability research and disclosure. This policy sets out our definition of good faith in the context of finding and reporting vulnerabilities, as well as what you can expect from us in return.
-**Expectations**
+## Expectations
When working with us according to this policy, you can expect us to:
- Extend Safe Harbor (see below) for your vulnerability research that is related to this policy;
- Work to remediate discovered vulnerabilities in a timely manner; and
- Recognize your contribution to improving our security if you are the first to report a unique vulnerability, and your report triggers a code or configuration change.
-**Safe Harbor**
+## Safe Harbor
When conducting vulnerability research according to this policy, we consider this research to be:
- Authorized in accordance with the law, and we will not initiate or support legal action against you for accidental, good faith violations of this policy;
If at any time you have concerns or are uncertain whether your security research is consistent with this policy, please submit a report through one of our Official Channels before going any further.
-**Ground Rules**
+## Ground Rules
To encourage vulnerability research and to avoid any confusion between good-faith hacking and malicious attack, we ask that you:
- Play by the rules. This includes following this policy, as well as any other relevant agreements. If there is any inconsistency between this policy and any other relevant terms, the terms of this policy will prevail.
- You should only interact with test accounts you own or with explicit permission from the account holder.
- Do not engage in extortion.
-**Official Channels**
+## Disclosure Terms
+
+The vulnerability is kept private until a majority of instances known on instances.joinpeertube.org have updated to a safe version of PeerTube or applied a hotfix. The PeerTube development team coordinates efforts to update once the patch is issued.
+
+## Official Channels
To help us receive vulnerability submissions we use the following official reporting channels:
- chocobozzz@cpy.re (GPG: [583A612D890159BE](https://keybase.io/chocobozzz/pgp_keys.asc?fingerprint=c44aad638367912ca93edd57583a612d890159be))
+- sendmemail@rigelk.eu (GPG: [EA12971B0E438F36](https://api.github.com/users/rigelk/gpg_keys))
If you think you have found a vulnerability, please include the following details with your report and be as descriptive as possible:
- The location and nature of the vulnerability,
getVideosListName () {
return element.all(by.css('.videos .video-miniature .video-miniature-name'))
.getText()
- .then((texts: any) => texts.map(t => t.trim()))
+ .then((texts: any) => texts.map((t: any) => t.trim()))
}
waitWatchVideoName (videoName: string, isMobileDevice: boolean, isSafari: boolean) {
{
"name": "peertube-client",
- "version": "1.0.1",
+ "version": "1.1.0-alpha.2",
"private": true,
"licence": "GPLv3",
"author": {
"@types/markdown-it": "^0.0.5",
"@types/node": "^10.9.2",
"@types/sanitize-html": "1.18.0",
- "@types/video.js": "6.2.7",
+ "@types/video.js": "^7.2.5",
"@types/webtorrent": "^0.98.4",
"angular2-hotkeys": "^2.1.2",
"angular2-notifications": "^1.0.2",
<h6 i18n class="p2p-privacy-title">What will be done to mitigate this problem?</h6>
<p i18n>
- PeerTube is only in beta, and want to deliver the best countermeasures possible by the time the stable is released.
+ PeerTube is in its early stages, and want to deliver the best countermeasures possible by the time the stable is released.
In the meantime, we want to test different ideas related to this issue:
</p>
<li i18n>Disable P2P from the administration interface</li>
<li i18n>An automatic video redundancy program: we wouldn't know if the IP downloaded the video on purpose or if it was the automatized program</li>
</ul>
-</div>
\ No newline at end of file
+</div>
<div class="actor-names">
<div class="actor-display-name">{{ account.displayName }}</div>
<div class="actor-name">{{ account.nameWithHost }}</div>
+
+ <span *ngIf="user?.blocked" [ngbTooltip]="user.blockedReason" class="badge badge-danger" i18n>Banned</span>
+ <span *ngIf="account.mutedByUser" class="badge badge-danger" i18n>Muted</span>
+ <span *ngIf="account.mutedServerByUser" class="badge badge-danger" i18n>Muted by your instance</span>
+ <span *ngIf="account.mutedByInstance" class="badge badge-danger" i18n>Instance muted</span>
+ <span *ngIf="account.mutedServerByInstance" class="badge badge-danger" i18n>Instance muted by your instance</span>
+
+ <my-user-moderation-dropdown
+ buttonSize="small" [account]="account" [user]="user"
+ (userChanged)="onUserChanged()" (userDeleted)="onUserDeleted()"
+ >
+ </my-user-moderation-dropdown>
</div>
<div i18n class="actor-followers">{{ account.followersCount }} subscribers</div>
</div>
.sub-menu {
@include sub-menu-with-actor;
+}
+
+my-user-moderation-dropdown,
+.badge {
+ margin-left: 10px;
+
+ position: relative;
+ top: 3px;
+}
+
+.badge {
+ font-size: 13px;
}
\ No newline at end of file
-import { Component, OnInit, OnDestroy } from '@angular/core'
+import { Component, OnDestroy, OnInit } from '@angular/core'
import { ActivatedRoute } from '@angular/router'
import { AccountService } from '@app/shared/account/account.service'
import { Account } from '@app/shared/account/account.model'
-import { RestExtractor } from '@app/shared'
-import { catchError, switchMap, distinctUntilChanged, map } from 'rxjs/operators'
+import { RestExtractor, UserService } from '@app/shared'
+import { catchError, distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators'
import { Subscription } from 'rxjs'
+import { NotificationsService } from 'angular2-notifications'
+import { User, UserRight } from '../../../../shared'
+import { I18n } from '@ngx-translate/i18n-polyfill'
+import { AuthService, RedirectService } from '@app/core'
@Component({
templateUrl: './accounts.component.html',
})
export class AccountsComponent implements OnInit, OnDestroy {
account: Account
+ user: User
private routeSub: Subscription
constructor (
private route: ActivatedRoute,
+ private userService: UserService,
private accountService: AccountService,
- private restExtractor: RestExtractor
+ private notificationsService: NotificationsService,
+ private restExtractor: RestExtractor,
+ private redirectService: RedirectService,
+ private authService: AuthService,
+ private i18n: I18n
) {}
ngOnInit () {
map(params => params[ 'accountId' ]),
distinctUntilChanged(),
switchMap(accountId => this.accountService.getAccount(accountId)),
+ tap(account => this.getUserIfNeeded(account)),
catchError(err => this.restExtractor.redirectTo404IfNotFound(err, [ 400, 404 ]))
)
- .subscribe(account => this.account = account)
+ .subscribe(
+ account => this.account = account,
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
}
ngOnDestroy () {
if (this.routeSub) this.routeSub.unsubscribe()
}
+
+ onUserChanged () {
+ this.getUserIfNeeded(this.account)
+ }
+
+ onUserDeleted () {
+ this.redirectService.redirectToHomepage()
+ }
+
+ private getUserIfNeeded (account: Account) {
+ if (!account.userId) return
+ if (!this.authService.isLoggedIn()) return
+
+ const user = this.authService.getUser()
+ if (user.hasRight(UserRight.MANAGE_USERS)) {
+ this.userService.getUser(account.userId)
+ .subscribe(
+ user => this.user = user,
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+ }
}
import { JobsComponent } from './jobs/job.component'
import { JobsListComponent } from './jobs/jobs-list/jobs-list.component'
import { JobService } from './jobs/shared/job.service'
-import { UserCreateComponent, UserListComponent, UsersComponent, UserService, UserUpdateComponent } from './users'
+import { UserCreateComponent, UserListComponent, UsersComponent, UserUpdateComponent } from './users'
import { ModerationCommentModalComponent, VideoAbuseListComponent, VideoBlacklistListComponent } from './moderation'
-import { UserBanModalComponent } from '@app/+admin/users/user-list/user-ban-modal.component'
import { ModerationComponent } from '@app/+admin/moderation/moderation.component'
import { RedundancyCheckboxComponent } from '@app/+admin/follows/shared/redundancy-checkbox.component'
import { RedundancyService } from '@app/+admin/follows/shared/redundancy.service'
+import { InstanceAccountBlocklistComponent, InstanceServerBlocklistComponent } from '@app/+admin/moderation/instance-blocklist'
@NgModule({
imports: [
UserCreateComponent,
UserUpdateComponent,
UserListComponent,
- UserBanModalComponent,
ModerationComponent,
VideoBlacklistListComponent,
VideoAbuseListComponent,
ModerationCommentModalComponent,
+ InstanceServerBlocklistComponent,
+ InstanceAccountBlocklistComponent,
JobsComponent,
JobsListComponent,
providers: [
FollowService,
RedundancyService,
- UserService,
JobService,
ConfigService
]
<my-peertube-checkbox
inputName="importVideosHttpEnabled" formControlName="importVideosHttpEnabled"
- i18n-labelText labelText="Video import with HTTP enabled"
+ i18n-labelText labelText="Video import with HTTP URL (i.e. YouTube) enabled"
></my-peertube-checkbox>
<my-peertube-checkbox
import { Component, OnInit } from '@angular/core'
import { ConfigService } from '@app/+admin/config/shared/config.service'
-import { ConfirmService } from '@app/core'
import { ServerService } from '@app/core/server/server.service'
import { CustomConfigValidatorsService, FormReactive, UserValidatorsService } from '@app/shared'
import { NotificationsService } from 'angular2-notifications'
private notificationsService: NotificationsService,
private configService: ConfigService,
private serverService: ServerService,
- private confirmService: ConfirmService,
private i18n: I18n
) {
super()
}
ngOnInit () {
- const formGroupData = {
+ const formGroupData: { [key: string]: any } = {
instanceName: this.customConfigValidatorsService.INSTANCE_NAME,
instanceShortDescription: this.customConfigValidatorsService.INSTANCE_SHORT_DESCRIPTION,
instanceDescription: null,
}
async formValidated () {
- const newCustomizationJavascript = this.form.value['customizationJavascript']
- const newCustomizationCSS = this.form.value['customizationCSS']
-
- const customizations = []
- if (newCustomizationJavascript && newCustomizationJavascript !== this.oldCustomJavascript) customizations.push('JavaScript')
- if (newCustomizationCSS && newCustomizationCSS !== this.oldCustomCSS) customizations.push('CSS')
-
- if (customizations.length !== 0) {
- const customizationsText = customizations.join('/')
-
- // FIXME: i18n service does not support string concatenation
- const message = this.i18n('You set custom {{customizationsText}}. ', { customizationsText }) +
- this.i18n('This could lead to security issues or bugs if you do not understand it. ') +
- this.i18n('Are you sure you want to update the configuration?')
-
- const label = this.i18n('Please type') + ` "I understand the ${customizationsText} I set" ` + this.i18n('to confirm.')
- const expectedInputValue = `I understand the ${customizationsText} I set`
-
- const confirmRes = await this.confirmService.confirmWithInput(message, label, expectedInputValue)
- if (confirmRes === false) return
- }
-
const data: CustomConfig = {
instance: {
name: this.form.value['instanceName'],
}
private updateForm () {
- const data = {
+ const data: { [key: string]: any } = {
instanceName: this.customConfig.instance.name,
instanceShortDescription: this.customConfig.instance.shortDescription,
instanceDescription: this.customConfig.instance.description,
[value]="followers" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
[sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)"
>
+ <ng-template pTemplate="caption">
+ <div class="caption">
+ <input
+ type="text" name="table-filter" id="table-filter" i18n-placeholder placeholder="Filter..."
+ (keyup)="onSearch($event.target.value)"
+ >
+ </div>
+ </ng-template>
+
<ng-template pTemplate="header">
<tr>
<th i18n style="width: 60px">ID</th>
+@import '_variables';
+@import '_mixins';
+
+.caption {
+ justify-content: flex-end;
+
+ input {
+ @include peertube-input-text(250px);
+ }
+}
\ No newline at end of file
}
ngOnInit () {
- this.loadSort()
+ this.initialize()
}
protected loadData () {
[value]="following" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
[sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)"
>
+ <ng-template pTemplate="caption">
+ <div class="caption">
+ <div>
+ <input
+ type="text" name="table-filter" id="table-filter" i18n-placeholder placeholder="Filter..."
+ (keyup)="onSearch($event.target.value)"
+ >
+ </div>
+ </div>
+ </ng-template>
+
<ng-template pTemplate="header">
<tr>
<th i18n style="width: 60px">ID</th>
@import '_variables';
@import '_mixins';
-my-redundancy-checkbox /deep/ my-peertube-checkbox {
- .form-group {
- margin-bottom: 0;
- align-items: center;
- }
+.caption {
+ justify-content: flex-end;
- label {
- margin: 0;
+ input {
+ @include peertube-input-text(250px);
}
}
\ No newline at end of file
}
ngOnInit () {
- this.loadSort()
+ this.initialize()
}
async removeFollowing (follow: ActorFollow) {
}
protected loadData () {
- this.followService.getFollowing(this.pagination, this.sort)
+ this.followService.getFollowing(this.pagination, this.sort, this.search)
.subscribe(
resultList => {
this.following = resultList.data
) {
}
- getFollowing (pagination: RestPagination, sort: SortMeta): Observable<ResultList<ActorFollow>> {
+ getFollowing (pagination: RestPagination, sort: SortMeta, search?: string): Observable<ResultList<ActorFollow>> {
let params = new HttpParams()
params = this.restService.addRestGetParams(params, pagination, sort)
+ if (search) params = params.append('search', search)
+
return this.authHttp.get<ResultList<ActorFollow>>(FollowService.BASE_APPLICATION_URL + '/following', { params })
.pipe(
map(res => this.restExtractor.convertResultListDateToHuman(res)),
)
}
- getFollowers (pagination: RestPagination, sort: SortMeta): Observable<ResultList<ActorFollow>> {
+ getFollowers (pagination: RestPagination, sort: SortMeta, search?: string): Observable<ResultList<ActorFollow>> {
let params = new HttpParams()
params = this.restService.addRestGetParams(params, pagination, sort)
+ if (search) params = params.append('search', search)
+
return this.authHttp.get<ResultList<ActorFollow>>(FollowService.BASE_APPLICATION_URL + '/followers', { params })
.pipe(
map(res => this.restExtractor.convertResultListDateToHuman(res)),
ngOnInit () {
this.loadJobState()
- this.loadSort()
+ this.initialize()
}
onJobStateChanged () {
--- /dev/null
+export * from './instance-account-blocklist.component'
+export * from './instance-server-blocklist.component'
--- /dev/null
+<p-table
+ [value]="blockedAccounts" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
+ [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)"
+>
+
+ <ng-template pTemplate="header">
+ <tr>
+ <th i18n>Account</th>
+ <th i18n pSortableColumn="createdAt">Muted at <p-sortIcon field="createdAt"></p-sortIcon></th>
+ </tr>
+ </ng-template>
+
+ <ng-template pTemplate="body" let-accountBlock>
+ <tr>
+ <td>{{ accountBlock.blockedAccount.nameWithHost }}</td>
+ <td>{{ accountBlock.createdAt }}</td>
+ <td class="action-cell">
+ <button class="unblock-button" (click)="unblockAccount(accountBlock)" i18n>Unmute</button>
+ </td>
+ </tr>
+ </ng-template>
+</p-table>
--- /dev/null
+@import '_variables';
+@import '_mixins';
+
+.unblock-button {
+ @include peertube-button;
+ @include grey-button;
+}
\ No newline at end of file
--- /dev/null
+import { Component, OnInit } from '@angular/core'
+import { NotificationsService } from 'angular2-notifications'
+import { I18n } from '@ngx-translate/i18n-polyfill'
+import { RestPagination, RestTable } from '@app/shared'
+import { SortMeta } from 'primeng/components/common/sortmeta'
+import { BlocklistService, AccountBlock } from '@app/shared/blocklist'
+
+@Component({
+ selector: 'my-instance-account-blocklist',
+ styleUrls: [ './instance-account-blocklist.component.scss' ],
+ templateUrl: './instance-account-blocklist.component.html'
+})
+export class InstanceAccountBlocklistComponent extends RestTable implements OnInit {
+ blockedAccounts: AccountBlock[] = []
+ totalRecords = 0
+ rowsPerPage = 10
+ sort: SortMeta = { field: 'createdAt', order: -1 }
+ pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
+
+ constructor (
+ private notificationsService: NotificationsService,
+ private blocklistService: BlocklistService,
+ private i18n: I18n
+ ) {
+ super()
+ }
+
+ ngOnInit () {
+ this.initialize()
+ }
+
+ unblockAccount (accountBlock: AccountBlock) {
+ const blockedAccount = accountBlock.blockedAccount
+
+ this.blocklistService.unblockAccountByInstance(blockedAccount)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Account {{nameWithHost}} unmuted by your instance.', { nameWithHost: blockedAccount.nameWithHost })
+ )
+
+ this.loadData()
+ }
+ )
+ }
+
+ protected loadData () {
+ return this.blocklistService.getInstanceAccountBlocklist(this.pagination, this.sort)
+ .subscribe(
+ resultList => {
+ this.blockedAccounts = resultList.data
+ this.totalRecords = resultList.total
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+}
--- /dev/null
+<p-table
+ [value]="blockedServers" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
+ [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)"
+>
+
+ <ng-template pTemplate="header">
+ <tr>
+ <th i18n>Instance</th>
+ <th i18n pSortableColumn="createdAt">Muted at <p-sortIcon field="createdAt"></p-sortIcon></th>
+ <th></th>
+ </tr>
+ </ng-template>
+
+ <ng-template pTemplate="body" let-serverBlock>
+ <tr>
+ <td>{{ serverBlock.blockedServer.host }}</td>
+ <td>{{ serverBlock.createdAt }}</td>
+ <td class="action-cell">
+ <button class="unblock-button" (click)="unblockServer(serverBlock)" i18n>Unmute</button>
+ </td>
+ </tr>
+ </ng-template>
+</p-table>
--- /dev/null
+@import '_variables';
+@import '_mixins';
+
+.unblock-button {
+ @include peertube-button;
+ @include grey-button;
+}
\ No newline at end of file
--- /dev/null
+import { Component, OnInit } from '@angular/core'
+import { NotificationsService } from 'angular2-notifications'
+import { I18n } from '@ngx-translate/i18n-polyfill'
+import { RestPagination, RestTable } from '@app/shared'
+import { SortMeta } from 'primeng/components/common/sortmeta'
+import { BlocklistService } from '@app/shared/blocklist'
+import { ServerBlock } from '../../../../../../shared'
+
+@Component({
+ selector: 'my-instance-server-blocklist',
+ styleUrls: [ './instance-server-blocklist.component.scss' ],
+ templateUrl: './instance-server-blocklist.component.html'
+})
+export class InstanceServerBlocklistComponent extends RestTable implements OnInit {
+ blockedServers: ServerBlock[] = []
+ totalRecords = 0
+ rowsPerPage = 10
+ sort: SortMeta = { field: 'createdAt', order: -1 }
+ pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
+
+ constructor (
+ private notificationsService: NotificationsService,
+ private blocklistService: BlocklistService,
+ private i18n: I18n
+ ) {
+ super()
+ }
+
+ ngOnInit () {
+ this.initialize()
+ }
+
+ unblockServer (serverBlock: ServerBlock) {
+ const host = serverBlock.blockedServer.host
+
+ this.blocklistService.unblockServerByInstance(host)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Instance {{host}} unmuted by your instance.', { host })
+ )
+
+ this.loadData()
+ }
+ )
+ }
+
+ protected loadData () {
+ return this.blocklistService.getInstanceServerBlocklist(this.pagination, this.sort)
+ .subscribe(
+ resultList => {
+ this.blockedServers = resultList.data
+ this.totalRecords = resultList.total
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+}
<a *ngIf="hasVideoAbusesRight()" i18n routerLink="video-abuses/list" routerLinkActive="active">Video abuses</a>
<a *ngIf="hasVideoBlacklistRight()" i18n routerLink="video-blacklist/list" routerLinkActive="active">Blacklisted videos</a>
+
+ <a *ngIf="hasAccountsBlocklistRight()" i18n routerLink="blocklist/accounts" routerLinkActive="active">Muted accounts</a>
+
+ <a *ngIf="hasServersBlocklistRight()" i18n routerLink="blocklist/servers" routerLinkActive="active">Muted servers</a>
</div>
</div>
hasVideoBlacklistRight () {
return this.auth.getUser().hasRight(UserRight.MANAGE_VIDEO_BLACKLIST)
}
+
+ hasAccountsBlocklistRight () {
+ return this.auth.getUser().hasRight(UserRight.MANAGE_ACCOUNTS_BLOCKLIST)
+ }
+
+ hasServersBlocklistRight () {
+ return this.auth.getUser().hasRight(UserRight.MANAGE_SERVERS_BLOCKLIST)
+ }
}
import { VideoAbuseListComponent } from '@app/+admin/moderation/video-abuse-list'
import { VideoBlacklistListComponent } from '@app/+admin/moderation/video-blacklist-list'
import { ModerationComponent } from '@app/+admin/moderation/moderation.component'
+import { InstanceAccountBlocklistComponent, InstanceServerBlocklistComponent } from '@app/+admin/moderation/instance-blocklist'
export const ModerationRoutes: Routes = [
{
title: 'Blacklisted videos'
}
}
+ },
+ {
+ path: 'blocklist/accounts',
+ component: InstanceAccountBlocklistComponent,
+ canActivate: [ UserRightGuard ],
+ data: {
+ userRight: UserRight.MANAGE_ACCOUNTS_BLOCKLIST,
+ meta: {
+ title: 'Muted accounts'
+ }
+ }
+ },
+ {
+ path: 'blocklist/servers',
+ component: InstanceServerBlocklistComponent,
+ canActivate: [ UserRightGuard ],
+ data: {
+ userRight: UserRight.MANAGE_SERVER_REDUNDANCY,
+ meta: {
+ title: 'Muted instances'
+ }
+ }
}
]
}
<th i18n pSortableColumn="createdAt">Created <p-sortIcon field="createdAt"></p-sortIcon></th>
<th i18n>Video</th>
<th i18n pSortableColumn="state" style="width: 80px;">State <p-sortIcon field="state"></p-sortIcon></th>
- <th style="width: 50px;"></th>
+ <th style="width: 120px;"></th>
</tr>
</ng-template>
this.videoAbuseActions = [
{
- label: this.i18n('Delete'),
+ label: this.i18n('Delete this report'),
handler: videoAbuse => this.removeVideoAbuse(videoAbuse)
},
{
}
ngOnInit () {
- this.loadSort()
+ this.initialize()
}
openModerationCommentModal (videoAbuse: VideoAbuse) {
}
async removeVideoAbuse (videoAbuse: VideoAbuse) {
- const res = await this.confirmService.confirm(this.i18n('Do you really want to delete this abuse?'), this.i18n('Delete'))
+ const res = await this.confirmService.confirm(this.i18n('Do you really want to delete this abuse report?'), this.i18n('Delete'))
if (res === false) return
this.videoAbuseService.removeVideoAbuse(videoAbuse).subscribe(
<th i18n pSortableColumn="name">Video name <p-sortIcon field="name"></p-sortIcon></th>
<th i18n>Sensitive</th>
<th i18n pSortableColumn="createdAt">Date <p-sortIcon field="createdAt"></p-sortIcon></th>
- <th style="width: 50px;"></th>
+ <th style="width: 120px;"></th>
</tr>
</ng-template>
}
ngOnInit () {
- this.loadSort()
+ this.initialize()
}
getVideoUrl (videoBlacklist: VideoBlacklist) {
-export * from './shared'
export * from './user-edit'
export * from './user-list'
export * from './users.component'
+++ /dev/null
-export * from './user.service'
+++ /dev/null
-import { catchError, map } from 'rxjs/operators'
-import { HttpClient, HttpParams } from '@angular/common/http'
-import { Injectable } from '@angular/core'
-import { BytesPipe } from 'ngx-pipes'
-import { SortMeta } from 'primeng/components/common/sortmeta'
-import { Observable } from 'rxjs'
-import { ResultList, UserCreate, UserUpdate, User, UserRole } from '../../../../../../shared'
-import { environment } from '../../../../environments/environment'
-import { RestExtractor, RestPagination, RestService } from '../../../shared'
-import { I18n } from '@ngx-translate/i18n-polyfill'
-
-@Injectable()
-export class UserService {
- private static BASE_USERS_URL = environment.apiUrl + '/api/v1/users/'
- private bytesPipe = new BytesPipe()
-
- constructor (
- private authHttp: HttpClient,
- private restService: RestService,
- private restExtractor: RestExtractor,
- private i18n: I18n
- ) { }
-
- addUser (userCreate: UserCreate) {
- return this.authHttp.post(UserService.BASE_USERS_URL, userCreate)
- .pipe(
- map(this.restExtractor.extractDataBool),
- catchError(err => this.restExtractor.handleError(err))
- )
- }
-
- updateUser (userId: number, userUpdate: UserUpdate) {
- return this.authHttp.put(UserService.BASE_USERS_URL + userId, userUpdate)
- .pipe(
- map(this.restExtractor.extractDataBool),
- catchError(err => this.restExtractor.handleError(err))
- )
- }
-
- getUser (userId: number) {
- return this.authHttp.get<User>(UserService.BASE_USERS_URL + userId)
- .pipe(catchError(err => this.restExtractor.handleError(err)))
- }
-
- getUsers (pagination: RestPagination, sort: SortMeta): Observable<ResultList<User>> {
- let params = new HttpParams()
- params = this.restService.addRestGetParams(params, pagination, sort)
-
- return this.authHttp.get<ResultList<User>>(UserService.BASE_USERS_URL, { params })
- .pipe(
- map(res => this.restExtractor.convertResultListDateToHuman(res)),
- map(res => this.restExtractor.applyToResultListData(res, this.formatUser.bind(this))),
- catchError(err => this.restExtractor.handleError(err))
- )
- }
-
- removeUser (user: User) {
- return this.authHttp.delete(UserService.BASE_USERS_URL + user.id)
- .pipe(catchError(err => this.restExtractor.handleError(err)))
- }
-
- banUser (user: User, reason?: string) {
- const body = reason ? { reason } : {}
-
- return this.authHttp.post(UserService.BASE_USERS_URL + user.id + '/block', body)
- .pipe(catchError(err => this.restExtractor.handleError(err)))
- }
-
- unbanUser (user: User) {
- return this.authHttp.post(UserService.BASE_USERS_URL + user.id + '/unblock', {})
- .pipe(catchError(err => this.restExtractor.handleError(err)))
- }
-
- private formatUser (user: User) {
- let videoQuota
- if (user.videoQuota === -1) {
- videoQuota = this.i18n('Unlimited')
- } else {
- videoQuota = this.bytesPipe.transform(user.videoQuota, 0)
- }
-
- const videoQuotaUsed = this.bytesPipe.transform(user.videoQuotaUsed, 0)
-
- const roleLabels: { [ id in UserRole ]: string } = {
- [UserRole.USER]: this.i18n('User'),
- [UserRole.ADMINISTRATOR]: this.i18n('Administrator'),
- [UserRole.MODERATOR]: this.i18n('Moderator')
- }
-
- return Object.assign(user, {
- roleLabel: roleLabels[user.role],
- videoQuota,
- videoQuotaUsed
- })
- }
-}
import { Component, OnInit } from '@angular/core'
import { Router } from '@angular/router'
import { NotificationsService } from 'angular2-notifications'
-import { UserService } from '../shared'
import { ServerService } from '../../../core'
import { UserCreate, UserRole } from '../../../../../../shared'
import { UserEdit } from './user-edit'
import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
import { UserValidatorsService } from '@app/shared/forms/form-validators/user-validators.service'
import { ConfigService } from '@app/+admin/config/shared/config.service'
+import { UserService } from '@app/shared'
@Component({
selector: 'my-user-create',
import { ServerService } from '../../../core'
import { FormReactive } from '../../../shared'
import { USER_ROLE_LABELS, VideoResolution } from '../../../../../../shared'
-import { EditCustomConfigComponent } from '../../../+admin/config/edit-custom-config/'
import { ConfigService } from '@app/+admin/config/shared/config.service'
export abstract class UserEdit extends FormReactive {
import { ActivatedRoute, Router } from '@angular/router'
import { Subscription } from 'rxjs'
import { NotificationsService } from 'angular2-notifications'
-import { UserService } from '../shared'
import { ServerService } from '../../../core'
import { UserEdit } from './user-edit'
import { User, UserUpdate } from '../../../../../../shared'
import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
import { UserValidatorsService } from '@app/shared/forms/form-validators/user-validators.service'
import { ConfigService } from '@app/+admin/config/shared/config.service'
+import { UserService } from '@app/shared'
@Component({
selector: 'my-user-update',
<p-table
[value]="users" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
[sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" dataKey="id"
+ [(selection)]="selectedUsers"
>
+ <ng-template pTemplate="caption">
+ <div class="caption">
+ <div>
+ <my-action-dropdown
+ *ngIf="isInSelectionMode()" i18n-label label="Batch actions" theme="orange"
+ [actions]="bulkUserActions" [entry]="selectedUsers"
+ >
+ </my-action-dropdown>
+ </div>
+
+ <div>
+ <input
+ type="text" name="table-filter" id="table-filter" i18n-placeholder placeholder="Filter..."
+ (keyup)="onSearch($event.target.value)"
+ >
+ </div>
+ </div>
+ </ng-template>
+
<ng-template pTemplate="header">
<tr>
+ <th style="width: 40px">
+ <p-tableHeaderCheckbox></p-tableHeaderCheckbox>
+ </th>
<th style="width: 40px"></th>
<th i18n pSortableColumn="username">Username <p-sortIcon field="username"></p-sortIcon></th>
<th i18n>Email</th>
<ng-template pTemplate="body" let-expanded="expanded" let-user>
- <tr [ngClass]="{ banned: user.blocked }">
+ <tr [pSelectableRow]="user" [ngClass]="{ banned: user.blocked }">
+ <td>
+ <p-tableCheckbox [value]="user"></p-tableCheckbox>
+ </td>
+
<td>
<span *ngIf="user.blockedReason" class="expander" [pRowToggler]="user">
<i [ngClass]="expanded ? 'glyphicon glyphicon-menu-down' : 'glyphicon glyphicon-menu-right'"></i>
</span>
</td>
+
<td>
- {{ user.username }}
- <span *ngIf="user.blocked" class="banned-info">(banned)</span>
+ <a i18n-title title="Go to the account page" target="_blank" rel="noopener noreferrer" [routerLink]="[ '/accounts/' + user.username ]">
+ {{ user.username }}
+ <span i18n *ngIf="user.blocked" class="banned-info">(banned)</span>
+ </a>
</td>
<td>{{ user.email }}</td>
<td>{{ user.videoQuotaUsed }} / {{ user.videoQuota }}</td>
<td>{{ user.roleLabel }}</td>
<td>{{ user.createdAt }}</td>
<td class="action-cell">
- <my-action-dropdown i18n-label label="Actions" [actions]="userActions" [entry]="user"></my-action-dropdown>
+ <my-user-moderation-dropdown *ngIf="!isInSelectionMode()" [user]="user" (userChanged)="onUserChanged()" (userDeleted)="onUserChanged()">
+ </my-user-moderation-dropdown>
</td>
</tr>
</ng-template>
</ng-template>
</p-table>
-<my-user-ban-modal #userBanModal (userBanned)="onUserBanned()"></my-user-ban-modal>
\ No newline at end of file
+<my-user-ban-modal #userBanModal (userBanned)="onUsersBanned()"></my-user-ban-modal>
.ban-reason-label {
font-weight: $font-semibold;
+}
+
+.caption {
+ justify-content: space-between;
+
+ input {
+ @include peertube-input-text(250px);
+ }
}
\ No newline at end of file
import { NotificationsService } from 'angular2-notifications'
import { SortMeta } from 'primeng/components/common/sortmeta'
import { ConfirmService } from '../../../core'
-import { RestPagination, RestTable } from '../../../shared'
-import { UserService } from '../shared'
+import { RestPagination, RestTable, UserService } from '../../../shared'
import { I18n } from '@ngx-translate/i18n-polyfill'
-import { DropdownAction } from '@app/shared/buttons/action-dropdown.component'
-import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref'
-import { UserBanModalComponent } from '@app/+admin/users/user-list/user-ban-modal.component'
import { User } from '../../../../../../shared'
+import { UserBanModalComponent } from '@app/shared/moderation'
+import { DropdownAction } from '@app/shared/buttons/action-dropdown.component'
@Component({
selector: 'my-user-list',
rowsPerPage = 10
sort: SortMeta = { field: 'createdAt', order: 1 }
pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
- userActions: DropdownAction<User>[] = []
- private openedModal: NgbModalRef
+ selectedUsers: User[] = []
+ bulkUserActions: DropdownAction<User[]>[] = []
constructor (
private notificationsService: NotificationsService,
private i18n: I18n
) {
super()
+ }
- this.userActions = [
- {
- label: this.i18n('Edit'),
- linkBuilder: this.getRouterUserEditLink
- },
+ ngOnInit () {
+ this.initialize()
+
+ this.bulkUserActions = [
{
label: this.i18n('Delete'),
- handler: user => this.removeUser(user)
+ handler: users => this.removeUsers(users)
},
{
label: this.i18n('Ban'),
- handler: user => this.openBanUserModal(user),
- isDisplayed: user => !user.blocked
+ handler: users => this.openBanUserModal(users),
+ isDisplayed: users => users.every(u => u.blocked === false)
},
{
label: this.i18n('Unban'),
- handler: user => this.unbanUser(user),
- isDisplayed: user => user.blocked
+ handler: users => this.unbanUsers(users),
+ isDisplayed: users => users.every(u => u.blocked === true)
}
]
}
- ngOnInit () {
- this.loadSort()
- }
-
- hideBanUserModal () {
- this.openedModal.close()
- }
-
- openBanUserModal (user: User) {
- if (user.username === 'root') {
- this.notificationsService.error(this.i18n('Error'), this.i18n('You cannot ban root.'))
- return
+ openBanUserModal (users: User[]) {
+ for (const user of users) {
+ if (user.username === 'root') {
+ this.notificationsService.error(this.i18n('Error'), this.i18n('You cannot ban root.'))
+ return
+ }
}
- this.userBanModal.openModal(user)
+ this.userBanModal.openModal(users)
}
- onUserBanned () {
+ onUsersBanned () {
this.loadData()
}
- async unbanUser (user: User) {
- const message = this.i18n('Do you really want to unban {{username}}?', { username: user.username })
+ async unbanUsers (users: User[]) {
+ const message = this.i18n('Do you really want to unban {{num}} users?', { num: users.length })
+
const res = await this.confirmService.confirm(message, this.i18n('Unban'))
if (res === false) return
- this.userService.unbanUser(user)
- .subscribe(
- () => {
- this.notificationsService.success(
- this.i18n('Success'),
- this.i18n('User {{username}} unbanned.', { username: user.username })
- )
- this.loadData()
- },
-
- err => this.notificationsService.error(this.i18n('Error'), err.message)
- )
+ this.userService.unbanUsers(users)
+ .subscribe(
+ () => {
+ const message = this.i18n('{{num}} users unbanned.', { num: users.length })
+
+ this.notificationsService.success(this.i18n('Success'), message)
+ this.loadData()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
}
- async removeUser (user: User) {
- if (user.username === 'root') {
- this.notificationsService.error(this.i18n('Error'), this.i18n('You cannot delete root.'))
- return
+ async removeUsers (users: User[]) {
+ for (const user of users) {
+ if (user.username === 'root') {
+ this.notificationsService.error(this.i18n('Error'), this.i18n('You cannot delete root.'))
+ return
+ }
}
- const message = this.i18n('If you remove this user, you will not be able to create another with the same username!')
+ const message = this.i18n('If you remove these users, you will not be able to create others with the same username!')
const res = await this.confirmService.confirm(message, this.i18n('Delete'))
if (res === false) return
- this.userService.removeUser(user).subscribe(
+ this.userService.removeUser(users).subscribe(
() => {
this.notificationsService.success(
this.i18n('Success'),
- this.i18n('User {{username}} deleted.', { username: user.username })
+ this.i18n('{{num}} users deleted.', { num: users.length })
)
this.loadData()
},
)
}
- getRouterUserEditLink (user: User) {
- return [ '/admin', 'users', 'update', user.id ]
+ isInSelectionMode () {
+ return this.selectedUsers.length !== 0
}
protected loadData () {
- this.userService.getUsers(this.pagination, this.sort)
+ this.selectedUsers = []
+
+ this.userService.getUsers(this.pagination, this.sort, this.search)
.subscribe(
resultList => {
this.users = resultList.data
--- /dev/null
+<div class="admin-sub-header">
+ <div i18n class="form-sub-title">Muted accounts</div>
+</div>
+
+<p-table
+ [value]="blockedAccounts" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
+ [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)"
+>
+
+ <ng-template pTemplate="header">
+ <tr>
+ <th i18n>Account</th>
+ <th i18n pSortableColumn="createdAt">Muted at <p-sortIcon field="createdAt"></p-sortIcon></th>
+ </tr>
+ </ng-template>
+
+ <ng-template pTemplate="body" let-accountBlock>
+ <tr>
+ <td>{{ accountBlock.blockedAccount.nameWithHost }}</td>
+ <td>{{ accountBlock.createdAt }}</td>
+ <td class="action-cell">
+ <button class="unblock-button" (click)="unblockAccount(accountBlock)" i18n>Unmute</button>
+ </td>
+ </tr>
+ </ng-template>
+</p-table>
--- /dev/null
+@import '_variables';
+@import '_mixins';
+
+.unblock-button {
+ @include peertube-button;
+ @include grey-button;
+}
\ No newline at end of file
--- /dev/null
+import { Component, OnInit } from '@angular/core'
+import { NotificationsService } from 'angular2-notifications'
+import { I18n } from '@ngx-translate/i18n-polyfill'
+import { RestPagination, RestTable } from '@app/shared'
+import { SortMeta } from 'primeng/components/common/sortmeta'
+import { BlocklistService, AccountBlock } from '@app/shared/blocklist'
+
+@Component({
+ selector: 'my-account-blocklist',
+ styleUrls: [ './my-account-blocklist.component.scss' ],
+ templateUrl: './my-account-blocklist.component.html'
+})
+export class MyAccountBlocklistComponent extends RestTable implements OnInit {
+ blockedAccounts: AccountBlock[] = []
+ totalRecords = 0
+ rowsPerPage = 10
+ sort: SortMeta = { field: 'createdAt', order: -1 }
+ pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
+
+ constructor (
+ private notificationsService: NotificationsService,
+ private blocklistService: BlocklistService,
+ private i18n: I18n
+ ) {
+ super()
+ }
+
+ ngOnInit () {
+ this.initialize()
+ }
+
+ unblockAccount (accountBlock: AccountBlock) {
+ const blockedAccount = accountBlock.blockedAccount
+
+ this.blocklistService.unblockAccountByUser(blockedAccount)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Account {{nameWithHost}} unmuted.', { nameWithHost: blockedAccount.nameWithHost })
+ )
+
+ this.loadData()
+ }
+ )
+ }
+
+ protected loadData () {
+ return this.blocklistService.getUserAccountBlocklist(this.pagination, this.sort)
+ .subscribe(
+ resultList => {
+ this.blockedAccounts = resultList.data
+ this.totalRecords = resultList.total
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+}
--- /dev/null
+<div class="admin-sub-header">
+ <div i18n class="form-sub-title">Muted instances</div>
+</div>
+
+<p-table
+ [value]="blockedServers" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
+ [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)"
+>
+
+ <ng-template pTemplate="header">
+ <tr>
+ <th i18n>Instance</th>
+ <th i18n pSortableColumn="createdAt">Muted at <p-sortIcon field="createdAt"></p-sortIcon></th>
+ <th></th>
+ </tr>
+ </ng-template>
+
+ <ng-template pTemplate="body" let-serverBlock>
+ <tr>
+ <td>{{ serverBlock.blockedServer.host }}</td>
+ <td>{{ serverBlock.createdAt }}</td>
+ <td class="action-cell">
+ <button class="unblock-button" (click)="unblockServer(serverBlock)" i18n>Unmute</button>
+ </td>
+ </tr>
+ </ng-template>
+</p-table>
--- /dev/null
+@import '_variables';
+@import '_mixins';
+
+.unblock-button {
+ @include peertube-button;
+ @include grey-button;
+}
\ No newline at end of file
--- /dev/null
+import { Component, OnInit } from '@angular/core'
+import { NotificationsService } from 'angular2-notifications'
+import { I18n } from '@ngx-translate/i18n-polyfill'
+import { RestPagination, RestTable } from '@app/shared'
+import { SortMeta } from 'primeng/components/common/sortmeta'
+import { ServerBlock } from '../../../../../shared'
+import { BlocklistService } from '@app/shared/blocklist'
+
+@Component({
+ selector: 'my-account-server-blocklist',
+ styleUrls: [ './my-account-server-blocklist.component.scss' ],
+ templateUrl: './my-account-server-blocklist.component.html'
+})
+export class MyAccountServerBlocklistComponent extends RestTable implements OnInit {
+ blockedServers: ServerBlock[] = []
+ totalRecords = 0
+ rowsPerPage = 10
+ sort: SortMeta = { field: 'createdAt', order: -1 }
+ pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
+
+ constructor (
+ private notificationsService: NotificationsService,
+ private blocklistService: BlocklistService,
+ private i18n: I18n
+ ) {
+ super()
+ }
+
+ ngOnInit () {
+ this.initialize()
+ }
+
+ unblockServer (serverBlock: ServerBlock) {
+ const host = serverBlock.blockedServer.host
+
+ this.blocklistService.unblockServerByUser(host)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Instance {{host}} unmuted.', { host })
+ )
+
+ this.loadData()
+ }
+ )
+ }
+
+ protected loadData () {
+ return this.blocklistService.getUserServerBlocklist(this.pagination, this.sort)
+ .subscribe(
+ resultList => {
+ this.blockedServers = resultList.data
+ this.totalRecords = resultList.total
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+}
}
ngOnInit () {
- this.loadSort()
- }
-
- protected loadData () {
- return this.videoOwnershipService.getOwnershipChanges(this.pagination, this.sort)
- .subscribe(
- resultList => {
- this.videoChangeOwnerships = resultList.data
- this.totalRecords = resultList.total
- },
-
- err => this.notificationsService.error(this.i18n('Error'), err.message)
- )
+ this.initialize()
}
createByString (account: Account) {
err => this.notificationsService.error(this.i18n('Error'), err.message)
)
}
+
+ protected loadData () {
+ return this.videoOwnershipService.getOwnershipChanges(this.pagination, this.sort)
+ .subscribe(
+ resultList => {
+ this.videoChangeOwnerships = resultList.data
+ this.totalRecords = resultList.total
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
}
import { MyAccountVideoImportsComponent } from '@app/+my-account/my-account-video-imports/my-account-video-imports.component'
import { MyAccountSubscriptionsComponent } from '@app/+my-account/my-account-subscriptions/my-account-subscriptions.component'
import { MyAccountOwnershipComponent } from '@app/+my-account/my-account-ownership/my-account-ownership.component'
+import { MyAccountBlocklistComponent } from '@app/+my-account/my-account-blocklist/my-account-blocklist.component'
+import { MyAccountServerBlocklistComponent } from '@app/+my-account/my-account-blocklist/my-account-server-blocklist.component'
const myAccountRoutes: Routes = [
{
title: 'Ownership changes'
}
}
+ },
+ {
+ path: 'blocklist/accounts',
+ component: MyAccountBlocklistComponent,
+ data: {
+ meta: {
+ title: 'Muted accounts'
+ }
+ }
+ },
+ {
+ path: 'blocklist/servers',
+ component: MyAccountServerBlocklistComponent,
+ data: {
+ meta: {
+ title: 'Muted instances'
+ }
+ }
}
]
}
</div>
</div>
+ <my-peertube-checkbox
+ inputName="webTorrentEnabled" formControlName="webTorrentEnabled"
+ i18n-labelText labelText="Use WebTorrent to exchange parts of the video with others"
+ ></my-peertube-checkbox>
+
<my-peertube-checkbox
inputName="autoPlayVideo" formControlName="autoPlayVideo"
i18n-labelText labelText="Automatically plays video"
ngOnInit () {
this.buildForm({
nsfwPolicy: null,
+ webTorrentEnabled: null,
autoPlayVideo: null
})
this.userInformationLoaded.subscribe(() => {
this.form.patchValue({
nsfwPolicy: this.user.nsfwPolicy,
+ webTorrentEnabled: this.user.webTorrentEnabled,
autoPlayVideo: this.user.autoPlayVideo === true
})
})
updateDetails () {
const nsfwPolicy = this.form.value['nsfwPolicy']
+ const webTorrentEnabled = this.form.value['webTorrentEnabled']
const autoPlayVideo = this.form.value['autoPlayVideo']
const details: UserUpdateMe = {
nsfwPolicy,
+ webTorrentEnabled,
autoPlayVideo
}
-import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'
+import { Component, OnDestroy, OnInit } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
import { NotificationsService } from 'angular2-notifications'
import { MyAccountVideoChannelEdit } from './my-account-video-channel-edit'
styleUrls: [ './my-account-video-channel-edit.component.scss' ]
})
export class MyAccountVideoChannelUpdateComponent extends MyAccountVideoChannelEdit implements OnInit, OnDestroy {
- @ViewChild('avatarfileInput') avatarfileInput
-
error: string
-
videoChannelToUpdate: VideoChannel
+
private paramsSub: Subscription
constructor (
}
ngOnInit () {
- this.loadSort()
+ this.initialize()
}
isVideoImportSuccess (videoImport: VideoImport) {
private spliceVideosById (id: number) {
for (const key of Object.keys(this.loadedPages)) {
- const videos = this.loadedPages[ key ]
+ const videos: Video[] = this.loadedPages[ key ]
const index = videos.findIndex(v => v.id === id)
if (index !== -1) {
</span>
<input
- type="submit" i18n-value value="Submit" class="action-button-submit"
- [disabled]="!form.valid"
- (click)="close()"
+ type="submit" i18n-value value="Submit" class="action-button-submit"
+ [disabled]="!form.valid"
+ (click)="close()"
/>
</div>
</div>
.catch((_) => _) // Called when closing (cancel) the modal without validating, do nothing
}
- search (event) {
+ search (event: { query: string }) {
const query = event.query
this.userService.autocomplete(query)
.subscribe(
</div>
</div>
- <a i18n routerLink="/my-account/ownership" routerLinkActive="active" class="title-page">Ownership changes</a>
+ <div ngbDropdown class="misc">
+ <span role="button" class="title-page" [ngClass]="{ active: miscLabel !== '' }" ngbDropdownToggle>
+ <ng-container i18n>Misc</ng-container>
+ <ng-container *ngIf="miscLabel"> - {{ miscLabel }}</ng-container>
+ </span>
+
+ <div ngbDropdownMenu>
+ <a class="dropdown-item" i18n routerLink="/my-account/blocklist/accounts">Muted accounts</a>
+
+ <a class="dropdown-item" i18n routerLink="/my-account/blocklist/servers">Muted instances</a>
+
+ <a class="dropdown-item" i18n routerLink="/my-account/ownership">Ownership changes</a>
+ </div>
+ </div>
+
</div>
<div class="margin-content">
-.my-library {
+.my-library, .misc {
span[role=button] {
cursor: pointer;
}
export class MyAccountComponent implements OnInit, OnDestroy {
libraryLabel = ''
+ miscLabel = ''
private routeSub: Subscription
) {}
ngOnInit () {
- this.updateLibraryLabel(this.router.url)
+ this.updateLabels(this.router.url)
this.routeSub = this.router.events
.pipe(filter(event => event instanceof NavigationStart))
- .subscribe((event: NavigationStart) => this.updateLibraryLabel(event.url))
+ .subscribe((event: NavigationStart) => this.updateLabels(event.url))
}
ngOnDestroy () {
return importConfig.http.enabled || importConfig.torrent.enabled
}
- private updateLibraryLabel (url: string) {
+ private updateLabels (url: string) {
const [ path ] = url.split('?')
if (path.startsWith('/my-account/video-channels')) {
} else {
this.libraryLabel = ''
}
+
+ if (path.startsWith('/my-account/blocklist/accounts')) {
+ this.miscLabel = this.i18n('Muted accounts')
+ } else if (path.startsWith('/my-account/blocklist/servers')) {
+ this.miscLabel = this.i18n('Muted instances')
+ } else {
+ this.miscLabel = ''
+ }
}
}
import { MyAccountVideoImportsComponent } from '@app/+my-account/my-account-video-imports/my-account-video-imports.component'
import { MyAccountDangerZoneComponent } from '@app/+my-account/my-account-settings/my-account-danger-zone'
import { MyAccountSubscriptionsComponent } from '@app/+my-account/my-account-subscriptions/my-account-subscriptions.component'
+import { MyAccountBlocklistComponent } from '@app/+my-account/my-account-blocklist/my-account-blocklist.component'
+import { MyAccountServerBlocklistComponent } from '@app/+my-account/my-account-blocklist/my-account-server-blocklist.component'
@NgModule({
imports: [
ActorAvatarInfoComponent,
MyAccountVideoImportsComponent,
MyAccountDangerZoneComponent,
- MyAccountSubscriptionsComponent
+ MyAccountSubscriptionsComponent,
+ MyAccountBlocklistComponent,
+ MyAccountServerBlocklistComponent
],
exports: [
-import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'
+import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core'
import { ServerService } from '../../core/server'
import { NotificationsService } from 'angular2-notifications'
import { VideoChannel } from '@app/shared/video-channel/video-channel.model'
styleUrls: [ './actor-avatar-info.component.scss' ]
})
export class ActorAvatarInfoComponent {
- @ViewChild('avatarfileInput') avatarfileInput
+ @ViewChild('avatarfileInput') avatarfileInput: ElementRef<HTMLInputElement>
@Input() actor: VideoChannel | Account
import { AuthService, RedirectService, ServerService, ThemeService } from '@app/core'
import { is18nPath } from '../../../shared/models/i18n'
import { ScreenService } from '@app/shared/misc/screen.service'
-import { skip } from 'rxjs/operators'
+import { skip, debounceTime } from 'rxjs/operators'
import { HotkeysService, Hotkey } from 'angular2-hotkeys'
import { I18n } from '@ngx-translate/i18n-polyfill'
+import { fromEvent } from 'rxjs'
@Component({
selector: 'my-app',
}
isMenuDisplayed = true
+ isMenuChangedByUser = false
customCSS: SafeHtml
return false
}, undefined, this.i18n('Toggle Dark theme'))
])
+
+ fromEvent(window, 'resize')
+ .pipe(debounceTime(200))
+ .subscribe(() => this.onResize())
}
isUserLoggedIn () {
toggleMenu () {
this.isMenuDisplayed = !this.isMenuDisplayed
+ this.isMenuChangedByUser = true
+ }
+
+ onResize () {
+ this.isMenuDisplayed = window.innerWidth >= 800 && !this.isMenuChangedByUser
}
}
providers: [
{
provide: TRANSLATIONS,
- useFactory: (locale) => {
+ useFactory: (locale: string) => {
// On dev mode, test localization
if (isOnDevLocale()) {
locale = buildFileLocale(getDevLocale())
EMAIL: 'email',
USERNAME: 'username',
NSFW_POLICY: 'nsfw_policy',
+ WEBTORRENT_ENABLED: 'peertube-videojs-' + 'webtorrent_enabled',
AUTO_PLAY_VIDEO: 'auto_play_video'
}
email: peertubeLocalStorage.getItem(this.KEYS.EMAIL),
role: parseInt(peertubeLocalStorage.getItem(this.KEYS.ROLE), 10) as UserRole,
nsfwPolicy: peertubeLocalStorage.getItem(this.KEYS.NSFW_POLICY) as NSFWPolicyType,
+ webTorrentEnabled: peertubeLocalStorage.getItem(this.KEYS.WEBTORRENT_ENABLED) === 'true',
autoPlayVideo: peertubeLocalStorage.getItem(this.KEYS.AUTO_PLAY_VIDEO) === 'true'
},
Tokens.load()
peertubeLocalStorage.removeItem(this.KEYS.ID)
peertubeLocalStorage.removeItem(this.KEYS.ROLE)
peertubeLocalStorage.removeItem(this.KEYS.NSFW_POLICY)
+ peertubeLocalStorage.removeItem(this.KEYS.WEBTORRENT_ENABLED)
peertubeLocalStorage.removeItem(this.KEYS.AUTO_PLAY_VIDEO)
peertubeLocalStorage.removeItem(this.KEYS.EMAIL)
Tokens.flush()
peertubeLocalStorage.setItem(AuthUser.KEYS.EMAIL, this.email)
peertubeLocalStorage.setItem(AuthUser.KEYS.ROLE, this.role.toString())
peertubeLocalStorage.setItem(AuthUser.KEYS.NSFW_POLICY, this.nsfwPolicy.toString())
+ peertubeLocalStorage.setItem(AuthUser.KEYS.WEBTORRENT_ENABLED, JSON.stringify(this.webTorrentEnabled))
peertubeLocalStorage.setItem(AuthUser.KEYS.AUTO_PLAY_VIDEO, JSON.stringify(this.autoPlayVideo))
this.tokens.save()
}
}
refreshUserInformation () {
- const obj = {
+ const obj: UserLoginWithUsername = {
access_token: this.user.getAccessToken(),
refresh_token: null,
token_type: this.user.getTokenType(),
this.localeObservable
.pipe(
switchMap(translations => {
- return this.http.get(ServerService.BASE_VIDEO_URL + attributeName)
+ return this.http.get<{ [id: string]: string }>(ServerService.BASE_VIDEO_URL + attributeName)
.pipe(map(data => ({ data, translations })))
})
)
export class ThemeService {
private theme = document.querySelector('body')
private darkTheme = false
- private previousTheme = {}
+ private previousTheme: { [ id: string ]: string } = {}
constructor () {
// initialise the alternative theme with dark theme colors
}
}
- private switchProperty (property, newValue?) {
+ private switchProperty (property: string, newValue?: string) {
const propertyOldvalue = window.getComputedStyle(this.theme).getPropertyValue('--' + property)
this.theme.style.setProperty('--' + property, (newValue) ? newValue : this.previousTheme[property])
this.previousTheme[property] = propertyOldvalue
<input
- type="text" id="search-video" name="search-video" i18n-placeholder placeholder="Search..."
- [(ngModel)]="searchValue" (keyup.enter)="doSearch()"
+ type="text" id="search-video" name="search-video" i18n-placeholder placeholder="Search..."
+ [(ngModel)]="searchValue" (keyup.enter)="doSearch()"
>
<span (click)="doSearch()" class="icon icon-search"></span>
userHasAdminAccess = false
helpVisible = false
- private routesPerRight = {
+ private routesPerRight: { [ role in UserRight ]?: string } = {
[UserRight.MANAGE_USERS]: '/admin/users',
[UserRight.MANAGE_SERVER_FOLLOW]: '/admin/friends',
[UserRight.MANAGE_VIDEO_ABUSES]: '/admin/moderation/video-abuses',
import { Component, OnDestroy, OnInit } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
-import { AuthService, RedirectService } from '@app/core'
+import { AuthService } from '@app/core'
import { NotificationsService } from 'angular2-notifications'
import { forkJoin, Subscription } from 'rxjs'
import { SearchService } from '@app/search/search.service'
private route: ActivatedRoute,
private router: Router,
private metaService: MetaService,
- private redirectService: RedirectService,
private notificationsService: NotificationsService,
private searchService: SearchService,
private authService: AuthService
displayName: string
description: string
nameWithHost: string
+ mutedByUser: boolean
+ mutedByInstance: boolean
+ mutedServerByUser: boolean
+ mutedServerByInstance: boolean
+
+ userId?: number
constructor (hash: ServerAccount) {
super(hash)
this.displayName = hash.displayName
this.description = hash.description
+ this.userId = hash.userId
this.nameWithHost = Actor.CREATE_BY_STRING(this.name, this.host)
+
+ this.mutedByUser = false
+ this.mutedByInstance = false
+ this.mutedServerByUser = false
+ this.mutedServerByInstance = false
}
}
--- /dev/null
+import { AccountBlock as AccountBlockServer } from '../../../../../shared'
+import { Account } from '../account/account.model'
+
+export class AccountBlock implements AccountBlockServer {
+ byAccount: Account
+ blockedAccount: Account
+ createdAt: Date | string
+
+ constructor (block: AccountBlockServer) {
+ this.byAccount = new Account(block.byAccount)
+ this.blockedAccount = new Account(block.blockedAccount)
+ this.createdAt = block.createdAt
+ }
+}
--- /dev/null
+import { Injectable } from '@angular/core'
+import { environment } from '../../../environments/environment'
+import { HttpClient, HttpParams } from '@angular/common/http'
+import { RestExtractor, RestPagination, RestService } from '../rest'
+import { SortMeta } from 'primeng/api'
+import { catchError, map } from 'rxjs/operators'
+import { AccountBlock as AccountBlockServer, ResultList, ServerBlock } from '../../../../../shared'
+import { Account } from '@app/shared/account/account.model'
+import { AccountBlock } from '@app/shared/blocklist/account-block.model'
+
+@Injectable()
+export class BlocklistService {
+ static BASE_USER_BLOCKLIST_URL = environment.apiUrl + '/api/v1/users/me/blocklist'
+ static BASE_SERVER_BLOCKLIST_URL = environment.apiUrl + '/api/v1/server/blocklist'
+
+ constructor (
+ private authHttp: HttpClient,
+ private restExtractor: RestExtractor,
+ private restService: RestService
+ ) { }
+
+ /*********************** User -> Account blocklist ***********************/
+
+ getUserAccountBlocklist (pagination: RestPagination, sort: SortMeta) {
+ let params = new HttpParams()
+ params = this.restService.addRestGetParams(params, pagination, sort)
+
+ return this.authHttp.get<ResultList<AccountBlock>>(BlocklistService.BASE_USER_BLOCKLIST_URL + '/accounts', { params })
+ .pipe(
+ map(res => this.restExtractor.convertResultListDateToHuman(res)),
+ map(res => this.restExtractor.applyToResultListData(res, this.formatAccountBlock.bind(this))),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ blockAccountByUser (account: Account) {
+ const body = { accountName: account.nameWithHost }
+
+ return this.authHttp.post(BlocklistService.BASE_USER_BLOCKLIST_URL + '/accounts', body)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ unblockAccountByUser (account: Account) {
+ const path = BlocklistService.BASE_USER_BLOCKLIST_URL + '/accounts/' + account.nameWithHost
+
+ return this.authHttp.delete(path)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ /*********************** User -> Server blocklist ***********************/
+
+ getUserServerBlocklist (pagination: RestPagination, sort: SortMeta) {
+ let params = new HttpParams()
+ params = this.restService.addRestGetParams(params, pagination, sort)
+
+ return this.authHttp.get<ResultList<ServerBlock>>(BlocklistService.BASE_USER_BLOCKLIST_URL + '/servers', { params })
+ .pipe(
+ map(res => this.restExtractor.convertResultListDateToHuman(res)),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ blockServerByUser (host: string) {
+ const body = { host }
+
+ return this.authHttp.post(BlocklistService.BASE_USER_BLOCKLIST_URL + '/servers', body)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ unblockServerByUser (host: string) {
+ const path = BlocklistService.BASE_USER_BLOCKLIST_URL + '/servers/' + host
+
+ return this.authHttp.delete(path)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ /*********************** Instance -> Account blocklist ***********************/
+
+ getInstanceAccountBlocklist (pagination: RestPagination, sort: SortMeta) {
+ let params = new HttpParams()
+ params = this.restService.addRestGetParams(params, pagination, sort)
+
+ return this.authHttp.get<ResultList<AccountBlock>>(BlocklistService.BASE_SERVER_BLOCKLIST_URL + '/accounts', { params })
+ .pipe(
+ map(res => this.restExtractor.convertResultListDateToHuman(res)),
+ map(res => this.restExtractor.applyToResultListData(res, this.formatAccountBlock.bind(this))),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ blockAccountByInstance (account: Account) {
+ const body = { accountName: account.nameWithHost }
+
+ return this.authHttp.post(BlocklistService.BASE_SERVER_BLOCKLIST_URL + '/accounts', body)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ unblockAccountByInstance (account: Account) {
+ const path = BlocklistService.BASE_SERVER_BLOCKLIST_URL + '/accounts/' + account.nameWithHost
+
+ return this.authHttp.delete(path)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ /*********************** Instance -> Server blocklist ***********************/
+
+ getInstanceServerBlocklist (pagination: RestPagination, sort: SortMeta) {
+ let params = new HttpParams()
+ params = this.restService.addRestGetParams(params, pagination, sort)
+
+ return this.authHttp.get<ResultList<ServerBlock>>(BlocklistService.BASE_SERVER_BLOCKLIST_URL + '/servers', { params })
+ .pipe(
+ map(res => this.restExtractor.convertResultListDateToHuman(res)),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ blockServerByInstance (host: string) {
+ const body = { host }
+
+ return this.authHttp.post(BlocklistService.BASE_SERVER_BLOCKLIST_URL + '/servers', body)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ unblockServerByInstance (host: string) {
+ const path = BlocklistService.BASE_SERVER_BLOCKLIST_URL + '/servers/' + host
+
+ return this.authHttp.delete(path)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ private formatAccountBlock (accountBlock: AccountBlockServer) {
+ return new AccountBlock(accountBlock)
+ }
+}
--- /dev/null
+export * from './blocklist.service'
+export * from './account-block.model'
<div class="dropdown-root" ngbDropdown [placement]="placement">
- <div class="action-button" ngbDropdownToggle role="button">
- <span class="icon icon-action"></span>
+ <div
+ class="action-button" [ngClass]="{ small: buttonSize === 'small', grey: theme === 'grey', orange: theme === 'orange' }"
+ ngbDropdownToggle role="button"
+ >
+ <span *ngIf="!label" class="icon icon-action"></span>
+ <span *ngIf="label" class="dropdown-toggle">{{ label }}</span>
</div>
<div ngbDropdownMenu class="dropdown-menu">
<ng-container *ngFor="let action of actions">
- <div class="dropdown-item" *ngIf="action.isDisplayed === undefined || action.isDisplayed(entry) === true">
+ <ng-container *ngIf="action.isDisplayed === undefined || action.isDisplayed(entry) === true">
<a *ngIf="action.linkBuilder" class="dropdown-item" [routerLink]="action.linkBuilder(entry)">{{ action.label }}</a>
- <span *ngIf="!action.linkBuilder" class="custom-action" class="dropdown-item" (click)="action.handler(entry)" role="button">
+ <span *ngIf="!action.linkBuilder" class="custom-action dropdown-item" (click)="action.handler(entry)" role="button">
{{ action.label }}
</span>
- </div>
+ </ng-container>
</ng-container>
</div>
</div>
\ No newline at end of file
.action-button {
@include peertube-button;
- @include grey-button;
+
+ &.grey {
+ @include grey-button;
+ }
+
+ &.orange {
+ @include orange-button;
+ }
display: inline-block;
padding: 0 10px;
background-image: url('../../../assets/images/video/more.svg');
top: -1px;
}
+
+ &.small {
+ font-size: 14px;
+ height: 20px;
+ line-height: 20px;
+ }
+}
+
+.dropdown-toggle::after {
+ position: relative;
+ top: 1px;
}
.dropdown-menu {
.dropdown-item {
cursor: pointer;
color: #000 !important;
+
+ a, span {
+ display: block;
+ width: 100%;
+ }
}
}
\ No newline at end of file
export type DropdownAction<T> = {
label?: string
- handler?: (T) => any
- linkBuilder?: (T) => (string | number)[]
- isDisplayed?: (T) => boolean
+ handler?: (a: T) => any
+ linkBuilder?: (a: T) => (string | number)[]
+ isDisplayed?: (a: T) => boolean
}
@Component({
export class ActionDropdownComponent<T> {
@Input() actions: DropdownAction<T>[] = []
@Input() entry: T
- @Input() placement = 'left'
+ @Input() placement = 'bottom-left'
+ @Input() buttonSize: 'normal' | 'small' = 'normal'
+ @Input() label: string
+ @Input() theme: 'orange' | 'grey' = 'grey'
}
export class ButtonComponent {
@Input() label = ''
- @Input() className = undefined
- @Input() icon = undefined
- @Input() title = undefined
+ @Input() className: string = undefined
+ @Input() icon: string = undefined
+ @Input() title: string = undefined
getTitle () {
return this.title || this.label
export class EditButtonComponent {
@Input() label: string
- @Input() routerLink = []
+ @Input() routerLink: string[] = []
}
this.USER_DESCRIPTION = {
VALIDATORS: [
Validators.minLength(3),
- Validators.maxLength(250)
+ Validators.maxLength(1000)
],
MESSAGES: {
'minlength': this.i18n('Description must be at least 3 characters long.'),
- 'maxlength': this.i18n('Description cannot be more than 250 characters long.')
+ 'maxlength': this.i18n('Description cannot be more than 1000 characters long.')
}
}
import { I18n } from '@ngx-translate/i18n-polyfill'
-import { Validators } from '@angular/forms'
+import { AbstractControl, ValidationErrors, Validators } from '@angular/forms'
import { Injectable } from '@angular/core'
import { BuildFormValidator } from '@app/shared'
constructor (private i18n: I18n) {
this.USERNAME = {
- VALIDATORS: [ Validators.required ],
+ VALIDATORS: [ Validators.required, this.localAccountValidator ],
MESSAGES: {
- 'required': this.i18n('The username is required.')
+ 'required': this.i18n('The username is required.'),
+ 'localAccountOnly': this.i18n('You can only transfer ownership to a local account')
}
}
}
+
+ localAccountValidator (control: AbstractControl): ValidationErrors {
+ if (control.value.includes('@')) {
+ return { 'localAccountOnly': true }
+ }
+
+ return null
+ }
}
this.VIDEO_CHANNEL_DESCRIPTION = {
VALIDATORS: [
Validators.minLength(3),
- Validators.maxLength(500)
+ Validators.maxLength(1000)
],
MESSAGES: {
'minlength': i18n('Description must be at least 3 characters long.'),
- 'maxlength': i18n('Description cannot be more than 500 characters long.')
+ 'maxlength': i18n('Description cannot be more than 1000 characters long.')
}
}
this.VIDEO_CHANNEL_SUPPORT = {
VALIDATORS: [
Validators.minLength(3),
- Validators.maxLength(500)
+ Validators.maxLength(1000)
],
MESSAGES: {
'minlength': i18n('Support text must be at least 3 characters long.'),
- 'maxlength': i18n('Support text cannot be more than 500 characters long.')
+ 'maxlength': i18n('Support text cannot be more than 1000 characters long.')
}
}
}
}
this.VIDEO_SUPPORT = {
- VALIDATORS: [ Validators.minLength(3), Validators.maxLength(500) ],
+ VALIDATORS: [ Validators.minLength(3), Validators.maxLength(1000) ],
MESSAGES: {
'minlength': this.i18n('Video support must be at least 3 characters long.'),
- 'maxlength': this.i18n('Video support cannot be more than 500 characters long.')
+ 'maxlength': this.i18n('Video support cannot be more than 1000 characters long.')
}
}
-<div class="form-group">
+<div class="root">
<label class="form-group-checkbox">
<input type="checkbox" [(ngModel)]="checked" (ngModelChange)="onModelChange()" [id]="inputName" [disabled]="isDisabled" />
<span role="checkbox" [attr.aria-checked]="checked"></span>
@import '_variables';
@import '_mixins';
-.form-group {
+.root {
display: flex;
.form-group-checkbox {
}
}
+ label {
+ margin-bottom: 0;
+ }
+
my-help {
position: relative;
top: -2px;
import { ConfirmService } from '../../core/index'
import { I18n } from '@ngx-translate/i18n-polyfill'
+export type CanComponentDeactivateResult = { text?: string, canDeactivate: Observable<boolean> | boolean }
+
export interface CanComponentDeactivate {
- canDeactivate: () => { text?: string, canDeactivate: Observable<boolean> | boolean }
+ canDeactivate: () => CanComponentDeactivateResult
}
@Injectable()
[key: string]: any
[index: number]: string
- getItem (key) {
+ getItem (key: any) {
const stringKey = String(key)
if (valuesMap.has(key)) {
return String(valuesMap.get(stringKey))
return null
}
- setItem (key, val) {
+ setItem (key: any, val: any) {
valuesMap.set(String(key), String(val))
}
- removeItem (key) {
+ removeItem (key: any) {
valuesMap.delete(key)
}
return fd
}
-function lineFeedToHtml (obj: object, keyToNormalize: string) {
+function lineFeedToHtml (obj: any, keyToNormalize: string) {
return immutableAssign(obj, {
[keyToNormalize]: obj[keyToNormalize].replace(/\r?\n|\r/g, '<br />')
})
--- /dev/null
+export * from './user-ban-modal.component'
+export * from './user-moderation-dropdown.component'
<ng-template #modal>
<div class="modal-header">
- <h4 i18n class="modal-title">Ban {{ userToBan.username }}</h4>
+ <h4 i18n class="modal-title">Ban</h4>
<span class="close" aria-hidden="true" (click)="hideBanUserModal()"></span>
</div>
import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core'
import { NotificationsService } from 'angular2-notifications'
-import { FormReactive, UserValidatorsService } from '../../../shared'
-import { UserService } from '../shared'
import { I18n } from '@ngx-translate/i18n-polyfill'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref'
import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
-import { User } from '../../../../../../shared'
+import { FormReactive, UserValidatorsService } from '@app/shared/forms'
+import { UserService } from '@app/shared/users'
+import { User } from '../../../../../shared'
@Component({
selector: 'my-user-ban-modal',
})
export class UserBanModalComponent extends FormReactive implements OnInit {
@ViewChild('modal') modal: NgbModal
- @Output() userBanned = new EventEmitter<User>()
+ @Output() userBanned = new EventEmitter<User | User[]>()
- private userToBan: User
+ private usersToBan: User | User[]
private openedModal: NgbModalRef
constructor (
})
}
- openModal (user: User) {
- this.userToBan = user
+ openModal (user: User | User[]) {
+ this.usersToBan = user
this.openedModal = this.modalService.open(this.modal)
}
hideBanUserModal () {
- this.userToBan = undefined
+ this.usersToBan = undefined
this.openedModal.close()
}
async banUser () {
const reason = this.form.value['reason'] || undefined
- this.userService.banUser(this.userToBan, reason)
+ this.userService.banUsers(this.usersToBan, reason)
.subscribe(
() => {
- this.notificationsService.success(
- this.i18n('Success'),
- this.i18n('User {{username}} banned.', { username: this.userToBan.username })
- )
+ const message = Array.isArray(this.usersToBan)
+ ? this.i18n('{{num}} users banned.', { num: this.usersToBan.length })
+ : this.i18n('User {{username}} banned.', { username: this.usersToBan.username })
- this.userBanned.emit(this.userToBan)
+ this.notificationsService.success(this.i18n('Success'), message)
+
+ this.userBanned.emit(this.usersToBan)
this.hideBanUserModal()
},
--- /dev/null
+<ng-container *ngIf="userActions.length !== 0">
+ <my-user-ban-modal #userBanModal (userBanned)="onUserBanned()"></my-user-ban-modal>
+
+ <my-action-dropdown
+ [actions]="userActions" [entry]="{ user: user, account: account }"
+ [buttonSize]="buttonSize" [placement]="placement"
+ ></my-action-dropdown>
+</ng-container>
\ No newline at end of file
--- /dev/null
+import { Component, EventEmitter, Input, OnChanges, Output, ViewChild } from '@angular/core'
+import { NotificationsService } from 'angular2-notifications'
+import { I18n } from '@ngx-translate/i18n-polyfill'
+import { DropdownAction } from '@app/shared/buttons/action-dropdown.component'
+import { UserBanModalComponent } from '@app/shared/moderation/user-ban-modal.component'
+import { UserService } from '@app/shared/users'
+import { AuthService, ConfirmService } from '@app/core'
+import { User, UserRight } from '../../../../../shared/models/users'
+import { Account } from '@app/shared/account/account.model'
+import { BlocklistService } from '@app/shared/blocklist'
+
+@Component({
+ selector: 'my-user-moderation-dropdown',
+ templateUrl: './user-moderation-dropdown.component.html',
+ styleUrls: [ './user-moderation-dropdown.component.scss' ]
+})
+export class UserModerationDropdownComponent implements OnChanges {
+ @ViewChild('userBanModal') userBanModal: UserBanModalComponent
+
+ @Input() user: User
+ @Input() account: Account
+
+ @Input() buttonSize: 'normal' | 'small' = 'normal'
+ @Input() placement = 'left'
+
+ @Output() userChanged = new EventEmitter()
+ @Output() userDeleted = new EventEmitter()
+
+ userActions: DropdownAction<{ user: User, account: Account }>[] = []
+
+ constructor (
+ private authService: AuthService,
+ private notificationsService: NotificationsService,
+ private confirmService: ConfirmService,
+ private userService: UserService,
+ private blocklistService: BlocklistService,
+ private i18n: I18n
+ ) { }
+
+ ngOnChanges () {
+ this.buildActions()
+ }
+
+ openBanUserModal (user: User) {
+ if (user.username === 'root') {
+ this.notificationsService.error(this.i18n('Error'), this.i18n('You cannot ban root.'))
+ return
+ }
+
+ this.userBanModal.openModal(user)
+ }
+
+ onUserBanned () {
+ this.userChanged.emit()
+ }
+
+ async unbanUser (user: User) {
+ const message = this.i18n('Do you really want to unban {{username}}?', { username: user.username })
+ const res = await this.confirmService.confirm(message, this.i18n('Unban'))
+ if (res === false) return
+
+ this.userService.unbanUsers(user)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('User {{username}} unbanned.', { username: user.username })
+ )
+
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ async removeUser (user: User) {
+ if (user.username === 'root') {
+ this.notificationsService.error(this.i18n('Error'), this.i18n('You cannot delete root.'))
+ return
+ }
+
+ const message = this.i18n('If you remove this user, you will not be able to create another with the same username!')
+ const res = await this.confirmService.confirm(message, this.i18n('Delete'))
+ if (res === false) return
+
+ this.userService.removeUser(user).subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('User {{username}} deleted.', { username: user.username })
+ )
+ this.userDeleted.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ blockAccountByUser (account: Account) {
+ this.blocklistService.blockAccountByUser(account)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Account {{nameWithHost}} muted.', { nameWithHost: account.nameWithHost })
+ )
+
+ this.account.mutedByUser = true
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ unblockAccountByUser (account: Account) {
+ this.blocklistService.unblockAccountByUser(account)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Account {{nameWithHost}} unmuted.', { nameWithHost: account.nameWithHost })
+ )
+
+ this.account.mutedByUser = false
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ blockServerByUser (host: string) {
+ this.blocklistService.blockServerByUser(host)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Instance {{host}} muted.', { host })
+ )
+
+ this.account.mutedServerByUser = true
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ unblockServerByUser (host: string) {
+ this.blocklistService.unblockServerByUser(host)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Instance {{host}} unmuted.', { host })
+ )
+
+ this.account.mutedServerByUser = false
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ blockAccountByInstance (account: Account) {
+ this.blocklistService.blockAccountByInstance(account)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Account {{nameWithHost}} muted by the instance.', { nameWithHost: account.nameWithHost })
+ )
+
+ this.account.mutedByInstance = true
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ unblockAccountByInstance (account: Account) {
+ this.blocklistService.unblockAccountByInstance(account)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Account {{nameWithHost}} unmuted by the instance.', { nameWithHost: account.nameWithHost })
+ )
+
+ this.account.mutedByInstance = false
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ blockServerByInstance (host: string) {
+ this.blocklistService.blockServerByInstance(host)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Instance {{host}} muted by the instance.', { host })
+ )
+
+ this.account.mutedServerByInstance = true
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ unblockServerByInstance (host: string) {
+ this.blocklistService.unblockServerByInstance(host)
+ .subscribe(
+ () => {
+ this.notificationsService.success(
+ this.i18n('Success'),
+ this.i18n('Instance {{host}} unmuted by the instance.', { host })
+ )
+
+ this.account.mutedServerByInstance = false
+ this.userChanged.emit()
+ },
+
+ err => this.notificationsService.error(this.i18n('Error'), err.message)
+ )
+ }
+
+ getRouterUserEditLink (user: User) {
+ return [ '/admin', 'users', 'update', user.id ]
+ }
+
+ private buildActions () {
+ this.userActions = []
+
+ if (this.authService.isLoggedIn()) {
+ const authUser = this.authService.getUser()
+
+ if (this.user && authUser.id === this.user.id) return
+
+ if (this.user && authUser.hasRight(UserRight.MANAGE_USERS)) {
+ this.userActions = this.userActions.concat([
+ {
+ label: this.i18n('Edit'),
+ linkBuilder: ({ user }) => this.getRouterUserEditLink(user)
+ },
+ {
+ label: this.i18n('Delete'),
+ handler: ({ user }) => this.removeUser(user)
+ },
+ {
+ label: this.i18n('Ban'),
+ handler: ({ user }: { user: User }) => this.openBanUserModal(user),
+ isDisplayed: ({ user }: { user: User }) => !user.blocked
+ },
+ {
+ label: this.i18n('Unban'),
+ handler: ({ user }: { user: User }) => this.unbanUser(user),
+ isDisplayed: ({ user }: { user: User }) => user.blocked
+ }
+ ])
+ }
+
+ // Actions on accounts/servers
+ if (this.account) {
+ // User actions
+ this.userActions = this.userActions.concat([
+ {
+ label: this.i18n('Mute this account'),
+ isDisplayed: ({ account }: { account: Account }) => account.mutedByUser === false,
+ handler: ({ account }: { account: Account }) => this.blockAccountByUser(account)
+ },
+ {
+ label: this.i18n('Unmute this account'),
+ isDisplayed: ({ account }: { account: Account }) => account.mutedByUser === true,
+ handler: ({ account }: { account: Account }) => this.unblockAccountByUser(account)
+ },
+ {
+ label: this.i18n('Mute the instance'),
+ isDisplayed: ({ account }: { account: Account }) => !account.userId && account.mutedServerByInstance === false,
+ handler: ({ account }: { account: Account }) => this.blockServerByUser(account.host)
+ },
+ {
+ label: this.i18n('Unmute the instance'),
+ isDisplayed: ({ account }: { account: Account }) => !account.userId && account.mutedServerByInstance === true,
+ handler: ({ account }: { account: Account }) => this.unblockServerByUser(account.host)
+ }
+ ])
+
+ // Instance actions
+ if (authUser.hasRight(UserRight.MANAGE_ACCOUNTS_BLOCKLIST)) {
+ this.userActions = this.userActions.concat([
+ {
+ label: this.i18n('Mute this account by your instance'),
+ isDisplayed: ({ account }: { account: Account }) => account.mutedByInstance === false,
+ handler: ({ account }: { account: Account }) => this.blockAccountByInstance(account)
+ },
+ {
+ label: this.i18n('Unmute this account by your instance'),
+ isDisplayed: ({ account }: { account: Account }) => account.mutedByInstance === true,
+ handler: ({ account }: { account: Account }) => this.unblockAccountByInstance(account)
+ }
+ ])
+ }
+
+ // Instance actions
+ if (authUser.hasRight(UserRight.MANAGE_SERVERS_BLOCKLIST)) {
+ this.userActions = this.userActions.concat([
+ {
+ label: this.i18n('Mute the instance by your instance'),
+ isDisplayed: ({ account }: { account: Account }) => !account.userId && account.mutedServerByInstance === false,
+ handler: ({ account }: { account: Account }) => this.blockServerByInstance(account.host)
+ },
+ {
+ label: this.i18n('Unmute the instance by your instance'),
+ isDisplayed: ({ account }: { account: Account }) => !account.userId && account.mutedServerByInstance === true,
+ handler: ({ account }: { account: Account }) => this.unblockServerByInstance(account.host)
+ }
+ ])
+ }
+ }
+ }
+ }
+}
tag: string
videos: Video[]
}[]
+ [key: string]: any
}
return this.applyToResultListData(result, this.convertDateToHuman, [ fieldsToConvert ])
}
- convertDateToHuman (target: object, fieldsToConvert: string[]) {
+ convertDateToHuman (target: { [ id: string ]: string }, fieldsToConvert: string[]) {
fieldsToConvert.forEach(field => target[field] = dateToHuman(target[field]))
return target
errorMessage = err
}
- const errorObj = {
+ const errorObj: { message: string, status: string, body: string } = {
message: errorMessage,
status: undefined,
body: undefined
import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage'
import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent'
import { SortMeta } from 'primeng/components/common/sortmeta'
-
import { RestPagination } from './rest-pagination'
+import { Subject } from 'rxjs'
+import { debounceTime, distinctUntilChanged } from 'rxjs/operators'
export abstract class RestTable {
abstract sort: SortMeta
abstract pagination: RestPagination
+ protected search: string
+ private searchStream: Subject<string>
private sortLocalStorageKey = 'rest-table-sort-' + this.constructor.name
- protected abstract loadData (): void
+ initialize () {
+ this.loadSort()
+ this.initSearch()
+ }
loadSort () {
const result = peertubeLocalStorage.getItem(this.sortLocalStorageKey)
peertubeLocalStorage.setItem(this.sortLocalStorageKey, JSON.stringify(this.sort))
}
+ initSearch () {
+ this.searchStream = new Subject()
+
+ this.searchStream
+ .pipe(
+ debounceTime(400),
+ distinctUntilChanged()
+ )
+ .subscribe(search => {
+ this.search = search
+ this.loadData()
+ })
+ }
+
+ onSearch (search: string) {
+ this.searchStream.next(search)
+ }
+
+ protected abstract loadData (): void
}
return newParams
}
- addObjectParams (params: HttpParams, object: object) {
+ addObjectParams (params: HttpParams, object: { [ name: string ]: any }) {
for (const name of Object.keys(object)) {
const value = object[name]
if (!value) continue
import { VideoBlacklistService } from './video-blacklist'
import { VideoOwnershipService } from './video-ownership'
import { VideoMiniatureComponent } from './video/video-miniature.component'
-import { VideoFeedComponent } from './video/video-feed.component'
+import { FeedComponent } from './video/feed.component'
import { VideoThumbnailComponent } from './video/video-thumbnail.component'
import { VideoService } from './video/video.service'
import { AccountService } from '@app/shared/account/account.service'
import { SubscribeButtonComponent, RemoteSubscribeComponent, UserSubscriptionService } from '@app/shared/user-subscription'
import { InstanceFeaturesTableComponent } from '@app/shared/instance/instance-features-table.component'
import { OverviewService } from '@app/shared/overview'
+import { UserBanModalComponent } from '@app/shared/moderation'
+import { UserModerationDropdownComponent } from '@app/shared/moderation/user-moderation-dropdown.component'
+import { BlocklistService } from '@app/shared/blocklist'
@NgModule({
imports: [
LoaderComponent,
VideoThumbnailComponent,
VideoMiniatureComponent,
- VideoFeedComponent,
+ FeedComponent,
ButtonComponent,
DeleteButtonComponent,
EditButtonComponent,
PeertubeCheckboxComponent,
SubscribeButtonComponent,
RemoteSubscribeComponent,
- InstanceFeaturesTableComponent
+ InstanceFeaturesTableComponent,
+ UserBanModalComponent,
+ UserModerationDropdownComponent
],
exports: [
LoaderComponent,
VideoThumbnailComponent,
VideoMiniatureComponent,
- VideoFeedComponent,
+ FeedComponent,
ButtonComponent,
DeleteButtonComponent,
EditButtonComponent,
SubscribeButtonComponent,
RemoteSubscribeComponent,
InstanceFeaturesTableComponent,
+ UserBanModalComponent,
+ UserModerationDropdownComponent,
NumberFormatterPipe,
ObjectLengthPipe,
OverviewService,
VideoChangeOwnershipValidatorsService,
VideoAcceptOwnershipValidatorsService,
+ BlocklistService,
I18nPrimengCalendarService,
ScreenService,
videoQuota?: number,
videoQuotaDaily?: number,
nsfwPolicy?: NSFWPolicyType,
+ webTorrentEnabled?: boolean,
autoPlayVideo?: boolean,
createdAt?: Date,
account?: AccountServerModel,
email: string
role: UserRole
nsfwPolicy: NSFWPolicyType
+ webTorrentEnabled: boolean
autoPlayVideo: boolean
videoQuota: number
videoQuotaDaily: number
this.videoQuota = hash.videoQuota
this.videoQuotaDaily = hash.videoQuotaDaily
this.nsfwPolicy = hash.nsfwPolicy
+ this.webTorrentEnabled = hash.webTorrentEnabled
this.autoPlayVideo = hash.autoPlayVideo
this.createdAt = hash.createdAt
this.blocked = hash.blocked
-import { Observable } from 'rxjs'
-import { catchError, map } from 'rxjs/operators'
+import { from, Observable } from 'rxjs'
+import { catchError, concatMap, map, toArray } from 'rxjs/operators'
import { HttpClient, HttpParams } from '@angular/common/http'
import { Injectable } from '@angular/core'
-import { UserCreate, UserUpdateMe, UserVideoQuota } from '../../../../../shared'
+import { ResultList, User, UserCreate, UserRole, UserUpdate, UserUpdateMe, UserVideoQuota } from '../../../../../shared'
import { environment } from '../../../environments/environment'
-import { RestExtractor } from '../rest'
+import { RestExtractor, RestPagination, RestService } from '../rest'
import { Avatar } from '../../../../../shared/models/avatars/avatar.model'
+import { SortMeta } from 'primeng/api'
+import { BytesPipe } from 'ngx-pipes'
+import { I18n } from '@ngx-translate/i18n-polyfill'
@Injectable()
export class UserService {
static BASE_USERS_URL = environment.apiUrl + '/api/v1/users/'
+ private bytesPipe = new BytesPipe()
+
constructor (
private authHttp: HttpClient,
- private restExtractor: RestExtractor
- ) {
- }
+ private restExtractor: RestExtractor,
+ private restService: RestService,
+ private i18n: I18n
+ ) { }
changePassword (currentPassword: string, newPassword: string) {
const url = UserService.BASE_USERS_URL + 'me'
.get<string[]>(url, { params })
.pipe(catchError(res => this.restExtractor.handleError(res)))
}
+
+ /* ###### Admin methods ###### */
+
+ addUser (userCreate: UserCreate) {
+ return this.authHttp.post(UserService.BASE_USERS_URL, userCreate)
+ .pipe(
+ map(this.restExtractor.extractDataBool),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ updateUser (userId: number, userUpdate: UserUpdate) {
+ return this.authHttp.put(UserService.BASE_USERS_URL + userId, userUpdate)
+ .pipe(
+ map(this.restExtractor.extractDataBool),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ getUser (userId: number) {
+ return this.authHttp.get<User>(UserService.BASE_USERS_URL + userId)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ getUsers (pagination: RestPagination, sort: SortMeta, search?: string): Observable<ResultList<User>> {
+ let params = new HttpParams()
+ params = this.restService.addRestGetParams(params, pagination, sort)
+
+ if (search) params = params.append('search', search)
+
+ return this.authHttp.get<ResultList<User>>(UserService.BASE_USERS_URL, { params })
+ .pipe(
+ map(res => this.restExtractor.convertResultListDateToHuman(res)),
+ map(res => this.restExtractor.applyToResultListData(res, this.formatUser.bind(this))),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ removeUser (usersArg: User | User[]) {
+ const users = Array.isArray(usersArg) ? usersArg : [ usersArg ]
+
+ return from(users)
+ .pipe(
+ concatMap(u => this.authHttp.delete(UserService.BASE_USERS_URL + u.id)),
+ toArray(),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ banUsers (usersArg: User | User[], reason?: string) {
+ const body = reason ? { reason } : {}
+ const users = Array.isArray(usersArg) ? usersArg : [ usersArg ]
+
+ return from(users)
+ .pipe(
+ concatMap(u => this.authHttp.post(UserService.BASE_USERS_URL + u.id + '/block', body)),
+ toArray(),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ unbanUsers (usersArg: User | User[]) {
+ const users = Array.isArray(usersArg) ? usersArg : [ usersArg ]
+
+ return from(users)
+ .pipe(
+ concatMap(u => this.authHttp.post(UserService.BASE_USERS_URL + u.id + '/unblock', {})),
+ toArray(),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ private formatUser (user: User) {
+ let videoQuota
+ if (user.videoQuota === -1) {
+ videoQuota = this.i18n('Unlimited')
+ } else {
+ videoQuota = this.bytesPipe.transform(user.videoQuota, 0)
+ }
+
+ const videoQuotaUsed = this.bytesPipe.transform(user.videoQuotaUsed, 0)
+
+ const roleLabels: { [ id in UserRole ]: string } = {
+ [UserRole.USER]: this.i18n('User'),
+ [UserRole.ADMINISTRATOR]: this.i18n('Administrator'),
+ [UserRole.MODERATOR]: this.i18n('Moderator')
+ }
+
+ return Object.assign(user, {
+ roleLabel: roleLabels[user.role],
+ videoQuota,
+ videoQuotaUsed
+ })
+ }
}
<div [ngClass]="{ 'margin-content': marginContent }">
- <div *ngIf="titlePage" class="title-page title-page-single">
- {{ titlePage }}
+ <div class="videos-header">
+ <div *ngIf="titlePage" class="title-page title-page-single">
+ {{ titlePage }}
+ </div>
+ <my-feed [syndicationItems]="syndicationItems"></my-feed>
+
+ <div class="moderation-block" *ngIf="displayModerationBlock">
+ <my-peertube-checkbox
+ (change)="toggleModerationDisplay()"
+ inputName="display-unlisted-private" i18n-labelText labelText="Display unlisted and private videos"
+ >
+ </my-peertube-checkbox>
+ </div>
</div>
- <my-video-feed [syndicationItems]="syndicationItems"></my-video-feed>
<div class="no-results" i18n *ngIf="pagination.totalItems === 0">No results.</div>
<div
}
}
-.title-page.title-page-single {
- margin-right: 5px;
-}
+.videos-header {
+ display: flex;
+ height: 80px;
+ align-items: center;
+
+ .title-page.title-page-single {
+ margin: 0 5px 0 0;
+ }
-my-video-feed {
- display: inline-block;
+ my-feed {
+ display: inline-block;
+ position: relative;
+ top: 1px;
+ }
+
+ .moderation-block {
+ display: flex;
+ flex-grow: 1;
+ justify-content: flex-end;
+ align-items: center;
+ }
}
@media screen and (max-width: 500px) {
import { I18n } from '@ngx-translate/i18n-polyfill'
import { ScreenService } from '@app/shared/misc/screen.service'
import { OwnerDisplayType } from '@app/shared/video/video-miniature.component'
+import { Syndication } from '@app/shared/video/syndication.model'
export abstract class AbstractVideoList implements OnInit, OnDestroy {
private static LINES_PER_PAGE = 4
sort: VideoSortField = '-publishedAt'
categoryOneOf?: number
defaultSort: VideoSortField = '-publishedAt'
- syndicationItems = []
+ syndicationItems: Syndication[] = []
loadOnInit = true
marginContent = true
videoPages: Video[][] = []
ownerDisplayType: OwnerDisplayType = 'account'
firstLoadedPage: number
+ displayModerationBlock = false
protected baseVideoWidth = 215
protected baseVideoHeight = 205
private resizeSubscription: Subscription
abstract getVideosObservable (page: number): Observable<{ videos: Video[], totalVideos: number}>
- abstract generateSyndicationList ()
+ abstract generateSyndicationList (): void
get user () {
return this.authService.getUser()
pageByVideoId (index: number, page: Video[]) {
// Video are unique in all pages
- return page[0].id
+ return page.length !== 0 ? page[0].id : 0
}
videoById (index: number, video: Video) {
)
}
+ toggleModerationDisplay () {
+ throw new Error('toggleModerationDisplay is not implemented')
+ }
+
protected hasMoreVideos () {
// No results
if (this.pagination.totalItems === 0) return false
protected setNewRouteParams () {
const paramsObject = this.buildRouteParams()
- const queryParams = Object.keys(paramsObject).map(p => p + '=' + paramsObject[p]).join('&')
+ const queryParams = Object.keys(paramsObject)
+ .map(p => p + '=' + paramsObject[p])
+ .join('&')
this.location.replaceState(this.currentRoute, queryParams)
}
--- /dev/null
+import { Component, Input } from '@angular/core'
+import { Syndication } from '@app/shared/video/syndication.model'
+
+@Component({
+ selector: 'my-feed',
+ styleUrls: [ './feed.component.scss' ],
+ templateUrl: './feed.component.html'
+})
+export class FeedComponent {
+ @Input() syndicationItems: Syndication[]
+}
--- /dev/null
+import { FeedFormat } from '../../../../../shared/models/feeds/feed-format.enum'
+
+export interface Syndication {
+ format: FeedFormat,
+ label: string,
+ url: string
+}
}
}
- patch (values: Object) {
+ patch (values: { [ id: string ]: string }) {
Object.keys(values).forEach((key) => {
this[ key ] = values[ key ]
})
// If schedule publication, the video is private and will be changed to public privacy
if (parseInt(values['privacy'], 10) === VideoEdit.SPECIAL_SCHEDULED_PRIVACY) {
- const updateAt = (values['schedulePublicationAt'] as Date)
+ const updateAt = new Date(values['schedulePublicationAt'])
updateAt.setSeconds(0)
this.privacy = VideoPrivacy.PRIVATE
+++ /dev/null
-import { Component, Input } from '@angular/core'
-
-@Component({
- selector: 'my-video-feed',
- styleUrls: [ './video-feed.component.scss' ],
- templateUrl: './video-feed.component.html'
-})
-export class VideoFeedComponent {
- @Input() syndicationItems
-}
[routerLink]="[ '/videos/watch', video.uuid ]" [attr.title]="video.name" [ngClass]="{ 'blur-filter': isVideoBlur }"
>
{{ video.name }}
+
+ <span *ngIf="isUnlistedVideo()" class="badge badge-warning" i18n>Unlisted</span>
+ <span *ngIf="isPrivateVideo()" class="badge badge-danger" i18n>Private</span>
</a>
<span i18n class="video-miniature-created-at-views">{{ video.publishedAt | myFromNow }} - {{ video.views | myNumberFormatter }} views</span>
import { User } from '../users'
import { Video } from './video.model'
import { ServerService } from '@app/core'
+import { VideoPrivacy } from '../../../../../shared'
export type OwnerDisplayType = 'account' | 'videoChannel' | 'auto'
displayOwnerVideoChannel () {
return this.ownerDisplayTypeChosen === 'videoChannel'
}
+
+ isUnlistedVideo () {
+ return this.video.privacy.id === VideoPrivacy.UNLISTED
+ }
+
+ isPrivateVideo () {
+ return this.video.privacy.id === VideoPrivacy.PRIVATE
+ }
}
[routerLink]="['/videos/watch', video.uuid]" [attr.title]="video.name"
class="video-thumbnail"
>
-<img alt="" [attr.aria-labelledby]="video.name" [attr.src]="getImageUrl()" [ngClass]="{ 'blur-filter': nsfw }" />
+ <img alt="" [attr.aria-labelledby]="video.name" [attr.src]="getImageUrl()" [ngClass]="{ 'blur-filter': nsfw }" />
-<div class="video-thumbnail-overlay">
- {{ video.durationLabel }}
-</div>
+ <div class="video-thumbnail-overlay">{{ video.durationLabel }}</div>
+
+ <div class="progress-bar" *ngIf="video.userHistory?.currentTime">
+ <div [ngStyle]="{ 'width.%': getProgressPercent() }"></div>
+ </div>
</a>
}
}
+ .progress-bar {
+ height: 3px;
+ width: 100%;
+ position: relative;
+ top: -3px;
+ background-color: rgba(0, 0, 0, 0.20);
+
+ div {
+ height: 100%;
+ background-color: var(--mainColor);
+ }
+ }
+
.video-thumbnail-overlay {
position: absolute;
right: 5px;
return this.video.thumbnailUrl
}
+
+ getProgressPercent () {
+ if (!this.video.userHistory) return 0
+
+ const currentTime = this.video.userHistory.currentTime
+
+ return (currentTime / this.video.duration) * 100
+ }
}
avatar: Avatar
}
+ userHistory?: {
+ currentTime: number
+ }
+
static buildClientUrl (videoUUID: string) {
return '/videos/watch/' + videoUUID
}
this.blacklisted = hash.blacklisted
this.blacklistedReason = hash.blacklistedReason
+
+ this.userHistory = hash.userHistory
}
isVideoNSFWForUser (user: User, serverConfig: ServerConfig) {
return VideoService.BASE_VIDEO_URL + uuid + '/views'
}
+ getUserWatchingVideoUrl (uuid: string) {
+ return VideoService.BASE_VIDEO_URL + uuid + '/watching'
+ }
+
getVideo (uuid: string): Observable<VideoDetails> {
return this.serverService.localeObservable
.pipe(
loadCompleteDescription (descriptionPath: string) {
return this.authHttp
- .get(environment.apiUrl + descriptionPath)
+ .get<{ description: string }>(environment.apiUrl + descriptionPath)
.pipe(
- map(res => res[ 'description' ]),
+ map(res => res.description),
catchError(err => this.restExtractor.handleError(err))
)
}
<div class="form-group form-group-terms">
<my-peertube-checkbox
inputName="terms" formControlName="terms"
- i18n-labelHtml labelHtml="I have read and agree to the <a href='/about/instance#terms-section' target='_blank'rel='noopener noreferrer'>Terms</a> of this instance"
+ i18n-labelHtml labelHtml="I am at least 16 years old and agree to the <a href='/about/instance#terms-section' target='_blank'rel='noopener noreferrer'>Terms</a> of this instance"
></my-peertube-checkbox>
<div *ngIf="formErrors.terms" class="form-error">
import { ServerService } from '@app/core'
import { VideoCaptionEdit } from '@app/shared/video-caption/video-caption-edit.model'
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'
+import { VideoConstant } from '../../../../../../shared'
@Component({
selector: 'my-video-caption-add-modal',
@ViewChild('modal') modal: ElementRef
- videoCaptionLanguages = []
+ videoCaptionLanguages: VideoConstant<string>[] = []
private openedModal: NgbModalRef
private closingModal = false
@include peertube-select-container(auto);
}
+my-peertube-checkbox {
+ display: block;
+ margin-bottom: 1rem;
+}
+
.video-edit {
height: 100%;
min-height: 300px;
calendarTimezone: string
calendarDateFormat: string
- private schedulerInterval
+ private schedulerInterval: any
private firstPatchDone = false
private initialVideoCaptions: string[] = []
}
updateForm () {
- const defaultValues = {
+ const defaultValues: any = {
nsfw: 'false',
commentsEnabled: 'true',
waitTranscoding: 'true',
tags: []
}
- const obj = {
+ const obj: any = {
name: this.videoValidatorsService.VIDEO_NAME,
privacy: this.videoValidatorsService.VIDEO_PRIVACY,
channelId: this.videoValidatorsService.VIDEO_CHANNEL,
-import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core'
+import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core'
import { Router } from '@angular/router'
import { NotificationsService } from 'angular2-notifications'
import { VideoPrivacy, VideoUpdate } from '../../../../../../shared/models/videos'
})
export class VideoImportTorrentComponent extends VideoSend implements OnInit, CanComponentDeactivate {
@Output() firstStepDone = new EventEmitter<string>()
- @ViewChild('torrentfileInput') torrentfileInput
+ @ViewChild('torrentfileInput') torrentfileInput: ElementRef<HTMLInputElement>
videoFileName: string
magnetUri = ''
}
fileChange () {
- const torrentfile = this.torrentfileInput.nativeElement.files[0] as File
+ const torrentfile = this.torrentfileInput.nativeElement.files[0]
if (!torrentfile) return
this.importVideo(torrentfile)
import { NotificationsService } from 'angular2-notifications'
import { catchError, switchMap, tap } from 'rxjs/operators'
import { FormReactive } from '@app/shared'
-import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service'
import { VideoConstant, VideoPrivacy } from '../../../../../../shared'
import { AuthService, ServerService } from '@app/core'
import { VideoService } from '@app/shared/video/video.service'
import { VideoCaptionService } from '@app/shared/video-caption'
import { VideoEdit } from '@app/shared/video/video-edit.model'
import { populateAsyncUserVideoChannels } from '@app/shared/misc/utils'
+import { CanComponentDeactivateResult } from '@app/shared/guards/can-deactivate-guard.service'
-export abstract class VideoSend extends FormReactive implements OnInit, CanComponentDeactivate {
+export abstract class VideoSend extends FormReactive implements OnInit {
userVideoChannels: { id: number, label: string, support: string }[] = []
videoPrivacies: VideoConstant<VideoPrivacy>[] = []
videoCaptions: VideoCaptionEdit[] = []
protected videoService: VideoService
protected videoCaptionService: VideoCaptionService
- abstract canDeactivate ()
+ abstract canDeactivate (): CanComponentDeactivateResult
ngOnInit () {
this.buildForm({})
import { HttpEventType, HttpResponse } from '@angular/common/http'
-import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'
+import { Component, ElementRef, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'
import { Router } from '@angular/router'
import { LoadingBarService } from '@ngx-loading-bar/core'
import { NotificationsService } from 'angular2-notifications'
})
export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy, CanComponentDeactivate {
@Output() firstStepDone = new EventEmitter<string>()
- @ViewChild('videofileInput') videofileInput
+ @ViewChild('videofileInput') videofileInput: ElementRef<HTMLInputElement>
// So that it can be accessed in the template
readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY
}
uploadFirstStep () {
- const videofile = this.videofileInput.nativeElement.files[0] as File
+ const videofile = this.videofileInput.nativeElement.files[0]
if (!videofile) return
// Cannot upload videos > 8GB for now
import { Injectable } from '@angular/core'
import { getAbsoluteAPIUrl } from '@app/shared/misc/utils'
-import * as linkify from 'linkifyjs'
-import * as linkifyHtml from 'linkifyjs/html'
+// FIXME: use @types/linkify when https://github.com/DefinitelyTyped/DefinitelyTyped/pull/29682/files is merged?
+const linkify = require('linkifyjs')
+const linkifyHtml = require('linkifyjs/html')
@Injectable()
export class LinkifierService {
const TT_UNDERSCORE = TT.UNDERSCORE
const TT_DOT = TT.DOT
- function MENTION (value) {
+ function MENTION (this: any, value: any) {
this.v = value
}
this.formValidated()
}
- openVisitorModal (event) {
+ openVisitorModal (event: any) {
if (this.user === null) { // we only open it for visitors
// fixing ng-bootstrap ModalService and the "Expression Changed After It Has Been Checked" Error
event.srcElement.blur()
@Output() resetReply = new EventEmitter()
sanitizedCommentHTML = ''
- newParentComments = []
+ newParentComments: VideoComment[] = []
constructor (
private linkifierService: LinkifierService,
account: AccountInterface
totalReplies: number
by: string
- accountAvatarUrl
+ accountAvatarUrl: string
constructor (hash: VideoCommentServerModel) {
this.id = hash.id
const url = VideoCommentService.BASE_VIDEO_URL + videoId + '/comment-threads'
const normalizedComment = lineFeedToHtml(comment, 'text')
- return this.authHttp.post(url, normalizedComment)
+ return this.authHttp.post<{ comment: VideoCommentServerModel }>(url, normalizedComment)
.pipe(
- map(data => this.extractVideoComment(data['comment'])),
+ map(data => this.extractVideoComment(data.comment)),
catchError(err => this.restExtractor.handleError(err))
)
}
const url = VideoCommentService.BASE_VIDEO_URL + videoId + '/comments/' + inReplyToCommentId
const normalizedComment = lineFeedToHtml(comment, 'text')
- return this.authHttp.post(url, normalizedComment)
+ return this.authHttp.post<{ comment: VideoCommentServerModel }>(url, normalizedComment)
.pipe(
- map(data => this.extractVideoComment(data[ 'comment' ])),
+ map(data => this.extractVideoComment(data.comment)),
catchError(err => this.restExtractor.handleError(err))
)
}
Comments
</div>
- <my-video-feed [syndicationItems]="syndicationItems"></my-video-feed>
+ <my-feed [syndicationItems]="syndicationItems"></my-feed>
</div>
<ng-template [ngIf]="video.commentsEnabled === true">
margin-right: 0;
}
-my-video-feed {
+my-feed {
display: inline-block;
margin-left: 5px;
}
import { VideoComment } from './video-comment.model'
import { VideoCommentService } from './video-comment.service'
import { I18n } from '@ngx-translate/i18n-polyfill'
+import { Syndication } from '@app/shared/video/syndication.model'
@Component({
selector: 'my-video-comments',
threadComments: { [ id: number ]: VideoCommentThreadTree } = {}
threadLoading: { [ id: number ]: boolean } = {}
- syndicationItems = []
+ syndicationItems: Syndication[] = []
private sub: Subscription
}
}
- my-video-feed {
+ my-feed {
margin-left: 5px;
margin-top: 1px;
}
import { MetaService } from '@ngx-meta/core'
import { NotificationsService } from 'angular2-notifications'
import { forkJoin, Subscription } from 'rxjs'
-import * as videojs from 'video.js'
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
+import videojs from 'video.js'
import 'videojs-hotkeys'
import { Hotkey, HotkeysService } from 'angular2-hotkeys'
import * as WebTorrent from 'webtorrent'
)
}
- private async onVideoFetched (video: VideoDetails, videoCaptions: VideoCaption[], startTime = 0) {
+ private async onVideoFetched (video: VideoDetails, videoCaptions: VideoCaption[], startTimeFromUrl: number) {
this.video = video
// Re init attributes
this.completeDescriptionShown = false
this.remoteServerDown = false
+ let startTime = startTimeFromUrl || (this.video.userHistory ? this.video.userHistory.currentTime : 0)
+ // Don't start the video if we are at the end
+ if (this.video.duration - startTime <= 1) startTime = 0
+
if (this.video.isVideoNSFWForUser(this.user, this.serverService.getConfig())) {
const res = await this.confirmService.confirm(
this.i18n('This video contains mature or explicit content. Are you sure you want to watch it?'),
poster: this.video.previewUrl,
startTime,
theaterMode: true,
- language: this.localeId
+ language: this.localeId,
+
+ userWatching: this.user ? {
+ url: this.videoService.getUserWatchingVideoUrl(this.video.uuid),
+ authorizationHeader: this.authService.getRequestHeaderValue()
+ } : undefined
})
if (this.videojsLocaleLoaded === false) {
const self = this
this.zone.runOutsideAngular(async () => {
- videojs(this.playerElement, videojsOptions, function () {
+ videojs(this.playerElement, videojsOptions, function (this: videojs.Player) {
self.player = this
- this.on('customError', (event, data) => self.handleError(data.err))
+ this.on('customError', ({ err }: { err: any }) => self.handleError(err))
addContextMenu(self.player, self.video.embedUrl)
})
this.checkUserRating()
}
- private setRating (nextRating) {
+ private setRating (nextRating: VideoRateType) {
let method
switch (nextRating) {
case 'like':
this.userRating = nextRating
},
- err => this.notificationsService.error(this.i18n('Error'), err.message)
+ (err: { message: string }) => this.notificationsService.error(this.i18n('Error'), err.message)
)
}
import { VideoFilter } from '../../../../../shared/models/videos/video-query.type'
import { I18n } from '@ngx-translate/i18n-polyfill'
import { ScreenService } from '@app/shared/misc/screen.service'
+import { UserRight } from '../../../../../shared/models/users'
@Component({
selector: 'my-videos-local',
ngOnInit () {
super.ngOnInit()
+ if (this.authService.isLoggedIn()) {
+ const user = this.authService.getUser()
+ this.displayModerationBlock = user.hasRight(UserRight.SEE_ALL_VIDEOS)
+ }
+
this.generateSyndicationList()
}
generateSyndicationList () {
this.syndicationItems = this.videoService.getVideoFeedUrls(this.sort, this.filter, this.categoryOneOf)
}
+
+ toggleModerationDisplay () {
+ this.filter = this.filter === 'local' ? 'all-local' as 'all-local' : 'local' as 'local'
+
+ this.reloadVideos()
+ }
}
// If the store is full
private memoryChunks: { [ id: number ]: Buffer | true } = {}
private databaseName: string
- private putBulkTimeout
- private cleanerInterval
+ private putBulkTimeout: any
+ private cleanerInterval: any
private db: ChunkDatabase
private expirationDB: ExpirationDatabase
private readonly length: number
private readonly lastChunkLength: number
private readonly lastChunkIndex: number
- constructor (chunkLength: number, opts) {
+ constructor (chunkLength: number, opts: any) {
super()
this.databaseName = 'webtorrent-chunks-'
this.runCleaner()
}
- put (index: number, buf: Buffer, cb: Function) {
+ put (index: number, buf: Buffer, cb: (err?: Error) => void) {
const isLastChunk = (index === this.lastChunkIndex)
if (isLastChunk && buf.length !== this.lastChunkLength) {
return this.nextTick(cb, new Error('Last chunk length must be ' + this.lastChunkLength))
}, PeertubeChunkStore.BUFFERING_PUT_MS)
}
- get (index: number, opts, cb) {
+ get (index: number, opts: any, cb: (err?: Error, buf?: Buffer) => void): void {
if (typeof opts === 'function') return this.get(index, null, opts)
// IndexDB could be slow, use our memory index first
const memoryChunk = this.memoryChunks[index]
if (memoryChunk === undefined) {
- const err = new Error('Chunk not found')
+ const err = new Error('Chunk not found') as any
err['notFound'] = true
return process.nextTick(() => cb(err))
})
}
- close (db) {
- return this.destroy(db)
+ close (cb: (err?: Error) => void) {
+ return this.destroy(cb)
}
- async destroy (cb) {
+ async destroy (cb: (err?: Error) => void) {
try {
if (this.pendingPut) {
clearTimeout(this.putBulkTimeout)
}
}
- private nextTick (cb, err, val?) {
+ private nextTick <T> (cb: (err?: Error, val?: T) => void, err: Error, val?: T) {
process.nextTick(() => cb(err, val), undefined)
}
}
-import * as videojs from 'video.js'
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
import { buildVideoLink } from './utils'
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
+import { Player } from 'video.js'
const Button: VideoJSComponentInterface = videojsUntyped.getComponent('Button')
class PeerTubeLinkButton extends Button {
- constructor (player: videojs.Player, options) {
+ constructor (player: Player, options: any) {
super(player, options)
}
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
+import { Player } from 'video.js'
const Component: VideoJSComponentInterface = videojsUntyped.getComponent('Component')
class PeerTubeLoadProgressBar extends Component {
- constructor (player, options) {
+ constructor (player: Player, options: any) {
super(player, options)
this.partEls_ = []
this.on(player, 'progress', this.update)
return undefined
}
+function getStoredWebTorrentEnabled (): boolean {
+ const value = getLocalStorage('webtorrent_enabled')
+ if (value !== null && value !== undefined) return value === 'true'
+
+ // By default webtorrent is enabled
+ return true
+}
+
function getStoredMute () {
const value = getLocalStorage('mute')
if (value !== null && value !== undefined) return value === 'true'
export {
getStoredVolume,
+ getStoredWebTorrentEnabled,
getStoredMute,
getStoredTheater,
saveVolumeInStore,
import './peertube-videojs-plugin'
import './peertube-load-progress-bar'
import './theater-button'
-import { VideoJSCaption, videojsUntyped } from './peertube-videojs-typings'
+import { UserWatching, VideoJSCaption, videojsUntyped } from './peertube-videojs-typings'
import { buildVideoEmbed, buildVideoLink, copyToClipboard } from './utils'
import { getCompleteLocale, getShortLocale, is18nLocale, isDefaultLocale } from '../../../../shared/models/i18n/i18n'
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
+import { Player } from 'video.js'
+
// Change 'Playback Rate' to 'Speed' (smaller for our settings menu)
videojsUntyped.getComponent('PlaybackRateMenuButton').prototype.controlText_ = 'Speed'
// Change Captions to Subtitles/CC
startTime: number | string
theaterMode: boolean,
videoCaptions: VideoJSCaption[],
+
language?: string,
controls?: boolean,
muted?: boolean,
loop?: boolean
+
+ userWatching?: UserWatching
}) {
const videojsOptions = {
// We don't use text track settings for now
playerElement: options.playerElement,
videoViewUrl: options.videoViewUrl,
videoDuration: options.videoDuration,
- startTime: options.startTime
+ startTime: options.startTime,
+ userWatching: options.userWatching
}
},
controlBar: {
enableVolumeScroll: false,
enableModifiersForNumbers: false,
- fullscreenKey: function (event) {
+ fullscreenKey: function (event: KeyboardEvent) {
// fullscreen with the f key or Ctrl+Enter
return event.key === 'f' || (event.ctrlKey && event.key === 'Enter')
},
- seekStep: function (event) {
+ seekStep: function (event: KeyboardEvent) {
// mimic VLC seek behavior, and default to 5 (original value is 5).
if (event.ctrlKey && event.altKey) {
return 5 * 60
customKeys: {
increasePlaybackRateKey: {
- key: function (event) {
+ key: function (event: KeyboardEvent) {
return event.key === '>'
},
- handler: function (player) {
+ handler: function (player: Player) {
player.playbackRate((player.playbackRate() + 0.1).toFixed(2))
}
},
decreasePlaybackRateKey: {
- key: function (event) {
+ key: function (event: KeyboardEvent) {
return event.key === '<'
},
- handler: function (player) {
+ handler: function (player: Player) {
player.playbackRate((player.playbackRate() - 0.1).toFixed(2))
}
},
frameByFrame: {
- key: function (event) {
+ key: function (event: KeyboardEvent) {
return event.key === '.'
},
- handler: function (player, options, event) {
+ handler: function (player: Player) {
player.pause()
// Calculate movement distance (assuming 30 fps)
const dist = 1 / 30
{
label: player.localize('Copy the video URL at the current time'),
listener: function () {
- const player = this
+ const player = this as Player
copyToClipboard(buildVideoLink(player.currentTime()))
}
},
{
label: player.localize('Copy magnet URI'),
listener: function () {
- const player = this
+ const player = this as Player
copyToClipboard(player.peertube().getCurrentVideoFile().magnetUri)
}
}
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
import * as videojs from 'video.js'
+
import * as WebTorrent from 'webtorrent'
import { VideoFile } from '../../../../shared/models/videos/video.model'
import { renderVideo } from './video-renderer'
import './settings-menu-button'
-import { PeertubePluginOptions, VideoJSCaption, VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
+import { PeertubePluginOptions, UserWatching, VideoJSCaption, VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
import { isMobile, timeToInt, videoFileMaxByResolution, videoFileMinByResolution } from './utils'
-import * as CacheChunkStore from 'cache-chunk-store'
import { PeertubeChunkStore } from './peertube-chunk-store'
import {
getAverageBandwidthInStore,
getStoredMute,
getStoredVolume,
+ getStoredWebTorrentEnabled,
saveAverageBandwidth,
saveMuteInStore,
saveVolumeInStore
} from './peertube-player-local-storage'
+const CacheChunkStore = require('cache-chunk-store')
+
+type PlayOptions = {
+ forcePlay?: boolean,
+ seek?: number,
+ delay?: number
+}
+
const Plugin: VideoJSComponentInterface = videojs.getPlugin('plugin')
class PeerTubePlugin extends Plugin {
private readonly playerElement: HTMLVideoElement
AUTO_QUALITY_THRESHOLD_PERCENT: 30, // Bandwidth should be 30% more important than a resolution bitrate to change to it
AUTO_QUALITY_OBSERVATION_TIME: 10000, // Wait 10 seconds after having change the resolution before another check
AUTO_QUALITY_HIGHER_RESOLUTION_DELAY: 5000, // Buffering higher resolution during 5 seconds
- BANDWIDTH_AVERAGE_NUMBER_OF_VALUES: 5 // Last 5 seconds to build average bandwidth
+ BANDWIDTH_AVERAGE_NUMBER_OF_VALUES: 5, // Last 5 seconds to build average bandwidth
+ USER_WATCHING_VIDEO_INTERVAL: 5000 // Every 5 seconds, notify the user is watching the video
}
private readonly webtorrent = new WebTorrent({
private torrent: WebTorrent.Torrent
private videoCaptions: VideoJSCaption[]
- private renderer
- private fakeRenderer
+ private renderer: any
+ private fakeRenderer: any
private destoyingFakeRenderer = false
private autoResolution = true
private forbidAutoResolution = false
private isAutoResolutionObservation = false
+ private playerRefusedP2P = false
- private videoViewInterval
- private torrentInfoInterval
- private autoQualityInterval
- private addTorrentDelay
- private qualityObservationTimer
- private runAutoQualitySchedulerTimer
+ private videoViewInterval: any
+ private torrentInfoInterval: any
+ private autoQualityInterval: any
+ private userWatchingVideoInterval: any
+ private addTorrentDelay: any
+ private qualityObservationTimer: any
+ private runAutoQualitySchedulerTimer: any
private downloadSpeeds: number[] = []
// Disable auto play on iOS
this.autoplay = options.autoplay && this.isIOS() === false
+ this.playerRefusedP2P = !getStoredWebTorrentEnabled()
this.startTime = timeToInt(options.startTime)
this.videoFiles = options.videoFiles
this.runTorrentInfoScheduler()
this.runViewAdd()
+ if (options.userWatching) this.runUserWatchVideo(options.userWatching)
+
this.player.one('play', () => {
// Don't run immediately scheduler, wait some seconds the TCP connections are made
this.runAutoQualitySchedulerTimer = setTimeout(() => this.runAutoQualityScheduler(), this.CONSTANTS.AUTO_QUALITY_SCHEDULER)
clearInterval(this.torrentInfoInterval)
clearInterval(this.autoQualityInterval)
+ if (this.userWatchingVideoInterval) clearInterval(this.userWatchingVideoInterval)
+
// Don't need to destroy renderer, video player will be destroyed
this.flushVideoFile(this.currentVideoFile, false)
const previousVideoFile = this.currentVideoFile
this.currentVideoFile = videoFile
+ // Don't try on iOS that does not support MediaSource
+ // Or don't use P2P if webtorrent is disabled
+ if (this.isIOS() || this.playerRefusedP2P) {
+ return this.fallbackToHttp(options, () => {
+ this.player.playbackRate(oldPlaybackRate)
+ return done()
+ })
+ }
+
this.addTorrent(this.currentVideoFile.magnetUri, previousVideoFile, options, () => {
this.player.playbackRate(oldPlaybackRate)
return done()
private addTorrent (
magnetOrTorrentUrl: string,
previousVideoFile: VideoFile,
- options: {
- forcePlay?: boolean,
- seek?: number,
- delay?: number
- },
+ options: PlayOptions,
done: Function
) {
console.log('Adding ' + magnetOrTorrentUrl + '.')
const oldTorrent = this.torrent
const torrentOptions = {
- store: (chunkLength, storeOpts) => new CacheChunkStore(new PeertubeChunkStore(chunkLength, storeOpts), {
+ store: (chunkLength: number, storeOpts: any) => new CacheChunkStore(new PeertubeChunkStore(chunkLength, storeOpts), {
max: 100
})
}
renderVideo(torrent.files[ 0 ], this.playerElement, renderVideoOptions, (err, renderer) => {
this.renderer = renderer
- if (err) return this.fallbackToHttp(done)
+ if (err) return this.fallbackToHttp(options, done)
return this.tryToPlay(err => {
if (err) return done(err)
if (options.seek) this.seek(options.seek)
if (options.forcePlay === false && paused === true) this.player.pause()
- return done(err)
+ return done()
})
})
}, options.delay || 0)
})
- this.torrent.on('error', err => console.error(err))
+ this.torrent.on('error', (err: any) => console.error(err))
this.torrent.on('warning', (err: any) => {
// We don't support HTTP tracker but we don't care -> we use the web socket tracker
})
}
- private tryToPlay (done?: Function) {
+ private tryToPlay (done?: (err?: Error) => void) {
if (!done) done = function () { /* empty */ }
const playPromise = this.player.play()
if (playPromise !== undefined) {
return playPromise.then(done)
- .catch(err => {
+ .catch((err: Error) => {
if (err.message.indexOf('The play() request was interrupted by a call to pause()') !== -1) {
return
}
return this.updateVideoFile(undefined, { forcePlay: true, seek: this.startTime })
}
- // Don't try on iOS that does not support MediaSource
- if (this.isIOS()) {
- this.currentVideoFile = this.pickAverageVideoFile()
- return this.fallbackToHttp(undefined, false)
- }
-
// Proxy first play
const oldPlay = this.player.play.bind(this.player)
this.player.play = () => {
}, 1000)
}
+ private runUserWatchVideo (options: UserWatching) {
+ let lastCurrentTime = 0
+
+ this.userWatchingVideoInterval = setInterval(() => {
+ const currentTime = Math.floor(this.player.currentTime())
+
+ if (currentTime - lastCurrentTime >= 1) {
+ lastCurrentTime = currentTime
+
+ this.notifyUserIsWatching(currentTime, options.url, options.authorizationHeader)
+ .catch(err => console.error('Cannot notify user is watching.', err))
+ }
+ }, this.CONSTANTS.USER_WATCHING_VIDEO_INTERVAL)
+ }
+
private clearVideoViewInterval () {
if (this.videoViewInterval !== undefined) {
clearInterval(this.videoViewInterval)
return fetch(this.videoViewUrl, { method: 'POST' })
}
- private fallbackToHttp (done?: Function, play = true) {
+ private notifyUserIsWatching (currentTime: number, url: string, authorizationHeader: string) {
+ const body = new URLSearchParams()
+ body.append('currentTime', currentTime.toString())
+
+ const headers = new Headers({ 'Authorization': authorizationHeader })
+
+ return fetch(url, { method: 'PUT', body, headers })
+ }
+
+ private fallbackToHttp (options: PlayOptions, done?: Function) {
+ const paused = this.player.paused()
+
this.disableAutoResolution(true)
this.flushVideoFile(this.currentVideoFile, true)
const httpUrl = this.currentVideoFile.fileUrl
this.player.src = this.savePlayerSrcFunction
this.player.src(httpUrl)
- if (play) this.tryToPlay()
- if (done) return done()
+ return this.tryToPlay(err => {
+ if (err && done) return done(err)
+
+ if (options.seek) this.seek(options.seek)
+ if (options.forcePlay === false && paused === true) this.player.pause()
+
+ if (done) return done()
+ })
}
private handleError (err: Error | string) {
this.player.options_.inactivityTimeout = saveInactivityTimeout
}
- const settingsDialog = this.player.children_.find(c => c.name_ === 'SettingsDialog')
+ const settingsDialog = this.player.children_.find((c: any) => c.name_ === 'SettingsDialog')
this.player.controlBar.on('mouseenter', () => disableInactivity())
settingsDialog.on('mouseenter', () => disableInactivity())
const percent = time / this.player_.duration()
return percent >= 1 ? 1 : percent
}
- SeekBar.prototype.handleMouseMove = function handleMouseMove (event) {
+ SeekBar.prototype.handleMouseMove = function handleMouseMove (event: any) {
let newTime = this.calculateDistance(event) * this.player_.duration()
if (newTime === this.player_.duration()) {
newTime = newTime - 0.1
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
import * as videojs from 'video.js'
+
import { VideoFile } from '../../../../shared/models/videos/video.model'
import { PeerTubePlugin } from './peertube-videojs-plugin'
interface VideoJSComponentInterface {
_player: videojs.Player
- new (player: videojs.Player, options?: any)
+ new (player: videojs.Player, options?: any): any
- registerComponent (name: string, obj: any)
+ registerComponent (name: string, obj: any): any
}
type VideoJSCaption = {
src: string
}
+type UserWatching = {
+ url: string,
+ authorizationHeader: string
+}
+
type PeertubePluginOptions = {
videoFiles: VideoFile[]
playerElement: HTMLVideoElement
startTime: number | string
autoplay: boolean,
videoCaptions: VideoJSCaption[]
+
+ userWatching?: UserWatching
}
// videojs typings don't have some method we need
VideoJSComponentInterface,
PeertubePluginOptions,
videojsUntyped,
- VideoJSCaption
+ VideoJSCaption,
+ UserWatching
}
-import * as videojs from 'video.js'
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
+import { Player } from 'video.js'
+
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
import { ResolutionMenuItem } from './resolution-menu-item'
class ResolutionMenuButton extends MenuButton {
label: HTMLElement
- constructor (player: videojs.Player, options) {
+ constructor (player: Player, options: any) {
super(player, options)
this.player = player
-import * as videojs from 'video.js'
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
+import { Player } from 'video.js'
+
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
const MenuItem: VideoJSComponentInterface = videojsUntyped.getComponent('MenuItem')
class ResolutionMenuItem extends MenuItem {
- constructor (player: videojs.Player, options) {
+ constructor (player: Player, options: any) {
const currentResolutionId = player.peertube().getCurrentResolutionId()
options.selectable = true
options.selected = options.id === currentResolutionId
player.peertube().on('autoResolutionUpdate', () => this.updateSelection())
}
- handleClick (event) {
+ handleClick (event: any) {
if (this.id === -1 && this.player_.peertube().isAutoResolutionForbidden()) return
super.handleClick(event)
// Author: Yanko Shterev
// Thanks https://github.com/yshterev/videojs-settings-menu
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
import * as videojs from 'video.js'
+
import { SettingsMenuItem } from './settings-menu-item'
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
import { toTitleCase } from './utils'
const Component: VideoJSComponentInterface = videojsUntyped.getComponent('Component')
class SettingsButton extends Button {
- constructor (player: videojs.Player, options) {
+ constructor (player: videojs.Player, options: any) {
super(player, options)
this.playerComponent = player
}
}
- onDisposeSettingsItem (event, name: string) {
+ onDisposeSettingsItem (event: any, name: string) {
if (name === undefined) {
let children = this.menu.children()
}
}
- onAddSettingsItem (event, data) {
+ onAddSettingsItem (event: any, data: any) {
const [ entry, options ] = data
this.addMenuItem(entry, options)
this.resetChildren()
}
- getComponentSize (element) {
+ getComponentSize (element: any) {
let width: number = null
let height: number = null
this.panelChild.addChild(this.menu)
}
- addMenuItem (entry, options) {
- const openSubMenu = function () {
+ addMenuItem (entry: any, options: any) {
+ const openSubMenu = function (this: any) {
if (videojsUntyped.dom.hasClass(this.el_, 'open')) {
videojsUntyped.dom.removeClass(this.el_, 'open')
} else {
}
class SettingsPanel extends Component {
- constructor (player: videojs.Player, options) {
+ constructor (player: videojs.Player, options: any) {
super(player, options)
}
}
class SettingsPanelChild extends Component {
- constructor (player: videojs.Player, options) {
+ constructor (player: videojs.Player, options: any) {
super(player, options)
}
}
class SettingsDialog extends Component {
- constructor (player: videojs.Player, options) {
+ constructor (player: videojs.Player, options: any) {
super(player, options)
this.hide()
}
// Author: Yanko Shterev
// Thanks https://github.com/yshterev/videojs-settings-menu
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
import * as videojs from 'video.js'
+
import { toTitleCase } from './utils'
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
class SettingsMenuItem extends MenuItem {
- constructor (player: videojs.Player, options, entry: string, menuButton: VideoJSComponentInterface) {
+ constructor (player: videojs.Player, options: any, entry: string, menuButton: VideoJSComponentInterface) {
super(player, options)
this.settingsButton = menuButton
this.transitionEndHandler = this.onTransitionEnd.bind(this)
}
- onSubmenuClick (event) {
+ onSubmenuClick (event: any) {
let target = null
if (event.type === 'tap') {
*
* @method PrefixedEvent
*/
- PrefixedEvent (element, type, callback, action = 'addEvent') {
+ PrefixedEvent (element: any, type: any, callback: any, action = 'addEvent') {
let prefix = ['webkit', 'moz', 'MS', 'o', '']
for (let p = 0; p < prefix.length; p++) {
}
}
- onTransitionEnd (event) {
+ onTransitionEnd (event: any) {
if (event.propertyName !== 'margin-right') {
return
}
)
}
- update (event?: Event) {
- let target = null
+ update (event?: any) {
+ let target: HTMLElement = null
let subMenu = this.subMenu.name()
if (event && event.type === 'tap') {
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
+import * as videojs from 'video.js'
+
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
import { saveTheaterInStore, getStoredTheater } from './peertube-player-local-storage'
private static readonly THEATER_MODE_CLASS = 'vjs-theater-enabled'
- constructor (player, options) {
+ constructor (player: videojs.Player, options: any) {
super(player, options)
const enabled = getStoredTheater()
{ max: 1073741824, type: 'MB' },
{ max: 1.0995116e12, type: 'GB' }
]
-function bytes (value) {
+function bytes (value: number) {
const format = dictionaryBytes.find(d => value < d.max) || dictionaryBytes[dictionaryBytes.length - 1]
const calc = Math.floor(value / (format.max / 1024)).toString()
// Thanks: https://github.com/feross/render-media
// TODO: use render-media once https://github.com/feross/render-media/issues/32 is fixed
-import * as MediaElementWrapper from 'mediasource'
+const MediaElementWrapper = require('mediasource')
import { extname } from 'path'
-import * as videostream from 'videostream'
+const videostream = require('videostream')
const VIDEOSTREAM_EXTS = [
'.m4a',
}
function renderVideo (
- file,
+ file: any,
elem: HTMLVideoElement,
opts: RenderMediaOptions,
callback: (err: Error, renderer: any) => void
return renderMedia(file, elem, opts, callback)
}
-function renderMedia (file, elem: HTMLVideoElement, opts: RenderMediaOptions, callback: (err: Error, renderer?: any) => void) {
+function renderMedia (file: any, elem: HTMLVideoElement, opts: RenderMediaOptions, callback: (err: Error, renderer?: any) => void) {
const extension = extname(file.name).toLowerCase()
- let preparedElem = undefined
+ let preparedElem: any = undefined
let currentTime = 0
- let renderer
+ let renderer: any
try {
if (VIDEOSTREAM_EXTS.indexOf(extension) >= 0) {
function useVideostream () {
prepareElem()
- preparedElem.addEventListener('error', function onError (err) {
+ preparedElem.addEventListener('error', function onError (err: Error) {
preparedElem.removeEventListener('error', onError)
return callback(err)
const codecs = getCodec(file.name, useVP9)
prepareElem()
- preparedElem.addEventListener('error', function onError (err) {
+ preparedElem.addEventListener('error', function onError (err: Error) {
preparedElem.removeEventListener('error', onError)
// Try with vp9 before returning an error
}
}
-function validateFile (file) {
+function validateFile (file: any) {
if (file == null) {
throw new Error('file cannot be null or undefined')
}
subDivHttp.appendChild(subDivHttpText)
div.appendChild(subDivHttp)
- this.player_.peertube().on('torrentInfo', (event, data) => {
+ this.player_.peertube().on('torrentInfo', (event: any, data: any) => {
// We are in HTTP fallback
if (!data) {
subDivHttp.className = 'vjs-peertube-displayed'
<noscript>
<p>You are blocking Javascript, and we totally get that. However this endpoint uses Angular, so the front end is in full JavaScript and won't work without it.
</br></br>
- There will be other non JS-based clients to access PeerTube, but for now none is available as this is still alpha software. Be sure we will update this page with a list once alternative clients are developed. You can certainly develop you own in the meantime as our code is open source and libre software under GNU AGPLv3.0.
+ There will be other non JS-based clients to access PeerTube, but for now none is available. Be sure we will update this page with a list once alternative clients are developed. You can certainly develop you own in the meantime as our code is open source and libre software under GNU AGPLv3.0.
</br></br>
There might be numerous reasons you refuse to use JavaScript. If it has just to do with security (or lack thereof) of JavaScript-based webapps, then depending on your threat menace you might want to go through the code running on the node you are trying to access, and look for security audits.
</p>
<context context-type="linenumber">18</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">app/login/login.component.html</context>
- <context context-type="linenumber">72</context>
+ <context context-type="sourcefile">app/shared/moderation/user-ban-modal.component.html</context>
+ <context context-type="linenumber">22</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">app/+admin/users/user-list/user-ban-modal.component.html</context>
- <context context-type="linenumber">22</context>
+ <context context-type="sourcefile">app/login/login.component.html</context>
+ <context context-type="linenumber">72</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.html</context>
<context context-type="sourcefile">app/shared/forms/reactive-file.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
+ </trans-unit><trans-unit id="4b3963c6d0863118fe9e9e33447d12be3c2db081" datatype="html">
+ <source>Unlisted</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/video-miniature.component.html</context>
+ <context context-type="linenumber">12</context>
+ </context-group>
+ </trans-unit><trans-unit id="ddd8a4986d2d1717a274a5a0fbed04988a819e69" datatype="html">
+ <source>Private</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/video-miniature.component.html</context>
+ <context context-type="linenumber">13</context>
+ </context-group>
</trans-unit><trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<context-group purpose="location">
<context context-type="sourcefile">app/shared/video/video-miniature.component.html</context>
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit><trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
<source>Delete</source>
<context context-type="sourcefile">app/shared/buttons/edit-button.component.html</context>
<context context-type="linenumber">5</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/buttons/edit-button.component.html</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
</trans-unit><trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d" datatype="html">
<source>Truncated preview</source>
<context-group purpose="location">
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit><trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85" datatype="html">
<source>
<context context-type="sourcefile">app/shared/instance/instance-features-table.component.html</context>
<context context-type="linenumber">14</context>
</context-group>
+ </trans-unit><trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0" datatype="html">
+ <source>Ban</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/moderation/user-ban-modal.component.html</context>
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit><trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125" datatype="html">
+ <source>Reason...</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/moderation/user-ban-modal.component.html</context>
+ <context context-type="linenumber">10</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/videos/+video-watch/modal/video-report.component.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/videos/+video-watch/modal/video-blacklist.component.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit><trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251" datatype="html">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/moderation/user-ban-modal.component.html</context>
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit><trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020" datatype="html">
+ <source>Ban this user</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/moderation/user-ban-modal.component.html</context>
+ <context context-type="linenumber">25</context>
+ </context-group>
</trans-unit><trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea" datatype="html">
<source>
Login
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">41</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html</context>
<context context-type="sourcefile">app/signup/signup.component.html</context>
<context context-type="linenumber">16</context>
</context-group>
- </trans-unit><trans-unit id="2ac776627e18565d7ae85cd7f4cd033bc5d0c88b" datatype="html">
- <source>I have read and agree to the <a href='/about/instance#terms-section' target='_blank'rel='noopener noreferrer'>Terms</a> of this instance</source>
+ </trans-unit><trans-unit id="7fe213724c4c0a4112c40c673884acb98a0a3b92" datatype="html">
+ <source>I am at least 16 years old and agree to the <a href='/about/instance#terms-section' target='_blank'rel='noopener noreferrer'>Terms</a> of this instance</source>
<context-group purpose="location">
<context context-type="sourcefile">app/signup/signup.component.html</context>
<context context-type="linenumber">54</context>
<context context-type="sourcefile">app/search/search.component.html</context>
<context context-type="linenumber">6</context>
</context-group>
- </trans-unit><trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6" datatype="html">
- <source>Filters</source>
+ </trans-unit><trans-unit id="7c603b9ed878097782e2b8908f662e2344b46061" datatype="html">
+ <source>
+ Filters
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ numberOfFilters() }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
<context-group purpose="location">
<context context-type="sourcefile">app/search/search.component.html</context>
<context context-type="linenumber">16</context>
</source>
<context-group purpose="location">
<context context-type="sourcefile">app/search/search.component.html</context>
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit><trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<context-group purpose="location">
<context context-type="sourcefile">app/search/search.component.html</context>
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit><trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<context-group purpose="location">
<context context-type="sourcefile">app/search/search.component.html</context>
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit><trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96" datatype="html">
<source>Change the language</source>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+accounts/accounts.component.html</context>
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">29</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+video-channels/video-channels.component.html</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+accounts/accounts.component.html</context>
- <context context-type="linenumber">21</context>
+ <context context-type="linenumber">33</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+video-channels/video-channels.component.html</context>
<context context-type="sourcefile">app/search/search-filters.component.html</context>
<context context-type="linenumber">94</context>
</context-group>
+ </trans-unit><trans-unit id="41ed53a3f1d4dfc57011d0aba13b8b074e8b41b6" datatype="html">
+ <source>Display unlisted and private videos</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
</trans-unit><trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e" datatype="html">
<source>No results.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/videos/video-list/video-overview.component.html</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+my-account/my-account-videos/my-account-videos.component.html</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/shared/video/abstract-video-list.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit><trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6" datatype="html">
<source>
<context context-type="sourcefile">app/+admin/config/edit-custom-config/edit-custom-config.component.html</context>
<context context-type="linenumber">8</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html</context>
+ <context context-type="linenumber">8</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html</context>
+ <context context-type="linenumber">12</context>
+ </context-group>
</trans-unit><trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390" datatype="html">
<source>PeerTube</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+about/about-peertube/about-peertube.component.html</context>
<context context-type="linenumber">83</context>
</context-group>
- </trans-unit><trans-unit id="d8f1c6b816aaf1ebcb936a705dbe88bcef28eaa8" datatype="html">
+ </trans-unit><trans-unit id="b1372cb61ca791a0f7f95bf31c86c97df142adc4" datatype="html">
<source>
- PeerTube is only in beta, and want to deliver the best countermeasures possible by the time the stable is released.
+ PeerTube is in its early stages, and want to deliver the best countermeasures possible by the time the stable is released.
In the meantime, we want to test different ideas related to this issue:
</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+about/about-peertube/about-peertube.component.html</context>
<context context-type="linenumber">95</context>
</context-group>
+ </trans-unit><trans-unit id="bd2edf99dd6562385ccec19a7ab2d1898e626605" datatype="html">
+ <source>Banned</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+accounts/accounts.component.html</context>
+ <context context-type="linenumber">12</context>
+ </context-group>
+ </trans-unit><trans-unit id="62a557fcfdbd25a31d1a0332294f94a466fee809" datatype="html">
+ <source>Muted</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+accounts/accounts.component.html</context>
+ <context context-type="linenumber">13</context>
+ </context-group>
+ </trans-unit><trans-unit id="48bbf6dbdb22e0ef4bd257eae2ab356f2ea66c89" datatype="html">
+ <source>Muted by your instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+accounts/accounts.component.html</context>
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit><trans-unit id="44bd08a7ec1e407356620967d65d8fe2d8639d0a" datatype="html">
+ <source>Instance muted</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+accounts/accounts.component.html</context>
+ <context context-type="linenumber">15</context>
+ </context-group>
+ </trans-unit><trans-unit id="1a6443bb7ed01046dd83cf78806f795f1204ffa1" datatype="html">
+ <source>Instance muted by your instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+accounts/accounts.component.html</context>
+ <context context-type="linenumber">16</context>
+ </context-group>
</trans-unit><trans-unit id="a835d8a12e14eb96919245a0bbafd8069c146578" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+accounts/accounts.component.html</context>
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit><trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8" datatype="html">
<source>Video channels</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+accounts/accounts.component.html</context>
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit><trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a" datatype="html">
<source>Stats</source>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">9</context>
+ <context context-type="linenumber">18</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html</context>
<context context-type="sourcefile">app/videos/+video-edit/video-add-components/video-import-torrent.component.html</context>
<context context-type="linenumber">42</context>
</context-group>
- </trans-unit><trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce" datatype="html">
- <source>Video import with HTTP enabled</source>
+ </trans-unit><trans-unit id="29aa67f13fd34a2421ff9d7de7d5142790676b9e" datatype="html">
+ <source>Video import with HTTP URL (i.e. YouTube) enabled</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/config/edit-custom-config/edit-custom-config.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="sourcefile">app/+admin/follows/following-add/following-add.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
+ </trans-unit><trans-unit id="25925fc5826bc5b3eeae7c45b08b0ed74b9e2954" datatype="html">
+ <source>Filter...</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
+ <context context-type="linenumber">8</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
+ <context context-type="linenumber">9</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
+ <context context-type="linenumber">27</context>
+ </context-group>
</trans-unit><trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">
<source>ID</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">16</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">18</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/jobs/jobs-list/jobs-list.component.html</context>
<source>Score</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit><trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">
<source>Host</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">10</context>
+ <context context-type="linenumber">19</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit><trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">
<source>State</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">20</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
- <context context-type="linenumber">9</context>
+ <context context-type="linenumber">20</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/jobs/jobs-list/jobs-list.component.html</context>
<source>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
- <context context-type="linenumber">10</context>
+ <context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/jobs/jobs-list/jobs-list.component.html</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
- <context context-type="linenumber">21</context>
+ <context context-type="linenumber">44</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/moderation/video-abuse-list/video-abuse-list.component.html</context>
<source>Accepted</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">32</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
- <context context-type="linenumber">21</context>
+ <context context-type="linenumber">32</context>
</context-group>
</trans-unit><trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506" datatype="html">
<source>Pending</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/followers-list/followers-list.component.html</context>
- <context context-type="linenumber">24</context>
+ <context context-type="linenumber">33</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit><trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8" datatype="html">
<source>Redundancy allowed</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/follows/following-list/following-list.component.html</context>
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">22</context>
</context-group>
</trans-unit><trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479" datatype="html">
<source>Manage follows</source>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit><trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345" datatype="html">
<source>
<context context-type="sourcefile">app/+admin/users/user-edit/user-edit.component.html</context>
<context context-type="linenumber">72</context>
</context-group>
- </trans-unit><trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33" datatype="html">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <context-group purpose="location">
- <context context-type="sourcefile">app/+admin/users/user-list/user-ban-modal.component.html</context>
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit><trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125" datatype="html">
- <source>Reason...</source>
- <context-group purpose="location">
- <context context-type="sourcefile">app/+admin/users/user-list/user-ban-modal.component.html</context>
- <context context-type="linenumber">10</context>
- </context-group>
- <context-group purpose="location">
- <context context-type="sourcefile">app/videos/+video-watch/modal/video-report.component.html</context>
- <context context-type="linenumber">11</context>
- </context-group>
- <context-group purpose="location">
- <context context-type="sourcefile">app/videos/+video-watch/modal/video-blacklist.component.html</context>
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit><trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251" datatype="html">
- <source>
- A banned user will no longer be able to login.
- </source>
- <context-group purpose="location">
- <context context-type="sourcefile">app/+admin/users/user-list/user-ban-modal.component.html</context>
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit><trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020" datatype="html">
- <source>Ban this user</source>
- <context-group purpose="location">
- <context context-type="sourcefile">app/+admin/users/user-list/user-ban-modal.component.html</context>
- <context context-type="linenumber">25</context>
- </context-group>
</trans-unit><trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f" datatype="html">
<source>Users list</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
+ </trans-unit><trans-unit id="ea762ca1d74c96d8568ac68482778f52ca531cc4" datatype="html">
+ <source>Batch actions</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
+ <context context-type="linenumber">19</context>
+ </context-group>
</trans-unit><trans-unit id="08ea8692dc2a7050026df26fc39b22960bde9de5" datatype="html">
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
- </trans-unit><trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c" datatype="html">
- <source>Actions</source>
+ </trans-unit><trans-unit id="adba7c8b43e42581460fbe5d08b5cb5ab60eba4b" datatype="html">
+ <source>(banned)</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
- <context context-type="linenumber">43</context>
+ <context context-type="linenumber">65</context>
</context-group>
+ </trans-unit><trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c" datatype="html">
+ <source>Go to the account page</source>
<context-group purpose="location">
- <context context-type="sourcefile">app/+admin/moderation/video-abuse-list/video-abuse-list.component.html</context>
- <context context-type="linenumber">44</context>
+ <context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
+ <context context-type="linenumber">63</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html</context>
- <context context-type="linenumber">33</context>
+ <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.html</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit><trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee" datatype="html">
<source>Ban reason:</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/users/user-list/user-list.component.html</context>
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit><trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f" datatype="html">
<source>Moderation comment</source>
<context context-type="sourcefile">app/+my-account/my-account-ownership/my-account-ownership.component.html</context>
<context context-type="linenumber">33</context>
</context-group>
+ </trans-unit><trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c" datatype="html">
+ <source>Actions</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/video-abuse-list/video-abuse-list.component.html</context>
+ <context context-type="linenumber">44</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html</context>
+ <context context-type="linenumber">33</context>
+ </context-group>
</trans-unit><trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2" datatype="html">
<source>Reason:</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+admin/moderation/moderation.component.html</context>
<context context-type="linenumber">7</context>
</context-group>
+ </trans-unit><trans-unit id="b1ff109b26ae8f08650415454b9098c43eba2e2c" datatype="html">
+ <source>Muted accounts</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/moderation.component.html</context>
+ <context context-type="linenumber">9</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account.component.html</context>
+ <context context-type="linenumber">29</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-blocklist.component.html</context>
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit><trans-unit id="bd0611346af048015e0a1275091ef68ce98832d2" datatype="html">
+ <source>Muted servers</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/moderation.component.html</context>
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit><trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
+ <source>Account</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.html</context>
+ <context context-type="linenumber">8</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-blocklist.component.html</context>
+ <context context-type="linenumber">12</context>
+ </context-group>
+ </trans-unit><trans-unit id="079e99cce11c87b142e80fdd14dae98a61012fc4" datatype="html">
+ <source>Muted at <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.html</context>
+ <context context-type="linenumber">9</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html</context>
+ <context context-type="linenumber">9</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-blocklist.component.html</context>
+ <context context-type="linenumber">13</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html</context>
+ <context context-type="linenumber">13</context>
+ </context-group>
+ </trans-unit><trans-unit id="1f689fada9748a830117f5b429a88ef8629082a8" datatype="html">
+ <source>Unmute</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.html</context>
+ <context context-type="linenumber">18</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html</context>
+ <context context-type="linenumber">19</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-blocklist.component.html</context>
+ <context context-type="linenumber">22</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html</context>
+ <context context-type="linenumber">23</context>
+ </context-group>
</trans-unit><trans-unit id="efad4be364b8fb5c73cbfcc7acccd542f9d84ad6" datatype="html">
<source>My settings</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+my-account/my-account.component.html</context>
<context context-type="linenumber">18</context>
</context-group>
+ </trans-unit><trans-unit id="46aa32e581922d6d2c3d7bc4c87209ad5808b029" datatype="html">
+ <source>Misc</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account.component.html</context>
+ <context context-type="linenumber">24</context>
+ </context-group>
+ </trans-unit><trans-unit id="2bc7533f8c8e7d183950ba1094a0acd9efc22e5e" datatype="html">
+ <source>Muted instances</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account.component.html</context>
+ <context context-type="linenumber">31</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html</context>
+ <context context-type="linenumber">2</context>
+ </context-group>
</trans-unit><trans-unit id="73022f1676784c4f9b8cdbb322e52b02ccc800b7" datatype="html">
<source>Ownership changes</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+my-account/my-account.component.html</context>
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit><trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48" datatype="html">
<source>Video quota:</source>
<context context-type="sourcefile">app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html</context>
<context context-type="linenumber">3</context>
</context-group>
+ </trans-unit><trans-unit id="d044c51156e295824813a866dba9545bdb59466b" datatype="html">
+ <source>Use WebTorrent to exchange parts of the video with others</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html</context>
+ <context context-type="linenumber">20</context>
+ </context-group>
</trans-unit><trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2" datatype="html">
<source>Automatically plays video</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html</context>
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit><trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">
<source>Save</source>
<context-group purpose="location">
<context context-type="sourcefile">app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html</context>
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit><trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba" datatype="html">
<source>Update my profile</source>
<context context-type="sourcefile">app/videos/+video-watch/video-watch.component.html</context>
<context context-type="linenumber">134</context>
</context-group>
- </trans-unit><trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c" datatype="html">
- <source>Go to the account page</source>
- <context-group purpose="location">
- <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.html</context>
- <context context-type="linenumber">133</context>
- </context-group>
</trans-unit><trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
<source>Show more</source>
<context-group purpose="location">
<context context-type="sourcefile">app/videos/+video-watch/comment/video-comments.component.html</context>
<context context-type="linenumber">3</context>
</context-group>
- </trans-unit><trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5" datatype="html">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <context-group purpose="location">
- <context context-type="sourcefile">app/videos/+video-watch/comment/video-comments.component.html</context>
- <context context-type="linenumber">8</context>
- </context-group>
</trans-unit><trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4" datatype="html">
<source>No comments.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/videos/+video-watch/comment/video-comments.component.html</context>
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit><trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e" datatype="html">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<context-group purpose="location">
<context context-type="sourcefile">app/videos/+video-watch/comment/video-comments.component.html</context>
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit><trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828" datatype="html">
<source>
</source>
<context-group purpose="location">
<context context-type="sourcefile">app/videos/+video-watch/comment/video-comments.component.html</context>
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit><trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e" datatype="html">
<source>Add comment...</source>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6" datatype="html">
- <source>240p</source>
- <context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="c8cfad7e7a16c57c42535331b65cb7de40d8402e" datatype="html">
- <source>360p</source>
- <context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="48f0af5a0d0bea4e84b27eaf41b19c85a531c2a5" datatype="html">
- <source>480p</source>
- <context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6f06138daf6363746ff26bfc0cb2491c09cdfdf2" datatype="html">
- <source>720p</source>
- <context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="65c94f9beb6fe957808c40060da280cc7ace7ab9" datatype="html">
- <source>1080p</source>
+ <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">
+ <source>Error</source>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
+ <context context-type="sourcefile">src/app/+accounts/accounts.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
- </trans-unit>
- <trans-unit id="421a937491f19774d17eefa1d24816dae1a9f111" datatype="html">
- <source>Auto (via ffmpeg)</source>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
+ <context context-type="sourcefile">src/app/+accounts/accounts.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
- </trans-unit>
- <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">
- <source>Error</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
<context context-type="linenumber">1</context>
<context context-type="sourcefile">src/app/+admin/jobs/jobs-list/jobs-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.ts</context>
<context context-type="linenumber">1</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/user-list/user-ban-modal.component.ts</context>
+ <context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
+ <context context-type="sourcefile">src/app/+my-account/my-account-blocklist/my-account-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/forms/reactive-file.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-ban-modal.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/user-subscription/subscribe-button.component.ts</context>
<context context-type="linenumber">1</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed" datatype="html">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
+ <trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6" datatype="html">
+ <source>240p</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e" datatype="html">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
+ <trans-unit id="c8cfad7e7a16c57c42535331b65cb7de40d8402e" datatype="html">
+ <source>360p</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="48f0af5a0d0bea4e84b27eaf41b19c85a531c2a5" datatype="html">
+ <source>480p</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0" datatype="html">
- <source>Are you sure you want to update the configuration?</source>
+ <trans-unit id="6f06138daf6363746ff26bfc0cb2491c09cdfdf2" datatype="html">
+ <source>720p</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119" datatype="html">
- <source>Please type</source>
+ <trans-unit id="65c94f9beb6fe957808c40060da280cc7ace7ab9" datatype="html">
+ <source>1080p</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d" datatype="html">
- <source>to confirm.</source>
+ <trans-unit id="421a937491f19774d17eefa1d24816dae1a9f111" datatype="html">
+ <source>Auto (via ffmpeg)</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts</context>
<context context-type="linenumber">1</context>
<context context-type="sourcefile">src/app/+admin/follows/shared/redundancy-checkbox.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.ts</context>
<context context-type="linenumber">1</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/user-list/user-ban-modal.component.ts</context>
+ <context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
+ <context context-type="sourcefile">src/app/+my-account/my-account-blocklist/my-account-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channel-create.component.ts</context>
+ <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channel-create.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-videos/my-account-videos.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-videos/my-account-videos.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/login/login.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/reset-password/reset-password.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-ban-modal.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-videos/my-account-videos.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-videos/my-account-videos.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/login/login.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/reset-password/reset-password.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/shared/user.service.ts</context>
+ <context context-type="sourcefile">src/app/+my-account/my-account-settings/my-account-settings.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+my-account/my-account-settings/my-account-settings.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/users/user.service.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="53cc0f4a4566c4139c65f93b5dce2fe8302e78da" datatype="html">
+ <source>Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by your instance.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="468b52e3c04fb9a3d8c8213555dfcad0cbcae330" datatype="html">
+ <source>Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by your instance.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="800cd3cdf47751b576587259ba3a1bc0a7f435b6" datatype="html">
<source>Comment updated.</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="586bee8c27a761611eb05661524cc7ca944b5978" datatype="html">
+ <source>Delete this report</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="cf3b28ba29a907b334ab0e6dccd080a60ba23321" datatype="html">
<source>Update moderation comment</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="01a909e58239b5dde966ef97a79c656d2c452e03" datatype="html">
- <source>Do you really want to delete this abuse?</source>
+ <trans-unit id="73b70e37cddaa6494d8a666b6cba90dc80595599" datatype="html">
+ <source>Do you really want to delete this abuse report?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts</context>
<context context-type="linenumber">1</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf" datatype="html">
- <source>Moderator</source>
- <context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/shared/user.service.ts</context>
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="364463fab6c5714118d6449561a0f8de1cc10bfa" datatype="html">
<source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> created.</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd" datatype="html">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8" datatype="html">
+ <source>Unban</source>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/user-list/user-ban-modal.component.ts</context>
+ <context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0" datatype="html">
- <source>Ban</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
- </trans-unit>
- <trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8" datatype="html">
- <source>Unban</source>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
<context-group purpose="location">
- <context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734" datatype="html">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <trans-unit id="98119091712a8ca72905e3b4c1cf60649af7565e" datatype="html">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{num}}"/> users?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd" datatype="html">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <trans-unit id="6121be086a51c4c73bbdd8aebdddd9744c8f1ffd" datatype="html">
+ <source><x id="INTERPOLATION" equiv-text="{{num}}"/> users unbanned.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
<context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
</trans-unit>
- <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603" datatype="html">
- <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <trans-unit id="9de914fe915cc730efc57e81c987188a24d3ac51" datatype="html">
+ <source>If you remove these users, you will not be able to create others with the same username!</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a" datatype="html">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <trans-unit id="b708d332e3f89b24745e749fa530210f0bdea329" datatype="html">
+ <source><x id="INTERPOLATION" equiv-text="{{num}}"/> users deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/+admin/users/user-list/user-list.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="2667ca38672421a0a7a22343d2a0060ee41246de" datatype="html">
+ <source>Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-blocklist/my-account-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c6af80b42938d4a49e6f6c4f60ce26228916994c" datatype="html">
+ <source>Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e" datatype="html">
<source>Ownership accepted</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="f359f6adf6cccca7770019f947ed594169ee7d47" datatype="html">
+ <source>This name already exists on this instance.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+my-account/my-account-video-channels/my-account-video-channel-create.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">
<source>Create</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="ff6becacbce7fc0943b0af0df4dd67e5e11bf598" datatype="html">
+ <source>Subscribe to the account</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/+video-channels/video-channels.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/videos/+video-watch/video-watch.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1c95cc372311830f936b39f73c5d6d20c0b16013" datatype="html">
+ <source>Focus the search bar</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b19ee83cbd2b735fd081b9aa483a890578019099" datatype="html">
+ <source>Toggle the left menu</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b54759e30f7c1983940cdacb8eb03f102a869084" datatype="html">
+ <source>Go to the videos overview page</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1e919c88a3f889d6659288e69d3e178da0ea7ab0" datatype="html">
+ <source>Go to the trending videos page</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="249618dcdd7fbdc863c0714e2eb9e8940bc9c37d" datatype="html">
+ <source>Go to the recently added videos page</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7e194daef3a3509128c4300d4c7c292c49ebf3f5" datatype="html">
+ <source>Go to the local videos page</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f1fb6204f39a7338e5110b2f113643c9288496ba" datatype="html">
+ <source>Go to the videos upload page</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="0ed7b40c11da9d4565af9c041df20c15bc6be97e" datatype="html">
+ <source>Toggle Dark theme</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/app.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="badd4b24618ccc8a34620acb9053fc654b9612b2" datatype="html">
+ <source>Go to my subscriptions</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/core/auth/auth.service.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b7184b5a236618e8edd747529869c392ab6dace1" datatype="html">
+ <source>Go to my videos</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/core/auth/auth.service.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="acf985bd42886b9b3030b5f68f0e8417c39b40a7" datatype="html">
+ <source>Go to my imports</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/core/auth/auth.service.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="cfe3c51f0ae9385dc2ce6df740d87e5514aa9390" datatype="html">
+ <source>Go to my channels</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/core/auth/auth.service.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="edeaa933b09690523e46977e11064e9c655d77d7" datatype="html">
<source>Cannot retrieve OAuth Client credentials: <x id="INTERPOLATION" equiv-text="{{errorText}}"/>.
</source>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="916a6e4fd83ece1dc54c6135eb3b8cd064b4bac3" datatype="html">
- <source>Description cannot be more than 250 characters long.</source>
+ <trans-unit id="a4179e366d4aa335f1ddd0a13e9109c71a9338d0" datatype="html">
+ <source>Description cannot be more than 1000 characters long.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/forms/form-validators/user-validators.service.ts</context>
<context context-type="linenumber">1</context>
</context-group>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/forms/form-validators/video-channel-validators.service.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
</trans-unit>
<trans-unit id="4a3ebc6ddb6b6677aed7b04eb503f9ddd0cfe561" datatype="html">
<source>You must to agree with the instance terms in order to registering on it.</source>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="c8465c3773699dd075e0147e264d2e232f605803" datatype="html">
+ <source>You can only transfer ownership to a local account</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/forms/form-validators/video-change-ownership-validators.service.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="541087322c34e8b26954fd67ff4fc80d1a6c1b33" datatype="html">
<source>Name is required.</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="fac936be125163a8494f3d7e7f21d65c7e4f1ff6" datatype="html">
- <source>Description cannot be more than 500 characters long.</source>
- <context-group purpose="location">
- <context context-type="sourcefile">src/app/shared/forms/form-validators/video-channel-validators.service.ts</context>
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="e7182e21e9566cc81c83f92727461322f71fd69b" datatype="html">
<source>Support text must be at least 3 characters long.</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3fe80c71378e127dda2dda9dbcd66b059d362813" datatype="html">
- <source>Support text cannot be more than 500 characters long.</source>
+ <trans-unit id="15ec53d9ee65cb930c5f5d10ae2e8dd3fd44fc85" datatype="html">
+ <source>Support text cannot be more than 1000 characters long.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/forms/form-validators/video-channel-validators.service.ts</context>
<context context-type="linenumber">1</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="e61f1c05121fa5effa6ccddf5be6dcf1c822ff4b" datatype="html">
- <source>Video support cannot be more than 500 characters long.</source>
+ <trans-unit id="f17de746af56840511cae11559539b6d8b6955ad" datatype="html">
+ <source>Video support cannot be more than 1000 characters long.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/forms/form-validators/video-validators.service.ts</context>
<context context-type="linenumber">1</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="f9b4f2d8146c789cd40314f640ec4e88efbaf681" datatype="html">
+ <source><x id="INTERPOLATION" equiv-text="{{num}}"/> users banned.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-ban-modal.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd" datatype="html">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-ban-modal.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734" datatype="html">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd" datatype="html">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603" datatype="html">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a" datatype="html">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="33a6319f765848a22a155cef9f1d8e645202e249" datatype="html">
+ <source>Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="086eda792aeb1b0d131d633b50fdd1792f5f24c6" datatype="html">
+ <source>Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb72d6d1219e89d182e9fd09d853d83baf8d6499" datatype="html">
+ <source>Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted by the instance.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8686834bc4afe42c1991c6c18f0bce174a0e17a6" datatype="html">
+ <source>Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by the instance.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35d3509161861a610b0895bf084c781e56ba2830" datatype="html">
+ <source>Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted by the instance.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="978aeec5613fa97e8a5336d3599cebb23ee5a90f" datatype="html">
+ <source>Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by the instance.</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4a09bf8724e7659fbb5ec33647529cdef7614bdc" datatype="html">
+ <source>Mute this account</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d666ca3261aef72b2ddcd649d7b32af488f59952" datatype="html">
+ <source>Unmute this account</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e17218983b1de76e5a920b04e1c2ecbdb6e3e06d" datatype="html">
+ <source>Mute the instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a23514d8aca2f8633622dda0e86b399dc576a2b9" datatype="html">
+ <source>Unmute the instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4e4107055b44eee44b6954c41120de1cb4d46432" datatype="html">
+ <source>Mute this account by your instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a51c59cb5ecb7004a6a8ddd2855b5c52266ad957" datatype="html">
+ <source>Unmute this account by your instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="588073e831cec240d6bb0db0b133e45dab69f178" datatype="html">
+ <source>Mute the instance by your instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="676221cdabd4805901343976988c028dbf71b20a" datatype="html">
+ <source>Unmute the instance by your instance</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/moderation/user-moderation-dropdown.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac" datatype="html">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf" datatype="html">
+ <source>Moderator</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/shared/users/user.service.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb" datatype="html">
<source>Only I can see this video</source>
<context-group purpose="location">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="0e65067fdcc9d8725a41896cb1e229d1415a45f6" datatype="html">
+ <source>Like the video</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/videos/+video-watch/video-watch.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1a999e06e1aca0a70cd7d0e3e5c2c63d0e1885c8" datatype="html">
+ <source>Dislike the video</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/videos/+video-watch/video-watch.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="f1abd89c9280323209e939fa9c30f6e5cda20c95" datatype="html">
<source>Do you really want to delete this video?</source>
<context-group purpose="location">
<source>Entertainment</source>
<target>undefined</target>
</trans-unit>
- <trans-unit id="News">
- <source>News</source>
+ <trans-unit id="News & Politics">
+ <source>News & Politics</source>
<target>undefined</target>
</trans-unit>
<trans-unit id="How To">
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> مشاهدة</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>تحرير</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>حصة الفيديو</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>حظر</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>السبب…</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>عوامل التصفية</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
</source>
<target>لم يتم العثور على أية نتيجة</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> مشترك</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> مشاهدة</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>لا نتائج</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
<target>مثيل الخادوم</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> مشترك</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>قنوات الفيديو</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>إستيراد الملف باستخدام HTTP مفعل</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
<source>Administrator</source>
<target>المدير</target>
<source>Host</source>
<target>المضيف</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>الدور</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="6ded52553dd8720fd3698b8fbc3a6d037c07b496">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>السبب…</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>قائمة المستخدِمون</target>
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>الإجراءات</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>الإنتقال إلى صفحة الحساب</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>الإجراءات</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>السبب:</target>
<source>Automatically plays video</source>
<target>التشغيل التلقائي للفيديو</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>حفظ</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">123</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>الإنتقال إلى صفحة الحساب</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>عرض المزيد</target>
<source>No comments.</source>
<target>ليس هناك تعليقات.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
</source>
<target>تم تعطيل التعليقات.</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>حظر</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>ألغ الحظر</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>هل تريد إلغاء الحظر عن <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>لا يمكنك حذف المسخدم الجذر</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>هل تريد إلغاء الحظر عن <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="1cadbf82f0e91611321c5abd282f0c23d8ccbfa1">
<source>Subscribed</source>
<target>مشترك</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualitzacions</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Editar</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>Quota de vídeo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Motiu...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtres</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Cap resultat
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Sense resultats.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
<target>Instància</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscriptors</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Canals de vídeo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<source>Score</source>
<target>Puntuació</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Amfitrió</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Rol</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">65</context>
</context-group>
</trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Motiu...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Llista d'usuaris</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Nom d'usuari <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Anar a la pàgina del compte</target>
+ <context-group name="null">
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
<source>Automatically plays video</source>
<target>Reprodueix vídeo automàticament</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Desa</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">123</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Anar a la pàgina del compte</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Veure més</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Pots fer comentaris a la pàgina de la teva instància on aquest vídeo està federat amb el teu compte de PeerTube o mitjançant qualsevol instància del fedivers que sigui compatible amb ActivityPub. Per exemple, amb Mastodon o Pleroma, pots escriure en el quadre de cerca <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> i torna a trobar el vídeo. S''estan treballant en poder fer comentaris directes a <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Cap comentari.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Veure totes les <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> respostes</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Els comentaris estan desactivats.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Estableix personalitzacions <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Això podria provocar problemes de seguretat o errors si no ho entens.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Estàs segur que vols actualitzar la configuració?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Si us plau escriu</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>per confirmar.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Èxit</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Usuari <x id="INTERPOLATION" equiv-text="{{username}}"/> eliminat.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
<source>Password updated.</source>
<target>Contrasenya actualitzada.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Usuari <x id="INTERPOLATION" equiv-text="{{username}}"/> eliminat.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>La sol·licitud és massa gran per al servidor. Contacta amb el teu administrador si vols augmentar la mida del límit.</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> zhlédnutí</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Upravit</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>Limit na videa</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Důvod...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<source>No results.</source>
<target>Žádné výsledky.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
<target>Instance</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> odběratelů</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Video kanály</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<source>Score</source>
<target>Skóre</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Role</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">65</context>
</context-group>
</trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Důvod...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Seznam uživatelů</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Uživatelské jméno <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Přejít na stránku kanálu</target>
+ <context-group name="null">
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
<source>Automatically plays video</source>
<target>Automaticky přehrávat videa</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Uložit</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">123</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Přejít na stránku kanálu</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Zobrazit více</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Můžete komentovat video na stránkách instance, kde je vaše video federováno s PeerTube účtem nebo pomocí kterékoliv instance obsahující ActivityPub federaci. V instancích s Mastodon nebo Pleroma napište do vyhledávacího pole <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> a najděte video. Na přímém komentování se pracuje: <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Žádné komentáře</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Zobrazit všech <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> odpovědí</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Komentáře k tomuto video nejsou povoleny.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Nastaveno vlastní <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Tato akce může vést k bezpečnostním problémům nebo chybám, pokud jí nerozumíte.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Opravdu chcete aktualizovat nastavení?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Prosím napište</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>pro potvrzení.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Úspěšně</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Uživatel <x id="INTERPOLATION" equiv-text="{{username}}"/> odstraněn.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
<source>Password updated.</source>
<target>Heslo aktualizováno.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Uživatel <x id="INTERPOLATION" equiv-text="{{username}}"/> odstraněn.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>Požadavek je příliš velký. Prosím, kontaktujte administrátor pro navýšení limitu.</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> Aufrufe</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Bearbeiten</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="450025269732888db1f04cfe6033843110ab65ee">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Subscribe
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Abonnieren
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">5</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c374edf3b9228d3df6d761bdc8a289e7df0096e8">
+ <source>
+ Unsubscribe
+ </source>
+ <target>
+ Abo beenden
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">18</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
+ <source>Using an ActivityPub account</source>
+ <target>Mit einem ActivityPub-Konto</target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
+ <source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
+ <target>Mit einem Konto auf <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/> abonnieren</target>
+ <context-group name="null">
+ <context context-type="linenumber">39</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e7adf422424a61b71465d183f9d44bf956482ef0">
+ <source>Subscribe with your local account</source>
+ <target>Mit deinem lokalen Konto abonnieren</target>
+ <context-group name="null">
+ <context context-type="linenumber">40</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
+ <source>Subscribe with a Mastodon account:</source>
+ <target>Mit einem Mastodon-Konto abonnieren.</target>
+ <context-group name="null">
+ <context context-type="linenumber">43</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
+ <source>Using a syndication feed</source>
+ <target>Mit einem Feed</target>
+ <context-group name="null">
+ <context context-type="linenumber">48</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d5e5bc7d213694fc0414a76f0ff3085bae44268a">
+ <source>Subscribe via RSS</source>
+ <target>Über RSS abonnieren</target>
+ <context-group name="null">
+ <context context-type="linenumber">49</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4913054c95f5ba14c351ab1b787f7abac97bfdd3">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>Remote subscribe<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Remote interact<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>Entfernt abonnieren<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Entfernt interagieren<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">10</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="319933e1af77ca2e35b75a5e9270a3c90e83dd4b">
+ <source>You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there.</source>
+ <target>Du kannst diesen Kanal über jede Fediverse-Instanz abonnieren, die ActivityPub unterstützt. Bei Mastodon oder Pleroma kannst du z. B. die URL des Kanals in das Suchfeld eingeben und dann das Abo starten.</target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="2767d5461b6c622ccdeb868df8becf26bc16b99a">
+ <source>You can interact with this via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the current URL in the search box and interact with it there.</source>
+ <target>Du kannst hiermit über jede Fediverse-Instanz interagieren, die ActivityPub unterstützt. Bei Mastodon oder Pleroma kannst du z. B. die URL des Kanals in das Suchfeld eingeben und dann damit interagieren.</target>
+ <context-group name="null">
+ <context context-type="linenumber">22</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
<source>Video quota</source>
<target>Videokontingent</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>Sperren</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Grund...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ Ein gesperrter Nutzer wird sich nicht mehr anmelden können.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Diesen Nutzer sperren.</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
</trans-unit>
<trans-unit id="51ef29329faccb28d94369897068897d1b3d0478">
<source>Username or email address</source>
- <target>Benutzername und E-Mail-Adresse</target>
+ <target>Benutzername oder E-Mail-Adresse</target>
<context-group name="null">
<context context-type="linenumber">15</context>
</context-group>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filter</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Keine Ergebnisse gefunden.
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> Abonnenten</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> Aufrufe</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<context context-type="linenumber">25</context>
</context-group>
</trans-unit>
+ <trans-unit id="4752e5e33da1c3396d3248eb8fef59bca5d00cb3">
+ <source>Show keyboard shortcuts</source>
+ <target>Zeige Tastatur-Kürzel</target>
+ <context-group name="null">
+ <context context-type="linenumber">91</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="cf75021ac8cb9efd4f95e8880cf52c9acd265768">
<source>Toggle dark interface</source>
<target>Dunkle Oberfläche umschalten</target>
</trans-unit>
<trans-unit id="dc67060f94f0f2b58549f54a5c07925dffd20238">
<source>Display sensitive content</source>
- <target>Anstößige Inhalte anzeigen</target>
+ <target>Anstößige Inhalte zeigen</target>
<context-group name="null">
<context context-type="linenumber">33</context>
</context-group>
<source>No results.</source>
<target>Keine Ergebnisse.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="48a5d0af93b94c4575b7f76a47fb3cdee58e6919">
+ <source>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </source>
+ <target>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e093a5a83045ff283f992a93699abb7cb9dd3c1b">
<source>
<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>
<source>Instance</source>
<target>Instanz</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
this instance provides a baseline quota of <x id="INTERPOLATION" equiv-text="{{ userVideoQuota | bytes: 0 }}"/> space for the videos of its users.
</source>
<target>
- diese Instanz stellt für die Videos ihrer Nutzer einen Speicherplatz von <x id="INTERPOLATION" equiv-text="{{ userVideoQuota | bytes: 0 }}"/> zur Verfügung.
+ für die Videos ihrer Nutzer stellt diese Instanz einen Speicherplatz von <x id="INTERPOLATION" equiv-text="{{ userVideoQuota | bytes: 0 }}"/> zur Verfügung.
</target>
<context-group name="null">
<context context-type="linenumber">27</context>
this instance provides unlimited space for the videos of its users.
</source>
<target>
- diese Instanz stellt unbegrenzten Speicherplatz für die Videos ihrer Nutzer zur Verfügung.
+ für die Videos ihrer Nutzer stellt diese Instanz unbegrenzten Speicherplatz zur Verfügung.
</target>
<context-group name="null">
<context context-type="linenumber">31</context>
</trans-unit>
<trans-unit id="bd29138e1e17572596ce8f2fe61bcea6ac5fb0bf">
<source>PeerTube is a federated (ActivityPub) video streaming platform using P2P (WebTorrent) directly in the web browser.</source>
- <target>PeerTube ist eine föderierte Videostreamingplattform basierend auf dem ActivityPub-Protokoll, die P2P direkt im Browser verwendet (WebTorrent).</target>
+ <target>PeerTube ist eine föderierte Videostreamingplattform basierend auf dem ActivityPub-Protokoll, die mit WebTorrent P2P-Technologie direkt im Browser verwendet.</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
It is a free and open-source software, under the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.
</source>
<target>
- Es ist freie Open-Source-Software, die unter der <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>AGPLv3-Lizenz<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> steht.
+ Es handelt sich um freie Open-Source-Software, die unter der <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>AGPLv3-Lizenz<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> steht.
</target>
<context-group name="null">
<context context-type="linenumber">8</context>
For more information, please visit <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.
</source>
<target>
- Besuche für weitere Informationen <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.
+ Für weitere Informationen besuche <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.
</target>
<context-group name="null">
<context context-type="linenumber">12</context>
This implies that your IP address is stored in the instance's BitTorrent tracker as long as you download or watch the video.
</source>
<target>
- PeerTube verwendet das BitTorrent-Protokoll, um Bandbreite zwischen den Usern aufzuteilen.
+ PeerTube verwendet das BitTorrent-Protokoll, um Bandbreite zwischen den Nutzern aufzuteilen.
Das setzt voraus, dass deine IP-Adresse auf dem BitTorrent-Tracker zwischengespeichert wird, solange du dir ein Video ansiehst oder herunterlädst.
</target>
<context-group name="null">
In practice, this is much more difficult because:
</source>
<target>
- Theoretisch könnte jemand mit genug technischer Erfahrung herausfinden, welche IP-Adresse welches Video herunterlädt.
+ Theoretisch könnte jemand mit genug technischer Erfahrung herausfinden, mit welcher IP-Adresse welches Video heruntergeladen wird.
In der Praxis ist das jedoch sehr schwierig, denn:
</target>
<context-group name="null">
</source>
<target>
Der Angreifer müsste für jedes Video eine separate HTTP-Anfrage senden.
- Möchte er alle Videos von PeerTube verfolgen, so müsste er genausoviele Anfragen senden, wie es Videos gibt. (also eine ganze Menge!)
+ Möchte er alle Videos von PeerTube verfolgen, so müsste er genau so viele Anfragen senden, wie es Videos gibt – also möglicherweise eine ganze Menge.
</target>
<context-group name="null">
<context context-type="linenumber">33</context>
</source>
<target>
Für jede gesendete Anfrage gibt der Tracker eine begrenzte Anzahl zufälliger Peers zurück.
- Wenn sich z. B. 1000 Peers im Schwarm befinden und der Tracker immer nur 20 Peer pro Anfrage versendet, müssten mindestens 50 Anfragen gesendet werden, um jeden Peer im Schwarm zu kennen.
+ Wenn sich z. B. 1000 Peers im Schwarm befinden und der Tracker immer nur 20 Peers pro Anfrage versendet, müssten mindestens 50 Anfragen gesendet werden, um jeden Peer im Schwarm zu kennen.
</target>
<context-group name="null">
<context context-type="linenumber">38</context>
Those requests have to be sent regularly to know who starts/stops watching a video. It is easy to detect that kind of behaviour
</source>
<target>
- Diese Anfragen müssen regelmäßig versandt werden, damit bekannt ist, wer anfängt oder aufhört, sich ein Video anzusehen. Es ist leicht, diese Art von Verhalten zu entdecken
+ Diese Anfragen müssten regelmäßig versendet werden, um es mitzubekommen, wenn jemand anfängt oder aufhört, sich ein Video anzusehen. Es ist leicht, derartiges Verhalten zu entdecken.
</target>
<context-group name="null">
<context context-type="linenumber">43</context>
If an IP address is stored in the tracker, it doesn't mean that the person behind the IP (if this person exists) has watched the video
</source>
<target>
- Wenn eine IP im Tracker gespeichert wird, heißt das nicht unbedingt, dass die zugehörige Person das Video auch tatsächlich angesehen hat.
+ Wenn eine IP-Adresse im Tracker gespeichert wird, heißt das nicht unbedingt, dass die zugehörige Person das Video auch tatsächlich angesehen hat.
</target>
<context-group name="null">
<context context-type="linenumber">47</context>
<target>
Web-Peers sind nicht öffentlich einsehbar: Weil wir WebRTC im Browser benutzen (<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>mit der WebTorrent-Bibliothek<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>), ist das Protokoll verschieden vom klassischen BitTorrent.
Wenn du deinen Browser benutzt, sendest du ein Signal mit deiner IP-Adresse zum Tracker, der zufällig andere Peers aussucht, an die das Signal weitergeleitet wird.
- Siehe <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>dieses Dokument<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> für weitere Informationen
+ Siehe <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>dieses Dokument<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> für weitere Informationen.
</target>
<context-group name="null">
<context context-type="linenumber">55</context>
There are much more effective ways to get that kind of information.
</source>
<target>
- Das Schlimmstfall-Szenario einer durchschnittlichen Person, die ihre Freunde ausspäht ist relativ unwahrscheinlich.
- Es gibt viel effektivere Möglichkeiten, um an diese Art von Informationen zu gelangen.
+ Das Worst-Case-Szenario eines gewöhnlichen Nutzers, der so seine Freunde ausspäht, ist relativ unwahrscheinlich.
+ Es gibt viel bessere Möglichkeiten, um an diese Informationen zu gelangen.
</target>
<context-group name="null">
<context context-type="linenumber">62</context>
</trans-unit>
<trans-unit id="8ce78dd287b9a9dde5079916425ea66466530e41">
<source>What will be done to mitigate this problem?</source>
- <target>Was wird getan, um das Problem zu beheben?</target>
+ <target>Was wird getan, um dieses Problem zu beheben?</target>
<context-group name="null">
<context context-type="linenumber">83</context>
</context-group>
In the meantime, we want to test different ideas related to this issue:
</source>
<target>
- PeerTube befindet sich noch in der Beta-Phase und möchte die besten Gegenmaßnahmen bereitstellen, wenn die Software als stabil angesehen wird.
- In der Zwischenzeit wollen wir verschiedene Ideen in diesem Zusammenhang ausprobieren:
+ PeerTube befindet sich noch in der Beta-Phase und möchte in der stabilen Version die besten Gegenmaßnahmen bereitstellen.
+ Bis dahin wollen wir verschiedene Ideen in diesem Zusammenhang ausprobieren:
</target>
<context-group name="null">
<context context-type="linenumber">85</context>
</trans-unit>
<trans-unit id="ba77e356eaa5c06caaf5c8734c361d1a5415fe1c">
<source>Ring a bell if there are unusual requests (being tested)</source>
- <target>Informiere mich bei merkwürdigen Anfragen (wird getestet).</target>
+ <target>Bei ungewöhnlichen Anfragen darauf aufmerksam machen (wird getestet).</target>
<context-group name="null">
<context context-type="linenumber">93</context>
</context-group>
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> Abonnenten</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Kanäle</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
</trans-unit>
<trans-unit id="aa3ef567a1ea22c1e4d0acfdc8f80bc636bf12df">
<source>With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video.</source>
- <target>Bei Wahl der Optionen <strong>Nicht zeigen</strong> oder <strong>Vorschaubilder verschwommen anzeigen</strong> wird vor Ansicht des Videos eine Bestätigung gefordert.</target>
+ <target>Bei Wahl der Optionen <strong>Nicht zeigen</strong> oder <strong>Miniaturansichten verschwommen anzeigen</strong> wird vor Ansicht des Videos eine Bestätigung gefordert.</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="aaa900149c2ca1575ac1918d1ded33fb69830ab2">
<source>Blur thumbnails</source>
- <target>Vorschaubilder verschwommen anzeigen</target>
+ <target>Miniaturansichten verschwommen anzeigen</target>
<context-group name="null">
<context context-type="linenumber">12</context>
</context-group>
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Video-Import über HTTP aktiviert</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Video-Import über eine Torrent-Datei oder einen Magnet-Link aktiviert</target>
<source>Score</source>
<target>Punkte</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
+ <trans-unit id="7823909fb1d8d313382f6f4bd842f1a7ef6f08d1">
+ <source>Accepted</source>
+ <target>Akzeptiert</target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
+ <source>Pending</source>
+ <target>Ausstehend</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8">
<source>Redundancy allowed</source>
<target>Redundanz erlaubt</target>
<context-group name="null">
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Role</source>
<target>Benutzerrolle</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target><x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/> sperren</target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Grund...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- Ein gesperrter Nutzer wird sich nicht mehr anmelden können.
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Diesen Nutzer sperren.</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Benutzerliste</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Benutzername <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Aktionen</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Zur Kontoseite gehen</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Grund für die Sperrung:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Aktionen</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Grund:</target>
</trans-unit>
<trans-unit id="73022f1676784c4f9b8cdbb322e52b02ccc800b7">
<source>Ownership changes</source>
- <target>Änderungen des Besitzers</target>
+ <target>Besitzer ändern</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
+ <trans-unit id="0dd390d056411e1709ec97ec51c46d78600e3f7b">
+ <source>Current password</source>
+ <target>Aktuelles Passwort</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
<source>New password</source>
<target>Neues Passwort</target>
<source>Automatically plays video</source>
<target>Videos automatisch abspielen</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Speichern</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="d1a04ba05116499d4cf59a48a282a8bcbf5b622d">
+ <source>Once you delete your account, there is no going back. Please be certain.</source>
+ <target>Sobald dein Konto gelöscht ist, gibt es kein Zurück mehr. Sei dir bitte sicher.</target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9a2f889dde4574a6883c853d1034e75891b28c45">
<source>Delete your account</source>
- <target>Lösche dein Konto</target>
+ <target>Mein Konto löschen</target>
<context-group name="null">
<context context-type="linenumber">4</context>
</context-group>
</trans-unit>
<trans-unit id="bfe7f34fbd4c3afa5f84a5580e0fae942cad2333">
<source>You can import any URL <a href='https://rg3.github.io/youtube-dl/supportedsites.html' target='_blank' rel='noopener noreferrer'>supported by youtube-dl</a> or URL that points to a raw MP4 file. You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance.</source>
- <target>Du kannst von jeder URL importieren, <a href='https://rg3.github.io/youtube-dl/supportedsites.html' target='_blank' rel='noopener noreferrer'>die von youtube-dl unterstützt wird</a> oder jeder URL, die auf eine MP4-Datei zeigt. Du solltest sicherstellen, dass du die Verbreitungsrechte für den Inhalt hast, ansonsten könnte es legale Schwierigkeiten für dich und deine Instanz verursachen.</target>
+ <target>Du kannst von jeder URL importieren, <a href='https://rg3.github.io/youtube-dl/supportedsites.html' target='_blank' rel='noopener noreferrer'>die von youtube-dl unterstützt wird</a> sowie von jeder URL, die auf eine MP4-Datei zeigt. Du solltest sicherstellen, dass du die Verbreitungsrechte für den Inhalt hast, ansonsten könnte es legale Schwierigkeiten für dich und deine Instanz verursachen.</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="2fcbf437e001f47974d45bd03a19e0d9245fdb3b">
<source>Select the torrent to import</source>
- <target>Wähle die Torrent-Datei für den Import</target>
+ <target>Wähle die Torrent-Datei für den Import aus</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
+ <source>Or</source>
+ <target>Oder</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0d6558176587662e9bb3b79cca57d42591cf82f9">
<source>Paste magnet URI</source>
- <target>Füge die Magnet URI ein</target>
+ <target>Füge die Magnet-URI ein</target>
<context-group name="null">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
<trans-unit id="fc865859d33eab6fa0a8015233e4686cd544d470">
<source>Import with URL</source>
- <target>Importiere über einer URL</target>
+ <target>Importiere über eine URL</target>
<context-group name="null">
<context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="39702b643cfe3d5b96a4587c1b44a29fa665406c">
<source>Add this caption</source>
- <target>Diesen Untertitel hinzufügen</target>
+ <target>Untertitel hinzufügen</target>
<context-group name="null">
<context context-type="linenumber">40</context>
</context-group>
</trans-unit>
<trans-unit id="457b1cff4d8d7fad0c8742f69c413ecf5e443851">
<source>Tags could be used to suggest relevant recommendations.</br>Press Enter to add a new tag.</source>
- <target>Taks können genutzt werden, um relevante Empfehlungen aussprechen zu können.</br>Drücke die Eingabetaste, um einen neuen Tag hinzuzufügen.</target>
+ <target>Tags können genutzt werden, um relevante Empfehlungen aussprechen zu können.</br>Drücke die Eingabetaste, um einen neuen Tag hinzuzufügen.</target>
<context-group name="null">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9bdd535a2817bf0b843a124bf65e4992625e7ecf">
+ <source>+ Tag</source>
+ <target>+ Tag</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8389e9cde2928cc27aaecbdee818a255bf7984b0">
+ <source>Enter a new tag</source>
+ <target>Gib einen neuen Tag ein</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
<source>Video descriptions are truncated by default and require manual action to expand them.</source>
<target>Videobeschreibungen sind standardmäßig gekürzt und müssen manuell aufgeklappt werden.</target>
</trans-unit>
<trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
<source>Wait transcoding before publishing the video</source>
- <target>Warte das Transkodieren ab, bevor du das Video veröffentlichst</target>
+ <target>Transkodieren abwarten, bevor das Video veröffentlicht wird</target>
<context-group name="null">
<context context-type="linenumber">130</context>
</context-group>
</trans-unit>
<trans-unit id="24f468ce1148a096477d8dd0d00f0d1fd88d6c63">
<source>If you decide not to wait for transcoding before publishing the video, it could be unplayable until transcoding ends.</source>
- <target>Wenn du dich entschließt, dass Transkodieren nicht abzuwarten, kann das Video unabspielbar sein, bis das Transkodieren beendet ist.</target>
+ <target>Wenn du dich entschließt, das Transkodieren nicht abzuwarten, kann das Video unabspielbar sein, bis das Transkodieren beendet ist.</target>
<context-group name="null">
<context context-type="linenumber">131</context>
</context-group>
</trans-unit>
<trans-unit id="92bcfd1d237a2bfe48dc9f46d074ed26abc8df22">
<source>Add another caption</source>
- <target>Weiteren Untertitel hinzufügen</target>
+ <target>Weitere Untertitel hinzufügen</target>
<context-group name="null">
<context context-type="linenumber">146</context>
</context-group>
</trans-unit>
<trans-unit id="1dd793abd1cb8d16a7a2cb71ca5549a7111ee513">
<source>Upload thumbnail</source>
- <target>Vorschaubild hochladen</target>
+ <target>Miniaturansicht hochladen</target>
<context-group name="null">
<context context-type="linenumber">195</context>
</context-group>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Gehe zur Kontoseite</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Mehr anzeigen</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Du kannst entweder auf der Seite deiner Fediverse-Instanz kommentieren oder auf einer anderen, die ActivityPub unterstützt. Bei Mastodon oder Pleroma kannst du z. B. in das Suchfeld <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> eingeben und das Video wiederfinden. An der Möglichkeit zur direkten Kommentierung wird gearbeitet: <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Keine Kommentare.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Zeige alle <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> Antworten</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Kommentare sind abgeschaltet.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">20</context>
</context-group>
</trans-unit>
+ <trans-unit id="8b2bb53dfb5f059f2b68cc4ac00661a865909135">
+ <source>You are one step away from commenting</source>
+ <target>Du bist einen Schritt vom Kommentieren entfernt</target>
+ <context-group name="null">
+ <context context-type="linenumber">28</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7984a44ce86b961f4f18c9a58c638f5e8f07a225">
+ <source>
+ If you have an account on this instance, you can login:
+ </source>
+ <target>
+ Wenn du über ein Konto auf dieser Instanz verfügst, kannst du dich anmelden.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="afe0ad39fee662489f1033e53aea3e16a7e89228">
+ <source>login to comment</source>
+ <target>melde dich an, um zu kommentieren</target>
+ <context-group name="null">
+ <context context-type="linenumber">35</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a5a3f17c9b4876952d78363834d57280c8684e7c">
+ <source>
+ Otherwise you can comment using an account on any ActivityPub-compatible instance.
+ On most platforms, you can find the video by typing its URL in the search bar and then comment it
+ from within the software's interface.
+ </source>
+ <target>
+ Ansonsten kannst du mit einem Konto einer beliebigen Instanz kommentieren, die ActitityPub unterstützt.
+ Auf den meisten Plattformen kannst du das Video kommentieren, indem du die URL des Videos in das Suchfeld
+ eingibst und dann den Anweisungen der Website folgst.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="968b02fbc645be799727de0d1ec3c6f9b11b20eb">
+ <source>
+ If you have an account on Mastodon or Pleroma, you can open it directly in their interface:
+ </source>
+ <target>
+ Falls du über ein Mastodon- oder Pleroma-Konto verfügst, kannst du es dort direkt öffnen.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">41</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
<source>Highlighted comment</source>
<target>Markierter Kommentar</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target><x id="INTERPOLATION" equiv-text="{{customizationsText}}"/> wurde verändert.</target>
+ <trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6">
+ <source>240p</source>
+ <target>240p</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c8cfad7e7a16c57c42535331b65cb7de40d8402e">
+ <source>360p</source>
+ <target>360p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Das könnte zu Sicherheitslücken führen, falls du es nicht verstehst.</target>
+ <trans-unit id="48f0af5a0d0bea4e84b27eaf41b19c85a531c2a5">
+ <source>480p</source>
+ <target>480p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Willst du die Einstellungen wirklich aktualisieren?</target>
+ <trans-unit id="6f06138daf6363746ff26bfc0cb2491c09cdfdf2">
+ <source>720p</source>
+ <target>720p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Bitte eingeben</target>
+ <trans-unit id="65c94f9beb6fe957808c40060da280cc7ace7ab9">
+ <source>1080p</source>
+ <target>1080p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>zur Bestätigung.</target>
+ <trans-unit id="421a937491f19774d17eefa1d24816dae1a9f111">
+ <source>Auto (via ffmpeg)</source>
+ <target>Automatisch (über ffmpeg)</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="54adc67482fdaa0d361a2992bc91e064dc61cc9a">
+ <source>100MB</source>
+ <target>100MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="cd34ef1f476d5422f49f6ed429f61fc1cfcb1174">
+ <source>500MB</source>
+ <target>500MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4a47b4beea31cac6e5970b6bc522902f545acc8b">
+ <source>1GB</source>
+ <target>1GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b26d0cac75638623098ab7e06e16b096d1f55cc8">
+ <source>5GB</source>
+ <target>5GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f9fc4e7ec6743cb6f69bea2d0859a655ed44ffae">
+ <source>20GB</source>
+ <target>20GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a56e3f92fe16d97ee4f05051ea61c466ecb51d5e">
+ <source>50GB</source>
+ <target>50GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="31dcc0c63f6234ace8caa84ae1abc33d4022122d">
+ <source>10MB</source>
+ <target>10MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f2f968b6f2199b919f567702c6f23b43e5ea71af">
+ <source>50MB</source>
+ <target>50MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c31575424fe1b2a57064413f3eda7ce657c46c8a">
+ <source>2GB</source>
+ <target>2GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="fc5731a28a99b25c62d43333ceebb250d60aff84">
<source><x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid</source>
<target><x id="INTERPOLATION" equiv-text="{{host}}"/> ist ungültig</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> gesperrt.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>Sperren</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>Sperre aufheben</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>Möchtest du die Sperre von <x id="INTERPOLATION" equiv-text="{{username}}"/> wirklich aufheben?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target>Sperre von Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> aufgehoben.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>Du kannst die Wurzel nicht löschen.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
- <source>If you remove this user, you will not be able to create another with the same username!</source>
- <target>Wenn du diesen Nutzer entfernst, wirst du keinen neuen mit dem gleichen Nutzernamen erstellen können!</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> entfernt.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<target>Besitz geworden</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="466fc8cf56fd4e4e90fec4b900ef083d52bec38c">
+ <source>You current password is invalid.</source>
+ <target>Dein aktuelles Passwort ist ungültig.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ca8e8cf0f1686604db3b6a2ebadab7f7b426a047">
<source>Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.</source>
<target>Bist du sicher, dass du dein Konto löschen möchtest? Das wird all deine Daten löschen, inkl. aller Kanäle, Videos etc.</target>
</trans-unit>
<trans-unit id="457f161d3ca706b8de263b0cd58e493d54e7d4c5">
<source><x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> compatible that supports:</source>
- <target>Kompatibilität mit <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> mit Unterstützung von:</target>
+ <target><x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>-Unterstützung von:</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="ab4426b60f13c00b61d6b714d390dc629f314980">
<source>Emphasis</source>
- <target>Hervorhebung</target>
+ <target>Hervorhebungen</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> gesperrt.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>Möchtest du die Sperre von <x id="INTERPOLATION" equiv-text="{{username}}"/> wirklich aufheben?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>Sperre von Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> aufgehoben.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <target>Wenn du diesen Nutzer entfernst, wirst du keinen neuen mit dem gleichen Nutzernamen erstellen können!</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> entfernt.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>Die Anfrage ist zu groß. Bitte kontaktiere den Administrator, um die Obergrenze für die Größe zu erhöhen.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf">
+ <source>Moderator</source>
+ <target>Moderator</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb">
<source>Only I can see this video</source>
<target>Nur ich kann dieses Video sehen</target>
</trans-unit>
<trans-unit id="d5a4811e15319ad9354e1b62e9ca0131192b489e">
<source><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> dislikes</source>
- <target><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> Likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> Dislikes</target>
+ <target><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> gefällt das / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> gefällt das nicht</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> rigardoj</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Redakti</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>Datumlimo por filmoj</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Kialo…</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtriloj</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Neniuj rezultoj troviĝis
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Nenio troviĝis.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
<target>Nodo</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> abonantoj</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Filmaj kanaloj</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Enporto de filmoj per HTTP ŝaltita</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Enporto de filmoj per torenta dosiero aŭ magneta ligilo ŝaltita</target>
<source>Score</source>
<target>Poentaro</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Gastiganto</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Rolo</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">65</context>
</context-group>
</trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Kialo…</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Listo de uzantoj</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Salutnomo <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Iri al paĝo de la konto</target>
+ <context-group name="null">
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
<source>Automatically plays video</source>
<target>Memfare ludas filmon</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Konservi</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">123</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Iri al paĝo de la konto</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Montri pli</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Vi povas komenti aŭ sur la paĝo de via nodo, kie tiu ĉi filmo estas federata kun via konto ĉe PeerTube, aŭ per iu ajn nodo en fediverso, subtenanta protokolon « ActivityPub ». Ekzemple, en Mastodon aŭ Pleroma vi povas tajpi en serĉujon « <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> » kaj retrovi la filmon. Rektaj ebloj komenti estas prilaborataj en <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Neniuj komentoj.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Montri ĉiujn <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> respondojn</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Komentoj estas malŝaltitaj.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Vi agordis propran <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Tio ĉi povas estigi sekurecajn problemojn aŭ erarojn, se vi ne komprenas ĝin.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Ĉu vi certe volas ĝisdatigi la agordon?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Bonvolu tajpi</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>por konfirmi.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Sukceso</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Uzanto <x id="INTERPOLATION" equiv-text="{{username}}"/> forigita.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
<source>Password updated.</source>
<target>Pasvorto ĝisdatigita.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Uzanto <x id="INTERPOLATION" equiv-text="{{username}}"/> forigita.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>Peto estas tro granda por la servilo. Bonvolu kontakti vian administranton se vi volas pligrandigi la limon.</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizaciones</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Modificar</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>Cuota de vídeo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Motivo...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtros</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
No hubo resultados
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target> Ningún resultados</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
<target>Nodo</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> suscriptores</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Canales de vídeo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Importar video con HTTP activado</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Importar video con un archivo torrent o un enlace magnet activado</target>
<source>Score</source>
<target>Puntuación</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Rol</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">65</context>
</context-group>
</trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Motivo...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Lista de usuarios</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Nombre de usuario <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Ir a la página de la cuenta</target>
+ <context-group name="null">
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
<source>Automatically plays video</source>
<target>Reproducir vídeo automáticamente</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Guardar</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">123</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Ir a la página de la cuenta</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Mostrar más</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Puedes comentar bien a través de la página de tu nodo donde este vídeo está federado con tu cuenta de PeerTube, o bien a través de cualquier instancia del fediverso equipada con ActivityPub. Por ejemplo, con Mastodon o Pleroma puede escribir en la caja de búsqueda <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> y encontrar el vídeo. Estamos trabajando en la capacidad de comentar directamente en <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>No hay comentarios</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Ver las <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> respuestas</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Los comentarios están inhabilitados.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Ajustaste de forma personalizada <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Esto podría provocar problemas de seguridad o bugs si no lo entiendes. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>¿Estás seguro de que quieres actualizar la configuración?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Por favor escribe</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>para confirmar.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Correcto</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Usuario <x id="INTERPOLATION" equiv-text="{{username}}"/> eliminado.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
<source>Password updated.</source>
<target>Contraseña actualizada.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Usuario <x id="INTERPOLATION" equiv-text="{{username}}"/> eliminado.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>La petición es demasiado grande para el servidor. Por favor contacta con tu administrador si quieres aumentar el límite de tamaño.</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> ikustaldi</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Editatu</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>Bideo-kuota</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>Debekatu</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Arrazoia...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ Debekatutako erabiltzaile batek ezin izango du saioa hasi.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Debekatu erabiltzaile hau</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Iragazkiak</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Ez da emaitzarik aurkitu
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> harpidedun</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> ikustaldi</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Emaitzarik ez.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<source>Instance</source>
<target>Instantzia</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> harpidedun</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Bideo kanalak</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Bideoa HTTP bidez inportatzea gaituta</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Bideoa torrent fitxategia edo magnet URL bidez inportatzea gaituta</target>
<source>Score</source>
<target>Puntuazioa</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Ostalaria </target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Rola</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>Debekatu <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Arrazoia...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- Debekatutako erabiltzaile batek ezin izango du saioa hasi.
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Debekatu erabiltzaile hau</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Erabiltzaileen zerrenda</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Erabiltzaile-izena <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Ekintzak</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Joan kontuaren orrira</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Debekatzeko arrazoia:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Ekintzak</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Arrazoia:</target>
<source>Ownership changes</source>
<target>Jabetza aldaketak</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<source>Automatically plays video</source>
<target>Automatikoki abiatzen du bideoa</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Gorde</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Joan kontuaren orrira</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Erakutsi gehiago</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Bideo hau zure PeerTube kontuarekin federatzen den zure instantziaren orrian egin dezakezu iruzkina, edo ActivityPub onartzen duen fedibertsoko edozein instantzian. Adibidez Mastodon edo Pleroma instantzietan, bilaketa kutxan <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> idatzi dezakezu bideoa aurkitzeko. Iruzkinak zuzenean egitek aukera garapenean dago: <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Iruzkinik ez.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Ikusi <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> erantzun</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Iruzkinak desgaituta daude.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target><x id="INTERPOLATION" equiv-text="{{customizationsText}}"/> pertsonalizatua ezarri duzu. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Honek segurtasun arazoak edo akatsak ekar litzake egindakoa ulertzen ez baduzu. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Ziur konfigurazioa aldatu nahi duzula?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Idatzi</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>berresteko.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Arrakasta</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target><x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzailea debekatuta.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>Debekatu</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>Kendu debekua</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>Ziur zaude <x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzaileari debekua kendu nahi diozula?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target><x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzaileari debekua kendu zaio.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>Ezin duzu erroa ezabatu.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target><x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzailea ezabatuta.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<target>Jabetza onartuta</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target><x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzailea debekatuta.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>Ziur zaude <x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzaileari debekua kendu nahi diozula?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target><x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzaileari debekua kendu zaio.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target><x id="INTERPOLATION" equiv-text="{{username}}"/> erabiltzailea ezabatuta.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>Eskaria luzeegia da zerbitzariarentzat. Jarri zure administratzailearekin kontaktuan muga handitu nahi baduzu.</target>
<source>Edit</source>
<target>ویرایش</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="f82f53a2544638939a8ba93c0fb1b0a4419c3196">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>دلیل...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">88</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>فیلترها</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
نتیجهای یافت نشد
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>بدون نتیجه.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source>Score</source>
<target>امتیاز</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>میزبان</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>نقش</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>دلیل...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Modifier</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
+ <source>Using an ActivityPub account</source>
+ <target>En utilisant un compte ActivityPub</target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
<source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
<target>S'abonner avec un compte sur <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></target>
<context context-type="linenumber">40</context>
</context-group>
</trans-unit>
+ <trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
+ <source>Subscribe with a Mastodon account:</source>
+ <target>S'abonner avec un compte Mastodon :</target>
+ <context-group name="null">
+ <context context-type="linenumber">43</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
<source>Using a syndication feed</source>
<target>Utilisation d'un flux de syndication</target>
<source>Video quota</source>
<target>Quota des vidéos</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>Bannir</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Motivation…</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ Un utilisateur banni ne sera plus capable de se connecter.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Bannir cet utilisateur</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtres</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Aucun résultat trouvé
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> abonnés</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> vues</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Aucun résultat.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="48a5d0af93b94c4575b7f76a47fb3cdee58e6919">
+ <source>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </source>
+ <target>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e093a5a83045ff283f992a93699abb7cb9dd3c1b">
<source>
<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>
<source>Instance</source>
<target>Instance</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> abonnés</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Chaînes de vidéos</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Import de vidéo avec HTTP activé</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Import de vidéo avec un fichier torrent ou URL magnet activé</target>
<source>Score</source>
<target>Score</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Hôte</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Accepted</source>
<target>Accepté</target>
<context-group name="null">
- <context context-type="linenumber">21</context>
+ <context context-type="linenumber">32</context>
</context-group>
</trans-unit>
<trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
<source>Pending</source>
<target>En attente</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8">
<source>Redundancy allowed</source>
<target>Redondance autorisée</target>
<context-group name="null">
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Role</source>
<target>Rôle</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>Bannir <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Motivation…</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- Un utilisateur banni ne sera plus capable de se connecter.
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Bannir cet utilisateur</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Liste des utilisateurs</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Identifiant <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Actions</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Accéder au profil public de l'utilisateur</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Raison du bannissement :</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Actions</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Raison :</target>
<source>Ownership changes</source>
<target>Changements de propriétaires</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
+ <trans-unit id="0dd390d056411e1709ec97ec51c46d78600e3f7b">
+ <source>Current password</source>
+ <target>Mot de passe actuel</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
<source>New password</source>
<target>Nouveau mot de passe</target>
<source>Automatically plays video</source>
<target>Lire automatiquement les vidéos</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Enregistrer</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="d1a04ba05116499d4cf59a48a282a8bcbf5b622d">
+ <source>Once you delete your account, there is no going back. Please be certain.</source>
+ <target>Une fois votre compte supprimé vous ne pourrez pas revenir en arrière. Soyez sûr de ce que vous faites.</target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9a2f889dde4574a6883c853d1034e75891b28c45">
<source>Delete your account</source>
<target>Supprimer votre compte</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
+ <source>Or</source>
+ <target>Ou</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0d6558176587662e9bb3b79cca57d42591cf82f9">
<source>Paste magnet URI</source>
<target>Copier l'URL magnet</target>
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9bdd535a2817bf0b843a124bf65e4992625e7ecf">
+ <source>+ Tag</source>
+ <target>+ Tag</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8389e9cde2928cc27aaecbdee818a255bf7984b0">
+ <source>Enter a new tag</source>
+ <target>Entrez un nouveau tag</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
<source>Video descriptions are truncated by default and require manual action to expand them.</source>
<target>Les descriptions des vidéos sont tronquées par défaut et requièrent une action manuelle pour être pleinement affichées.</target>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Accéder au profil public de l'utilisateur</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Voir plus</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Vous pouvez commenter soit sur la page de votre instance où cette vidéo est fédérée avec votre compte PeerTube, soit via n'importe quelle instance Fediverse compatible avec ActivityPub. Par exemple, avec Mastodon ou Pleroma vous pouvez taper dans le champ de recherche : <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> et retrouver la vidéo. Les commentaires directs sont en cours de développement, cela peut être suivi via cette issue <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Aucun commentaire.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Voir les <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> réponses</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Les commentaires sont désactivés.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">35</context>
</context-group>
</trans-unit>
+ <trans-unit id="a5a3f17c9b4876952d78363834d57280c8684e7c">
+ <source>
+ Otherwise you can comment using an account on any ActivityPub-compatible instance.
+ On most platforms, you can find the video by typing its URL in the search bar and then comment it
+ from within the software's interface.
+ </source>
+ <target>
+ Sinon, vous pouvez commenter en utilisant un compte sur n'importe quelle instance compatible avec le protocole ActivityPub.
+ Sur la plupart des plateformes, vous pouvez trouver la vidéo en tapant son adresse dans la barre de recherche et en la commentant.
+ depuis l'interface du logiciel.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="968b02fbc645be799727de0d1ec3c6f9b11b20eb">
+ <source>
+ If you have an account on Mastodon or Pleroma, you can open it directly in their interface:
+ </source>
+ <target>
+ Si vous avez un compte sur Mastodon ou Pleroma, vous pouvez directement l'ouvrir dans leur interface :
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">41</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
<source>Highlighted comment</source>
<target>Commentaire mis en exergue</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
+ <source>Error</source>
+ <target>Erreur</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6">
<source>240p</source>
<target>240p</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
- <source>Error</source>
- <target>Erreur</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Vous avez défini du <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Cela pourrait mener à des problèmes de sécurité ou à des bogues ; soyez sûr de comprendre ce que vous faites.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Êtes-vous sûr de vouloir modifier la configuration ?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Merci de taper</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>pour confirmer.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Réussite</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>Utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> banni.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>Bannir</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>Rétablir</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>Voulez-vous réellement rétablir <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target>L'utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> est rétabli.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>Vous ne pouvez pas supprimer root.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
- <source>If you remove this user, you will not be able to create another with the same username!</source>
- <target>Si vous supprimez ce compte, vous ne pourrez plus en créer de nouveau avec le même nom !</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> supprimé.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<target>Changement de propriété accepté</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="466fc8cf56fd4e4e90fec4b900ef083d52bec38c">
+ <source>You current password is invalid.</source>
+ <target>Votre mot de passe actuel est invalide.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ca8e8cf0f1686604db3b6a2ebadab7f7b426a047">
<source>Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.</source>
<target>Êtes-vous sûr de vouloir supprimer votre compte ? Cela supprimera toutes vos données, incluant vos chaînes, vidéos etc.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>Utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> banni.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>Voulez-vous réellement rétablir <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>L'utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> est rétabli.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <target>Si vous supprimez ce compte, vous ne pourrez plus en créer de nouveau avec le même nom !</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> supprimé.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>La requête est trop volumineuse pour le serveur. Merci de contacter un administrateur afin d'augmenter la taille limite acceptée par celui-ci.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf">
+ <source>Moderator</source>
+ <target>Modérateur</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb">
<source>Only I can see this video</source>
<target>Seul moi peut voir cette vidéo</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visionados</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
<source>Edit</source>
<target>Editar</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtros</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Non se atoparon resultados
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Sin resultados.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
<target>Instancia</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> suscritoras</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Canles de vídeo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Importación de vídeos por HTTP activada</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Importación de vídeo con un ficheiro torrent ou URI magnet activada</target>
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
+ <trans-unit id="ngb.datepicker.select-month">
+ <source>Select month</source>
+ <target>Seleziona mese</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ngb.datepicker.select-year">
+ <source>Select year</source>
+ <target>Seleziona anno</target>
+ <context-group name="null">
+ <context context-type="linenumber">16</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ngb.pagination.first">
<source>««</source>
<target>««</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizzazioni</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Modifica</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Truncated preview</source>
+ <target>Anteprima parziale</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="450025269732888db1f04cfe6033843110ab65ee">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Subscribe
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Subscribe
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">5</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c374edf3b9228d3df6d761bdc8a289e7df0096e8">
+ <source>
+ Unsubscribe
+ </source>
+ <target>
+ Unsubscribe
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">18</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
+ <source>Using an ActivityPub account</source>
+ <target>Utilizzando un account ActivityPub</target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
+ <source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
+ <target>Iscriviti con un account su <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></target>
+ <context-group name="null">
+ <context context-type="linenumber">39</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e7adf422424a61b71465d183f9d44bf956482ef0">
+ <source>Subscribe with your local account</source>
+ <target>Iscriviti con il tuo account locale</target>
+ <context-group name="null">
+ <context context-type="linenumber">40</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
+ <source>Subscribe with a Mastodon account:</source>
+ <target>Iscriviti con un account Mastodon:</target>
+ <context-group name="null">
+ <context context-type="linenumber">43</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
+ <source>Using a syndication feed</source>
+ <target>Usando una syndication feed</target>
+ <context-group name="null">
+ <context context-type="linenumber">48</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d5e5bc7d213694fc0414a76f0ff3085bae44268a">
+ <source>Subscribe via RSS</source>
+ <target>Iscriviti usando RSS</target>
+ <context-group name="null">
+ <context context-type="linenumber">49</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="319933e1af77ca2e35b75a5e9270a3c90e83dd4b">
+ <source>You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there.</source>
+ <target>Puoi iscriverti al canale attraverso una qualunque ActivityPub istanza del fediverso. Con istanze con Mastodon o Pleroma puoi digitare la URL del canale nel campo di ricerca e iscriverti là.</target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
<source>Video quota</source>
<target>Quota video</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>Ban (espelli)</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Motivo...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Banna questo utente</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
</trans-unit>
<trans-unit id="26025b8081241cf85eb6516431b596df11fa66b3">
<source>Example: jane_doe</source>
+ <target>Esempio: jane_doe</target>
<context-group name="null">
<context context-type="linenumber">16</context>
</context-group>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtri</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Nessun risultato trovato
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> iscritti</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> visualizzazioni</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<context context-type="linenumber">47</context>
</context-group>
</trans-unit>
+ <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5">
+ <source>Overview</source>
+ <target>Panoramica</target>
+ <context-group name="null">
+ <context context-type="linenumber">52</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="b6b7986bc3721ac483baf20bc9a320529075c807">
<source>Trending</source>
<target>Popolari</target>
<context context-type="linenumber">25</context>
</context-group>
</trans-unit>
+ <trans-unit id="4752e5e33da1c3396d3248eb8fef59bca5d00cb3">
+ <source>Show keyboard shortcuts</source>
+ <target>Mostra scorciatoie della tastiera</target>
+ <context-group name="null">
+ <context context-type="linenumber">91</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="cf75021ac8cb9efd4f95e8880cf52c9acd265768">
<source>Toggle dark interface</source>
<target>(Dis)attiva l'interfaccia sicura</target>
<source>No results.</source>
<target>Nessun risultato.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="48a5d0af93b94c4575b7f76a47fb3cdee58e6919">
+ <source>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </source>
+ <target>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e093a5a83045ff283f992a93699abb7cb9dd3c1b">
<source>
<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>
<source>Instance</source>
<target>Istanza</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
When you are in a web browser, you send a signal containing your IP address to the tracker that will randomly choose other peers to forward the information to.
See <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more information
</source>
+ <target>
+ I nodi non sono accessibili pubblicamente: in quanto usiamo WebRTC nel browser(<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>tramite la libreria WebTorrent <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>), il protocollo è diverso dal BitTorrent classico.
+ Quando usi un browser web, mandi un segnale contenente il tuo indirizzo IP al tracker, il quale selezionerà casualmente altri nodi a cui inoltrare questa informazione.
+ Per ulteriori informazioni, vedi <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>questo documento<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
<context-group name="null">
<context context-type="linenumber">55</context>
</context-group>
The worst-case scenario of an average person spying on their friends is quite unlikely.
There are much more effective ways to get that kind of information.
</source>
+ <target>
+ La peggiore delle ipotesi, in cui una persona qualunque spia un amico, è molto improbabile.
+ Ci sono modi molto più efficaci di ottenere questo genere di informazioni.
+ </target>
<context-group name="null">
<context context-type="linenumber">62</context>
</context-group>
</trans-unit>
<trans-unit id="4bf47a1ae952bf42a4682a5ecddb0bfb8c9adfaf">
<source>How does PeerTube compare with YouTube?</source>
+ <target>Come si può paragonare PeerTube con YouTube?</target>
<context-group name="null">
<context context-type="linenumber">67</context>
</context-group>
PeerTube is transparent about it: we warn you that if you want to keep your IP private, you must use a VPN or Tor Browser.
Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense.
</source>
+ <target>
+ Il tuo indirizzo IP è pubblico quindi, ogni volta che visiti un sito web, una moltitudine di attori (oltre al sito web finale) vedono il tuo IP nei propri registri: ISP/routers/trackers/CDN e altri.
+ PeerTube è trasparente al riguardo: ti avvisiamo che, se vuoi mantenere il tuo indirizzo IP privato, devi usare un VPN o il browser Tor.
+ Pensare che rimuovere la componente P2P da PeerTube ti possa restituire l'anonimato non ha senso.
+ </target>
<context-group name="null">
<context context-type="linenumber">77</context>
</context-group>
</trans-unit>
<trans-unit id="8ce78dd287b9a9dde5079916425ea66466530e41">
<source>What will be done to mitigate this problem?</source>
+ <target>Che azioni verranno intraprese per limitare questo problema?</target>
<context-group name="null">
<context context-type="linenumber">83</context>
</context-group>
PeerTube is only in beta, and want to deliver the best countermeasures possible by the time the stable is released.
In the meantime, we want to test different ideas related to this issue:
</source>
+ <target>
+ PeerTube è solamente in beta e vogliamo offrire le migliori contromisure possibili per il rilascio stabile.
+ Nel frattempo vogliamo testare varie idee in relazione a questo problema:
+ </target>
<context-group name="null">
<context context-type="linenumber">85</context>
</context-group>
</trans-unit>
<trans-unit id="efde279863678ed95a8949a3712c99748bdabfe6">
<source>An automatic video redundancy program: we wouldn't know if the IP downloaded the video on purpose or if it was the automatized program</source>
+ <target>Un programma automatico per incrementare la ridondanza dei video: non potremmo sapere se l'indirizzo IP abbia scaricato il video volontariamente o per via del programma automatico</target>
<context-group name="null">
<context context-type="linenumber">95</context>
</context-group>
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> iscritti</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
</trans-unit>
<trans-unit id="3fae5a310387c065757fde11f22689b45a7b6f2d">
<source>Videos Overview</source>
+ <target>Panoramica dei video</target>
<context-group name="null">
<context context-type="linenumber">58</context>
</context-group>
</trans-unit>
<trans-unit id="aaa900149c2ca1575ac1918d1ded33fb69830ab2">
<source>Blur thumbnails</source>
+ <target>Miniature offuscate.</target>
<context-group name="null">
<context context-type="linenumber">12</context>
</context-group>
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Carica video con HTTP attivato</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Carica video con un file torrent o un URI magnete attivo</target>
</trans-unit>
<trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
<source>User default video quota</source>
+ <target>Quota standard per i video dell'utente</target>
<context-group name="null">
<context context-type="linenumber">139</context>
</context-group>
</trans-unit>
<trans-unit id="f5528147716c4d3286c89defbe63ee0b75da5ffe">
<source>User default daily upload limit</source>
+ <target>Limite giornaliero per il caricamento</target>
<context-group name="null">
<context context-type="linenumber">153</context>
</context-group>
</trans-unit>
<trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
<source>Instance whitelisted by Twitter</source>
+ <target>Istanza inserita in white list da Twitter</target>
<context-group name="null">
<context context-type="linenumber">189</context>
</context-group>
</trans-unit>
<trans-unit id="5afc7e831e59c325e8fb3e208ec108ff53fb3500">
<source>Resolution <x id="INTERPOLATION" equiv-text="{{resolution}}"/> enabled</source>
+ <target>Risoluzione <x id="INTERPOLATION" equiv-text="{{resolution}}"/> abilitata</target>
<context-group name="null">
<context context-type="linenumber">227</context>
</context-group>
<source>Score</source>
<target>Punteggio</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
+ <trans-unit id="7823909fb1d8d313382f6f4bd842f1a7ef6f08d1">
+ <source>Accepted</source>
+ <target>Accettato</target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
+ <source>Pending</source>
+ <target>In attesa</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8">
+ <source>Redundancy allowed</source>
+ <target>Ridondanza permessa</target>
+ <context-group name="null">
+ <context context-type="linenumber">22</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Manage follows</source>
<target>Gestisci chi segui</target>
<source>Role</source>
<target>Ruolo</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Motivo...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Banna questo utente</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Lista utenti</target>
<trans-unit id="08ea8692dc2a7050026df26fc39b22960bde9de5">
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Azioni</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Motivo ban:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Azioni</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Motivo:</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
+ <trans-unit id="4ef4f031c147fb9ee0168bc6eacb78de180d7432">
+ <source>My library</source>
+ <target>La mia libreria</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="8dd18d9047c4b2dc9786550dfd8fa99f3b14e17f">
<source>My channels</source>
<target>I miei canali</target>
<source>Ownership changes</source>
<target>Cambi di proprietario</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<source>Automatically plays video</source>
<target>Riproduci automaticamente video</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Salva</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Mostra di piú</target>
<source>No comments.</source>
<target>Nessun commento.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Visualizza tutte le <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> risposte</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
I commenti sono disabilitati.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Hai inserito un testo personalizzato <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Questo potrebbe portare a problemi di sicurreza o errori nel programma se tu non capisci cosa fai. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Sei sicuro di volere un aggiornamento della configurazione?</target>
+ <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
+ <source>Success</source>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Per favore digita</target>
+ <trans-unit id="b9e64712e3e5c342ce9cd32eec6cd7d6c00f4048">
+ <source>Configuration updated.</source>
+ <target>Configurazione aggiornata.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>per confermare.</target>
+ <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf">
+ <source>Unlimited</source>
+ <target>Illimitato/ti</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
- <source>Success</source>
+ <trans-unit id="31dcc0c63f6234ace8caa84ae1abc33d4022122d">
+ <source>10MB</source>
+ <target>10MB</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="b9e64712e3e5c342ce9cd32eec6cd7d6c00f4048">
- <source>Configuration updated.</source>
- <target>Configurazione aggiornata.</target>
+ <trans-unit id="f2f968b6f2199b919f567702c6f23b43e5ea71af">
+ <source>50MB</source>
+ <target>50MB</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf">
- <source>Unlimited</source>
- <target>Illimitato/ti</target>
+ <trans-unit id="c31575424fe1b2a57064413f3eda7ce657c46c8a">
+ <source>2GB</source>
+ <target>2GB</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="e02f50674f1d96966384dc096beb42d4973997df">
<source>You need to specify hosts to follow.</source>
- <target>Devi specificare gli host per seguire.</target>
+ <target>Devi specificare gli host da seguire.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="795733aac948794cadeb3be6386882efac2c38ad">
+ <source>disabled</source>
+ <target>disabilitato</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1123807fc813c816404598147173403d00117557">
+ <source>Redundancy for <x id="INTERPOLATION" equiv-text="{{host}}"/> is <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/></source>
+ <target>La ridondanza per <x id="INTERPOLATION" equiv-text="{{host}}"/> è <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/></target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="800cd3cdf47751b576587259ba3a1bc0a7f435b6">
<source>Comment updated.</source>
<target>Commento modificato.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>L`utente <x id="INTERPOLATION" equiv-text="{{username}}"/> è stato espulso (banned).</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>Ban (espelli)</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
- <source>Unban</source>
- <target>Rimuovi ban</target>
+ <trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
+ <source>Unban</source>
+ <target>Rimuovi ban</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target>L`utente <x id="INTERPOLATION" equiv-text="{{username}}"/> è stato riammesso.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>Non puoi rimuovere root.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>L`utente <x id="INTERPOLATION" equiv-text="{{username}}"/> è stato rimosso.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="466fc8cf56fd4e4e90fec4b900ef083d52bec38c">
+ <source>You current password is invalid.</source>
+ <target>La tua attuale password non è valida.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ca8e8cf0f1686604db3b6a2ebadab7f7b426a047">
<source>Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.</source>
<target>Sei sicuro di volere eliminare il tuo account? Questa azione eliminerá tutti it tuoi dati compresi canali, video etc.</target>
</trans-unit>
<trans-unit id="8e6d54c4f760d9e90518eef5334211c48c0b71e2">
<source>Publication scheduled on </source>
+ <target>Pubblicazione programmata per il</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="5c0c574151dc8671d9199980ee04bf65aec3b452">
+ <source>Keyboard Shortcuts:</source>
+ <target>Scorciatoie per la tastiera:</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="247071f6c9233b7e5bc1d8f46795ab6b032f1fbe">
<source>Incorrect username or password.</source>
<target>Username or password non corretti</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="545f5dea553b2d7c4a65920ccdcb1e9dbdc7f4d8">
+ <source>Captions cache size is required.</source>
+ <target>La dimensione della cache delle descrizioni è richiesta.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a8d7131c0ca1eefe7b058e6081236ca1be364e2c">
+ <source>Captions cache size must be greater than 1.</source>
+ <target>La dimensione della cache delle descrizioni deve essere piú grande di 1.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c3decd47b03cf542df091c1a2fb25b756e59074e">
+ <source>Captions cache size must be a number.</source>
+ <target>La dimensione della cache delle descrizioni deve essere un numero.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="2cdd5a8c604ef16c2f9a17ed81d73f4f9509e828">
+ <source>Signup limit is required.</source>
+ <target>Il limite per le sottoscrizioni è un campo richiesto.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="0ca9f7ec55c9896add6e82d2b52e9217e1140cf7">
+ <source>Signup limit must be greater than 1.</source>
+ <target>Il limite per le sottoscrizioni deve essere piú grande di 1.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="58c2f66ba74f1400914031ef4ed635938e9e8ced">
+ <source>Signup limit must be a number.</source>
+ <target>Il limite per le sottoscrizioni deve essere un numero.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="1245841647f9b42d3e7554903c1c50bdd80ab021">
<source>Admin email is required.</source>
- <target>Ci vuole l'email del amministratore.</target>
+ <target>Ci vuole l'email dell'amministratore.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="3fd2feb77dfe57fe82573e3cdf996105e2fafc66">
+ <source>Admin email must be valid.</source>
+ <target>L'email dell'amministratore deve essere valida.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f15f2e02b1f6a96553e98ea4a969045d17ec1400">
+ <source>Transcoding threads is required.</source>
+ <target>Il numero di thread di transcodifica è richiesto.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4166cc066b963a23829b48a09e394f73b453fabd">
+ <source>Transcoding threads must be greater or equal to 0.</source>
+ <target>Il numero di thread di transcodifica deve essere più grande o uguale a 0.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5db300f6fba918a35597160183205ede13e8e149">
+ <source>Username is required.</source>
+ <target>L'username è necessario.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4eb39d69b74d7a56652ec84fa6826994ee26c0e5">
+ <source>Password is required.</source>
+ <target>La password è necessaria.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c90872a06666a51c2957c4b29724e68df5c67154">
+ <source>Confirmation of the password is required.</source>
+ <target>La conferma della password è necessaria.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="05ad6b99d9bf7b51968aa0b0b939e8627a329bea">
+ <source>Username must be at least 3 characters long.</source>
+ <target>L'username deve essere almeno di 3 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d4b11fd0ddeea39b33f911d3aac1e82799cdaaef">
+ <source>Username cannot be more than 20 characters long.</source>
+ <target>L'username non può essere più di 20 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5acbe0aa7a7157b1f09057a98ba01ab578a303a9">
+ <source>Username should be only lowercase alphanumeric characters.</source>
+ <target>L'username dovrebbe essere solo in minuscolo e contenere solo alfanumerici.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b6f52e19f074f77866fa03fabe1ddd5cdae346f0">
+ <source>Email is required.</source>
+ <target>L'email è richiesta.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bef8a36c3dffff15fb5faf3d20bdbbbc1af824c1">
+ <source>Email must be valid.</source>
+ <target>L'email deve essere valida.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1fe26e49476ac701885abc59127e96a3760847f0">
+ <source>Password must be at least 6 characters long.</source>
+ <target>La password deve essere lunga almeno 6 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="0a154031f3e66985af96d5f903441cf84f0dc75e">
+ <source>Password cannot be more than 255 characters long.</source>
+ <target>La password non può essere più lunga di 255 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="2db8f1f93a5485c32267762a3bf4da499832e732">
+ <source>The new password and the confirmed password do not correspond.</source>
+ <target>La nuova password e quella di conferma non coincidono.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="abede840116d58f04a55d99a6cbd68da8a3e1bbf">
+ <source>Video quota is required.</source>
+ <target>La quota per il video è richiesta.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="93a6dc1d3aa0d3201c86ef1ec8adf5cf0ada3c80">
+ <source>Quota must be greater than -1.</source>
+ <target>La quota deve essere più grande di -1.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7e58d1fb4e86af94f5199660ef349d55811888bb">
+ <source>Daily upload limit is required.</source>
+ <target>Il limite di caricamento giornaliero è necessario.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e283cbc4469959ea664f9d545f15278e089a6f1e">
+ <source>Daily upload limit must be greater than -1.</source>
+ <target>Il limite di caricamento giornaliero deve essere più grande di -1.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="545e77fd5d9526228a2133109447c23225ed9c85">
+ <source>User role is required.</source>
+ <target>Il ruolo dell'utente è necessario.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1c417b7aef730d6ef5d62fa8a0a7e25e3a2393e4">
+ <source>Display name is required.</source>
+ <target>Il nome visualizzato è necessario.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bdeb1a8e69e137572df795d64120ea85069b7674">
+ <source>Display name must be at least 3 characters long.</source>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="e81bda510399d52f26a44a15c3dbf4d6205d90a9">
<source>Display name cannot be more than 120 characters long.</source>
- <target>Il nome mostrato non deve superare i 120 caratteri.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="4a3ebc6ddb6b6677aed7b04eb503f9ddd0cfe561">
<source>You must to agree with the instance terms in order to registering on it.</source>
- <target>Devi accetare le regole del server per registrarti sopra</target>
+ <target>Devi accettare le regole dell'istanza per registrarti.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="6d2c3ebffd49b8933200a6d4e5b74712be49bf00">
+ <source>Ban reason must be at least 3 characters long.</source>
+ <target>Il motivo dell'espulsione (ban) deve essere lungo almeno 3 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="be32ff1dd6e464c5c085dd7d128316f476d2e0fd">
+ <source>Ban reason cannot be more than 250 characters long.</source>
+ <target>Il motivo dell'espulsione non deve essere più lungo di 250 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b3cf1889d2fdd6b15e697c270c9b80772fe2cae6">
+ <source>Report reason is required.</source>
+ <target>Il motivo per la segnalazione è richiesto.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="993f9f5703d449a1d467243db75253d288a2947e">
+ <source>Report reason must be at least 2 characters long.</source>
+ <target>Il motivo per la segnalazione deve essere lungo almeno 2 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7de2178ed1036844fb1c3ad8b7899a039fcdcdb9">
+ <source>Report reason cannot be more than 300 characters long.</source>
+ <target>Il motivo per la segnalazione non può essere più lungo di 300 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="2fa41debd17a206d4a2a5e8d14bcd7055f6e5118">
+ <source>Moderation comment is required.</source>
+ <target>Il commento di moderazione è richiesto.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="82e31d0837eaa69a4364e7434d253ce138b3c5c2">
+ <source>Moderation comment must be at least 2 characters long.</source>
+ <target>Il commento di moderazione deve essere lungo almeno 2 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="89d0b662dde0871cf17244e79b2cb62cd517e44f">
+ <source>Moderation comment cannot be more than 300 characters long.</source>
+ <target>Il commento di moderazione non può essere più lungo di 300 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="94b831c7e3684258f88e099c6cd3b8f73f8a2de6">
+ <source>The channel is required.</source>
+ <target>Il canale è richiesto.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="6ca60e0f6dfbc0073b0514bce7d273150b0b9e79">
+ <source>Comment is required.</source>
+ <target>Un commento è necessario.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f5a94cae76685e72f33541b977efdd7845cb0ed6">
+ <source>Comment must be at least 2 characters long.</source>
+ <target>Il commento deve essere lungo almeno 2 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7c194080446ee6901fd17a8b8648534ffe98b123">
+ <source>Comment cannot be more than 3000 characters long.</source>
+ <target>Il commento non può essere più lungo di 3000 caratteri</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="cdc51eaeab88683610a28af8645cf91d136b39e1">
<source>Video name is required.</source>
<target>Ci vuole il nome del video.</target>
</trans-unit>
<trans-unit id="c27cc734f76efd221663921dd0898ea7c8bcbb5c">
<source>Video name must be at least 3 characters long.</source>
- <target>Il nome video deve essere al minimo lunguo di tre caratteri.</target>
+ <target>Il nome video deve essere minimo di tre caratteri.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="97afb789c1ab09074495d49aaadb92a1c3e71a16">
+ <source>Video channel is required.</source>
+ <target>Il canale del video è necessario.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="af5e2d5f3ac817c735fb7ff9ca16322789f66fef">
+ <source>Video description must be at least 3 characters long.</source>
+ <target>La descrizione del video deve essere lunga almeno 3 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ce28a9403c2d7e5da2e59af27118f8b6d109e906">
+ <source>Video description cannot be more than 10000 characters long.</source>
+ <target>La descrizione del video non può essere più lunga di 10000 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="f1cffdc2e156716cd9880201d65ba457d11464f8">
<source>A tag should be more than 2 characters long.</source>
- <target>Un tag deve contenire al minimo 2 caratteri.</target>
+ <target>Un tag deve contenere minimo 2 caratteri.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="665092574f9af9fec262f8349b67b14192391ae6">
+ <source>Video support must be at least 3 characters long.</source>
+ <target>Supporto video deve essere almeno di 3 caratteri</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e61f1c05121fa5effa6ccddf5be6dcf1c822ff4b">
+ <source>Video support cannot be more than 500 characters long.</source>
+ <target>Supporto video non può essere più lungo di 500 caratteri.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="453413bf387dea681958871319bab489dd5e6ec0">
<source>A date is required to schedule video update.</source>
- <target>Ci vuole una data per programmare l'aggiornamento della video.</target>
+ <target>La data è necessaria per programmare l'aggiornamento del video.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="3b7ed22d0730d03b38c254332829d855ee7256c4">
<source>This file is too large.</source>
- <target>Il file e troppo grande.</target>
+ <target>Il file è troppo grande.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="0bf41abaa85526711f7952b4600e4044bc7f04a4">
<source>All unsaved data will be lost, are you sure you want to leave this page?</source>
- <target>I dati non salvati saranno persi. Sei sicuro di volere chiudere questa pagina ?</target>
+ <target>I dati non salvati saranno persi. Sei sicuro di volere chiudere questa pagina?</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
+ <source>Clear</source>
+ <target>Resetta</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8fb519ba47ea7806beeacdcd44829d85a2aa0cc5">
+ <source>yy-mm-dd </source>
+ <target>yy-mm-dd </target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a0fdb831d4557925dbaa4f8aff7e5035f7506411">
<source>Transcode your videos in multiple resolutions</source>
- <target>Transcodi le tue video in multiple risoluzioni</target>
+ <target>Transcodifica i tuoi video in multiple risoluzioni</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="590fc27fcbd7dd680da2bb2da644a183338f6bd1">
+ <source>HTTP import (YouTube, Vimeo, direct URL...)</source>
+ <target>HTTP import (YouTube, Vimeo, direct URL...)</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4e231a74ad4739e7b0606e8e66d5a656f5855a5a">
+ <source>Torrent import</source>
+ <target>Torrent import</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7296e9f7cc4956b6d57c541728b0826e76d108ba">
+ <source>~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/></source>
+ <target>~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/></target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="cf9ddbb55b25178660e09346209aedc10108aa24">
+ <source>{VAR_PLURAL, plural, =1 {minute} other {minutes} }</source>
+ <target>{VAR_PLURAL, plural, =1 {minute} other {minutes} }</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="10ffa5c3dbcee491d66f80d8d4dce3e119a6ec86">
+ <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of full HD videos</source>
+ <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> di video HD interi</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="344ddae9f45b344e98e7b28cd5e33243982700f8">
+ <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of HD videos</source>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="435c012df6dd990a1ccb7ee73dd79c488bde28b5">
+ <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of average quality videos</source>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>L`utente <x id="INTERPOLATION" equiv-text="{{username}}"/> è stato espulso (banned).</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>L`utente <x id="INTERPOLATION" equiv-text="{{username}}"/> è stato riammesso.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <target>Se elimini questo utente, non sarai in grado di crearne un altro con lo stesso username!</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>L`utente <x id="INTERPOLATION" equiv-text="{{username}}"/> è stato rimosso.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>La riquiesta è troppo grande per il server. Per favore contatta il tuo amministratore se vuoi aumentare il limite di dimensione.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf">
+ <source>Moderator</source>
+ <target>Moderatore</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb">
<source>Only I can see this video</source>
<target>Solo io posso vedere questo video</target>
</trans-unit>
<trans-unit id="15be15cbdc6e960f57e801f457c19165ab39632b">
<source>Anyone can see this video</source>
- <target>Tutti quanti possono vedere questo video</target>
+ <target>Tutti possono vedere questo video</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="f5e3d1e1cd2650fc6e86fbfcc8fe854e5cf18d6c">
<source>Please check your email to verify your account and complete signup.</source>
- <target>Per favore leggi i tuoi email per verificare il tuo account e finire la registrazione.</target>
+ <target>Per favore controlla la tua email per verificare il tuo account e completare la registrazione.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="20deec13d8d4ff199aa04318818ca44dab0585be">
<source>Registration for <x id="INTERPOLATION" equiv-text="{{username}}"/> complete.</source>
- <target>Registrazione per <x id="INTERPOLATION" equiv-text="{{username}}"/> finita.</target>
+ <target>Registrazione completata per <x id="INTERPOLATION" equiv-text="{{username}}"/>.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="0e907e5a96537e464b192f8adce79ce6487cbb1c">
<source>Your video was uploaded to your account and is private.</source>
- <target>Il tuo video e stata caricato sul tuo account ed è privato. </target>
+ <target>Il tuo video è stato caricato sul tuo account ed è privato.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="c5cb19aeb6447deda40cc1227ceca1359ab955e9">
<source>Upload cancelled</source>
- <target>Carica cancellata</target>
+ <target>Caricamento annullato.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="c55f41189ac6ad3003cce813245f4508284ed0aa">
<source>We are sorry but PeerTube cannot handle videos > 8GB</source>
- <target>Ci dispiace ma PeerTube non può gestire video > 8GB</target>
+ <target>Ci dispiace ma PeerTube non può gestire video di dimensioni > 8GB</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="a6019e856f511dbe1fe658790c71c594b26930ee">
<source>Your video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{videoQuotaUsed}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{videoQuota}}"/>)</source>
- <target>La tua quota e superata con questo video (dimensione del video: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, utilizzato: <x id="INTERPOLATION_1" equiv-text="{{videoQuotaUsed}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{videoQuota}}"/>)</target>
+ <target>La tua quota è stata superata con questo video (dimensione del video: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, stai utilizzando: <x id="INTERPOLATION_1" equiv-text="{{videoQuotaUsed}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{videoQuota}}"/>)</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="c980896ac8e08e9751545db1b7ef0e93fb8a52cd">
<source>Your daily video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{quotaUsedDaily}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{quotaDaily}}"/>)</source>
- <target>La tua quota giornaliera e superata con questo video (dimensione del video: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, utilizzato: <x id="INTERPOLATION_1" equiv-text="{{quotaUsedDaily}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{quotaDaily}}"/>)</target>
+ <target>La tua quota giornaliera è stata superata con questo video (dimensione del video: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, stai utilizzando: <x id="INTERPOLATION_1" equiv-text="{{quotaUsedDaily}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{quotaDaily}}"/>)</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="aeb61b334cac080733c3e03766165a346bbf42fd">
<source> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> replies will be deleted too.</source>
- <target> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> rispote saranno cancellate.</target>
+ <target> Saranno eliminate <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> risposte.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="f1abd89c9280323209e939fa9c30f6e5cda20c95">
<source>Do you really want to delete this video?</source>
- <target>Sei sicuro di volere cancellare questo video ?</target>
+ <target>Sei sicuro di volere eliminare questo video ?</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
<source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
- <target>Questo video contiene del contenuto sensibile. Sei sicuro di volere guardalo ?</target>
+ <target>Questo video contiene del contenuto sensibile. Sei sicuro di volerlo guardare?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5ba3d522e4146eefcbd5c222247c1e2423d27cd8">
+ <source>Mature or explicit content</source>
+ <target>Contenuto per adulti o esplicito.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="1b157e15c434469d91e56d027b78bf69c9983165">
<source>Videos from your subscriptions</source>
- <target>Video delle tue iscrizioni</target>
+ <target>Video dalle tue iscrizioni</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target> <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 回再生</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>編集</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>禁止</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>理由…</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>このユーザーを禁止する</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>フィルタ</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>Change the language</source>
<context-group name="null">
<source>No results.</source>
<target>結果がありません。</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<source>Instance</source>
<target>インスタンス</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source>Score</source>
<target>スコア</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>ホスト</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>役割</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>理由…</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>このユーザーを禁止する</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>行動</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>アカウントページに移動</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>禁止理由:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>行動</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>理由:</target>
<source>Ownership changes</source>
<target>所有権の変更</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
<source>Save</source>
<target>貯める</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>アカウントページに移動</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>もっと見せる</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>このアカウントは、ActivityPub 対応の Fediverse を使用して購読出来ます。例えば、Mastodon や Pleroma の場合、検索ボックスに入力することが出来ます。<strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&<strong> に登録して下さい。 PeerTubeユーザーとしての購読は、<a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a> を参照下さい。</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>コメントはまだありません。</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
この動画のコメントは無効です。
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>禁止</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>抑止しない</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> keer bekeken</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Bewerken</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>Videoquotum</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>No results.</source>
<target>Geen resultaten.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
<target>Instantie</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> abonnees</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Videokanalen</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<source>Score</source>
<target>Score</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Rol</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Gebruikersnaam <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
<trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
<trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2">
<source>Automatically plays video</source>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Opslaan</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizacions</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Modificar</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="450025269732888db1f04cfe6033843110ab65ee">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Subscribe
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ S’abonar
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">5</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="c374edf3b9228d3df6d761bdc8a289e7df0096e8">
<source>
Unsubscribe
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
+ <source>Using an ActivityPub account</source>
+ <target>En utilizant un compte ActivityPub</target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
+ <source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
+ <target>S’abonar amb un compte sus <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></target>
+ <context-group name="null">
+ <context context-type="linenumber">39</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e7adf422424a61b71465d183f9d44bf956482ef0">
<source>Subscribe with your local account</source>
<target>S’abonar amb lo compte local</target>
<context context-type="linenumber">40</context>
</context-group>
</trans-unit>
+ <trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
+ <source>Subscribe with a Mastodon account:</source>
+ <target>S’abonar amb un compte Mastodon :</target>
+ <context-group name="null">
+ <context context-type="linenumber">43</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
<source>Using a syndication feed</source>
<target>En utilizant un fil sindicat</target>
<context context-type="linenumber">49</context>
</context-group>
</trans-unit>
+ <trans-unit id="4913054c95f5ba14c351ab1b787f7abac97bfdd3">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>Remote subscribe<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Remote interact<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>S’abonar a distància<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Interaccion a distància<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">10</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="319933e1af77ca2e35b75a5e9270a3c90e83dd4b">
+ <source>You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there.</source>
+ <target>Podètz vos abonar a aquesta cadena via qualque siá instància compatibla amb ActivityPub. Per las instàncias Mastodon o Pleroma podètz picar l’URL de la cadena dins la barra de recèrca e vos i abonar enlà.</target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="2767d5461b6c622ccdeb868df8becf26bc16b99a">
+ <source>You can interact with this via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the current URL in the search box and interact with it there.</source>
+ <target>Podètz interagir amb aquò via qualque siá instància compatibla ActivityPub. Per las instàncias Mastodon o Pleroma podètz picar l’URL de la cadena dins la barra de recèrca e podètz interagir enlà.</target>
+ <context-group name="null">
+ <context context-type="linenumber">22</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
<source>Video quota</source>
<target>Quòta vidèo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>Fòrabandir</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Rason...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ Un utilizaire fòrabandit poirà pas mai se connectar.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Fòrabandir aqueste utilizaire</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtres</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Cap de resultats
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> abonats</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> visualizacions</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Cap de resultat</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="48a5d0af93b94c4575b7f76a47fb3cdee58e6919">
+ <source>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </source>
+ <target>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e093a5a83045ff283f992a93699abb7cb9dd3c1b">
<source>
<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>
<source>Instance</source>
<target>Instància</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
If we want to spy all PeerTube's videos, we have to send as many requests as there are videos (so potentially a lot)
</source>
<target>
- Una requèsta HTTP deu èsser enviada a cada traçadors per cada vidèo d’espiar.
+ Cada traçador deu recebre una requèsta HTTP per cada vidèo d’espiar.
Se volèm espiar totas las vidèo de PeerTube, avèm d’enviar tantas requèstas qu’i a de vidèos (doncas potencialament un molon)
</target>
<context-group name="null">
For instance, if there are 1000 peers in the swarm and the tracker sends only 20 peers for each request, there must be at least 50 requests sent to know every peers in the swarm
</source>
<target>Per cada requèsta enviada, lo traçador tòrna un nombre limitat de pars a l’azard.
- Per cada instància s’i a 1000 pars per l’eissam e lo traçador envia pas que 20 pars per requèsta, cal almens 50 requèstas per conéisser totes los pars del eissam</target>
+ Per cada instància s’i a 1000 pars per l’eissam e lo traçador envia pas que 20 pars per requèsta, cal almens 50 requèstas per conéisser totes los pars de l’eissam</target>
<context-group name="null">
<context context-type="linenumber">38</context>
</context-group>
Those requests have to be sent regularly to know who starts/stops watching a video. It is easy to detect that kind of behaviour
</source>
<target>
- Aquelas requèstas an d’èsser enviadas regularament per saber qual commença/arrèstar d’agachar una vidèo. Es aisit de detectar aquel tipe de compòrtament
+ Aquelas requèstas an d’èsser enviadas regularament per saber qual commença/arrèsta d’agachar una vidèo. Es aisit de detectar aquel tipe de compòrtament
</target>
<context-group name="null">
<context context-type="linenumber">43</context>
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> abonats</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Canals vidèo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Import vidèo amb HTTP activat</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Import de vidèos via un fichièr torretn o un magnet URI activat</target>
<context context-type="linenumber">189</context>
</context-group>
</trans-unit>
+ <trans-unit id="a62985a76e947b0068ad328b5172d5af5b125b9a">
+ <source>If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br />
+ If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<br /><br />
+ Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> to see if you instance is whitelisted.</source>
+ <target>Se vòstra instància es mesa en lista blanca per Twitter, un lector vidèo serà integrat pel fil Twitter sul partatge d’una vidèo PeerTube.<br />
+ Se l’instància es pas en lista blanca, utilizam un imatge amb un ligam que mena a l’instància PeerTube.<br /><br />
+ Clicatz aquesta bóstia, salvagardatz la configuracion e ensajatz amb l’URL d’una vidèo de vòstra instància (https://exemple.com/videos/watch/blabla) sus <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> per veire se vòstra instància es en lista blanca.</target>
+ <context-group name="null">
+ <context context-type="linenumber">190</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
<source>Services</source>
<target>Servicis</target>
<source>Score</source>
<target>Marca</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Òst</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
+ <trans-unit id="7823909fb1d8d313382f6f4bd842f1a7ef6f08d1">
+ <source>Accepted</source>
+ <target>Acceptat</target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
+ <source>Pending</source>
+ <target>En espèra</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8">
<source>Redundancy allowed</source>
<target>Redondància autorizada</target>
<context-group name="null">
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Role</source>
<target>Ròtle</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>Fòrabandir <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Rason...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Fòrabandir aqueste utilizaire</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Lista d’utilizaires</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Nom d’utilizaire <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Accions</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Anar a la pagina del compte</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Rason del bandiment :</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Accions</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Rason :</target>
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
+ <trans-unit id="7963019b5535b51efa399e6a62b163f3e04d296f">
+ <source>Blacklist reason:</source>
+ <target>Rason de la mesa en lista negra :</target>
+ <context-group name="null">
+ <context context-type="linenumber">41</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="90868353e7e6f5994109ee1011131cefa992116c">
<source>Moderation</source>
<target>Moderacion</target>
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
+ <trans-unit id="23a793ed0df2e10823dd469c5cea9b5c36be8f7e">
+ <source>Video abuses</source>
+ <target>Senhalaments de vidèos</target>
+ <context-group name="null">
+ <context context-type="linenumber">5</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="00ecde6001106fe7406a34cc3459cc5b88e4aec1">
<source>Blacklisted videos</source>
<target>Vidèos en lista nègra</target>
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="73022f1676784c4f9b8cdbb322e52b02ccc800b7">
+ <source>Ownership changes</source>
+ <target>Cambiaments de proprietats</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<source>Video quota:</source>
<target>Quòta vidèo :</target>
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="2dc22fcebf6aaa76196d2def33a827a34bf910bf">
+ <source>Change ownership</source>
+ <target>Cambiar la proprietat</target>
+ <context-group name="null">
+ <context context-type="linenumber">46</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="046c4fa30411e6b1aa46dc51bf82d07b1adf14d4">
+ <source>Select the next owner</source>
+ <target>Seleccionatz lo novèl proprietari</target>
+ <context-group name="null">
+ <context context-type="linenumber">9</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a5433ae2324496bea9537caa5e8a2719d8e958d8">
<source>
Cancel
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="4a806761798181e907e28ed1af053d466526800d">
+ <source>Blacklisted</source>
+ <target>En lista negra</target>
+ <context-group name="null">
+ <context context-type="linenumber">22</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="17a9d3860d9ad593dd09a9f934e03999d9e76a7a">
<source>
Cancel
<context context-type="linenumber">8</context>
</context-group>
</trans-unit>
+ <trans-unit id="3a5d57052d13d2da1cbcffdbb8effb9874b1595a">
+ <source>You don't have any subscriptions yet.</source>
+ <target>Encara avètz pas cap d’abonament.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="c65641c36859c328928e6b0f14c3f913886f8add">
<source>Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/></source>
<target>Creat per <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/></target>
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
+ <trans-unit id="fbc450919a486e8ed311a7e91a41987d47d83804">
+ <source>Accept ownership</source>
+ <target>Acceptar la proprietat</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4570c754149df06f31096510abfc925968c35562">
+ <source>Select the target channel</source>
+ <target>Seleccionatz la cadena cibla</target>
+ <context-group name="null">
+ <context context-type="linenumber">9</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740">
+ <source>Initiator</source>
+ <target>Iniciator</target>
+ <context-group name="null">
+ <context context-type="linenumber">13</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="b08d67fe4e192ea8352bebdc6aabbd1bb7abed02">
<source>
Created
<context context-type="linenumber">39</context>
</context-group>
</trans-unit>
+ <trans-unit id="4a5613f6b472c1ed863dff1be932913a251f27a2">
+ <source>Refuse</source>
+ <target>Refusar</target>
+ <context-group name="null">
+ <context context-type="linenumber">47</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
<source>Change password</source>
<target>Cambiar lo senhal</target>
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
+ <trans-unit id="0dd390d056411e1709ec97ec51c46d78600e3f7b">
+ <source>Current password</source>
+ <target>Senhal actual</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
<source>New password</source>
<target>Nòu senhal</target>
<source>Automatically plays video</source>
<target>Legir automaticament las vidèos</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Salvagardar</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="d1a04ba05116499d4cf59a48a282a8bcbf5b622d">
+ <source>Once you delete your account, there is no going back. Please be certain.</source>
+ <target>Un còp qu’escafatz lo compte, podètz pas anullar aquò. Siatz-ne segur.</target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9a2f889dde4574a6883c853d1034e75891b28c45">
<source>Delete your account</source>
<target>Suprimir vòstre compte</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="09a69cde5889927629e2ac9dc63a71b88252b530">
+ <source>
+ Verify account email confirmation
+ </source>
+ <target>
+ Verificar l’adreça del compte
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="066569dd934e07e4a5f70c415692be17d5715b57">
+ <source>
+ Your email has been verified and you may now login. Redirecting...
+ </source>
+ <target>
+ Vòstre corrièl es estat verificat, podètz ara vos connectar. Redireccion...
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">6</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="7ee8fad77b2664dabfb90ea03470f75a6f6d1d48">
<source>An error occurred. </source>
<target>Una error s’es producha.</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="5e420747842373fa99a75a7a18df068cc81e46fb">
+ <source>Scheduled</source>
+ <target>Programada</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
<source>Publish will be available when upload is finished</source>
<target>La publicacion serà possibla un còp lo mandadís acabat</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
+ <source>Or</source>
+ <target>O</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0d6558176587662e9bb3b79cca57d42591cf82f9">
<source>Paste magnet URI</source>
<target>Pegar lo magnet URI</target>
<context context-type="linenumber">24</context>
</context-group>
</trans-unit>
+ <trans-unit id="c34c61401151c29fb3679638a7d0b95258145ec3">
+ <source>
+ This will replace an existing caption!
+ </source>
+ <target>
+ Aquò remplaçarà la legenda existenta !
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">29</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="39702b643cfe3d5b96a4587c1b44a29fa665406c">
<source>Add this caption</source>
<target>Ajustar aquesta legenda</target>
<context context-type="linenumber">191</context>
</context-group>
</trans-unit>
+ <trans-unit id="457b1cff4d8d7fad0c8742f69c413ecf5e443851">
+ <source>Tags could be used to suggest relevant recommendations.</br>Press Enter to add a new tag.</source>
+ <target>Per suggerir de recomandacions pertinentas òm pòt utilizar las etiquetas.</br>Picatz Entrada per ajustar una nòva etiqueta.</target>
+ <context-group name="null">
+ <context context-type="linenumber">18</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="9bdd535a2817bf0b843a124bf65e4992625e7ecf">
+ <source>+ Tag</source>
+ <target>+ Etiqueta</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8389e9cde2928cc27aaecbdee818a255bf7984b0">
+ <source>Enter a new tag</source>
+ <target>Picatz una nòva etiqueta</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
<source>Video descriptions are truncated by default and require manual action to expand them.</source>
<target>Las descripcions de las vidèos son troncadas per defaut e demandan una accion manuala per qu’òm las alongue.</target>
<context context-type="linenumber">34</context>
</context-group>
</trans-unit>
+ <trans-unit id="90e0a0a3da80b46e550c1395ff4e97c27259bef8">
+ <source>
+ The url is not secured (no HTTPS), so the embed video won't work on HTTPS websites (web browsers block non secured HTTP requests on HTTPS websites).
+ </source>
+ <target>
+ L’URL es pas segura (cap d’HTTPS), la vidèo embarcada foncionarà pas suls sites HTTPS alara (los navigadors web blocan las requèstas HTTP suls sites HTTPS).
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">45</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8">
<source>Close</source>
<target>Tampar</target>
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
+ <trans-unit id="c89a08fd2a05d1013fed8478024f5ba37ac3d308">
+ <source>
+ This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>.
+ </source>
+ <target>
+ Aquesta vidèo serà publicada lo <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">19</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="bd7055d3e38beff538463e75d508d1c75c683710">
<source>This video is blacklisted.</source>
<target>Aquesta vidèo es en lista negra.</target>
<context context-type="linenumber">24</context>
</context-group>
</trans-unit>
+ <trans-unit id="3da5360f8314aa95973aa52629c9f635363c5a36">
+ <source>
+ Published <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views
+ </source>
+ <target>
+ Publicada <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizacions
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">37</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="07087373dbf99b5e8b2b2f962fd53baa97d9ab95">
+ <source>
+ Published <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views
+ </source>
+ <target>
+ Publicada <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizacions
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">46</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
<source>Like this video</source>
<target>Aimar la vidèo</target>
<context context-type="linenumber">100</context>
</context-group>
</trans-unit>
+ <trans-unit id="61021f5011bc24f69cfc3f6dbbbd8f1948328b25">
+ <source>Unblacklist this video</source>
+ <target>Tirar de la lista negra aquesta vidèo</target>
+ <context-group name="null">
+ <context context-type="linenumber">99</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
<source>Delete this video</source>
<target>Suprimir aquesta vidèo</target>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Anar a la pagina del compte</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Ne veire mai</target>
<context context-type="linenumber">208</context>
</context-group>
</trans-unit>
+ <trans-unit id="9e66f7507eb263abdbab7abafd825f1dc8bc880b">
+ <source>
+ the sharing system used for this video implies that some technical information about your system (such as a public IP address) can be sent to other peers.
+ </source>
+ <target>
+ Lo sistèma de partatge utilizat per aquesta vidèo implica que d’informacions tocant vòstre sistèma (tal coma vòstra adreça IP publica) sián enviadas als autres pars.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">209</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e">
<source>More information</source>
<target>Mai d’informacions</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Podètz siá comentar de la pagina de vòstra instància ont aquesta vidèo es federada amb vòstre compte PeerTube, o via qualque que siá instància del fediverse compatibla ActivityPub. Per exemple amb Mastodon o Pleroma podètz picar dins la barra de recèrca <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> e retrobar aquesta vidèo. Las foncionalitats de comentari dirècte son en òbra a <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Cap de comentari.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Veire las <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> autras responsas</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Los comentaris son desactivats.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">20</context>
</context-group>
</trans-unit>
+ <trans-unit id="8b2bb53dfb5f059f2b68cc4ac00661a865909135">
+ <source>You are one step away from commenting</source>
+ <target>Sètz a una etapa abans de comentar</target>
+ <context-group name="null">
+ <context context-type="linenumber">28</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7984a44ce86b961f4f18c9a58c638f5e8f07a225">
+ <source>
+ If you have an account on this instance, you can login:
+ </source>
+ <target>
+ S’avètz un compte sus aquesta instància, podètz vos connectar :
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="afe0ad39fee662489f1033e53aea3e16a7e89228">
+ <source>login to comment</source>
+ <target>se connectar per comentar</target>
+ <context-group name="null">
+ <context context-type="linenumber">35</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a5a3f17c9b4876952d78363834d57280c8684e7c">
+ <source>
+ Otherwise you can comment using an account on any ActivityPub-compatible instance.
+ On most platforms, you can find the video by typing its URL in the search bar and then comment it
+ from within the software's interface.
+ </source>
+ <target>
+ Autrament podètz comentar n’utilizant un compte amb una instància compatibla ActivityPub.
+ Sovent podètz trobar la vidèo en picant son URL dins la barra de recèrca puèi la comentar
+ a partir de l’interfàcia del logicial.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="968b02fbc645be799727de0d1ec3c6f9b11b20eb">
+ <source>
+ If you have an account on Mastodon or Pleroma, you can open it directly in their interface:
+ </source>
+ <target>
+ S’avètz un compte sus Mastodon o Pleroma, podètz la dobrir dirèctament dins lor interfàcia :
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">41</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
<source>Highlighted comment</source>
<target>Comentari notable</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Avètz definit de <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
+ <trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6">
+ <source>240p</source>
+ <target>240p</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c8cfad7e7a16c57c42535331b65cb7de40d8402e">
+ <source>360p</source>
+ <target>360p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Aquò pòt menar a de problèmas de seguretat o de bugs s’o comprenètz pas.</target>
+ <trans-unit id="48f0af5a0d0bea4e84b27eaf41b19c85a531c2a5">
+ <source>480p</source>
+ <target>480p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Volètz vertadièrament actualizar la configuracion ?</target>
+ <trans-unit id="6f06138daf6363746ff26bfc0cb2491c09cdfdf2">
+ <source>720p</source>
+ <target>720p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Mercés de picar</target>
+ <trans-unit id="65c94f9beb6fe957808c40060da280cc7ace7ab9">
+ <source>1080p</source>
+ <target>1080p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>per confirmar.</target>
+ <trans-unit id="421a937491f19774d17eefa1d24816dae1a9f111">
+ <source>Auto (via ffmpeg)</source>
+ <target>Auto (via ffmpeg)</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="54adc67482fdaa0d361a2992bc91e064dc61cc9a">
+ <source>100MB</source>
+ <target>100 Mo</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="cd34ef1f476d5422f49f6ed429f61fc1cfcb1174">
+ <source>500MB</source>
+ <target>500 Mo</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4a47b4beea31cac6e5970b6bc522902f545acc8b">
+ <source>1GB</source>
+ <target>1 Go</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b26d0cac75638623098ab7e06e16b096d1f55cc8">
+ <source>5GB</source>
+ <target>5 Go</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f9fc4e7ec6743cb6f69bea2d0859a655ed44ffae">
+ <source>20GB</source>
+ <target>20 Go</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a56e3f92fe16d97ee4f05051ea61c466ecb51d5e">
+ <source>50GB</source>
+ <target>50 Go</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="31dcc0c63f6234ace8caa84ae1abc33d4022122d">
+ <source>10MB</source>
+ <target>10 Mo</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f2f968b6f2199b919f567702c6f23b43e5ea71af">
+ <source>50MB</source>
+ <target>50 Mo</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c31575424fe1b2a57064413f3eda7ce657c46c8a">
+ <source>2GB</source>
+ <target>2 Go</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="fc5731a28a99b25c62d43333ceebb250d60aff84">
<source><x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid</source>
<target><x id="INTERPOLATION" equiv-text="{{host}}"/> es pas valid</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="cf3b28ba29a907b334ab0e6dccd080a60ba23321">
+ <source>Update moderation comment</source>
+ <target>Actualizar lo comentari de moderacion</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d512430037b6580ba970c80cfc1687b6bdc221a3">
<source>Mark as accepted</source>
<target>Marcar coma acceptat</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="652845b2b32b2e117b9b02879b1af07859b0e223">
+ <source>Do you really want to remove this video from the blacklist? It will be available again in the videos list.</source>
+ <target>Volètz vertadièrament levar aquesta vidèo de la lista negra ? Serà disponibla tornamai dins la lista de las vidèo.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="1585babc36806e20e225ac27dbba0e7c7cd09e0f">
<source>Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from the blacklist.</source>
<target>Vidèo <x id="INTERPOLATION" equiv-text="{{name}}"/> tirada de la lista negra.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>Utilizaire <x id="INTERPOLATION" equiv-text="{{username}}"/> fòrabandit.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>Fòrabandir</target>
+ <trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
+ <source>Unban</source>
+ <target>Reabilitar</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Utilizaire <x id="INTERPOLATION" equiv-text="{{username}}"/> suprimit.</target>
+ <trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
+ <source>Ownership accepted</source>
+ <target>Proprietat acceptada</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="466fc8cf56fd4e4e90fec4b900ef083d52bec38c">
+ <source>You current password is invalid.</source>
+ <target>Lo senhal acual es invalid.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ca8e8cf0f1686604db3b6a2ebadab7f7b426a047">
<source>Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.</source>
<target>Volètz vertadièrament suprimir lo compte ? Aquò suprimirà totas las donadas, e tanben las cadenas, vidèos, etc.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="740c53a50a618bf5c7a5bd5c3f7321f0bd1840dd">
+ <source>Ownership change request sent.</source>
+ <target>Demanda de cambiament de proprietat enviada.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="807cf11e6ac1cde912496f764c176bdfdd6b7e19">
<source>Channels</source>
<target>Cadenas</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="4166cc066b963a23829b48a09e394f73b453fabd">
+ <source>Transcoding threads must be greater or equal to 0.</source>
+ <target>Los fils de transcodatge devon èsser superiors o egals a 1.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="5db300f6fba918a35597160183205ede13e8e149">
<source>Username is required.</source>
<target>Lo nom d’utilizaire es requesit.</target>
</trans-unit>
<trans-unit id="5acbe0aa7a7157b1f09057a98ba01ab578a303a9">
<source>Username should be only lowercase alphanumeric characters.</source>
- <target>Lo nom d’utilizaire deu èsser alfanumeric e un minuscula. </target>
+ <target>Lo nom d’utilizaire deu èsser alfanumeric e en minuscula. </target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="7e58d1fb4e86af94f5199660ef349d55811888bb">
+ <source>Daily upload limit is required.</source>
+ <target>Lo quòta jornalièr de mandadís es requesit.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e283cbc4469959ea664f9d545f15278e089a6f1e">
+ <source>Daily upload limit must be greater than -1.</source>
+ <target>Lo quòta jornalièr deu èsser superior a -1.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="545e77fd5d9526228a2133109447c23225ed9c85">
<source>User role is required.</source>
<target>Lo ròtle del l’utilizaire es requesit.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="6d2c3ebffd49b8933200a6d4e5b74712be49bf00">
+ <source>Ban reason must be at least 3 characters long.</source>
+ <target>La rason del bandiment deu conténer almens 3 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="be32ff1dd6e464c5c085dd7d128316f476d2e0fd">
+ <source>Ban reason cannot be more than 250 characters long.</source>
+ <target>La rason del bandiment pòt pas conténer mai de 250 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="b3cf1889d2fdd6b15e697c270c9b80772fe2cae6">
<source>Report reason is required.</source>
<target>La rason del senha es requesida.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="2fa41debd17a206d4a2a5e8d14bcd7055f6e5118">
+ <source>Moderation comment is required.</source>
+ <target>Lo comentari de moderacion es requesit.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="82e31d0837eaa69a4364e7434d253ce138b3c5c2">
+ <source>Moderation comment must be at least 2 characters long.</source>
+ <target>Lo comentari de moderacon deu conténer almens 2 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="89d0b662dde0871cf17244e79b2cb62cd517e44f">
+ <source>Moderation comment cannot be more than 300 characters long.</source>
+ <target>Lo comentari de moderacion pòt pas conténer mai de 300 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="94b831c7e3684258f88e099c6cd3b8f73f8a2de6">
+ <source>The channel is required.</source>
+ <target>La cadena es requesida.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="0776b05d442a0a16f083a5eefa52a166b9d514ca">
+ <source>Blacklist reason must be at least 2 characters long.</source>
+ <target>La rason de la mesa en lista negra deu conténer almens 2 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5009443905b0b152915247799492bf5e164e7626">
+ <source>Blacklist reason cannot be more than 300 characters long.</source>
+ <target>La rason de la mesa en lista negra pòt pas conténer mai de 300 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="c9eadf8830b3bc09bd444d739af86414eed9bd9e">
<source>Video caption language is required.</source>
<target>La lenga de la legenda es requesida.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="bd7fc070c728dc6dbf3959d49fe5bb27ce15d294">
+ <source>The username is required.</source>
+ <target>Lo nom d’utilizaire es requesit.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="541087322c34e8b26954fd67ff4fc80d1a6c1b33">
+ <source>Name is required.</source>
+ <target>Lo nom es requesit.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="06b5d33d89bb8e6a5013dbd3c07c44389a6f1069">
+ <source>Name must be at least 3 characters long.</source>
+ <target>Lo nom deu almens conténer 3 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a35f2514e29113179795cdb27bca8a2e99c43482">
+ <source>Name cannot be more than 20 characters long.</source>
+ <target>Lo nom pòt pas conténer mai de 20 caractèrs.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="807f79894e0c31beca2db09ca4aff57dfaaf3bb9">
+ <source>Name should be only lowercase alphanumeric characters.</source>
+ <target>Lo nom deu èsser alfanumeric e en minuscula</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="fac936be125163a8494f3d7e7f21d65c7e4f1ff6">
<source>Description cannot be more than 500 characters long.</source>
<target>La descripcion pòt pas conténer mai de 500 caractèrs.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="a0fdb831d4557925dbaa4f8aff7e5035f7506411">
+ <source>Transcode your videos in multiple resolutions</source>
+ <target>Convertir las vidèos en mantunas resolucions</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="590fc27fcbd7dd680da2bb2da644a183338f6bd1">
<source>HTTP import (YouTube, Vimeo, direct URL...)</source>
<target>Importacion HTTP (YouTube, Vimeo, URL dirècta...)</target>
</trans-unit>
<trans-unit id="a7654c3ece96e777527606f1c2870d6ee0b180f7">
<source><x id="INTERPOLATION" equiv-text="{{interval}}"/> days ago</source>
- <target>Fa<x id="INTERPOLATION" equiv-text="{{interval}}"/> jorns</target>
+ <target>fa <x id="INTERPOLATION" equiv-text="{{interval}}"/> jorns</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="5b465235ae55091d32535e23dd180c407f1352d1">
<source><x id="INTERPOLATION" equiv-text="{{interval}}"/> day ago</source>
- <target>Fa <x id="INTERPOLATION" equiv-text="{{interval}}"/> jorn</target>
+ <target>fa <x id="INTERPOLATION" equiv-text="{{interval}}"/> jorn</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>Utilizaire <x id="INTERPOLATION" equiv-text="{{username}}"/> fòrabandit.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>Volètz vertadièrament reabilitar <x id="INTERPOLATION" equiv-text="{{username}}"/> ?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>L’utilizaire <x id="INTERPOLATION" equiv-text="{{username}}"/> es reabilitat.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <target>Se levatz aqueste utilizaire, poiretz pas ne crear un autre amb lo meteis nom d’utilizaire !</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Utilizaire <x id="INTERPOLATION" equiv-text="{{username}}"/> suprimit.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>La requèsta es tròp granda pel servidor. Mercés de contactar l’administrator se volètz aumentar la talha limita.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf">
+ <source>Moderator</source>
+ <target>Moderator</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb">
<source>Only I can see this video</source>
<target>Pas que ieu pòdi veire aquesta vidèo</target>
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
+ <trans-unit id="ngb.datepicker.select-month">
+ <source>Select month</source>
+ <target>Wybierz miesiąc</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ngb.datepicker.select-year">
+ <source>Select year</source>
+ <target>Wybierz rok</target>
+ <context-group name="null">
+ <context context-type="linenumber">16</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ngb.pagination.first">
<source>««</source>
<target>««</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> wyświetleń</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Edytuj</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="450025269732888db1f04cfe6033843110ab65ee">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Subscribe
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Subskrybuj
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">5</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c374edf3b9228d3df6d761bdc8a289e7df0096e8">
+ <source>
+ Unsubscribe
+ </source>
+ <target>
+ Odsubskrybuj
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">18</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d5e5bc7d213694fc0414a76f0ff3085bae44268a">
+ <source>Subscribe via RSS</source>
+ <target>Subskrybuj przez RSS</target>
+ <context-group name="null">
+ <context context-type="linenumber">49</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
<source>Video quota</source>
<target>Powierzchnia na filmy</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Przyczyna…</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtry</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Nie znaleziono wyników
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subskrybentów</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> wyświetleń</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Brak wyników.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<source>Instance</source>
<target>Instancja</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subskrybentów</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Kanały wideo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
+ <trans-unit id="1a5c7f9b1bec1463728f44933f0e256de9c45154">
+ <source>
+ Moderation
+ </source>
+ <target>
+ Moderacja </target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="7bea88c54fdccfdc9f687b0ffe9bf6a653d19368">
<source>
Jobs
<source>Score</source>
<target>Wynik</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
+ <trans-unit id="7823909fb1d8d313382f6f4bd842f1a7ef6f08d1">
+ <source>Accepted</source>
+ <target>Zaakceptowane</target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
+ <source>Pending</source>
+ <target>Oczekiwane</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Manage follows</source>
<target>Zarządzaj śledzeniem</target>
<source>Role</source>
<target>Rola</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">65</context>
</context-group>
</trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Przyczyna…</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Lista użytkowników</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Nazwa użytkownika <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Akcje</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Przejdź na stronę konta</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="0562e455c88234829f3c27a38f3039f027bfd5d2">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Akcje</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Powód:</target>
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
+ <trans-unit id="90868353e7e6f5994109ee1011131cefa992116c">
+ <source>Moderation</source>
+ <target>Moderacja</target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="00ecde6001106fe7406a34cc3459cc5b88e4aec1">
<source>Blacklisted videos</source>
<target>Filmy na czarnej liście</target>
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
+ <trans-unit id="0dd390d056411e1709ec97ec51c46d78600e3f7b">
+ <source>Current password</source>
+ <target>Obecne hasło</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
<source>New password</source>
<target>Nowe hasło</target>
<source>Automatically plays video</source>
<target>Automatycznie odtwarzaj filmy</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Zapisz</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">55</context>
</context-group>
</trans-unit>
+ <trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
+ <source>Or</source>
+ <target>Lub</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0b60d939cf0f1af9fe513f31164d198abf671860">
<source>Import <x id="INTERPOLATION" equiv-text="{{ videoName }}"/></source>
<target>Importuj <x id="INTERPOLATION" equiv-text="{{ videoName }}"/></target>
<context context-type="linenumber">191</context>
</context-group>
</trans-unit>
+ <trans-unit id="9bdd535a2817bf0b843a124bf65e4992625e7ecf">
+ <source>+ Tag</source>
+ <target>+ Tag</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
<source>Video descriptions are truncated by default and require manual action to expand them.</source>
<target>Opisy filmów są automatycznie skracane i wymagają ręcznego działania, aby je rozwinąć.</target>
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
+ <trans-unit id="ac3a02ecd20f41278f1ef7c03f45c1117b4b796d">
+ <source>Torrent (.torrent file)</source>
+ <target>Torrent (plik .torrent)</target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="2db8d7cf6a3071f4c1519ef2b5e2713d9ff4e87f">
+ <source>Torrent (magnet link)</source>
+ <target>Torrent (link magnet)</target>
+ <context-group name="null">
+ <context context-type="linenumber">37</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="da44efc7b658c318651866454d258bbbe57ff21c">
<source>
Cancel
<context context-type="linenumber">51</context>
</context-group>
</trans-unit>
+ <trans-unit id="f672385c803647b063687d3c912e2ce5738b51c8">
+ <source>Blacklist video</source>
+ <target>Dodaj film na czarną listę</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9ed65ae88f6c982bc44d6fed2796e55f47dbf304">
<source>
The video is being transcoded, it may not work properly.
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Przejdź na stronę konta</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Pokaż więcej</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Brak komentarzy.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Zobacz wszystkie <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> odpowiedzi</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Komentarze są wyłączone.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Możesz ustawić niestandardowe <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
+ <trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6">
+ <source>240p</source>
+ <target>240p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Może to spowodować błędy lub problemy z bezpieczeństwem, jeżeli tego nie rozumiesz. </target>
+ <trans-unit id="c8cfad7e7a16c57c42535331b65cb7de40d8402e">
+ <source>360p</source>
+ <target>360p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Czy na pewno chcesz zaktualizować konfigurację?</target>
+ <trans-unit id="48f0af5a0d0bea4e84b27eaf41b19c85a531c2a5">
+ <source>480p</source>
+ <target>480p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Wprowadź</target>
+ <trans-unit id="6f06138daf6363746ff26bfc0cb2491c09cdfdf2">
+ <source>720p</source>
+ <target>720p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>aby potwierdzić.</target>
+ <trans-unit id="65c94f9beb6fe957808c40060da280cc7ace7ab9">
+ <source>1080p</source>
+ <target>1080p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="54adc67482fdaa0d361a2992bc91e064dc61cc9a">
+ <source>100MB</source>
+ <target>100MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="cd34ef1f476d5422f49f6ed429f61fc1cfcb1174">
+ <source>500MB</source>
+ <target>500MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4a47b4beea31cac6e5970b6bc522902f545acc8b">
+ <source>1GB</source>
+ <target>1GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b26d0cac75638623098ab7e06e16b096d1f55cc8">
+ <source>5GB</source>
+ <target>5GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f9fc4e7ec6743cb6f69bea2d0859a655ed44ffae">
+ <source>20GB</source>
+ <target>20GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a56e3f92fe16d97ee4f05051ea61c466ecb51d5e">
+ <source>50GB</source>
+ <target>50GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="31dcc0c63f6234ace8caa84ae1abc33d4022122d">
+ <source>10MB</source>
+ <target>10MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f2f968b6f2199b919f567702c6f23b43e5ea71af">
+ <source>50MB</source>
+ <target>50MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c31575424fe1b2a57064413f3eda7ce657c46c8a">
+ <source>2GB</source>
+ <target>2GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="fc5731a28a99b25c62d43333ceebb250d60aff84">
<source><x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid</source>
<target><x id="INTERPOLATION" equiv-text="{{host}}"/> nie jest prawidowy</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Usunięto użytkownika <x id="INTERPOLATION" equiv-text="{{username}}"/>.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
<source>Password updated.</source>
<target>Zmieniono hasło.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Usunięto użytkownika <x id="INTERPOLATION" equiv-text="{{username}}"/>.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>Zbyt duże żądanie na ten serwer. Skontaktuj się z administratorem, jeżeli chcesz zwiększyć ten limit.</target>
</trans-unit>
<trans-unit id="1b157e15c434469d91e56d027b78bf69c9983165">
<source>Videos from your subscriptions</source>
+ <target>Filmy z twoich subskrypcji</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizações</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Editar</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Video quota</source>
<target>Cota de vídeo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>Banir</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Motivo...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ Um usuário banido não conseguirá mais fazer login.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Banir este usuário</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filtros</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Nenhum resultado encontrado
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> inscritos</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> visualizações</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Nenhum resultado.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<source>Instance</source>
<target>Instância</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> inscritos</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Canais de vídeo</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Importação de vídeo com HTTP habilitada</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Importação de vídeo com um arquivo torrent ou URI magnética habilitada</target>
<source>Score</source>
<target>Pontuação</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Papel</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>Banir <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Motivo...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- Um usuário banido não conseguirá mais fazer login.
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Banir este usuário</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Lista de usuários</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Nome de usuário <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Ações</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Ir para a página da conta</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Motivo do banimento:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Ações</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Motivo:</target>
<source>Ownership changes</source>
<target>Mudanças de dono</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<source>Automatically plays video</source>
<target>Reproduzir vídeo automaticamente</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Salvar</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Ir para a página da conta</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Mostrar mais</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Você pode comentar na página de sua instância na qual esse vídeo está federado com outra conta do PeerTube, ou por meio de qualquer instância fediverse com capacidade para ActivityPub. Por exemplo, com Mastodon ou Pleroma, você pode digitar na caixa de pesquisa <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> e encontrar o vídeo. Capacidades de comentar diretamente estão sendo trabalhadas em <a href='https://github.com/Chocobozzz/PeerTube/issues/470'>#470</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Nenhum comentário.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Ver todas as <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> respostas</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Comentários estão desabilitados.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Você definiu <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/> personalizado. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Isso pode levar a problemas de segurança ou bugs se você não entender.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Tem certeza de que deseja atualizar a configuração?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Por favor, digite</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>para confirmar.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Sucesso</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>Usuário <x id="INTERPOLATION" equiv-text="{{username}}"/> banido.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>Banir</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>Desbanir</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>Você realmente quer desbanir <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target>Usuário <x id="INTERPOLATION" equiv-text="{{username}}"/> foi desbanido.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>Você não pode excluir root.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Usuário <x id="INTERPOLATION" equiv-text="{{username}}"/> excluído.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<target>Propriedade aceita</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>Usuário <x id="INTERPOLATION" equiv-text="{{username}}"/> banido.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>Você realmente quer desbanir <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>Usuário <x id="INTERPOLATION" equiv-text="{{username}}"/> foi desbanido.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Usuário <x id="INTERPOLATION" equiv-text="{{username}}"/> excluído.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>A solicitação é grande demais para o servidor. Entre em contato com seu administrador se quiser aumentar o tamanho do limite.</target>
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
+ <trans-unit id="ngb.datepicker.select-month">
+ <source>Select month</source>
+ <target>Выберите месяц</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ngb.datepicker.select-year">
+ <source>Select year</source>
+ <target>Выберите год</target>
+ <context-group name="null">
+ <context context-type="linenumber">16</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ngb.pagination.first">
<source>««</source>
<target>««</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="ngb.timepicker.increment-hours">
+ <source>Increment hours</source>
+ <target>Увеличение часob</target>
+ <context-group name="null">
+ <context context-type="linenumber">9</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ngb.timepicker.HH">
<source>HH</source>
<target>HH</target>
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="ngb.timepicker.decrement-hours">
+ <source>Decrement hours</source>
+ <target>Сокращение часов</target>
+ <context-group name="null">
+ <context context-type="linenumber">19</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ngb.timepicker.increment-minutes">
+ <source>Increment minutes</source>
+ <target>Увеличение минут</target>
+ <context-group name="null">
+ <context context-type="linenumber">28</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ngb.timepicker.MM">
<source>MM</source>
<target>MM</target>
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="ngb.timepicker.decrement-minutes">
+ <source>Decrement minutes</source>
+ <target>Сокращение минут</target>
+ <context-group name="null">
+ <context context-type="linenumber">38</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ngb.timepicker.increment-seconds">
+ <source>Increment seconds</source>
+ <target>Увеличение секунд</target>
+ <context-group name="null">
+ <context context-type="linenumber">47</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ngb.timepicker.SS">
<source>SS</source>
<target>SS</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> просмотры</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Редактировать</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="9c71feb04c2beab559f79c41c6127815fb9c1a6f">
<source>Video quota</source>
<target>Квота видео</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Причина...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ Забаненый пользователь не сможет больше подсоединиться.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Отправить пользователя в бан</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Критерии</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
поиск не дал результатов
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> подписчики</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> просмотры</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Нет результатов</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
</trans-unit>
<trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
<source>Instance</source>
- <target>СеÑ\80веÑ\80</target>
+ <target>Ð\98нÑ\81Ñ\82анÑ\86иÑ\8f</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
About <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> instance
</source>
<target>
- О <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> сервере
+ О <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> Инстанци
</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</source>
<target>
Для каждого отправленного запроса, трекер возвращает ограниченное количество случайных партнеров.
- Например, при 1000 партнеров в swarm, и при том, что трекер возвращает только 20 партнеров на каждый запрос, нужно 50 запросов, чтоб узнать всех партнеров в swarm
+ Например, при 1000 партнеров в рой, и при том, что трекер возвращает только 20 партнеров на каждый запрос, нужно 50 запросов, чтоб узнать всех партнеров в рой
</target>
<context-group name="null">
<context context-type="linenumber">38</context>
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> подписчики</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Видеоканал</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Импорт видео с помощью HTTP активирован</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Импорт видео с помощью файла торент или magnet URI активирован</target>
<source>Score</source>
<target>Счет</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Host</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Role</source>
<target>Роль</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>Бан <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Причина...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- Забаненый пользователь не сможет больше подсоединиться.
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Отправить пользователя в бан</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Список пользователей</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Имя пользователя <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Действия</target>
- <context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Причины бана:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Действия</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Причины:</target>
<source>Ownership changes</source>
<target>Смена собственника</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<source>Automatically plays video</source>
<target>Воспроизводить автоматически видео</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Сохранить</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">17</context>
</context-group>
</trans-unit>
+ <trans-unit id="f15f2e02b1f6a96553e98ea4a969045d17ec1400">
+ <source>Transcoding threads is required.</source>
+ <target>Транскодирование потоки требуется.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4166cc066b963a23829b48a09e394f73b453fabd">
+ <source>Transcoding threads must be greater or equal to 0.</source>
+ <target>Транскодирование потоков должны быть больше или равно 0.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5db300f6fba918a35597160183205ede13e8e149">
+ <source>Username is required.</source>
+ <target>Имя пользователя требуется.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4eb39d69b74d7a56652ec84fa6826994ee26c0e5">
+ <source>Password is required.</source>
+ <target>Пароль необходим.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="05ad6b99d9bf7b51968aa0b0b939e8627a329bea">
+ <source>Username must be at least 3 characters long.</source>
+ <target>Имя пользователя должно быть длиной не менее 3-х символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1fe26e49476ac701885abc59127e96a3760847f0">
+ <source>Password must be at least 6 characters long.</source>
+ <target>Пароль должен быть длиной не менее 6 символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bdeb1a8e69e137572df795d64120ea85069b7674">
+ <source>Display name must be at least 3 characters long.</source>
+ <target>Отображаемое имя должно иметь длину не менее 3-х символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d531c2261dc0c2739bd7cbb2bb175946b7eeb3ae">
+ <source>Description must be at least 3 characters long.</source>
+ <target>Описание должно быть длиной не менее 3-х символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="6d2c3ebffd49b8933200a6d4e5b74712be49bf00">
+ <source>Ban reason must be at least 3 characters long.</source>
+ <target>Запрет причина должно длиться не менее 3 символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="993f9f5703d449a1d467243db75253d288a2947e">
+ <source>Report reason must be at least 2 characters long.</source>
+ <target>Доклад причина должно быть не менее 2 символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="82e31d0837eaa69a4364e7434d253ce138b3c5c2">
+ <source>Moderation comment must be at least 2 characters long.</source>
+ <target>Модерация комментарий должен быть длиной не менее 2 символа.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="0776b05d442a0a16f083a5eefa52a166b9d514ca">
+ <source>Blacklist reason must be at least 2 characters long.</source>
+ <target>Причина черного списка должна быть не менее 2 символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="06b5d33d89bb8e6a5013dbd3c07c44389a6f1069">
+ <source>Name must be at least 3 characters long.</source>
+ <target>Длина имени должна быть не менее 3 символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e7182e21e9566cc81c83f92727461322f71fd69b">
+ <source>Support text must be at least 3 characters long.</source>
+ <target>Текст поддержки должен содержать не менее 3 символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f5a94cae76685e72f33541b977efdd7845cb0ed6">
+ <source>Comment must be at least 2 characters long.</source>
+ <target>Комментарий должен содержать не менее 2 символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c27cc734f76efd221663921dd0898ea7c8bcbb5c">
+ <source>Video name must be at least 3 characters long.</source>
+ <target>Название видео должно быть не менее 3-х символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="af5e2d5f3ac817c735fb7ff9ca16322789f66fef">
+ <source>Video description must be at least 3 characters long.</source>
+ <target>Описание видео должно быть не менее 3-х символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="665092574f9af9fec262f8349b67b14192391ae6">
+ <source>Video support must be at least 3 characters long.</source>
+ <target>Описание видео должно быть не менее 3-х символов.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="1cadbf82f0e91611321c5abd282f0c23d8ccbfa1">
<source>Subscribed</source>
<target>Подписаться</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visningar</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>Redigera</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
+ <source>Using an ActivityPub account</source>
+ <target>Med ett ActivityPub-konto</target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
<source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
<target>Prenumerera med ett konto på <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></target>
<context context-type="linenumber">40</context>
</context-group>
</trans-unit>
+ <trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
+ <source>Subscribe with a Mastodon account:</source>
+ <target>Prenumerera med ett Mastodon-konto:</target>
+ <context-group name="null">
+ <context context-type="linenumber">43</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
<source>Using a syndication feed</source>
<target>Med ett syndikeringsflöde</target>
<source>Video quota</source>
<target>Videokvot</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>Blockera</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>Anledning …</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ En blockerad användare kommer inte längre kunna logga in.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>Blockera den här användaren</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>Filter</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
Inga resultat hittades
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> prenumeranter</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> visningar</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>Inga resultat.</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="48a5d0af93b94c4575b7f76a47fb3cdee58e6919">
+ <source>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </source>
+ <target>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e093a5a83045ff283f992a93699abb7cb9dd3c1b">
<source>
<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>
<source>Instance</source>
<target>Instans</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> prenumeranter</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>Videokanaler</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>Videoimport med HTTP aktiverad</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>Videoimport med torrentfil eller magnet-URI är tillåten</target>
<source>Score</source>
<target>Poäng</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>Värd</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Accepted</source>
<target>Accepterad</target>
<context-group name="null">
- <context context-type="linenumber">21</context>
+ <context context-type="linenumber">32</context>
</context-group>
</trans-unit>
<trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
<source>Pending</source>
<target>Väntar</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8">
<source>Redundancy allowed</source>
<target>Redundans tillåten</target>
<context-group name="null">
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Role</source>
<target>Roll</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>Blockera <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>Anledning …</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- En blockerad användare kommer inte längre kunna logga in.
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>Blockera den här användaren</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>Användarlista</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>Användarnamn <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>Åtgärder</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>Gå till kontots sida</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>Blockeringsanledning:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
</trans-unit>
<trans-unit id="7e7ad19f1bcc2c33cdba4c1ad25e2b398ad453d9">
<source>State <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
- <target>Tillstånd <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
+ <target>Status <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
<context context-type="linenumber">11</context>
</context-group>
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>Åtgärder</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>Anledning:</target>
<source>Ownership changes</source>
<target>Ändringar av ägarskap</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
+ <trans-unit id="0dd390d056411e1709ec97ec51c46d78600e3f7b">
+ <source>Current password</source>
+ <target>Nuvarande lösenord</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
<source>New password</source>
<target>Nytt lösenord</target>
<source>Automatically plays video</source>
<target>Spela videor automatiskt</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Spara</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="d1a04ba05116499d4cf59a48a282a8bcbf5b622d">
+ <source>Once you delete your account, there is no going back. Please be certain.</source>
+ <target>När du har raderat ditt konto går det inte att ångra. Är du säker på att du vill fortsätta?</target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9a2f889dde4574a6883c853d1034e75891b28c45">
<source>Delete your account</source>
<target>Radera ditt konto</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
+ <source>Or</source>
+ <target>Eller</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0d6558176587662e9bb3b79cca57d42591cf82f9">
<source>Paste magnet URI</source>
<target>Klistra in magnet-URI</target>
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9bdd535a2817bf0b843a124bf65e4992625e7ecf">
+ <source>+ Tag</source>
+ <target>+ Tagg</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8389e9cde2928cc27aaecbdee818a255bf7984b0">
+ <source>Enter a new tag</source>
+ <target>Lägg till en ny tagg</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
<source>Video descriptions are truncated by default and require manual action to expand them.</source>
<target>Videobeskrivningar kortas ner som standard och manuell åtgärd krävs för att visa hela.</target>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>Gå till kontots sida</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>Visa mer</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>Du kan kommentera med ditt PeerTube-konto på din instans sida dit videon är federerad eller via valfri fediverse-instans med stöd för ActivityPub. Med till exempel Mastodon eller Pleroma kan du skriva <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> i sökrutan för att hitta videon. Kommentering direkt härfrån är en funktion vi arbetar på i <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>Inga kommentarer.</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>Visa alla <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> svar</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
Kommentarer har avaktiverats.
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">35</context>
</context-group>
</trans-unit>
+ <trans-unit id="a5a3f17c9b4876952d78363834d57280c8684e7c">
+ <source>
+ Otherwise you can comment using an account on any ActivityPub-compatible instance.
+ On most platforms, you can find the video by typing its URL in the search bar and then comment it
+ from within the software's interface.
+ </source>
+ <target>
+ Annars kan du kommentera med ett konto på en valfri ActivityPub-instans.
+ På de flesta plattformar kan du hitta videon genom att skriva dess URL i sökrutan och kommentera
+ från mjukvarugränssnittet.
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="968b02fbc645be799727de0d1ec3c6f9b11b20eb">
+ <source>
+ If you have an account on Mastodon or Pleroma, you can open it directly in their interface:
+ </source>
+ <target>
+ Om du har ett konto på Mastodon eller Pleroma kan du öppna det direkt därifrån:
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">41</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
<source>Highlighted comment</source>
<target>Markerad kommentar</target>
</trans-unit>
<trans-unit id="369ef5e9c0dd1251abdbf699a5db408bca10777f">
<source>Published <x id="INTERPOLATION" equiv-text="{{totalVideos}}"/> videos</source>
- <target>Publiserade <x id="INTERPOLATION" equiv-text="{{totalVideos}}"/> videor</target>
+ <target>Publicerade <x id="INTERPOLATION" equiv-text="{{totalVideos}}"/> videor</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
+ <source>Error</source>
+ <target>Fel</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
- <source>Error</source>
- <target>Fel</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>Du definierade en egen <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>Detta kan orsaka säkerhetsproblem eller buggar om du inte förstår det.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>Är du säker på att du vill uppdatera konfigurationen?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>Skriv</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>för att bekräfta.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>Åtgärden lyckades</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>Användaren <x id="INTERPOLATION" equiv-text="{{username}}"/> har blockerats.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>Blockera</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>Avsluta blockering</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>Vill du verkligen avsluta blockeringen av <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target>Användaren <x id="INTERPOLATION" equiv-text="{{username}}"/> är inte längre blockerad.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>Du kan inte radera root.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
- <source>If you remove this user, you will not be able to create another with the same username!</source>
- <target>Om du tar bort den här användaren kommer du inte kunna skapa en ny med samma användarnamn!</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>Användaren <x id="INTERPOLATION" equiv-text="{{username}}"/> har raderats.</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<target>Ägarskap accepterat</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="466fc8cf56fd4e4e90fec4b900ef083d52bec38c">
+ <source>You current password is invalid.</source>
+ <target>Ditt nuvarande lösenord är inte giltigt.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ca8e8cf0f1686604db3b6a2ebadab7f7b426a047">
<source>Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.</source>
<target>Är du säker på att du vill radera ditt konto? Detta kommer ta bort all din data, bland annat kanaler och videor.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>Användaren <x id="INTERPOLATION" equiv-text="{{username}}"/> har blockerats.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>Vill du verkligen avsluta blockeringen av <x id="INTERPOLATION" equiv-text="{{username}}"/>?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>Användaren <x id="INTERPOLATION" equiv-text="{{username}}"/> är inte längre blockerad.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <target>Om du tar bort den här användaren kommer du inte kunna skapa en ny med samma användarnamn!</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>Användaren <x id="INTERPOLATION" equiv-text="{{username}}"/> har raderats.</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>Förfrågan är för stor för servern. Kontakta gärna din administratör om du vill öka storleksbegränsningen.</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf">
+ <source>Moderator</source>
+ <target>Moderator</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb">
<source>Only I can see this video</source>
<target>Endast jag kan se den här videon</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次观看</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>编辑</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
+ <source>Using an ActivityPub account</source>
+ <target>使用 ActivityPub 帐户</target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
<source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
<target>使用 <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/> 上的帐户订阅</target>
<context context-type="linenumber">40</context>
</context-group>
</trans-unit>
+ <trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
+ <source>Subscribe with a Mastodon account:</source>
+ <target>使用 Mastodon 帐户订阅:</target>
+ <context-group name="null">
+ <context context-type="linenumber">43</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
<source>Using a syndication feed</source>
<target>使用聚合信息源</target>
<source>Video quota</source>
<target>视频存储空间</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>封禁</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>原因...</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ 被封禁的用户将无法登录。
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>封禁此用户</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>过滤</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
没有结果
</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> 位订阅者</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> 次观看</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<source>No results.</source>
<target>没有结果。</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="48a5d0af93b94c4575b7f76a47fb3cdee58e6919">
+ <source>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </source>
+ <target>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e093a5a83045ff283f992a93699abb7cb9dd3c1b">
<source>
<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>
<source>Instance</source>
<target>实例</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> 位订阅者</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>视频频道</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>允许通过 HTTP 导入视频</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>允许通过种子文件或磁力链导入视频</target>
<source>Score</source>
<target>评分</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>主机名</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<source>Accepted</source>
<target>已接受</target>
<context-group name="null">
- <context context-type="linenumber">21</context>
+ <context context-type="linenumber">32</context>
</context-group>
</trans-unit>
<trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
<source>Pending</source>
<target>等待中</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8">
<source>Redundancy allowed</source>
<target>允许冗余备份</target>
<context-group name="null">
- <context context-type="linenumber">11</context>
+ <context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Role</source>
<target>角色</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>封禁 <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>原因...</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- 被封禁的用户将无法登录。
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>封禁此用户</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>用户列表</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>用户名 <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>操作</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>转到帐户页面</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>封禁理由:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>操作</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>理由:</target>
<source>Ownership changes</source>
<target>视频转移</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
+ <trans-unit id="0dd390d056411e1709ec97ec51c46d78600e3f7b">
+ <source>Current password</source>
+ <target>当前密码</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
<source>New password</source>
<target>新密码</target>
<source>Automatically plays video</source>
<target>自动播放视频</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>保存</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="d1a04ba05116499d4cf59a48a282a8bcbf5b622d">
+ <source>Once you delete your account, there is no going back. Please be certain.</source>
+ <target>帐户一旦被删除,您将无法撤销此操作。继续前请确认您是否真的想要删除帐户。</target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9a2f889dde4574a6883c853d1034e75891b28c45">
<source>Delete your account</source>
<target>删除您的帐户</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
+ <source>Or</source>
+ <target>或者</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0d6558176587662e9bb3b79cca57d42591cf82f9">
<source>Paste magnet URI</source>
<target>粘贴磁力链</target>
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9bdd535a2817bf0b843a124bf65e4992625e7ecf">
+ <source>+ Tag</source>
+ <target>+ 标签</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8389e9cde2928cc27aaecbdee818a255bf7984b0">
+ <source>Enter a new tag</source>
+ <target>输入新的标签</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
<source>Video descriptions are truncated by default and require manual action to expand them.</source>
<target>视频说明默认只展示一部分,用户需要手动展开才能显示完整内容。</target>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>转到帐户页面</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>展开</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>您可以在您使用的 PeerTube 实例上使用您的帐户对此视频进行评论(您需要在您的实例上找到此视频),或者通过任意一个使用 ActivityPub 标准的实例发送评论。以 Mastodon 和 Pleroma 为例,您需要在搜索框中输入 <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> 并在搜索结果中找到此视频。直接评论功能尚在开发中,详情请参见 <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>。</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>尚无评论。</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>查看全部 <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> 条回复</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
评论功能已停用。
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">35</context>
</context-group>
</trans-unit>
+ <trans-unit id="a5a3f17c9b4876952d78363834d57280c8684e7c">
+ <source>
+ Otherwise you can comment using an account on any ActivityPub-compatible instance.
+ On most platforms, you can find the video by typing its URL in the search bar and then comment it
+ from within the software's interface.
+ </source>
+ <target>
+ 您也可以使用兼容 ActivityPub 标准的实例帐户参与评论。
+ 对于绝大多数平台,您可以在搜索框中输入 URL,然后即可在界面内进行评论。
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="968b02fbc645be799727de0d1ec3c6f9b11b20eb">
+ <source>
+ If you have an account on Mastodon or Pleroma, you can open it directly in their interface:
+ </source>
+ <target>
+ 如果您在 Mastodon 或 Pleroma 上有帐户,您可以直接在对应的界面中打开:
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">41</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
<source>Highlighted comment</source>
<target>所要查看的评论</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
+ <source>Error</source>
+ <target>错误</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6">
<source>240p</source>
<target>240p</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
- <source>Error</source>
- <target>错误</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>您设置了自定义 <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>除非您清楚自己在做什么,否则这可能会造成安全隐患或使网站运行不正常。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>您确定要更新设置吗?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>请输入</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>以确认操作。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
<source>Success</source>
<target>成功</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>用户 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已封禁。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>封禁</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>解除封禁</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>您确定要解除对 <x id="INTERPOLATION" equiv-text="{{username}}"/> 的封禁吗?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target>用户 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已解除封禁。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>您无法删除 root 用户。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
- <source>If you remove this user, you will not be able to create another with the same username!</source>
- <target>一旦删除此用户,你将无法再使用此用户名创建新用户!</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>用户 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已删除。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<target>转移已接受</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="466fc8cf56fd4e4e90fec4b900ef083d52bec38c">
+ <source>You current password is invalid.</source>
+ <target>您的当前密码不正确。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ca8e8cf0f1686604db3b6a2ebadab7f7b426a047">
<source>Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.</source>
<target>您确定要删除您的帐户吗?这将删除您的全部数据,包括频道和视频等。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>用户 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已封禁。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>您确定要解除对 <x id="INTERPOLATION" equiv-text="{{username}}"/> 的封禁吗?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>用户 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已解除封禁。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <target>一旦删除此用户,你将无法再使用此用户名创建新用户!</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>用户 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已删除。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>请求已超过限制。请联系管理员以提升限制。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf">
+ <source>Moderator</source>
+ <target>监察员</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb">
<source>Only I can see this video</source>
<target>只有我能看到此视频</target>
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
+ <trans-unit id="ngb.datepicker.select-month">
+ <source>Select month</source>
+ <target>選取月份</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ngb.datepicker.select-year">
+ <source>Select year</source>
+ <target>選取年份</target>
+ <context-group name="null">
+ <context context-type="linenumber">16</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ngb.pagination.first">
<source>««</source>
<target>««</target>
<source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次檢視</target>
<context-group name="null">
- <context context-type="linenumber">13</context>
+ <context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Edit</source>
<target>編輯</target>
<context-group name="null">
- <context context-type="linenumber">5</context>
+ <context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
+ <trans-unit id="450025269732888db1f04cfe6033843110ab65ee">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ Subscribe
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>
+ 訂閱
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>
+ <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
+ <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">5</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c374edf3b9228d3df6d761bdc8a289e7df0096e8">
+ <source>
+ Unsubscribe
+ </source>
+ <target>
+ 取消訂閱
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">18</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
+ <source>Using an ActivityPub account</source>
+ <target>使用 ActivityPub 帳號</target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
+ <source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
+ <target>使用 <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/> 上的帳號訂閱</target>
+ <context-group name="null">
+ <context context-type="linenumber">39</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e7adf422424a61b71465d183f9d44bf956482ef0">
+ <source>Subscribe with your local account</source>
+ <target>以您的本地帳號訂閱</target>
+ <context-group name="null">
+ <context context-type="linenumber">40</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
+ <source>Subscribe with a Mastodon account:</source>
+ <target>使用 Mastodon 帳號訂閱:</target>
+ <context-group name="null">
+ <context context-type="linenumber">43</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
+ <source>Using a syndication feed</source>
+ <target>使用聯合供稿</target>
+ <context-group name="null">
+ <context context-type="linenumber">48</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="d5e5bc7d213694fc0414a76f0ff3085bae44268a">
+ <source>Subscribe via RSS</source>
+ <target>透過 RSS 訂閱</target>
+ <context-group name="null">
+ <context context-type="linenumber">49</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4913054c95f5ba14c351ab1b787f7abac97bfdd3">
+ <source>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>Remote subscribe<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Remote interact<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </source>
+ <target>
+ <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>遠端訂閱<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>遠端實體<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">10</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="319933e1af77ca2e35b75a5e9270a3c90e83dd4b">
+ <source>You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there.</source>
+ <target>您可以透過任何相容於 ActivityPub 的聯盟實體訂閱。例如 Mastodon 或 Pleroma,您可以在搜尋框輸入頻道 URL 以訂閱。</target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="2767d5461b6c622ccdeb868df8becf26bc16b99a">
+ <source>You can interact with this via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the current URL in the search box and interact with it there.</source>
+ <target>您可以透過任何相容於 ActivityPub 的聯盟實體進行互動。例如 Mastodon 或 Pleroma,您可以在搜尋框中輸入目前的 URL 並在那裡與其互動。</target>
+ <context-group name="null">
+ <context context-type="linenumber">22</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
<source>Video quota</source>
<target>影片配額</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
+ <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
+ <source>Ban</source>
+ <target>阻擋</target>
+ <context-group name="null">
+ <context context-type="linenumber">3</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
+ <source>Reason...</source>
+ <target>理由……</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
+ <source>
+ A banned user will no longer be able to login.
+ </source>
+ <target>
+ 被阻擋的使用者將不再能登入。
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">17</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
+ <source>Ban this user</source>
+ <target>阻擋此使用者</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
- <trans-unit id="1298c1d2bbbb7415f5494e800f6775fdb70f4df6">
- <source>Filters</source>
- <target>過濾器</target>
- <context-group name="null">
- <context context-type="linenumber">16</context>
- </context-group>
- </trans-unit>
<trans-unit id="e2dbf0426cbb0b573faf49dffeb7d5bdf16eda5d">
<source>
No results found
</source>
<target>沒有結果</target>
<context-group name="null">
- <context context-type="linenumber">25</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="10341623e991a4185990a0c3c76ac2bc3543cc4a">
<source><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> 個訂閱者</target>
<context-group name="null">
- <context context-type="linenumber">41</context>
+ <context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="602281e45fe8b79748e3fbf21c432379fcb58883">
<source><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ result.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ result.views | myNumberFormatter }}"/> 次檢視</target>
<context-group name="null">
- <context context-type="linenumber">52</context>
+ <context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
<context context-type="linenumber">25</context>
</context-group>
</trans-unit>
+ <trans-unit id="4752e5e33da1c3396d3248eb8fef59bca5d00cb3">
+ <source>Show keyboard shortcuts</source>
+ <target>顯示鍵盤快捷鍵</target>
+ <context-group name="null">
+ <context context-type="linenumber">91</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="cf75021ac8cb9efd4f95e8880cf52c9acd265768">
<source>Toggle dark interface</source>
<target>切換至暗色介面</target>
<source>No results.</source>
<target>沒有結果</target>
<context-group name="null">
- <context context-type="linenumber">7</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="2290d09f4f113351baa9152ca8ad14cd03a11ba6">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="48a5d0af93b94c4575b7f76a47fb3cdee58e6919">
+ <source>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </source>
+ <target>
+ <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>#<x id="INTERPOLATION" equiv-text="{{ object.tag }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">14</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e093a5a83045ff283f992a93699abb7cb9dd3c1b">
<source>
<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>
<source>Instance</source>
<target>實體</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
<source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
<target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> 個訂閱者</target>
<context-group name="null">
- <context context-type="linenumber">12</context>
+ <context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
<source>Video channels</source>
<target>影片頻道</target>
<context-group name="null">
- <context context-type="linenumber">19</context>
+ <context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
- <trans-unit id="e9964673c94eb0b4ff8088c84018217c031f31ce">
- <source>Video import with HTTP enabled</source>
- <target>已啟用 HTTP 匯入影片</target>
- <context-group name="null">
- <context context-type="linenumber">115</context>
- </context-group>
- </trans-unit>
<trans-unit id="05fdf7b5be1c3a7126e3c06d81da3134981b0a9e">
<source>Video import with a torrent file or a magnet URI enabled</source>
<target>已啟用種子檔案或磁力連結匯入影片</target>
<source>Score</source>
<target>分數</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
<source>Host</source>
<target>主機</target>
<context-group name="null">
- <context context-type="linenumber">8</context>
+ <context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
+ <trans-unit id="7823909fb1d8d313382f6f4bd842f1a7ef6f08d1">
+ <source>Accepted</source>
+ <target>已接受</target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="e6a27066251ca1e04c5be86ad758380856df2506">
+ <source>Pending</source>
+ <target>擱置中</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1d729bcbe3529d2fe2295b7a3a41282ee09de2c8">
+ <source>Redundancy allowed</source>
+ <target>允許冗餘</target>
+ <context-group name="null">
+ <context context-type="linenumber">22</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
<source>Manage follows</source>
<target>管理追蹤</target>
<source>Role</source>
<target>角色</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
- <trans-unit id="ffd94bfbcc0363386484e45e8bdc7b2361a95a33">
- <source>Ban <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></source>
- <target>阻擋 <x id="INTERPOLATION" equiv-text="{{ userToBan.username }}"/></target>
- <context-group name="null">
- <context context-type="linenumber">3</context>
- </context-group>
- </trans-unit>
- <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
- <source>Reason...</source>
- <target>理由……</target>
- <context-group name="null">
- <context context-type="linenumber">11</context>
- </context-group>
- </trans-unit>
- <trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
- <source>
- A banned user will no longer be able to login.
- </source>
- <target>
- 被阻擋的使用者將不再能登入。
- </target>
- <context-group name="null">
- <context context-type="linenumber">17</context>
- </context-group>
- </trans-unit>
- <trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
- <source>Ban this user</source>
- <target>阻擋此使用者</target>
- <context-group name="null">
- <context context-type="linenumber">25</context>
- </context-group>
- </trans-unit>
<trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
<source>Users list</source>
<target>使用者清單</target>
<source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></source>
<target>使用者名稱 <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/></target>
<context-group name="null">
- <context context-type="linenumber">17</context>
+ <context context-type="linenumber">40</context>
</context-group>
</trans-unit>
- <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
- <source>Actions</source>
- <target>å\8b\95ä½\9c</target>
+ <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
+ <source>Go to the account page</source>
+ <target>å\88°å¸³è\99\9fé \81é\9d¢</target>
<context-group name="null">
- <context context-type="linenumber">33</context>
+ <context context-type="linenumber">133</context>
</context-group>
</trans-unit>
<trans-unit id="a9587caabf0dc5d824f817baae1c2f5521d9b1ee">
<source>Ban reason:</source>
<target>阻擋理由:</target>
<context-group name="null">
- <context context-type="linenumber">51</context>
+ <context context-type="linenumber">82</context>
</context-group>
</trans-unit>
<trans-unit id="bb863c794307735652d8695143e116eaee8a3c4f">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
+ <trans-unit id="030b4423b92167200e39519599f9b863b4f7c62c">
+ <source>Actions</source>
+ <target>動作</target>
+ <context-group name="null">
+ <context context-type="linenumber">33</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e330cbadca2d8639aabf525d5fe7e5b62d324ee2">
<source>Reason:</source>
<target>理由:</target>
<source>Ownership changes</source>
<target>所有權變更</target>
<context-group name="null">
- <context context-type="linenumber">22</context>
+ <context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
<context context-type="linenumber">8</context>
</context-group>
</trans-unit>
+ <trans-unit id="3a5d57052d13d2da1cbcffdbb8effb9874b1595a">
+ <source>You don't have any subscriptions yet.</source>
+ <target>您還沒有任何訂閱。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="c65641c36859c328928e6b0f14c3f913886f8add">
<source>Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/></source>
<target>由 <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/> 建立</target>
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
+ <trans-unit id="0dd390d056411e1709ec97ec51c46d78600e3f7b">
+ <source>Current password</source>
+ <target>目前的密碼</target>
+ <context-group name="null">
+ <context context-type="linenumber">7</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
<source>New password</source>
<target>新密碼</target>
<source>Automatically plays video</source>
<target>自動播放影片</target>
<context-group name="null">
- <context context-type="linenumber">20</context>
+ <context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>儲存</target>
<context-group name="null">
- <context context-type="linenumber">23</context>
+ <context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="d1a04ba05116499d4cf59a48a282a8bcbf5b622d">
+ <source>Once you delete your account, there is no going back. Please be certain.</source>
+ <target>一旦您刪除了您的帳號,就不能回頭了。請考慮清楚。</target>
+ <context-group name="null">
+ <context context-type="linenumber">2</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9a2f889dde4574a6883c853d1034e75891b28c45">
<source>Delete your account</source>
<target>刪除您的帳號</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="5e420747842373fa99a75a7a18df068cc81e46fb">
+ <source>Scheduled</source>
+ <target>排定</target>
+ <context-group name="null">
+ <context context-type="linenumber">25</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
<source>Publish will be available when upload is finished</source>
<target>上傳完成時將可發佈</target>
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
+ <trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
+ <source>Or</source>
+ <target>或</target>
+ <context-group name="null">
+ <context context-type="linenumber">11</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0d6558176587662e9bb3b79cca57d42591cf82f9">
<source>Paste magnet URI</source>
<target>貼上磁力連結</target>
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
+ <trans-unit id="9bdd535a2817bf0b843a124bf65e4992625e7ecf">
+ <source>+ Tag</source>
+ <target>+ 標籤</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="8389e9cde2928cc27aaecbdee818a255bf7984b0">
+ <source>Enter a new tag</source>
+ <target>輸入新標籤</target>
+ <context-group name="null">
+ <context context-type="linenumber">21</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
<source>Video descriptions are truncated by default and require manual action to expand them.</source>
<target>預設情況下,影片描述不會完整顯示,需要手動操作才能展開它們。</target>
<context context-type="linenumber">155</context>
</context-group>
</trans-unit>
+ <trans-unit id="e687f6387adbaf61ce650b58f0e60ca42d843cee">
+ <source>Already uploaded ✔</source>
+ <target>已上傳 ✔</target>
+ <context-group name="null">
+ <context context-type="linenumber">159</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ca4588e185413b2fc77dbe35c861cc540b11b9ad">
+ <source>Will be created on update</source>
+ <target>將在更新時建立</target>
+ <context-group name="null">
+ <context context-type="linenumber">167</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="308a79679d012938a625e41fdd4b804fe42b57b9">
<source>Cancel create</source>
<target>取消建立</target>
<context context-type="linenumber">169</context>
</context-group>
</trans-unit>
+ <trans-unit id="b6bfdd386cb0b560d697c93555d8cd8cab00c393">
+ <source>Will be deleted on update</source>
+ <target>將在更新時刪除</target>
+ <context-group name="null">
+ <context context-type="linenumber">175</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="88395fc0137e46a9853cf16762bf5a87687d0d0c">
<source>Cancel deletion</source>
<target>取消刪除</target>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
+ <trans-unit id="82f867b2607d45ba36de11d4c8b53d7177122ee0">
+ <source>
+ No captions for now.
+ </source>
+ <target>
+ 現在沒有字幕。
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">182</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c720e0dd9e6c60095f961cb714f47e8c0090f93">
<source>Captions</source>
<target>字幕</target>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
- <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
- <source>Go to the account page</source>
- <target>到帳號頁面</target>
- <context-group name="null">
- <context context-type="linenumber">133</context>
- </context-group>
- </trans-unit>
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
<source>Show more</source>
<target>顯示更多</target>
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
- <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
- <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> and find back the video. Direct commenting capabilities are being worked on in <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a>.</source>
- <target>您可以對此影片使用有與您的 PeerTube 帳號在互聯的實體上評論,或是透過任何支援 ActivityPub 的互聯實體來進行。例如 Mastodon 或 Pleroma,您可以在搜尋欄輸入 <strong>@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/></strong> 並搜尋影片。直接評論的功能還在 <a href='https://github.com/Chocobozzz/PeerTube/issues/224'>#224</a> 上繼續努力實現。</target>
- <context-group name="null">
- <context context-type="linenumber">8</context>
- </context-group>
- </trans-unit>
<trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
<source>No comments.</source>
<target>沒有評論。</target>
<context-group name="null">
- <context context-type="linenumber">18</context>
+ <context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
<source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
<target>檢視全部 <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> 個回覆</target>
<context-group name="null">
- <context context-type="linenumber">55</context>
+ <context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
評論已停用。
</target>
<context-group name="null">
- <context context-type="linenumber">64</context>
+ <context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
<context context-type="linenumber">20</context>
</context-group>
</trans-unit>
+ <trans-unit id="8b2bb53dfb5f059f2b68cc4ac00661a865909135">
+ <source>You are one step away from commenting</source>
+ <target>您離評論只有一步之遙</target>
+ <context-group name="null">
+ <context context-type="linenumber">28</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="7984a44ce86b961f4f18c9a58c638f5e8f07a225">
+ <source>
+ If you have an account on this instance, you can login:
+ </source>
+ <target>
+ 如果您在此實體上有帳號,您可以登入:
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">32</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="afe0ad39fee662489f1033e53aea3e16a7e89228">
+ <source>login to comment</source>
+ <target>登入以評論</target>
+ <context-group name="null">
+ <context context-type="linenumber">35</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a5a3f17c9b4876952d78363834d57280c8684e7c">
+ <source>
+ Otherwise you can comment using an account on any ActivityPub-compatible instance.
+ On most platforms, you can find the video by typing its URL in the search bar and then comment it
+ from within the software's interface.
+ </source>
+ <target>
+ 或者您也可以使用在任何相容於 ActibityPub 的實體上的帳號評論。
+ 在大多數的平臺上,您可以透過輸入 URL 來找到影片,從而對其評論
+ 從軟體的界面。
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">36</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="968b02fbc645be799727de0d1ec3c6f9b11b20eb">
+ <source>
+ If you have an account on Mastodon or Pleroma, you can open it directly in their interface:
+ </source>
+ <target>
+ 如果您有 Mastodon 或 Pleroma 的帳號,您可以在他們的界面中直接開啟它:
+ </target>
+ <context-group name="null">
+ <context context-type="linenumber">41</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
<source>Highlighted comment</source>
<target>已突顯的評論</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
- <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
- <target>您可以設定自訂 <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>。</target>
+ <trans-unit id="d9fc2b03f04056671d7d4ffcac7197189d959cd6">
+ <source>240p</source>
+ <target>240p</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c8cfad7e7a16c57c42535331b65cb7de40d8402e">
+ <source>360p</source>
+ <target>360p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
- <source>This could lead to security issues or bugs if you do not understand it. </source>
- <target>這可能會導致安全性問題或臭蟲。若您不了解它。</target>
+ <trans-unit id="48f0af5a0d0bea4e84b27eaf41b19c85a531c2a5">
+ <source>480p</source>
+ <target>480p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
- <source>Are you sure you want to update the configuration?</source>
- <target>您確定您想要更新設定嗎?</target>
+ <trans-unit id="6f06138daf6363746ff26bfc0cb2491c09cdfdf2">
+ <source>720p</source>
+ <target>720p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
- <source>Please type</source>
- <target>請輸入</target>
+ <trans-unit id="65c94f9beb6fe957808c40060da280cc7ace7ab9">
+ <source>1080p</source>
+ <target>1080p</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
- <source>to confirm.</source>
- <target>以確認。</target>
+ <trans-unit id="421a937491f19774d17eefa1d24816dae1a9f111">
+ <source>Auto (via ffmpeg)</source>
+ <target>自動(透過 ffmpeg)</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="54adc67482fdaa0d361a2992bc91e064dc61cc9a">
+ <source>100MB</source>
+ <target>100MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="cd34ef1f476d5422f49f6ed429f61fc1cfcb1174">
+ <source>500MB</source>
+ <target>500MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="4a47b4beea31cac6e5970b6bc522902f545acc8b">
+ <source>1GB</source>
+ <target>1GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="b26d0cac75638623098ab7e06e16b096d1f55cc8">
+ <source>5GB</source>
+ <target>5GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f9fc4e7ec6743cb6f69bea2d0859a655ed44ffae">
+ <source>20GB</source>
+ <target>20GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="a56e3f92fe16d97ee4f05051ea61c466ecb51d5e">
+ <source>50GB</source>
+ <target>50GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="31dcc0c63f6234ace8caa84ae1abc33d4022122d">
+ <source>10MB</source>
+ <target>10MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="f2f968b6f2199b919f567702c6f23b43e5ea71af">
+ <source>50MB</source>
+ <target>50MB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="c31575424fe1b2a57064413f3eda7ce657c46c8a">
+ <source>2GB</source>
+ <target>2GB</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="fc5731a28a99b25c62d43333ceebb250d60aff84">
<source><x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid</source>
<target><x id="INTERPOLATION" equiv-text="{{host}}"/> 無效</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="4d8f527638f3e0b518a96e07d41d886bcce01246">
+ <source>enabled</source>
+ <target>已啟用</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="795733aac948794cadeb3be6386882efac2c38ad">
+ <source>disabled</source>
+ <target>已停用</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="1123807fc813c816404598147173403d00117557">
+ <source>Redundancy for <x id="INTERPOLATION" equiv-text="{{host}}"/> is <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/></source>
+ <target>冗餘 <x id="INTERPOLATION" equiv-text="{{host}}"/> is <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/></target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="800cd3cdf47751b576587259ba3a1bc0a7f435b6">
<source>Comment updated.</source>
<target>評論已更新。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
- <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已阻擋。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
- <source>Ban</source>
- <target>阻擋</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="50dc7afa2305131cdbdb384cfc1f2a5f0f4647d8">
<source>Unban</source>
<target>取消阻擋</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
- <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
- <target>您真的想要取消阻擋 <x id="INTERPOLATION" equiv-text="{{username}}"/> 嗎?</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
- <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
- <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已取消阻擋。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
<source>You cannot delete root.</source>
<target>您無法刪除 root。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
- <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
- <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
- <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已刪除。</target>
- <context-group name="null">
- <context context-type="linenumber">1</context>
- </context-group>
- </trans-unit>
<trans-unit id="507192ee1fa84aefed02d603caada2d84927023e">
<source>Ownership accepted</source>
<target>所有權已接受</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="466fc8cf56fd4e4e90fec4b900ef083d52bec38c">
+ <source>You current password is invalid.</source>
+ <target>您目前密碼無效。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="ca8e8cf0f1686604db3b6a2ebadab7f7b426a047">
<source>Are you sure you want to delete your account? This will delete all you data, including channels, videos etc.</source>
<target>您確定要刪除您的帳號?這將會刪除您所有的資料,包含頻道、影片等。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="5c0c574151dc8671d9199980ee04bf65aec3b452">
+ <source>Keyboard Shortcuts:</source>
+ <target>鍵盤快捷鍵:</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="247071f6c9233b7e5bc1d8f46795ab6b032f1fbe">
<source>Incorrect username or password.</source>
<target>不正確的使用者名稱或密碼。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="3ab99e62550869aebc85661fca2faf46785263dd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.</source>
+ <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已阻擋。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="faafee0c03ad25c8a43aa91bd5d98185b67ff734">
+ <source>Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?</source>
+ <target>您真的想要取消阻擋 <x id="INTERPOLATION" equiv-text="{{username}}"/> 嗎?</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="925ba9946b7b256a586f0fcbe3e04fa7a0dee7bd">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.</source>
+ <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已取消阻擋。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
+ <source>If you remove this user, you will not be able to create another with the same username!</source>
+ <target>如果您移除此使用者,您就沒辦法再使用同一個使用者名稱來建立另一個使用者!</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
+ <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
+ <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已刪除。</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
<source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
<target>請求對伺服器來說太大。若您想要增加限制大小,請聯絡您的管理員。</target>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="38c877fb0a5fdcadc379256953ad2d1eb8233fdf">
+ <source>Moderator</source>
+ <target>主持人</target>
+ <context-group name="null">
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="d4195053fd38eacf6dee1fc507296928978cc8fb">
<source>Only I can see this video</source>
<target>只有我可以看見此影片</target>
-{"Audio Player":"Audio-Player","Video Player":"Video-Player","Play":"Wiedergabe","Pause":"Wiedergabe pausieren","Replay":"Nochmal","Current Time":"Aktuelle Zeit","Duration":"Länge","Remaining Time":"Verbleibende Zeit","Stream Type":"Streamtyp","LIVE":"Live","Loaded":"Geladen","Progress":"Fortschritt","Progress Bar":"Fortschrittsanzeige","progress bar timing: currentTime={1} duration={2}":"{1} von {2}","Fullscreen":"Vollbildschirm","Non-Fullscreen":"Kein Vollbildschirm","Mute":"Ton aus","Unmute":"Ton an","Playback Rate":"Wiedergabegeschwindigkeit","Subtitles":"Untertitel","subtitles off":"Untertitel aus","Captions":"Untertitel für Gehörlose und Schwerhörige","captions off":"Untertitel für Gehörlose und Schwerhörige aus","Chapters":"Kapitel","Descriptions":"Beschreibungen","descriptions off":"Beschreibungen aus","Audio Track":"Tonspur","Volume Level":"Lautstärke","You aborted the media playback":"Du hast die Medienwiedergabe abgebrochen.","A network error caused the media download to fail part-way.":"Ein Netzwerkfehler hat das Herunterladen des Videos teilweise verhindert.","The media could not be loaded, either because the server or network failed or because the format is not supported.":"Es ist ein Fehler beim Laden aufgetreten. Das kann an einer fehlenden Netzwerk-Verbindung liegen oder daran, dass das Format nicht unterstützt wird.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Die Medienwiedergabe wurde abgebrochen, weil die erhaltenen Daten entweder fehlerhaft sind vom aktuellen Browser nicht unterstützt werden.","No compatible source was found for this media.":"Es konnte keine kompatible Quelle gefunden werden.","The media is encrypted and we do not have the keys to decrypt it.":"Die Daten sind verschlüsselt und es liegen keine Schlüssel dafür vor.","Play Video":"Video abspielen","Close":"Schließen","Close Modal Dialog":"Dialogfenster schließen","Modal Window":"Dialogfenster","This is a modal window":"Dies ist ein Dialogfenster.","This modal can be closed by pressing the Escape key or activating the close button.":"Dieses Dialogfenster kann geschlossen werden, indem man die Escape-Taste drückt oder auf die Schaltfläche zum Schließen des Fenster klickt.",", opens captions settings dialog":", öffnet die Einstellungen für Untertitel für Gehörlose und Schwerhörige",", opens subtitles settings dialog":", öffnet die Einstellungen für Untertitel",", opens descriptions settings dialog":", öffnet die Einstellungen für Beschreibungen",", selected":", ausgewählt","captions settings":"Einstellungen für Untertitel für Gehörlose und Schwerhörige","subtitles settings":"Einstellungen für Untertitel","descriptions settings":"Einstellungen für Beschreibungen","Text":"Text","White":"Weiß","Black":"Schwarz","Red":"Rot","Green":"Grün","Blue":"Blau","Yellow":"Gelb","Magenta":"Magenta","Cyan":"Cyan","Background":"Hintergrund","Window":"Fenster","Transparent":"durchsichtig","Semi-Transparent":"halbdurchsichtig","Opaque":"undurchsichtig","Font Size":"Schriftgröße","Text Edge Style":"Textkantenstil","None":"Nichts","Raised":"Erhöht","Depressed":"Erniedrigt","Uniform":"Gleichmäßig","Dropshadow":"Schlagschatten","Font Family":"Schriftart","Proportional Sans-Serif":"Proportionale Grotesk","Monospace Sans-Serif":"Nichtproportionale Grotesk","Proportional Serif":"Proportionale Serifen-Schrit","Monospace Serif":"Nichtproportionale Serifen-Schrift","Casual":"Gewöhnlich","Script":"Schreibschrift","Small Caps":"Kapitälchen","Reset":"Zurücksetzen","restore all settings to the default values":"Alle Einstellungen auf ihre Standardwerte zurücksetzen","Done":"Fertig","Caption Settings Dialog":"Dialogfenster für Einstellungen für Untertitel für Gehörlose und Schwerhörige","Beginning of dialog window. Escape will cancel and close the window.":"Anfang des Dialogfensters. Mit der Escape-Taste wird das Fenster ohne Speichern geschlossen.","End of dialog window.":"Ende des Dialogfensters.","{1} is loading.":"{1} lädt.","Quality":"Qualität","Auto":"Automatisch","Speed":"Geschwindigkeit","Subtitles/CC":"Untertitel","peers":"Peers","Go to the video page":"Zur Video-Seite gehen","Settings":"Einstellungen","Uses P2P, others may know you are watching this video.":"Nutzt Peer-to-Peer-Technologie, daher könnten andere wissen, dass du dieses Video ansiehst.","Copy the video URL":"Video-URL kopieren","Copy the video URL at the current time":"Video-URL an dieser Stelle kopieren","Copy embed code":"Einbettungscode kopieren"}
\ No newline at end of file
+{"Audio Player":"Audio-Player","Video Player":"Video-Player","Play":"Wiedergabe","Pause":"Wiedergabe pausieren","Replay":"Nochmal","Current Time":"Aktuelle Zeit","Duration":"Länge","Remaining Time":"Verbleibende Zeit","Stream Type":"Streamtyp","LIVE":"Live","Loaded":"Geladen","Progress":"Fortschritt","Progress Bar":"Fortschrittsanzeige","progress bar timing: currentTime={1} duration={2}":"{1} von {2}","Fullscreen":"Vollbild","Non-Fullscreen":"Vollbild beenden","Mute":"Ton aus","Unmute":"Ton an","Playback Rate":"Wiedergabegeschwindigkeit","Subtitles":"Untertitel","subtitles off":"Untertitel aus","Captions":"Untertitel für Gehörlose und Schwerhörige","captions off":"Untertitel für Gehörlose und Schwerhörige aus","Chapters":"Kapitel","Descriptions":"Beschreibungen","descriptions off":"Beschreibungen aus","Audio Track":"Tonspur","Volume Level":"Lautstärke","You aborted the media playback":"Du hast die Medienwiedergabe abgebrochen.","A network error caused the media download to fail part-way.":"Ein Netzwerkfehler hat das Herunterladen des Videos teilweise verhindert.","The media could not be loaded, either because the server or network failed or because the format is not supported.":"Es ist ein Fehler beim Laden aufgetreten. Das kann an einer fehlenden Netzwerk-Verbindung liegen oder daran, dass das Format nicht unterstützt wird.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Die Medienwiedergabe wurde abgebrochen, weil die erhaltenen Daten entweder fehlerhaft sind vom aktuellen Browser nicht unterstützt werden.","No compatible source was found for this media.":"Es konnte keine kompatible Quelle gefunden werden.","The media is encrypted and we do not have the keys to decrypt it.":"Die Daten sind verschlüsselt und es liegen keine Schlüssel dafür vor.","Play Video":"Video abspielen","Close":"Schließen","Close Modal Dialog":"Dialogfenster schließen","Modal Window":"Dialogfenster","This is a modal window":"Dies ist ein Dialogfenster.","This modal can be closed by pressing the Escape key or activating the close button.":"Dieses Dialogfenster kann geschlossen werden, indem man die Escape-Taste drückt oder auf die Schaltfläche zum Schließen des Fenster klickt.",", opens captions settings dialog":", öffnet die Einstellungen für Untertitel für Gehörlose und Schwerhörige",", opens subtitles settings dialog":", öffnet die Einstellungen für Untertitel",", opens descriptions settings dialog":", öffnet die Einstellungen für Beschreibungen",", selected":", ausgewählt","captions settings":"Einstellungen für Untertitel für Gehörlose und Schwerhörige","subtitles settings":"Einstellungen für Untertitel","descriptions settings":"Einstellungen für Beschreibungen","Text":"Text","White":"Weiß","Black":"Schwarz","Red":"Rot","Green":"Grün","Blue":"Blau","Yellow":"Gelb","Magenta":"Magenta","Cyan":"Cyan","Background":"Hintergrund","Window":"Fenster","Transparent":"durchsichtig","Semi-Transparent":"halbdurchsichtig","Opaque":"undurchsichtig","Font Size":"Schriftgröße","Text Edge Style":"Textkantenstil","None":"Nichts","Raised":"Erhöht","Depressed":"Erniedrigt","Uniform":"Gleichmäßig","Dropshadow":"Schlagschatten","Font Family":"Schriftart","Proportional Sans-Serif":"Proportionale Grotesk","Monospace Sans-Serif":"Nichtproportionale Grotesk","Proportional Serif":"Proportionale Serifen-Schrit","Monospace Serif":"Nichtproportionale Serifen-Schrift","Casual":"Gewöhnlich","Script":"Schreibschrift","Small Caps":"Kapitälchen","Reset":"Zurücksetzen","restore all settings to the default values":"Alle Einstellungen auf ihre Standardwerte zurücksetzen","Done":"Fertig","Caption Settings Dialog":"Dialogfenster für Einstellungen für Untertitel für Gehörlose und Schwerhörige","Beginning of dialog window. Escape will cancel and close the window.":"Anfang des Dialogfensters. Mit der Escape-Taste wird das Fenster ohne Speichern geschlossen.","End of dialog window.":"Ende des Dialogfensters.","{1} is loading.":"{1} lädt.","Quality":"Qualität","Auto":"Automatisch","Speed":"Geschwindigkeit","Subtitles/CC":"Untertitel","peers":"Peers","Go to the video page":"Zur Video-Seite gehen","Settings":"Einstellungen","Uses P2P, others may know you are watching this video.":"Nutzt Peer-to-Peer-Technologie, daher könnten andere wissen, dass du dieses Video ansiehst.","Copy the video URL":"Video-URL kopieren","Copy the video URL at the current time":"Video-URL an dieser Stelle kopieren","Copy embed code":"Einbettungscode kopieren"}
\ No newline at end of file
-{"Audio Player":"Ljudspelare","Video Player":"Videospelare","Play":"Spela upp","Pause":"Pausa","Replay":"Spela igen","Current Time":"Nuvarande tid","Duration":"Längd","Remaining Time":"Kvarvarande tid","Stream Type":"Strömtyp","LIVE":"DIREKT","Loaded":"Laddad","Progress":"Förlopp","Progress Bar":"Förloppsindikator","progress bar timing: currentTime={1} duration={2}":"{1} av {2}","Fullscreen":"Fullskärm","Non-Fullscreen":"Inte fullskärm","Mute":"Stäng av ljudet","Unmute":"Sätt på ljudet","Playback Rate":"Uppspelningshastighet","Subtitles":"Undertexter","subtitles off":"undertexter av","Captions":"Textning","captions off":"textning av","Chapters":"Kapitel","Descriptions":"Beskrivningar","descriptions off":"beskrivningar av","Audio Track":"Ljudspår","Volume Level":"Volymnivå","You aborted the media playback":"Du avbröt uppspelningen","A network error caused the media download to fail part-way.":"Ett nätverksfel gjorde att nedladdningen av mediafilen misslyckades","The media could not be loaded, either because the server or network failed or because the format is not supported.":"Mediet kunde inte laddas, antingen på grund av ett server- eller nätverksfel eller eftersom formatet inte stöds.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Uppspelningen avbröts på grund av ett korruptionsfel eller eftersom mediet använde funktioner din webbläsare inte stöder.","No compatible source was found for this media.":"Ingen kompatibel källa hittades för detta media.","The media is encrypted and we do not have the keys to decrypt it.":"Mediet är krypterat och vi har inte nycklarna för att dekryptera.","Play Video":"Spela upp video","Close":"Stäng","Close Modal Dialog":"Stäng dialogruta","Modal Window":"Dialogrutan","This is a modal window":"Detta är en dialogruta","This modal can be closed by pressing the Escape key or activating the close button.":"Dialogrutan kan stängas genom att trycka Escape eller klicka på stäng-knappen.",", opens captions settings dialog":", öppnar dialogrutan för inställning av textning",", opens subtitles settings dialog":", öppnar dialogrutan för inställning av undertexter",", opens descriptions settings dialog":", öppnar dialogrutan för inställning av beskrivningar",", selected":", vald","captions settings":"textningsinställningar","subtitles settings":"inställningar för undertexter","descriptions settings":"inställningar för beskrivning","Text":"Text","White":"Vit","Black":"Svart","Red":"Röd","Green":"Grön","Blue":"Blå","Yellow":"Gul","Magenta":"Magenta","Cyan":"Cyan","Background":"Bakgrund","Window":"Fönster","Transparent":"Genomskinlig","Semi-Transparent":"Halvgenomskinlig","Opaque":"Ogenomskinlig","Font Size":"Textstorlek","Text Edge Style":"Textkanter","None":"Ingen","Raised":"Upphöjd","Depressed":"Nedsänkt","Uniform":"Enhetlig","Dropshadow":"Skuggning","Font Family":"Typsnitt","Proportional Sans-Serif":"Proportionerlig sans-serif","Monospace Sans-Serif":"Monospace sans-serif","Proportional Serif":"Proportionerlig serif","Monospace Serif":"Monospace serif","Casual":"Ledig stil","Script":"Skript","Small Caps":"Små kapitäler","Reset":"Återställ","restore all settings to the default values":"återställ alla inställningar till sina standardvärden","Done":"Klar","Caption Settings Dialog":"Dialogruta för textningsinställningar","Beginning of dialog window. Escape will cancel and close the window.":"Början av dialogruta. Tryck Escape för att avbryta och stänga fönstret.","End of dialog window.":"Slut på dialogruta.","{1} is loading.":"{1} laddar.","Quality":"Kvalitet","Auto":"Auto","Speed":"Hastighet","Subtitles/CC":"Undertext","peers":"peers","Go to the video page":"Gå till videosidan","Settings":"Inställningar","Uses P2P, others may know you are watching this video.":"Använder P2P, andra kan veta att du tittar på den här videon.","Copy the video URL":"Kopiera videons URL","Copy the video URL at the current time":"Kopiera videons URL vid den här tidpunkten","Copy embed code":"Kopiera inbäddningskod"}
\ No newline at end of file
+{"Audio Player":"Ljudspelare","Video Player":"Videospelare","Play":"Spela","Pause":"Pausa","Replay":"Spela igen","Current Time":"Aktuell tid","Duration":"Total tid","Remaining Time":"Återstående tid","Stream Type":"Strömningstyp","LIVE":"DIREKT","Loaded":"Laddad","Progress":"Förlopp","Progress Bar":"Förloppsindikator","progress bar timing: currentTime={1} duration={2}":"{1} av {2}","Fullscreen":"Fullskärm","Non-Fullscreen":"Inte fullskärm","Mute":"Ljud av","Unmute":"Ljud på","Playback Rate":"Uppspelningshastighet","Subtitles":"Undertexter på","subtitles off":"Undertexter av","Captions":"Textning","captions off":"Textning av","Chapters":"Kapitel","Descriptions":"Beskrivningar på","descriptions off":"Beskrivningar av","Audio Track":"Ljudspår","Volume Level":"Volymnivå","You aborted the media playback":"Du avbröt uppspelningen.","A network error caused the media download to fail part-way.":"Ett nätverksfel gjorde att nedladdningen av videon misslyckades.","The media could not be loaded, either because the server or network failed or because the format is not supported.":"Det gick inte att ladda videon, antingen på grund av ett server- eller nätverksfel, eller för att formatet inte stöds.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Uppspelningen avbröts på grund av att videon är skadad eller för att videon använder funktioner som din webbläsare inte stöder.","No compatible source was found for this media.":"Det gick inte att hitta någon kompatibel källa för videon.","The media is encrypted and we do not have the keys to decrypt it.":"Videon är krypterad och vi har inte dekrypteringsnycklarna.","Play Video":"Spela upp video","Close":"Stäng","Close Modal Dialog":"Stäng dialogruta","Modal Window":"Dialogrutan","This is a modal window":"Detta är en dialogruta","This modal can be closed by pressing the Escape key or activating the close button.":"Dialogrutan kan stängas genom att trycka Escape eller klicka på stäng-knappen.",", opens captions settings dialog":", öppnar dialogrutan för inställning av textning",", opens subtitles settings dialog":", öppnar dialogrutan för inställning av undertexter",", opens descriptions settings dialog":", öppnar dialogrutan för inställning av beskrivningar",", selected":", vald","captions settings":"textningsinställningar","subtitles settings":"inställningar för undertexter","descriptions settings":"inställningar för beskrivning","Text":"Text","White":"Vit","Black":"Svart","Red":"Röd","Green":"Grön","Blue":"Blå","Yellow":"Gul","Magenta":"Magenta","Cyan":"Cyan","Background":"Bakgrund","Window":"Fönster","Transparent":"Genomskinlig","Semi-Transparent":"Halvgenomskinlig","Opaque":"Ogenomskinlig","Font Size":"Textstorlek","Text Edge Style":"Textkanter","None":"Ingen","Raised":"Upphöjd","Depressed":"Nedsänkt","Uniform":"Enhetlig","Dropshadow":"Skuggning","Font Family":"Typsnitt","Proportional Sans-Serif":"Proportionerlig sans-serif","Monospace Sans-Serif":"Monospace sans-serif","Proportional Serif":"Proportionerlig serif","Monospace Serif":"Monospace serif","Casual":"Ledig stil","Script":"Skript","Small Caps":"Små kapitäler","Reset":"Återställ","restore all settings to the default values":"återställ alla inställningar till sina standardvärden","Done":"Klar","Caption Settings Dialog":"Dialogruta för textningsinställningar","Beginning of dialog window. Escape will cancel and close the window.":"Början av dialogruta. Tryck Escape för att avbryta och stänga fönstret.","End of dialog window.":"Slut på dialogruta.","{1} is loading.":"{1} laddar.","Quality":"Kvalitet","Auto":"Auto","Speed":"Hastighet","Subtitles/CC":"Undertext","peers":"peers","Go to the video page":"Gå till videosidan","Settings":"Inställningar","Uses P2P, others may know you are watching this video.":"Använder P2P, andra kan veta att du tittar på den här videon.","Copy the video URL":"Kopiera videons URL","Copy the video URL at the current time":"Kopiera videons URL vid den här tidpunkten","Copy embed code":"Kopiera inbäddningskod"}
\ No newline at end of file
-{"Audio Player":"音乐播放器","Video Player":"视频播放器","Play":"播放","Pause":"暂停","Replay":"重放","Current Time":"当前时间","Duration":"时长","Remaining Time":"剩余时间","Stream Type":"媒体流类型","LIVE":"直播","Loaded":"加载完毕","Progress":"进度","Progress Bar":"进度条","progress bar timing: currentTime={1} duration={2}":"已加载 {1},总时长 {2}","Fullscreen":"全屏","Non-Fullscreen":"退出全屏","Mute":"静音","Unmute":"取消静音","Playback Rate":"播放速度","Subtitles":"字幕","subtitles off":"关闭字幕","Captions":"内嵌字幕","captions off":"关闭内嵌字幕","Chapters":"节目段落","Descriptions":"描述","descriptions off":"关闭描述","Audio Track":"音轨","Volume Level":"音量","You aborted the media playback":"视频播放被终止","A network error caused the media download to fail part-way.":"网络错误导致视频下载中途失败。","The media could not be loaded, either because the server or network failed or because the format is not supported.":"视频因格式不支持或者服务器或网络的问题无法加载。","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。","No compatible source was found for this media.":"无法找到此视频兼容的源。","The media is encrypted and we do not have the keys to decrypt it.":"视频已加密,无法解密。","Play Video":"播放视频","Close":"关闭","Close Modal Dialog":"关闭弹窗","Modal Window":"弹窗","This is a modal window":"这是一个弹窗","This modal can be closed by pressing the Escape key or activating the close button.":"可以按 ESC 按键或启用关闭按钮来关闭此弹窗。",", opens captions settings dialog":",开启标题设置弹窗",", opens subtitles settings dialog":",开启字幕设置弹窗",", opens descriptions settings dialog":",开启描述设置弹窗",", selected":",选择","captions settings":"内嵌字幕设置","subtitles settings":"字幕设置","descriptions settings":"描述设置","Text":"文字","White":"白","Black":"黑","Red":"红","Green":"绿","Blue":"蓝","Yellow":"黄","Magenta":"紫红","Cyan":"青","Background":"背景","Window":"视窗","Transparent":"透明","Semi-Transparent":"半透明","Opaque":"不透明","Font Size":"字体尺寸","Text Edge Style":"字体边缘样式","None":"无","Raised":"浮雕","Depressed":"压低","Uniform":"均匀","Dropshadow":"下阴影","Font Family":"字体库","Proportional Sans-Serif":"比例无细体","Monospace Sans-Serif":"单间隔无细体","Proportional Serif":"比例细体","Monospace Serif":"单间隔细体","Casual":"舒适","Script":"手写体","Small Caps":"小型大写字体","Reset":"重启","restore all settings to the default values":"恢复全部设置至预设值","Done":"完成","Caption Settings Dialog":"字幕设置弹窗","Beginning of dialog window. Escape will cancel and close the window.":"开始对话弹窗。离开会取消并关闭弹窗。","End of dialog window.":"结束对话弹窗","{1} is loading.":"正在加载 {1}。","Quality":"画质","Auto":"自动","Speed":"速度","Subtitles/CC":"字幕","peers":" 位用户","Go to the video page":"进入视频页面","Settings":"设置","Uses P2P, others may know you are watching this video.":"使用 P2P 时,其他人将能够知道您正在观看此视频。","Copy the video URL":"复制视频网址","Copy the video URL at the current time":"复制当前时间的视频网址","Copy embed code":"复制嵌入代码"}
\ No newline at end of file
+{"Audio Player":"音乐播放器","Video Player":"视频播放器","Play":"播放","Pause":"暂停","Replay":"重放","Current Time":"当前时间","Duration":"时长","Remaining Time":"剩余时间","Stream Type":"媒体流类型","LIVE":"直播","Loaded":"加载完毕","Progress":"进度","Progress Bar":"进度条","progress bar timing: currentTime={1} duration={2}":"已加载 {1},总时长 {2}","Fullscreen":"全屏","Non-Fullscreen":"退出全屏","Mute":"静音","Unmute":"取消静音","Playback Rate":"播放速度","Subtitles":"字幕","subtitles off":"关闭字幕","Captions":"内嵌字幕","captions off":"关闭内嵌字幕","Chapters":"节目段落","Descriptions":"描述","descriptions off":"关闭描述","Audio Track":"音轨","Volume Level":"音量","You aborted the media playback":"视频播放被终止","A network error caused the media download to fail part-way.":"网络错误导致视频下载中途失败。","The media could not be loaded, either because the server or network failed or because the format is not supported.":"视频因格式不支持或者服务器或网络的问题无法加载。","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。","No compatible source was found for this media.":"无法找到此视频兼容的源。","The media is encrypted and we do not have the keys to decrypt it.":"视频已加密,无法解密。","Play Video":"播放视频","Close":"关闭","Close Modal Dialog":"关闭弹窗","Modal Window":"弹窗","This is a modal window":"这是一个弹窗","This modal can be closed by pressing the Escape key or activating the close button.":"可以按 ESC 按键或启用关闭按钮来关闭此弹窗。",", opens captions settings dialog":",开启标题设置弹窗",", opens subtitles settings dialog":",开启字幕设置弹窗",", opens descriptions settings dialog":",开启描述设置弹窗",", selected":",选择","captions settings":"内嵌字幕设置","subtitles settings":"字幕设置","descriptions settings":"描述设置","Text":"文字","White":"白","Black":"黑","Red":"红","Green":"绿","Blue":"蓝","Yellow":"黄","Magenta":"紫红","Cyan":"青","Background":"背景","Window":"视窗","Transparent":"透明","Semi-Transparent":"半透明","Opaque":"不透明","Font Size":"字体尺寸","Text Edge Style":"字体边缘样式","None":"无","Raised":"浮雕","Depressed":"压低","Uniform":"均匀","Dropshadow":"下阴影","Font Family":"字体库","Proportional Sans-Serif":"比例无细体","Monospace Sans-Serif":"单间隔无细体","Proportional Serif":"比例细体","Monospace Serif":"单间隔细体","Casual":"舒适","Script":"手写体","Small Caps":"小型大写字体","Reset":"重启","restore all settings to the default values":"恢复全部设置至预设值","Done":"完成","Caption Settings Dialog":"字幕设置弹窗","Beginning of dialog window. Escape will cancel and close the window.":"开始对话弹窗。离开会取消并关闭弹窗。","End of dialog window.":"结束对话弹窗","{1} is loading.":"正在加载 {1}。","Quality":"画质","Auto":"自动","Speed":"速度","Subtitles/CC":"字幕","peers":"个来源","Go to the video page":"进入视频页面","Settings":"设置","Uses P2P, others may know you are watching this video.":"使用 P2P 时,其他人将能够知道您正在观看此视频。","Copy the video URL":"复制视频网址","Copy the video URL at the current time":"复制当前时间的视频网址","Copy embed code":"复制嵌入代码"}
\ No newline at end of file
<source>Entertainment</source>
<target>ترفيه</target>
</trans-unit>
- <trans-unit id="News">
- <source>News</source>
- <target>أخبار</target>
- </trans-unit>
<trans-unit id="How To">
<source>How To</source>
<target>كيف</target>
-{"Music":"Música","Films":"Pel·lícules","Vehicles":"Vehicles","Art":"Art","Sports":"Esports","Travels":"Viatges","Gaming":"Jocs","People":"Gent","Comedy":"Comèdia","Entertainment":"Entreteniment","News":"Notícies","How To":"Com fer","Education":"Educació","Activism":"Activisme","Science & Technology":"Ciència i tecnologia","Animals":"Animals","Kids":"Nens","Food":"Aliments","Attribution":"Atribució","Attribution - Share Alike":"Atribució: Comparteix-ho per igual","Attribution - No Derivatives":"Atribució - Sense Derivats","Attribution - Non Commercial":"Atribució: No Comercial","Attribution - Non Commercial - Share Alike":"Atribució - No Comercial - Compartir per igual","Attribution - Non Commercial - No Derivatives":"Attribution - No Comercial - Sense Derivats","Public Domain Dedication":"Dedicació de Domini Públic","Public":"Públic","Unlisted":"No llistat","Private":"Privat","Misc":"Miscel·lània","Unknown":"Desconegut","Afar":"Àfar","Abkhazian":"Abkhaz","Afrikaans":"Afrikaans","Akan":"Àkan","Amharic":"Amhàric","Arabic":"Àrab","Aragonese":"Aragonès","American Sign Language":"Llengua de Signes Nord-Americana","Assamese":"Assamès","Avaric":"Àvar","Aymara":"Aimara","Azerbaijani":"Àzeri","Bashkir":"Baixkir","Bambara":"Bambara","Belarusian":"Bielorús","Bengali":"Bengalí","British Sign Language":"Llengua de Signes Britànica","Bislama":"Bislama","Tibetan":"Tibetà","Bosnian":"Bosnià","Breton":"Bretó","Bulgarian":"Búlgar","Brazilian Sign Language":"Llengua de Signes Brasiler","Catalan":"Català","Czech":"Txec","Chamorro":"Chamorro","Chechen":"Txetxè","Chuvash":"Txuvaix","Cornish":"Korni","Corsican":"Cors","Cree":"Cree","Czech Sign Language":"Llengua de Signes Txec","Chinese Sign Language":"Llengua de Signes Xinesa","Welsh":"Gal·lès","Danish":"Danès","German":"Alemany","Dhivehi":"Divehi","Danish Sign Language":"Llengua de Signes Danesa","Dzongkha":"Dzongka","Modern Greek (1453-)":"Grec modern (1453-)","English":"Anglès","Estonian":"Estonià","Basque":"Basc","Ewe":"Ewe","Faroese":"Feroès","Persian":"Persa","Fijian":"Fijià","Finnish":"Finlandès","French":"Francès","Western Frisian":"Frisó occidental","French Sign Language":"Llengua de Signes Francesa","Fulah":"Ful","Scottish Gaelic":"Gaèlic Escocès","Irish":"Irlandès","Galician":"Gallec","Manx":"Manx","Guarani":"Guaraní","German Sign Language":"Llengua de Signes Alemanya","Gujarati":"Gujarati","Haitian":"Haitià","Hausa":"Haussa","Serbo-Croatian":"Serbocroat","Hebrew":"Hebreu","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri Motu","Croatian":"Croat","Hungarian":"Hongarès","Armenian":"Armeni","Igbo":"Igbo","Sichuan Yi":"Yi de Sichuan","Inuktitut":"Inuktitut","Indonesian":"Indonesi","Inupiaq":"Inupiaq","Icelandic":"Islandès","Italian":"Italià","Javanese":"Javanès","Japanese":"Japonès","Japanese Sign Language":"Llengua de Signes Japonesa","Kalaallisut":"Kalaallisut","Kannada":"Kannada","Kashmiri":"Caixmiri","Georgian":"Georgià","Kanuri":"Kanuri","Kazakh":"Kazakh","Khmer":"Khmer","Kikuyu":"Kikuiu","Kinyarwanda":"Ruandès","Kirghiz":"Kirguís","Komi":"Komi","Kongo":"Koongo","Korean":"Coreà","Kuanyama":"Kwanyama","Kurdish":"Kurd","Lao":"Laosià","Latvian":"Letó","Limburgan":"Limburgan","Lingala":"Lingala","Lithuanian":"Lituà","Luxembourgish":"Luxemburguès","Luba-Katanga":"Luba","Ganda":"Ganda","Marshallese":"Marshallès","Malayalam":"Malaialam","Marathi":"Marathi","Macedonian":"Macedoni","Malagasy":"Malgache","Maltese":"Maltès","Mongolian":"Mongol","Maori":"Maori","Malay (macrolanguage)":"Malai (macro llengua)","Burmese":"Birmà","Nauru":"Nauruà","Navajo":"Navaho","South Ndebele":"Ndebele del Sud","North Ndebele":"Ndebele del Nord","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepalès (macro llengua)","Dutch":"Holandès","Norwegian Nynorsk":"Noruec Nynorsk","Norwegian Bokmål":"Noruec Bokmål","Norwegian":"Noruec","Nyanja":"Nyanga","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya (macro llengua)","Oromo":"Oromo","Ossetian":"Osset","Panjabi":"Panjabi","Pakistan Sign Language":"Llengua de Signes de Pakistan","Polish":"Polonès","Portuguese":"Portuguès","Pushto":"Paixtu","Quechua":"Quítxua","Romansh":"Romanx","Romanian":"Romanès","Russian Sign Language":"Llengua de Signes Russa","Rundi":"Rundi","Russian":"Rus","Sango":"Sango","Saudi Arabian Sign Language":"Llengua de Signes de l'Aràbia Saudita","South African Sign Language":"Llengua de Signes Sud-Africana","Sinhala":"Singalès","Slovak":"Eslovac","Slovenian":"Eslovè","Northern Sami":"Sami del Nord","Samoan":"Samoà","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sotho del Sud","Spanish":"Espanyol","Albanian":"Albanès","Sardinian":"Sard","Serbian":"Serbi","Swati":"Swati","Sundanese":"Sundanès","Swahili (macrolanguage)":"Suahili (macro llengua)","Swedish":"Suec","Swedish Sign Language":"Llengua de Signes Sueca","Tahitian":"Tahití","Tamil":"Tàmil","Tatar":"Tàtar","Telugu":"Telugu","Tajik":"Tadjik","Tagalog":"Tagàlog","Thai":"Tailandès","Tigrinya":"Tigrinya","Tonga (Tonga Islands)":"Tongalès (arxipèlag de Tonga)","Tswana":"Tswana","Tsonga":"Tsonga","Turkmen":"Turcman","Turkish":"Turc","Twi":"Twi","Uighur":"Uigur","Ukrainian":"Ucraïnès","Urdu":"Urdú","Uzbek":"Uzbek","Venda":"Venda","Vietnamese":"Vietnamita","Walloon":"Való","Wolof":"Wòlof","Xhosa":"Xosa","Yiddish":"Jiddisch","Yoruba":"Ioruba","Zhuang":"Zhuang","Chinese":"Xinès","Zulu":"Zulu"}
\ No newline at end of file
+{"Music":"Música","Films":"Pel·lícules","Vehicles":"Vehicles","Art":"Art","Sports":"Esports","Travels":"Viatges","Gaming":"Jocs","People":"Gent","Comedy":"Comèdia","Entertainment":"Entreteniment","How To":"Com fer","Education":"Educació","Activism":"Activisme","Science & Technology":"Ciència i tecnologia","Animals":"Animals","Kids":"Nens","Food":"Aliments","Attribution":"Atribució","Attribution - Share Alike":"Atribució: Comparteix-ho per igual","Attribution - No Derivatives":"Atribució - Sense Derivats","Attribution - Non Commercial":"Atribució: No Comercial","Attribution - Non Commercial - Share Alike":"Atribució - No Comercial - Compartir per igual","Attribution - Non Commercial - No Derivatives":"Attribution - No Comercial - Sense Derivats","Public Domain Dedication":"Dedicació de Domini Públic","Public":"Públic","Unlisted":"No llistat","Private":"Privat","Misc":"Miscel·lània","Unknown":"Desconegut","Afar":"Àfar","Abkhazian":"Abkhaz","Afrikaans":"Afrikaans","Akan":"Àkan","Amharic":"Amhàric","Arabic":"Àrab","Aragonese":"Aragonès","American Sign Language":"Llengua de Signes Nord-Americana","Assamese":"Assamès","Avaric":"Àvar","Aymara":"Aimara","Azerbaijani":"Àzeri","Bashkir":"Baixkir","Bambara":"Bambara","Belarusian":"Bielorús","Bengali":"Bengalí","British Sign Language":"Llengua de Signes Britànica","Bislama":"Bislama","Tibetan":"Tibetà","Bosnian":"Bosnià","Breton":"Bretó","Bulgarian":"Búlgar","Brazilian Sign Language":"Llengua de Signes Brasiler","Catalan":"Català","Czech":"Txec","Chamorro":"Chamorro","Chechen":"Txetxè","Chuvash":"Txuvaix","Cornish":"Korni","Corsican":"Cors","Cree":"Cree","Czech Sign Language":"Llengua de Signes Txec","Chinese Sign Language":"Llengua de Signes Xinesa","Welsh":"Gal·lès","Danish":"Danès","German":"Alemany","Dhivehi":"Divehi","Danish Sign Language":"Llengua de Signes Danesa","Dzongkha":"Dzongka","Modern Greek (1453-)":"Grec modern (1453-)","English":"Anglès","Estonian":"Estonià","Basque":"Basc","Ewe":"Ewe","Faroese":"Feroès","Persian":"Persa","Fijian":"Fijià","Finnish":"Finlandès","French":"Francès","Western Frisian":"Frisó occidental","French Sign Language":"Llengua de Signes Francesa","Fulah":"Ful","Scottish Gaelic":"Gaèlic Escocès","Irish":"Irlandès","Galician":"Gallec","Manx":"Manx","Guarani":"Guaraní","German Sign Language":"Llengua de Signes Alemanya","Gujarati":"Gujarati","Haitian":"Haitià","Hausa":"Haussa","Serbo-Croatian":"Serbocroat","Hebrew":"Hebreu","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri Motu","Croatian":"Croat","Hungarian":"Hongarès","Armenian":"Armeni","Igbo":"Igbo","Sichuan Yi":"Yi de Sichuan","Inuktitut":"Inuktitut","Indonesian":"Indonesi","Inupiaq":"Inupiaq","Icelandic":"Islandès","Italian":"Italià","Javanese":"Javanès","Japanese":"Japonès","Japanese Sign Language":"Llengua de Signes Japonesa","Kalaallisut":"Kalaallisut","Kannada":"Kannada","Kashmiri":"Caixmiri","Georgian":"Georgià","Kanuri":"Kanuri","Kazakh":"Kazakh","Khmer":"Khmer","Kikuyu":"Kikuiu","Kinyarwanda":"Ruandès","Kirghiz":"Kirguís","Komi":"Komi","Kongo":"Koongo","Korean":"Coreà","Kuanyama":"Kwanyama","Kurdish":"Kurd","Lao":"Laosià","Latvian":"Letó","Limburgan":"Limburgan","Lingala":"Lingala","Lithuanian":"Lituà","Luxembourgish":"Luxemburguès","Luba-Katanga":"Luba","Ganda":"Ganda","Marshallese":"Marshallès","Malayalam":"Malaialam","Marathi":"Marathi","Macedonian":"Macedoni","Malagasy":"Malgache","Maltese":"Maltès","Mongolian":"Mongol","Maori":"Maori","Malay (macrolanguage)":"Malai (macro llengua)","Burmese":"Birmà","Nauru":"Nauruà","Navajo":"Navaho","South Ndebele":"Ndebele del Sud","North Ndebele":"Ndebele del Nord","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepalès (macro llengua)","Dutch":"Holandès","Norwegian Nynorsk":"Noruec Nynorsk","Norwegian Bokmål":"Noruec Bokmål","Norwegian":"Noruec","Nyanja":"Nyanga","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya (macro llengua)","Oromo":"Oromo","Ossetian":"Osset","Panjabi":"Panjabi","Pakistan Sign Language":"Llengua de Signes de Pakistan","Polish":"Polonès","Portuguese":"Portuguès","Pushto":"Paixtu","Quechua":"Quítxua","Romansh":"Romanx","Romanian":"Romanès","Russian Sign Language":"Llengua de Signes Russa","Rundi":"Rundi","Russian":"Rus","Sango":"Sango","Saudi Arabian Sign Language":"Llengua de Signes de l'Aràbia Saudita","South African Sign Language":"Llengua de Signes Sud-Africana","Sinhala":"Singalès","Slovak":"Eslovac","Slovenian":"Eslovè","Northern Sami":"Sami del Nord","Samoan":"Samoà","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sotho del Sud","Spanish":"Espanyol","Albanian":"Albanès","Sardinian":"Sard","Serbian":"Serbi","Swati":"Swati","Sundanese":"Sundanès","Swahili (macrolanguage)":"Suahili (macro llengua)","Swedish":"Suec","Swedish Sign Language":"Llengua de Signes Sueca","Tahitian":"Tahití","Tamil":"Tàmil","Tatar":"Tàtar","Telugu":"Telugu","Tajik":"Tadjik","Tagalog":"Tagàlog","Thai":"Tailandès","Tigrinya":"Tigrinya","Tonga (Tonga Islands)":"Tongalès (arxipèlag de Tonga)","Tswana":"Tswana","Tsonga":"Tsonga","Turkmen":"Turcman","Turkish":"Turc","Twi":"Twi","Uighur":"Uigur","Ukrainian":"Ucraïnès","Urdu":"Urdú","Uzbek":"Uzbek","Venda":"Venda","Vietnamese":"Vietnamita","Walloon":"Való","Wolof":"Wòlof","Xhosa":"Xosa","Yiddish":"Jiddisch","Yoruba":"Ioruba","Zhuang":"Zhuang","Chinese":"Xinès","Zulu":"Zulu"}
\ No newline at end of file
-{"Music":"Hudba","Films":"Filmy","Vehicles":"Auta","Art":"Umění","Sports":"Sport","Travels":"Cestování","Gaming":"Hry","People":"Lidé","Comedy":"Komedie","Entertainment":"Zábava","News":"Zprávy","How To":"Jak na to","Education":"Výukové","Activism":"Aktivismus","Science & Technology":"Věda a technologie","Animals":"Zvířata","Kids":"Děti","Food":"Jídlo a vaření","Attribution":"Uveďte autora","Attribution - Share Alike":"Uveďte autora - Zachovejte licenci","Attribution - No Derivatives":"Uveďte autora - Nezpracovávejte","Attribution - Non Commercial":"Uveďte autora - Nešiřte dílo komerčně","Attribution - Non Commercial - Share Alike":"Uveďte autora - Nešiřte dílo komerčně - Zachovejte licenci","Attribution - Non Commercial - No Derivatives":"Uveďte autora - Nešiřte dílo komerčně - Nezpracovávejte","Public Domain Dedication":"Volné dílo","Public":"Veřejné","Unlisted":"Nezobrazeno","Private":"Soukromé","Misc":"Různé","Unknown":"Neznámé","Afar":"Afarština","Abkhazian":"Abcházština","Afrikaans":"Afrikánština","Akan":"Akanština","Amharic":"Amharština","Arabic":"Arabština","Aragonese":"Aragonština","American Sign Language":"Americká znaková řeč","Assamese":"Ásámština","Avaric":"Avarština","Kotava":"Kotava","Aymara":"Ajmarština","Azerbaijani":"Ázerbájdžánština","Bashkir":"Baškirština","Bambara":"Bambarština","Belarusian":"Běloruština","Bengali":"Bengálština","British Sign Language":"Britská znaková řeč","Bislama":"Bislamština","Tibetan":"Tibetština","Bosnian":"Bosenština","Breton":"Bretonština","Bulgarian":"Bulharština","Brazilian Sign Language":"Brazilská znaková řeč","Catalan":"Katalánština","Czech":"Čeština","Chamorro":"Chamorro","Chechen":"Čečenština","Chuvash":"Čuvaština","Cornish":"Kornština","Corsican":"Korsičtina","Cree":"Kríjština","Czech Sign Language":"Česká znaková řeč","Chinese Sign Language":"Čínská znaková řeč","Welsh":"Velština","Danish":"Dánština","German":"Němčina","Dhivehi":"Maledivština","Danish Sign Language":"Dánská znaková řeč","Dzongkha":"Dzongkä","Modern Greek (1453-)":"Moderní řečtina","English":"Angličtina","Esperanto":"Esperanto","Estonian":"Estonština","Basque":"Baskičtina","Ewe":"Eveština","Faroese":"Faerština","Persian":"Perština","Fijian":"Fidžijština","Finnish":"Finština","French":"Francouzština","Western Frisian":"Západofríština","French Sign Language":"Francouzská znaková řeč","Fulah":"Fulbština","Scottish Gaelic":"Skotská gaelština","Irish":"Irština","Galician":"Galicijština","Manx":"Manština","Guarani":"Guaranština","German Sign Language":"Německá znaková řeč","Gujarati":"Gudžarátština","Haitian":"Haitská kreolština","Hausa":"Hauština","Serbo-Croatian":"Srcbochorvatšinta","Hebrew":"Hebrejština","Herero":"Herero","Hindi":"Hindština","Hiri Motu":"Hiri Motu","Croatian":"Chorvatština","Hungarian":"Maďarština","Armenian":"Arménština","Igbo":"Igboština","Sichuan Yi":"Nuosu","Inuktitut":"Inuktitutština","Indonesian":"Indonéština","Inupiaq":"Inupiaq","Icelandic":"Islandština","Italian":"Italština","Javanese":"Javánština","Lojban":"Lojban","Japanese":"Japonština","Japanese Sign Language":"Japonská znaková řeč","Kalaallisut":"Grónština","Kannada":"Kannadština","Kashmiri":"Kašmírština","Georgian":"Gruzínština","Kanuri":"Kanurijština","Kazakh":"Kazaština","Khmer":"Khmerština","Kikuyu":"Kikujština","Kinyarwanda":"Rwandština","Kirghiz":"Kyrgyzština","Komi":"Komi","Kongo":"Konžština","Korean":"Korejština","Kuanyama":"Kuanyama","Kurdish":"Kurdština","Lao":"Laoština","Latvian":"Lotyština","Limburgan":"Limburština","Lingala":"Ngalština","Lithuanian":"Litevština","Luxembourgish":"Lucemburština","Luba-Katanga":"Luba-Katanga","Ganda":"Gandština","Marshallese":"Maršálština","Malayalam":"Malajálamština","Marathi":"Maráthština","Macedonian":"Makedonština","Malagasy":"Malgaština","Maltese":"Maltština","Mongolian":"Mongolština","Maori":"Maorština","Malay (macrolanguage)":"Malajština","Burmese":"Barmština","Nauru":"Naurština","Navajo":"Navažština","South Ndebele":"Jižní ndebelština","North Ndebele":"Severní ndebelština","Ndonga":"Ndondština","Nepali (macrolanguage)":"Nepálština","Dutch":"Dánština","Norwegian Nynorsk":"Norština Nynorsk","Norwegian Bokmål":"Norština Bokmål","Norwegian":"Norština ","Nyanja":"Čičevština","Occitan":"Okcitánština","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Urijština","Oromo":"Oromština","Ossetian":"Osetština","Panjabi":"Paňdžábština","Pakistan Sign Language":"Pakistánská znaková řeč","Polish":"Polština","Portuguese":"Portugalština","Pushto":"Paštština","Quechua":"Kečuánština","Romansh":"Rétorománština","Romanian":"Rumunština","Russian Sign Language":"Ruská znaková řeč","Rundi":"Kirundi","Russian":"Ruština","Sango":"Sango","Saudi Arabian Sign Language":"Saudská arabská znaková řeč","South African Sign Language":"Jihoafrická znaková řeč","Sinhala":"Sinhálština","Slovak":"Slovenština","Slovenian":"Slovinština","Northern Sami":"Severní sámština","Samoan":"Samojština","Shona":"Shona","Sindhi":"Sindhština","Somali":"Somálština","Southern Sotho":"Jižní sotština","Spanish":"Španělština","Albanian":"Albánština","Sardinian":"Sardínština","Serbian":"Srbština","Swati":"Swati","Sundanese":"Sundština","Swahili (macrolanguage)":"Svahilština","Swedish":"Švédština","Swedish Sign Language":"Švédská znaková řeč","Tahitian":"Tahitština","Tamil":"Tamilština","Tatar":"Tatarština","Telugu":"Telugština","Tajik":"Tádžičtina","Tagalog":"Tagalog","Thai":"Thajština","Tigrinya":"Tigrinya","Klingon":"Klingonština","Tonga (Tonga Islands)":"Tongánština","Tswana":"Setswanština","Tsonga":"Tsongština","Turkmen":"Turkmenština","Turkish":"Turečtina","Twi":"Twi","Uighur":"Ujgurština","Ukrainian":"Ukrajinština","Urdu":"Urdština","Uzbek":"Uzbečtina","Venda":"Vendština","Vietnamese":"Vietnamština","Walloon":"Valonština","Wolof":"Wolof ","Xhosa":"Xhoština","Yiddish":"Jidiš","Yoruba":"Jorubština","Zhuang":"Čuangština","Chinese":"Čínština","Zulu":"Zuluština"}
\ No newline at end of file
+{"Music":"Hudba","Films":"Filmy","Vehicles":"Auta","Art":"Umění","Sports":"Sport","Travels":"Cestování","Gaming":"Hry","People":"Lidé","Comedy":"Komedie","Entertainment":"Zábava","How To":"Jak na to","Education":"Výukové","Activism":"Aktivismus","Science & Technology":"Věda a technologie","Animals":"Zvířata","Kids":"Děti","Food":"Jídlo a vaření","Attribution":"Uveďte autora","Attribution - Share Alike":"Uveďte autora - Zachovejte licenci","Attribution - No Derivatives":"Uveďte autora - Nezpracovávejte","Attribution - Non Commercial":"Uveďte autora - Nešiřte dílo komerčně","Attribution - Non Commercial - Share Alike":"Uveďte autora - Nešiřte dílo komerčně - Zachovejte licenci","Attribution - Non Commercial - No Derivatives":"Uveďte autora - Nešiřte dílo komerčně - Nezpracovávejte","Public Domain Dedication":"Volné dílo","Public":"Veřejné","Unlisted":"Nezobrazeno","Private":"Soukromé","Misc":"Různé","Unknown":"Neznámé","Afar":"Afarština","Abkhazian":"Abcházština","Afrikaans":"Afrikánština","Akan":"Akanština","Amharic":"Amharština","Arabic":"Arabština","Aragonese":"Aragonština","American Sign Language":"Americká znaková řeč","Assamese":"Ásámština","Avaric":"Avarština","Kotava":"Kotava","Aymara":"Ajmarština","Azerbaijani":"Ázerbájdžánština","Bashkir":"Baškirština","Bambara":"Bambarština","Belarusian":"Běloruština","Bengali":"Bengálština","British Sign Language":"Britská znaková řeč","Bislama":"Bislamština","Tibetan":"Tibetština","Bosnian":"Bosenština","Breton":"Bretonština","Bulgarian":"Bulharština","Brazilian Sign Language":"Brazilská znaková řeč","Catalan":"Katalánština","Czech":"Čeština","Chamorro":"Chamorro","Chechen":"Čečenština","Chuvash":"Čuvaština","Cornish":"Kornština","Corsican":"Korsičtina","Cree":"Kríjština","Czech Sign Language":"Česká znaková řeč","Chinese Sign Language":"Čínská znaková řeč","Welsh":"Velština","Danish":"Dánština","German":"Němčina","Dhivehi":"Maledivština","Danish Sign Language":"Dánská znaková řeč","Dzongkha":"Dzongkä","Modern Greek (1453-)":"Moderní řečtina","English":"Angličtina","Esperanto":"Esperanto","Estonian":"Estonština","Basque":"Baskičtina","Ewe":"Eveština","Faroese":"Faerština","Persian":"Perština","Fijian":"Fidžijština","Finnish":"Finština","French":"Francouzština","Western Frisian":"Západofríština","French Sign Language":"Francouzská znaková řeč","Fulah":"Fulbština","Scottish Gaelic":"Skotská gaelština","Irish":"Irština","Galician":"Galicijština","Manx":"Manština","Guarani":"Guaranština","German Sign Language":"Německá znaková řeč","Gujarati":"Gudžarátština","Haitian":"Haitská kreolština","Hausa":"Hauština","Serbo-Croatian":"Srcbochorvatšinta","Hebrew":"Hebrejština","Herero":"Herero","Hindi":"Hindština","Hiri Motu":"Hiri Motu","Croatian":"Chorvatština","Hungarian":"Maďarština","Armenian":"Arménština","Igbo":"Igboština","Sichuan Yi":"Nuosu","Inuktitut":"Inuktitutština","Indonesian":"Indonéština","Inupiaq":"Inupiaq","Icelandic":"Islandština","Italian":"Italština","Javanese":"Javánština","Lojban":"Lojban","Japanese":"Japonština","Japanese Sign Language":"Japonská znaková řeč","Kalaallisut":"Grónština","Kannada":"Kannadština","Kashmiri":"Kašmírština","Georgian":"Gruzínština","Kanuri":"Kanurijština","Kazakh":"Kazaština","Khmer":"Khmerština","Kikuyu":"Kikujština","Kinyarwanda":"Rwandština","Kirghiz":"Kyrgyzština","Komi":"Komi","Kongo":"Konžština","Korean":"Korejština","Kuanyama":"Kuanyama","Kurdish":"Kurdština","Lao":"Laoština","Latvian":"Lotyština","Limburgan":"Limburština","Lingala":"Ngalština","Lithuanian":"Litevština","Luxembourgish":"Lucemburština","Luba-Katanga":"Luba-Katanga","Ganda":"Gandština","Marshallese":"Maršálština","Malayalam":"Malajálamština","Marathi":"Maráthština","Macedonian":"Makedonština","Malagasy":"Malgaština","Maltese":"Maltština","Mongolian":"Mongolština","Maori":"Maorština","Malay (macrolanguage)":"Malajština","Burmese":"Barmština","Nauru":"Naurština","Navajo":"Navažština","South Ndebele":"Jižní ndebelština","North Ndebele":"Severní ndebelština","Ndonga":"Ndondština","Nepali (macrolanguage)":"Nepálština","Dutch":"Dánština","Norwegian Nynorsk":"Norština Nynorsk","Norwegian Bokmål":"Norština Bokmål","Norwegian":"Norština ","Nyanja":"Čičevština","Occitan":"Okcitánština","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Urijština","Oromo":"Oromština","Ossetian":"Osetština","Panjabi":"Paňdžábština","Pakistan Sign Language":"Pakistánská znaková řeč","Polish":"Polština","Portuguese":"Portugalština","Pushto":"Paštština","Quechua":"Kečuánština","Romansh":"Rétorománština","Romanian":"Rumunština","Russian Sign Language":"Ruská znaková řeč","Rundi":"Kirundi","Russian":"Ruština","Sango":"Sango","Saudi Arabian Sign Language":"Saudská arabská znaková řeč","South African Sign Language":"Jihoafrická znaková řeč","Sinhala":"Sinhálština","Slovak":"Slovenština","Slovenian":"Slovinština","Northern Sami":"Severní sámština","Samoan":"Samojština","Shona":"Shona","Sindhi":"Sindhština","Somali":"Somálština","Southern Sotho":"Jižní sotština","Spanish":"Španělština","Albanian":"Albánština","Sardinian":"Sardínština","Serbian":"Srbština","Swati":"Swati","Sundanese":"Sundština","Swahili (macrolanguage)":"Svahilština","Swedish":"Švédština","Swedish Sign Language":"Švédská znaková řeč","Tahitian":"Tahitština","Tamil":"Tamilština","Tatar":"Tatarština","Telugu":"Telugština","Tajik":"Tádžičtina","Tagalog":"Tagalog","Thai":"Thajština","Tigrinya":"Tigrinya","Klingon":"Klingonština","Tonga (Tonga Islands)":"Tongánština","Tswana":"Setswanština","Tsonga":"Tsongština","Turkmen":"Turkmenština","Turkish":"Turečtina","Twi":"Twi","Uighur":"Ujgurština","Ukrainian":"Ukrajinština","Urdu":"Urdština","Uzbek":"Uzbečtina","Venda":"Vendština","Vietnamese":"Vietnamština","Walloon":"Valonština","Wolof":"Wolof ","Xhosa":"Xhoština","Yiddish":"Jidiš","Yoruba":"Jorubština","Zhuang":"Čuangština","Chinese":"Čínština","Zulu":"Zuluština"}
\ No newline at end of file
-{"Music":"Musik","Films":"Filme","Vehicles":"Fahrzeuge","Art":"Kunst","Sports":"Sport","Travels":"Reisen","Gaming":"Spiele","People":"Leute","Comedy":"Komödie","Entertainment":"Unterhaltung","News":"Nachrichten","How To":"How-to","Education":"Bildung","Activism":"Aktivismus","Science & Technology":"Wissenschaft und Technologie","Animals":"Tiere","Kids":"Kinder","Food":"Essen","Attribution":"Namensnennung","Attribution - Share Alike":"Namensnennung - Weitergabe unter gleichen Bedingungen","Attribution - No Derivatives":"Namensnennung - Keine Bearbeitung","Attribution - Non Commercial":"Namensnennung - nicht kommerziell","Attribution - Non Commercial - Share Alike":"Namensnennung - nicht kommerziell, Weitergabe unter gleichen Bedingungen","Attribution - Non Commercial - No Derivatives":"Namensnennung - nicht kommerziell, keine Bearbeitung","Public Domain Dedication":"In Gemeinfreiheit entlassen","Public":"Öffentlich","Unlisted":"Nicht gelistet","Private":"Privat","Published":"Veröffentlicht","To transcode":"Zu transkodieren","To import":"Zu importieren","Pending":"Ausstehend","Success":"Erfolg","Failed":"Fehlgeschlagen","Misc":"Verschiedenes","Unknown":"Unbekannt","Afar":"Afar","Abkhazian":"Abchasisch","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharisch","Arabic":"Arabisch","Aragonese":"Aragonesisch","American Sign Language":"Amerikanische Gebärdensprache","Assamese":"Assamesisch","Avaric":"Awarisch","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Aserbeidschanisch","Bashkir":"Baschkirisch","Bambara":"Bambara","Belarusian":"Weißrussisch","Bengali":"Bengali","British Sign Language":"Britische Gebärdensprache","Bislama":"Beach-la-mar","Tibetan":"Tibetisch","Bosnian":"Bosnisch","Breton":"Bretonisch","Bulgarian":"Bulgarisch","Brazilian Sign Language":"Brasilianische Gebärdensprache","Catalan":"Katalanisch","Czech":"Tschechisch","Chamorro":"Chamorro","Chechen":"Tschetschenisch","Chuvash":"Tschuwaschisch","Cornish":"Kornisch","Corsican":"Korsisch","Cree":"Cree","Czech Sign Language":"Tschechische Gebärdensprache","Chinese Sign Language":"Chinesiche Gebärdensprache","Welsh":"Kymrisch","Danish":"Dänisch","German":"Deutsch","Dhivehi":"Maledivisch","Danish Sign Language":"Dänische Gebärdensprache","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Neugriechisch","English":"Englisch","Esperanto":"Esperanto","Estonian":"Estnisch","Basque":"Baskisch","Ewe":"Ewe","Faroese":"Färöisch","Persian":"Persisch","Fijian":"Fidschi","Finnish":"Finnisch","French":"Französisch","Western Frisian":"Friesisch","French Sign Language":"Französiche Gebärdensprache","Fulah":"Ful","Scottish Gaelic":"Gälisch-Schottisch","Irish":"Irisch","Galician":"Galicisch","Manx":"Manx","Guarani":"Guaraní","German Sign Language":"Deutsche Gebärdensprache","Gujarati":"Gujarati","Haitian":"Haïtien (Haiti-Kreolisch)","Hausa":"Hausa","Serbo-Croatian":"Serbokroatisch","Hebrew":"Hebräisch","Herero":"Otjiherero","Hindi":"Hindi","Hiri Motu":"Hiri-Motu","Croatian":"Kroatisch","Hungarian":"Ungarisch","Armenian":"Armenisch","Igbo":"Igbo","Sichuan Yi":"Yi","Inuktitut":"Inuktitut","Indonesian":"Bahasa Indonesia","Inupiaq":"Inupik","Icelandic":"Isländisch","Italian":"Italienisch","Javanese":"Javanisch","Lojban":"Lojban","Japanese":"Japanisch","Japanese Sign Language":"Japanische Gebärdensprache","Kalaallisut":"Grönländisch","Kannada":"Kannada","Kashmiri":"Kaschmiri","Georgian":"Georgisch","Kanuri":"Kanuri","Kazakh":"Kasachisch","Khmer":"Kambodschanisch","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyarwanda","Kirghiz":"Kirgisisch","Komi":"Komi","Kongo":"Kikongo","Korean":"Koreanisch","Kuanyama":"Kuanyama","Kurdish":"Kurdisch","Lao":"Laotisch","Latvian":"Lettisch","Limburgan":"Limburgisch","Lingala":"Lingala","Lithuanian":"Litauisch","Luxembourgish":"Luxemburgisch","Luba-Katanga":"Kiluba","Ganda":"Luganda","Marshallese":"Marschallesisch","Malayalam":"Malayalam","Marathi":"Marathi","Macedonian":"Makedonisch","Malagasy":"Malagassi","Maltese":"Maltesisch","Mongolian":"Mongolisch","Maori":"Māori","Malay (macrolanguage)":"Malaiisch","Burmese":"Birmanisch","Nauru":"Nauruanisch","Navajo":"Navajo","South Ndebele":"Süd-Ndebele","North Ndebele":"Nord-Ndebele","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepali","Dutch":"Niederländisch","Norwegian Nynorsk":"Nynorsk","Norwegian Bokmål":"Bokmål","Norwegian":"Norwegisch","Nyanja":"Chichewa","Occitan":"Okzitanisch","Ojibwa":"Ojibwe","Oriya (macrolanguage)":"Oriya","Oromo":"Oromo","Ossetian":"Ossetisch","Panjabi":"Panjabi","Pakistan Sign Language":"Pakistanische Gebärdensprache","Polish":"Polnisch","Portuguese":"Portugiesisch","Pushto":"Paschtu","Quechua":"Quechua","Romansh":"Rätoromanisch","Romanian":"Rumänisch","Russian Sign Language":"Russische Gebärdensprache","Rundi":"Kirundi","Russian":"Russisch","Sango":"Sango","Saudi Arabian Sign Language":"Saudi-arabische Gebärdensprache","South African Sign Language":"Südafrikanische Gebärdensprache","Sinhala":"Singhalesisch","Slovak":"Slowakisch","Slovenian":"Slowenisch","Northern Sami":"Nordsaamisch","Samoan":"Samoanisch","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sesotho","Spanish":"Spanisch","Albanian":"Albanisch","Sardinian":"Sardisch","Serbian":"Serbisch","Swati":"siSwati","Sundanese":"Sundanesisch","Swahili (macrolanguage)":"Swahili","Swedish":"Schwedisch","Swedish Sign Language":"Schwedische Gebärdensprache","Tahitian":"Tahitisch","Tamil":"Tamil","Tatar":"Tatarisch","Telugu":"Telugu","Tajik":"Tadschikisch","Tagalog":"Tagalog","Thai":"Thailändisch","Tigrinya":"Tigrinisch","Klingon":"Klingonisch","Tonga (Tonga Islands)":"Tongaisch","Tswana":"Setswana","Tsonga":"Xitsonga","Turkmen":"Turkmenisch","Turkish":"Türkisch","Twi":"Twi","Uighur":"Uigurisch","Ukrainian":"Ukrainisch","Urdu":"Urdu","Uzbek":"Usbekisch","Venda":"Tshivenda","Vietnamese":"Vietnamesisch","Walloon":"Wallonisch","Wolof":"Wolof","Xhosa":"isiXhosa","Yiddish":"Jiddisch","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinesisch","Zulu":"isiZulu"}
\ No newline at end of file
+{"Music":"Musik","Films":"Filme","Vehicles":"Fahrzeuge","Art":"Kunst","Sports":"Sport","Travels":"Reisen","Gaming":"Spiele","People":"Menschen","Comedy":"Komödie","Entertainment":"Unterhaltung","How To":"Anleitung","Education":"Bildung","Activism":"Aktivismus","Science & Technology":"Wissenschaft und Technologie","Animals":"Tiere","Kids":"Kinder","Food":"Essen","Attribution":"Namensnennung","Attribution - Share Alike":"Namensnennung - Weitergabe unter gleichen Bedingungen","Attribution - No Derivatives":"Namensnennung - Keine Bearbeitung","Attribution - Non Commercial":"Namensnennung - Nicht kommerziell","Attribution - Non Commercial - Share Alike":"Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen","Attribution - Non Commercial - No Derivatives":"Namensnennung - Nicht-kommerziell - Keine Bearbeitung","Public Domain Dedication":"In Gemeinfreiheit entlassen","Public":"Öffentlich","Unlisted":"Nicht gelistet","Private":"Privat","Published":"Veröffentlicht","To transcode":"Zu transkodieren","To import":"Zu importieren","Pending":"Ausstehend","Success":"Erfolg","Failed":"Fehlgeschlagen","Misc":"Verschiedenes","Unknown":"Unbekannt","Afar":"Afar","Abkhazian":"Abchasisch","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharisch","Arabic":"Arabisch","Aragonese":"Aragonesisch","American Sign Language":"Amerikanische Gebärdensprache","Assamese":"Assamesisch","Avaric":"Awarisch","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Aserbeidschanisch","Bashkir":"Baschkirisch","Bambara":"Bambara","Belarusian":"Weißrussisch","Bengali":"Bengali","British Sign Language":"Britische Gebärdensprache","Bislama":"Beach-la-mar","Tibetan":"Tibetisch","Bosnian":"Bosnisch","Breton":"Bretonisch","Bulgarian":"Bulgarisch","Brazilian Sign Language":"Brasilianische Gebärdensprache","Catalan":"Katalanisch","Czech":"Tschechisch","Chamorro":"Chamorro","Chechen":"Tschetschenisch","Chuvash":"Tschuwaschisch","Cornish":"Kornisch","Corsican":"Korsisch","Cree":"Cree","Czech Sign Language":"Tschechische Gebärdensprache","Chinese Sign Language":"Chinesiche Gebärdensprache","Welsh":"Kymrisch","Danish":"Dänisch","German":"Deutsch","Dhivehi":"Maledivisch","Danish Sign Language":"Dänische Gebärdensprache","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Neugriechisch","English":"Englisch","Esperanto":"Esperanto","Estonian":"Estnisch","Basque":"Baskisch","Ewe":"Ewe","Faroese":"Färöisch","Persian":"Persisch","Fijian":"Fidschi","Finnish":"Finnisch","French":"Französisch","Western Frisian":"Friesisch","French Sign Language":"Französiche Gebärdensprache","Fulah":"Ful","Scottish Gaelic":"Gälisch-Schottisch","Irish":"Irisch","Galician":"Galicisch","Manx":"Manx","Guarani":"Guaraní","German Sign Language":"Deutsche Gebärdensprache","Gujarati":"Gujarati","Haitian":"Haïtien (Haiti-Kreolisch)","Hausa":"Hausa","Serbo-Croatian":"Serbokroatisch","Hebrew":"Hebräisch","Herero":"Otjiherero","Hindi":"Hindi","Hiri Motu":"Hiri-Motu","Croatian":"Kroatisch","Hungarian":"Ungarisch","Armenian":"Armenisch","Igbo":"Igbo","Sichuan Yi":"Yi","Inuktitut":"Inuktitut","Indonesian":"Bahasa Indonesia","Inupiaq":"Inupik","Icelandic":"Isländisch","Italian":"Italienisch","Javanese":"Javanisch","Lojban":"Lojban","Japanese":"Japanisch","Japanese Sign Language":"Japanische Gebärdensprache","Kalaallisut":"Grönländisch","Kannada":"Kannada","Kashmiri":"Kaschmiri","Georgian":"Georgisch","Kanuri":"Kanuri","Kazakh":"Kasachisch","Khmer":"Kambodschanisch","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyarwanda","Kirghiz":"Kirgisisch","Komi":"Komi","Kongo":"Kikongo","Korean":"Koreanisch","Kuanyama":"Kuanyama","Kurdish":"Kurdisch","Lao":"Laotisch","Latvian":"Lettisch","Limburgan":"Limburgisch","Lingala":"Lingala","Lithuanian":"Litauisch","Luxembourgish":"Luxemburgisch","Luba-Katanga":"Kiluba","Ganda":"Luganda","Marshallese":"Marschallesisch","Malayalam":"Malayalam","Marathi":"Marathi","Macedonian":"Makedonisch","Malagasy":"Malagassi","Maltese":"Maltesisch","Mongolian":"Mongolisch","Maori":"Māori","Malay (macrolanguage)":"Malaiisch","Burmese":"Birmanisch","Nauru":"Nauruanisch","Navajo":"Navajo","South Ndebele":"Süd-Ndebele","North Ndebele":"Nord-Ndebele","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepali","Dutch":"Niederländisch","Norwegian Nynorsk":"Nynorsk","Norwegian Bokmål":"Bokmål","Norwegian":"Norwegisch","Nyanja":"Chichewa","Occitan":"Okzitanisch","Ojibwa":"Ojibwe","Oriya (macrolanguage)":"Oriya","Oromo":"Oromo","Ossetian":"Ossetisch","Panjabi":"Panjabi","Pakistan Sign Language":"Pakistanische Gebärdensprache","Polish":"Polnisch","Portuguese":"Portugiesisch","Pushto":"Paschtu","Quechua":"Quechua","Romansh":"Rätoromanisch","Romanian":"Rumänisch","Russian Sign Language":"Russische Gebärdensprache","Rundi":"Kirundi","Russian":"Russisch","Sango":"Sango","Saudi Arabian Sign Language":"Saudi-arabische Gebärdensprache","South African Sign Language":"Südafrikanische Gebärdensprache","Sinhala":"Singhalesisch","Slovak":"Slowakisch","Slovenian":"Slowenisch","Northern Sami":"Nordsaamisch","Samoan":"Samoanisch","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sesotho","Spanish":"Spanisch","Albanian":"Albanisch","Sardinian":"Sardisch","Serbian":"Serbisch","Swati":"siSwati","Sundanese":"Sundanesisch","Swahili (macrolanguage)":"Swahili","Swedish":"Schwedisch","Swedish Sign Language":"Schwedische Gebärdensprache","Tahitian":"Tahitisch","Tamil":"Tamil","Tatar":"Tatarisch","Telugu":"Telugu","Tajik":"Tadschikisch","Tagalog":"Tagalog","Thai":"Thailändisch","Tigrinya":"Tigrinisch","Klingon":"Klingonisch","Tonga (Tonga Islands)":"Tongaisch","Tswana":"Setswana","Tsonga":"Xitsonga","Turkmen":"Turkmenisch","Turkish":"Türkisch","Twi":"Twi","Uighur":"Uigurisch","Ukrainian":"Ukrainisch","Urdu":"Urdu","Uzbek":"Usbekisch","Venda":"Tshivenda","Vietnamese":"Vietnamesisch","Walloon":"Wallonisch","Wolof":"Wolof","Xhosa":"isiXhosa","Yiddish":"Jiddisch","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinesisch","Zulu":"isiZulu"}
\ No newline at end of file
-{"Music":"Muziko","Films":"Filmoj","Vehicles":"Veturiloj","Art":"Arto","Sports":"Sporto","Travels":"Vojaĝado","Gaming":"Ludoj","People":"Homoj","Comedy":"Komedio","Entertainment":"Amuzo","News":"Novaĵoj","How To":"Instrukcioj","Education":"Instruado","Activism":"Aktivismo","Science & Technology":"Scienco ϗ teĥnikaro","Animals":"Bestoj","Kids":"Infanoj","Food":"Manĝo","Attribution":"Atribuite","Attribution - Share Alike":"Atribuite – Samkondiĉe","Attribution - No Derivatives":"Atribuite – Nemodifite","Attribution - Non Commercial":"Atribuite – Nekomerce","Attribution - Non Commercial - Share Alike":"Atribuite – Nekomerce – Samkondiĉe","Attribution - Non Commercial - No Derivatives":"Atribuite – Nekomerce – Nemodifite","Public Domain Dedication":"Dediĉo al publika posedo","Public":"Publika","Unlisted":"Nelistigata","Private":"Privata","Success":"Sukcesis","Failed":"Malsukcesis","Misc":"Diversaĵoj","Unknown":"Nekonata","Afar":"Afara","Abkhazian":"Abĥaza","Afrikaans":"Afrikansa","Akan":"Akana","Amharic":"Amhara","Arabic":"Araba","Aragonese":"Aragona","American Sign Language":"Usona gestlingvo","Assamese":"Asama","Avaric":"Avara","Kotava":"Kotavo","Aymara":"Ajmara","Azerbaijani":"Azerbajĝana","Bashkir":"Baŝkira","Bambara":"Bambara","Belarusian":"Belorusa","Bengali":"Bengala","British Sign Language":"Brita gestlingvo","Bislama":"Bislama","Tibetan":"Tibeta","Bosnian":"Bosna","Breton":"Bretona","Bulgarian":"Bulgara","Brazilian Sign Language":"Brazila gestlingvo","Catalan":"Kataluna","Czech":"Ĉeĥa","Chamorro":"Ĉamora","Chechen":"Ĉeĉena","Chuvash":"Ĉuvaŝa","Cornish":"Kornvala","Corsican":"Korsika","Czech Sign Language":"Ĉeĥa gestlingvo","Chinese Sign Language":"Ĉina gestlingvo","Welsh":"Kimra","Danish":"Dana","German":"Germana","Dhivehi":"Maldiva","Danish Sign Language":"Dana gestlingvo","Dzongkha":"Butana","Modern Greek (1453-)":"Novgreka","English":"Angla","Esperanto":"Esperanto","Estonian":"Estona","Basque":"Eŭska","Ewe":"Evea","Faroese":"Feroa","Persian":"Persa","Fijian":"Fiĝia","Finnish":"Finna","French":"Franca","Western Frisian":"Okcidentfrisa","French Sign Language":"Franca gestlingvo","Fulah":"Fula","Scottish Gaelic":"Skotgaela","Irish":"Irlanda","Galician":"Galega","Manx":"Manksa","Guarani":"Gvarania","German Sign Language":"Germana gestlingvo","Gujarati":"Guĝarata","Haitian":"Haitia","Hausa":"Haŭsa","Serbo-Croatian":"Kroatserba","Hebrew":"Hebrea","Herero":"Herera","Hindi":"Hinda","Hiri Motu":"Hirimotua","Croatian":"Kroata","Hungarian":"Hungara","Armenian":"Armena","Igbo":"Igba","Sichuan Yi":"Jia","Inuktitut":"Inuktituta","Indonesian":"Indonezia","Inupiaq":"Inupiko","Icelandic":"Islanda","Italian":"Itala","Javanese":"Java","Lojban":"Loĵbano","Japanese":"Japana","Japanese Sign Language":"Japana gestlingvo","Kalaallisut":"Gronlanda","Kannada":"Kanara","Kashmiri":"Kaŝmira","Georgian":"Kartvela","Kanuri":"Kanuria","Kazakh":"Kazaĥa","Khmer":"Kmera","Kirghiz":"Kirgiza","Komi":"Komia","Kongo":"Konga","Korean":"Korea","Kuanyama":"Kvanjama","Kurdish":"Kurda","Lao":"Laosa","Latvian":"Latva","Limburgan":"Limburga","Lingala":"Lingala","Lithuanian":"Litova","Luxembourgish":"Luksemburga","Marshallese":"Marŝalinsula","Malayalam":"Malajalama","Marathi":"Marata","Macedonian":"Makedona","Malagasy":"Malgaŝa","Maltese":"Malta","Mongolian":"Mongola","Maori":"Maoria","Malay (macrolanguage)":"Malaja","Burmese":"Birma","Nauru":"Naura","Navajo":"Navajo","South Ndebele":"Sudndebela","North Ndebele":"Nordndebela","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepala","Dutch":"Nederlanda","Norwegian Nynorsk":"Novnorvega","Norwegian Bokmål":"Bukmolo","Norwegian":"Norvega","Nyanja":"Ĉiĉeva","Ojibwa":"Oĝibua","Oriya (macrolanguage)":"Orisa","Oromo":"Oroma","Ossetian":"Oseta","Panjabi":"Panĝaba","Pakistan Sign Language":"Pakistana gestlingvo","Polish":"Pola","Portuguese":"Portugala","Pushto":"Paŝtua","Quechua":"Keĉua","Romansh":"Romanĉa","Romanian":"Rumana","Russian Sign Language":"Rusa gestlingvo","Russian":"Rusa","Saudi Arabian Sign Language":"Saudarabuja gestlingvo","South African Sign Language":"Sudafrika gestlingvo","Sinhala":"Sinhala","Slovak":"Slovaka","Slovenian":"Slovena","Northern Sami":"Nordlapona","Samoan":"Samoa","Shona":"Ŝona","Sindhi":"Sinda","Somali":"Somala","Southern Sotho":"Sudsota","Spanish":"Hispana","Albanian":"Albana","Sardinian":"Sarda","Serbian":"Serba","Swati":"Svazia","Sundanese":"Sunda","Swahili (macrolanguage)":"Svahila","Swedish":"Sveda","Swedish Sign Language":"Sveda gestlingvo","Tahitian":"Tahitia","Tamil":"Tamula","Tatar":"Tatara","Telugu":"Telugua","Tajik":"Taĝika","Tagalog":"Tagaloga","Thai":"Taja","Klingon":"Klingona","Tonga (Tonga Islands)":"Tonga","Tswana":"Cvana","Tsonga":"Conga","Turkmen":"Turkmena","Turkish":"Turka","Uighur":"Ujgura","Ukrainian":"Ukrajna","Urdu":"Urdua","Uzbek":"Uzbeka","Venda":"Vendaa","Vietnamese":"Vjetnama","Walloon":"Valona","Wolof":"Volofa","Xhosa":"Kosa","Yiddish":"Jido","Yoruba":"Joruba","Zhuang":"Ĉuanga","Chinese":"Ĉina","Zulu":"Zulua"}
\ No newline at end of file
+{"Music":"Muziko","Films":"Filmoj","Vehicles":"Veturiloj","Art":"Arto","Sports":"Sporto","Travels":"Vojaĝado","Gaming":"Ludoj","People":"Homoj","Comedy":"Komedio","Entertainment":"Amuzo","How To":"Instrukcioj","Education":"Instruado","Activism":"Aktivismo","Science & Technology":"Scienco ϗ teĥnikaro","Animals":"Bestoj","Kids":"Infanoj","Food":"Manĝo","Attribution":"Atribuite","Attribution - Share Alike":"Atribuite – Samkondiĉe","Attribution - No Derivatives":"Atribuite – Nemodifite","Attribution - Non Commercial":"Atribuite – Nekomerce","Attribution - Non Commercial - Share Alike":"Atribuite – Nekomerce – Samkondiĉe","Attribution - Non Commercial - No Derivatives":"Atribuite – Nekomerce – Nemodifite","Public Domain Dedication":"Dediĉo al publika posedo","Public":"Publika","Unlisted":"Nelistigata","Private":"Privata","Success":"Sukcesis","Failed":"Malsukcesis","Misc":"Diversaĵoj","Unknown":"Nekonata","Afar":"Afara","Abkhazian":"Abĥaza","Afrikaans":"Afrikansa","Akan":"Akana","Amharic":"Amhara","Arabic":"Araba","Aragonese":"Aragona","American Sign Language":"Usona gestlingvo","Assamese":"Asama","Avaric":"Avara","Kotava":"Kotavo","Aymara":"Ajmara","Azerbaijani":"Azerbajĝana","Bashkir":"Baŝkira","Bambara":"Bambara","Belarusian":"Belorusa","Bengali":"Bengala","British Sign Language":"Brita gestlingvo","Bislama":"Bislama","Tibetan":"Tibeta","Bosnian":"Bosna","Breton":"Bretona","Bulgarian":"Bulgara","Brazilian Sign Language":"Brazila gestlingvo","Catalan":"Kataluna","Czech":"Ĉeĥa","Chamorro":"Ĉamora","Chechen":"Ĉeĉena","Chuvash":"Ĉuvaŝa","Cornish":"Kornvala","Corsican":"Korsika","Czech Sign Language":"Ĉeĥa gestlingvo","Chinese Sign Language":"Ĉina gestlingvo","Welsh":"Kimra","Danish":"Dana","German":"Germana","Dhivehi":"Maldiva","Danish Sign Language":"Dana gestlingvo","Dzongkha":"Butana","Modern Greek (1453-)":"Novgreka","English":"Angla","Esperanto":"Esperanto","Estonian":"Estona","Basque":"Eŭska","Ewe":"Evea","Faroese":"Feroa","Persian":"Persa","Fijian":"Fiĝia","Finnish":"Finna","French":"Franca","Western Frisian":"Okcidentfrisa","French Sign Language":"Franca gestlingvo","Fulah":"Fula","Scottish Gaelic":"Skotgaela","Irish":"Irlanda","Galician":"Galega","Manx":"Manksa","Guarani":"Gvarania","German Sign Language":"Germana gestlingvo","Gujarati":"Guĝarata","Haitian":"Haitia","Hausa":"Haŭsa","Serbo-Croatian":"Kroatserba","Hebrew":"Hebrea","Herero":"Herera","Hindi":"Hinda","Hiri Motu":"Hirimotua","Croatian":"Kroata","Hungarian":"Hungara","Armenian":"Armena","Igbo":"Igba","Sichuan Yi":"Jia","Inuktitut":"Inuktituta","Indonesian":"Indonezia","Inupiaq":"Inupiko","Icelandic":"Islanda","Italian":"Itala","Javanese":"Java","Lojban":"Loĵbano","Japanese":"Japana","Japanese Sign Language":"Japana gestlingvo","Kalaallisut":"Gronlanda","Kannada":"Kanara","Kashmiri":"Kaŝmira","Georgian":"Kartvela","Kanuri":"Kanuria","Kazakh":"Kazaĥa","Khmer":"Kmera","Kirghiz":"Kirgiza","Komi":"Komia","Kongo":"Konga","Korean":"Korea","Kuanyama":"Kvanjama","Kurdish":"Kurda","Lao":"Laosa","Latvian":"Latva","Limburgan":"Limburga","Lingala":"Lingala","Lithuanian":"Litova","Luxembourgish":"Luksemburga","Marshallese":"Marŝalinsula","Malayalam":"Malajalama","Marathi":"Marata","Macedonian":"Makedona","Malagasy":"Malgaŝa","Maltese":"Malta","Mongolian":"Mongola","Maori":"Maoria","Malay (macrolanguage)":"Malaja","Burmese":"Birma","Nauru":"Naura","Navajo":"Navajo","South Ndebele":"Sudndebela","North Ndebele":"Nordndebela","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepala","Dutch":"Nederlanda","Norwegian Nynorsk":"Novnorvega","Norwegian Bokmål":"Bukmolo","Norwegian":"Norvega","Nyanja":"Ĉiĉeva","Ojibwa":"Oĝibua","Oriya (macrolanguage)":"Orisa","Oromo":"Oroma","Ossetian":"Oseta","Panjabi":"Panĝaba","Pakistan Sign Language":"Pakistana gestlingvo","Polish":"Pola","Portuguese":"Portugala","Pushto":"Paŝtua","Quechua":"Keĉua","Romansh":"Romanĉa","Romanian":"Rumana","Russian Sign Language":"Rusa gestlingvo","Russian":"Rusa","Saudi Arabian Sign Language":"Saudarabuja gestlingvo","South African Sign Language":"Sudafrika gestlingvo","Sinhala":"Sinhala","Slovak":"Slovaka","Slovenian":"Slovena","Northern Sami":"Nordlapona","Samoan":"Samoa","Shona":"Ŝona","Sindhi":"Sinda","Somali":"Somala","Southern Sotho":"Sudsota","Spanish":"Hispana","Albanian":"Albana","Sardinian":"Sarda","Serbian":"Serba","Swati":"Svazia","Sundanese":"Sunda","Swahili (macrolanguage)":"Svahila","Swedish":"Sveda","Swedish Sign Language":"Sveda gestlingvo","Tahitian":"Tahitia","Tamil":"Tamula","Tatar":"Tatara","Telugu":"Telugua","Tajik":"Taĝika","Tagalog":"Tagaloga","Thai":"Taja","Klingon":"Klingona","Tonga (Tonga Islands)":"Tonga","Tswana":"Cvana","Tsonga":"Conga","Turkmen":"Turkmena","Turkish":"Turka","Uighur":"Ujgura","Ukrainian":"Ukrajna","Urdu":"Urdua","Uzbek":"Uzbeka","Venda":"Vendaa","Vietnamese":"Vjetnama","Walloon":"Valona","Wolof":"Volofa","Xhosa":"Kosa","Yiddish":"Jido","Yoruba":"Joruba","Zhuang":"Ĉuanga","Chinese":"Ĉina","Zulu":"Zulua"}
\ No newline at end of file
-{"Music":"Música","Films":"Películas","Vehicles":"Transporte","Art":"Arte","Sports":"Deportes","Travels":"Viajes","Gaming":"Juegos","People":"Personalidades","Comedy":"Comedia","Entertainment":"Entretenimiento","News":"Noticias","How To":"Tutorial","Education":"Educación","Activism":"Activismo","Science & Technology":"Cienca & Tecnología","Animals":"Animales","Kids":"Niños","Food":"Cocina","Attribution":"Atribución","Attribution - Share Alike":"Atribución - Compartir Igual","Attribution - No Derivatives":"Atribución - No Derivadas","Attribution - Non Commercial":"Atribución - No Comercial","Attribution - Non Commercial - Share Alike":"Atribución - No Comercial - Compartir Igual","Attribution - Non Commercial - No Derivatives":"Atribución - No Comercial - No Derivadas","Public Domain Dedication":"Dominio Público","Public":"Público","Unlisted":"Sin listar","Private":"Privado","Published":"Pulicados","To transcode":"Para codificar","To import":"Para importar","Pending":"Pendientes","Misc":"Miscelánea","Unknown":"Desconocido","Afar":"Afar","Abkhazian":"Abjasio","Afrikaans":"Afrikáans","Akan":"Acano","Amharic":"Amhárico","Arabic":"Árabe","Aragonese":"Aragonés","American Sign Language":"Lengua de signos americana","Assamese":"Asamés","Avaric":"Avar","Kotava":"Kotava","Aymara":"Aimara","Azerbaijani":"Azerí","Bashkir":"Baskir","Bambara":"Bambara","Belarusian":"Bielorruso","Bengali":"Bengalí","British Sign Language":"Lenga de signos británica","Bislama":"Bislama","Tibetan":"Tibetano","Bosnian":"Bosnio","Breton":"Bretón","Bulgarian":"Búlgaro","Brazilian Sign Language":"Lengua de signos brasileña","Catalan":"Catalán","Czech":"Checo","Chamorro":"Chamorro","Chechen":"Checheno","Chuvash":"Chuvasio","Cornish":"Córnico","Corsican":"Corso","Cree":"Cree","Czech Sign Language":"Lengua de signos checa","Chinese Sign Language":"Lengua de signos china","Welsh":"Gaélico","Danish":"Danés","German":"Alemán","Dhivehi":"Maldivo","Danish Sign Language":"Lengua de signos danesa","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Griego moderno","English":"Inglés","Esperanto":"Esperanto","Estonian":"Estonio","Basque":"Euskera","Ewe":"Ewé","Faroese":"Feroés","Persian":"Persa","Fijian":"Fiyiano","Finnish":"Finés","French":"Francés","Western Frisian":"Frisón occidental","French Sign Language":"Lengua de signos francesa","Fulah":"Fula","Scottish Gaelic":"Gaélico escocés","Irish":"Irlandés","Galician":"Gallego","Manx":"Manés","Guarani":"Guaraní","German Sign Language":"Lengua de signos alemana","Gujarati":"Gujaratí","Haitian":"Haitiano","Hausa":"Hausa","Serbo-Croatian":"Serbocroata","Hebrew":"Hebreo","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri motu","Croatian":"Croata","Hungarian":"Húngaro","Armenian":"Armenio","Igbo":"Igbo","Sichuan Yi":"Nuosu","Inuktitut":"Inuit","Indonesian":"Indonesio","Inupiaq":"Iñupiaq","Icelandic":"Islandés","Italian":"Italiano","Javanese":"Javanés","Lojban":"Lojban","Japanese":"Japonés","Japanese Sign Language":"Lengua de signos japonesa","Kalaallisut":"Kalaallisut","Kannada":"Canarés","Kashmiri":"Cachemir","Georgian":"Georgiano","Kanuri":"Kanurí","Kazakh":"Kazajo","Khmer":"Camboyano","Kikuyu":"Kikuyú","Kinyarwanda":"Kiñaruanda","Kirghiz":"Kirguís","Komi":"Komi","Kongo":"Kongo","Korean":"Coreano","Kuanyama":"Kuanyama","Kurdish":"Kurdo","Lao":"Lao","Latvian":"Letón","Limburgan":"Limburgués","Lingala":"Lingala","Lithuanian":"Lituano","Luxembourgish":"Luxemburgués","Luba-Katanga":"Luba oriental","Ganda":"Luganda","Marshallese":"Mashalés","Malayalam":"Malabar","Marathi":"Maratí","Macedonian":"Macedonio","Malagasy":"Malgache","Maltese":"Maltés","Mongolian":"Mongol","Maori":"Maorí","Malay (macrolanguage)":"Malayo","Burmese":"Birmano","Nauru":"Nauruano","Navajo":"Navajo","South Ndebele":"Ndebele del sur","North Ndebele":"Ndebele del norte","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepalí","Dutch":"Neerlandés","Norwegian Nynorsk":"Nynorsk","Norwegian Bokmål":"Bokmål","Norwegian":"Noruego","Nyanja":"Chichewa","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya","Oromo":"Oromo","Ossetian":"Osetio","Panjabi":"Panyabí","Pakistan Sign Language":"Lengua de signos pakistaní","Polish":"Polaco","Portuguese":"Portugués","Pushto":"Pastún","Quechua":"Quechua","Romansh":"Romanche","Romanian":"Rumano","Russian Sign Language":"Lengua de signos rusa","Rundi":"Kirundí","Russian":"Ruso","Sango":"Sango","Saudi Arabian Sign Language":"Lengua de signos saudí","South African Sign Language":"Lengua de signos sudafricana","Sinhala":"Cingalés","Slovak":"Eslovaco","Slovenian":"Esloveno","Northern Sami":"Sami septentrional","Samoan":"Samoano","Shona":"Shona","Sindhi":"Sindi","Somali":"Somalí","Southern Sotho":"Soto meridional","Spanish":"Español","Albanian":"Albano","Sardinian":"Sardo","Serbian":"Serbio","Swati":"Suazi","Sundanese":"Sudanés","Swahili (macrolanguage)":"Suajili","Swedish":"Sueco","Swedish Sign Language":"Lengua de signos sueca","Tahitian":"Tahitiano","Tamil":"Támil","Tatar":"Tártaro","Telugu":"Télugu","Tajik":"Tayiko","Tagalog":"Tagalo","Thai":"Tailandés","Tigrinya":"Tigriña","Klingon":"Klingon","Tonga (Tonga Islands)":"Tongano","Tswana":"Setsuana","Tsonga":"Tsonga","Turkmen":"Turcomano","Turkish":"Turco","Twi":"Twi","Uighur":"Uigur","Ukrainian":"Ucraniano","Urdu":"Urdu","Uzbek":"Uzbeko","Venda":"Venda","Vietnamese":"Vietnamita","Walloon":"Valón","Wolof":"Wólof","Xhosa":"Xhosa","Yiddish":"Yidis","Yoruba":"Yoruba","Zhuang":"Chuang","Chinese":"Chino","Zulu":"Zulú"}
\ No newline at end of file
+{"Music":"Música","Films":"Películas","Vehicles":"Transporte","Art":"Arte","Sports":"Deportes","Travels":"Viajes","Gaming":"Juegos","People":"Personalidades","Comedy":"Comedia","Entertainment":"Entretenimiento","How To":"Tutorial","Education":"Educación","Activism":"Activismo","Science & Technology":"Cienca & Tecnología","Animals":"Animales","Kids":"Niños","Food":"Cocina","Attribution":"Atribución","Attribution - Share Alike":"Atribución - Compartir Igual","Attribution - No Derivatives":"Atribución - No Derivadas","Attribution - Non Commercial":"Atribución - No Comercial","Attribution - Non Commercial - Share Alike":"Atribución - No Comercial - Compartir Igual","Attribution - Non Commercial - No Derivatives":"Atribución - No Comercial - No Derivadas","Public Domain Dedication":"Dominio Público","Public":"Público","Unlisted":"Sin listar","Private":"Privado","Published":"Pulicados","To transcode":"Para codificar","To import":"Para importar","Pending":"Pendientes","Misc":"Miscelánea","Unknown":"Desconocido","Afar":"Afar","Abkhazian":"Abjasio","Afrikaans":"Afrikáans","Akan":"Acano","Amharic":"Amhárico","Arabic":"Árabe","Aragonese":"Aragonés","American Sign Language":"Lengua de signos americana","Assamese":"Asamés","Avaric":"Avar","Kotava":"Kotava","Aymara":"Aimara","Azerbaijani":"Azerí","Bashkir":"Baskir","Bambara":"Bambara","Belarusian":"Bielorruso","Bengali":"Bengalí","British Sign Language":"Lenga de signos británica","Bislama":"Bislama","Tibetan":"Tibetano","Bosnian":"Bosnio","Breton":"Bretón","Bulgarian":"Búlgaro","Brazilian Sign Language":"Lengua de signos brasileña","Catalan":"Catalán","Czech":"Checo","Chamorro":"Chamorro","Chechen":"Checheno","Chuvash":"Chuvasio","Cornish":"Córnico","Corsican":"Corso","Cree":"Cree","Czech Sign Language":"Lengua de signos checa","Chinese Sign Language":"Lengua de signos china","Welsh":"Gaélico","Danish":"Danés","German":"Alemán","Dhivehi":"Maldivo","Danish Sign Language":"Lengua de signos danesa","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Griego moderno","English":"Inglés","Esperanto":"Esperanto","Estonian":"Estonio","Basque":"Euskera","Ewe":"Ewé","Faroese":"Feroés","Persian":"Persa","Fijian":"Fiyiano","Finnish":"Finés","French":"Francés","Western Frisian":"Frisón occidental","French Sign Language":"Lengua de signos francesa","Fulah":"Fula","Scottish Gaelic":"Gaélico escocés","Irish":"Irlandés","Galician":"Gallego","Manx":"Manés","Guarani":"Guaraní","German Sign Language":"Lengua de signos alemana","Gujarati":"Gujaratí","Haitian":"Haitiano","Hausa":"Hausa","Serbo-Croatian":"Serbocroata","Hebrew":"Hebreo","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri motu","Croatian":"Croata","Hungarian":"Húngaro","Armenian":"Armenio","Igbo":"Igbo","Sichuan Yi":"Nuosu","Inuktitut":"Inuit","Indonesian":"Indonesio","Inupiaq":"Iñupiaq","Icelandic":"Islandés","Italian":"Italiano","Javanese":"Javanés","Lojban":"Lojban","Japanese":"Japonés","Japanese Sign Language":"Lengua de signos japonesa","Kalaallisut":"Kalaallisut","Kannada":"Canarés","Kashmiri":"Cachemir","Georgian":"Georgiano","Kanuri":"Kanurí","Kazakh":"Kazajo","Khmer":"Camboyano","Kikuyu":"Kikuyú","Kinyarwanda":"Kiñaruanda","Kirghiz":"Kirguís","Komi":"Komi","Kongo":"Kongo","Korean":"Coreano","Kuanyama":"Kuanyama","Kurdish":"Kurdo","Lao":"Lao","Latvian":"Letón","Limburgan":"Limburgués","Lingala":"Lingala","Lithuanian":"Lituano","Luxembourgish":"Luxemburgués","Luba-Katanga":"Luba oriental","Ganda":"Luganda","Marshallese":"Mashalés","Malayalam":"Malabar","Marathi":"Maratí","Macedonian":"Macedonio","Malagasy":"Malgache","Maltese":"Maltés","Mongolian":"Mongol","Maori":"Maorí","Malay (macrolanguage)":"Malayo","Burmese":"Birmano","Nauru":"Nauruano","Navajo":"Navajo","South Ndebele":"Ndebele del sur","North Ndebele":"Ndebele del norte","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepalí","Dutch":"Neerlandés","Norwegian Nynorsk":"Nynorsk","Norwegian Bokmål":"Bokmål","Norwegian":"Noruego","Nyanja":"Chichewa","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya","Oromo":"Oromo","Ossetian":"Osetio","Panjabi":"Panyabí","Pakistan Sign Language":"Lengua de signos pakistaní","Polish":"Polaco","Portuguese":"Portugués","Pushto":"Pastún","Quechua":"Quechua","Romansh":"Romanche","Romanian":"Rumano","Russian Sign Language":"Lengua de signos rusa","Rundi":"Kirundí","Russian":"Ruso","Sango":"Sango","Saudi Arabian Sign Language":"Lengua de signos saudí","South African Sign Language":"Lengua de signos sudafricana","Sinhala":"Cingalés","Slovak":"Eslovaco","Slovenian":"Esloveno","Northern Sami":"Sami septentrional","Samoan":"Samoano","Shona":"Shona","Sindhi":"Sindi","Somali":"Somalí","Southern Sotho":"Soto meridional","Spanish":"Español","Albanian":"Albano","Sardinian":"Sardo","Serbian":"Serbio","Swati":"Suazi","Sundanese":"Sudanés","Swahili (macrolanguage)":"Suajili","Swedish":"Sueco","Swedish Sign Language":"Lengua de signos sueca","Tahitian":"Tahitiano","Tamil":"Támil","Tatar":"Tártaro","Telugu":"Télugu","Tajik":"Tayiko","Tagalog":"Tagalo","Thai":"Tailandés","Tigrinya":"Tigriña","Klingon":"Klingon","Tonga (Tonga Islands)":"Tongano","Tswana":"Setsuana","Tsonga":"Tsonga","Turkmen":"Turcomano","Turkish":"Turco","Twi":"Twi","Uighur":"Uigur","Ukrainian":"Ucraniano","Urdu":"Urdu","Uzbek":"Uzbeko","Venda":"Venda","Vietnamese":"Vietnamita","Walloon":"Valón","Wolof":"Wólof","Xhosa":"Xhosa","Yiddish":"Yidis","Yoruba":"Yoruba","Zhuang":"Chuang","Chinese":"Chino","Zulu":"Zulú"}
\ No newline at end of file
-{"Music":"Musika","Films":"Filmak","Vehicles":"Ibilgailuak","Art":"Artea","Sports":"Kirolak","Travels":"Bidaiak","Gaming":"Jolasak","People":"Jendea","Comedy":"Komedia","Entertainment":"Aisia","News":"Berriak","How To":"Argibideak","Education":"Hezkuntza","Activism":"Aktibismoa","Science & Technology":"Zientzia eta teknologia","Animals":"Animaliak","Kids":"Haurrak","Food":"Janaria","Attribution":"Atribuzioa","Attribution - Share Alike":"Atribuzioa - Partekatu berdin","Attribution - No Derivatives":"Atribuzioa - Eratorririk ez","Attribution - Non Commercial":"Atribuzioa - Ez komertziala","Attribution - Non Commercial - Share Alike":"Atribuzioa - Ez komertziala - Partekatu berdin","Attribution - Non Commercial - No Derivatives":"Atribuzioa - Ez komertziala - Eratorririk ez","Public Domain Dedication":"Domeinu publikoa","Public":"Publikoa","Unlisted":"Zerrendatu gabea","Private":"Pribatua","Published":"Argitaratua","To transcode":"Transkodetzeko","To import":"Inportatzeko","Pending":"Egiteke","Success":"Arrakasta","Failed":"Hutsa","Misc":"Denetarik","Unknown":"Ezezaguna","Afar":"Afar","Abkhazian":"Abkhaziera","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharera","Arabic":"Arabiera","Aragonese":"Aragoiera","American Sign Language":"Amerikako zeinu-hizkuntza ","Assamese":"Assamera","Avaric":"Avarera","Kotava":"Kotava","Aymara":"Aimara","Azerbaijani":"Azerbaijanera","Bashkir":"Baxkirera","Bambara":"Banbara","Belarusian":"Bielorrusiera","Bengali":"Bengalera","British Sign Language":"Britainiako zeinu-hizkuntza","Bislama":"Bislama","Tibetan":"Tibetera","Bosnian":"Bosniera","Breton":"Bretoiera","Bulgarian":"Bulgariera","Brazilian Sign Language":"Brasilgo zeinu-hizkuntza","Catalan":"Katalana","Czech":"Txekiera","Chamorro":"Chamorro","Chechen":"Txetxenera","Chuvash":"Txuvaxera","Cornish":"Kornubiera","Corsican":"Korsikera","Cree":"Cree","Czech Sign Language":"Txekiako zeinu-hizkuntza","Chinese Sign Language":"Txinako zeinu-hizkuntza","Welsh":"Galesa","Danish":"Daniera","German":"Alemana","Dhivehi":"Dhivehi (maldivera) ","Danish Sign Language":"Danimarkako zeinu-hizkuntza","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Greziera moernoa (1453-)","English":"Ingelesa","Esperanto":"Esperantoa","Estonian":"Estoniera","Basque":"Euskara","Ewe":"Eweera","Faroese":"Faroera","Persian":"Persiera","Fijian":"Fijiera","Finnish":"Suomiera","French":"Frantsesa","Western Frisian":"Mendebaldeko frisiera","French Sign Language":"Frantziako zeinu-hizkuntza","Fulah":"Fula","Scottish Gaelic":"Eskoziako gaelikoa","Irish":"Irlandera","Galician":"Galiziera","Manx":"Manera","Guarani":"Guaraniera","German Sign Language":"Alemaniako zeinu-hizkuntza","Gujarati":"Gujaratera","Haitian":"Haitiko kreolera","Hausa":"Hausa","Serbo-Croatian":"Serbokroaziera ","Hebrew":"Hebreera","Herero":"Hereroera","Hindi":"Hindi","Hiri Motu":"Hiri Motu","Croatian":"Kroaziera","Hungarian":"Hungariera","Armenian":"Armeniera","Igbo":"Igboera","Sichuan Yi":"Nuosu","Inuktitut":"Inuktitutera","Indonesian":"Indonesiera","Inupiaq":"Inupiaq","Icelandic":"Islandiera","Italian":"Italiera","Javanese":"Javera","Lojban":"Lojban","Japanese":"Japoniera","Japanese Sign Language":"Japoniako zeinu-hizkuntza","Kalaallisut":"Groenlandiera","Kannada":"Kannada","Kashmiri":"Kaxmirera","Georgian":"Georgiera / Kartveliera ","Kanuri":"Kanuri","Kazakh":"Kazakhera","Khmer":"Khmerera","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyaruanda","Kirghiz":"Kirgizera","Komi":"Komiera","Kongo":"Kikongo","Korean":"Koreera","Kuanyama":"Kuanyama","Kurdish":"Kurduera","Lao":"Laosera","Latvian":"Letoniera","Limburgan":"Limburgera","Lingala":"Lingala","Lithuanian":"Lituaniera","Luxembourgish":"Luxenburgera","Luba-Katanga":"Luba-Katanga","Ganda":"Luganda","Marshallese":"Marshallera","Malayalam":"Malabarera","Marathi":"Marathera","Macedonian":"Mazedoniera","Malagasy":"Malgaxe","Maltese":"Maltera","Mongolian":"Mongoliera","Maori":"Maoriera","Malay (macrolanguage)":"Malaysiera (makro-hizkuntza)","Burmese":"Birmaniera","Nauru":"Nauruera","Navajo":"Navajoa","South Ndebele":"Hego Ndebele","North Ndebele":"Ipar Ndebele","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepalera (makro-hizkuntza)","Dutch":"Nederlandera","Norwegian Nynorsk":"Norvegiako Nynorsk","Norwegian Bokmål":"Norvegiako Bokmål","Norwegian":"Norvegiera","Nyanja":"Txewera","Occitan":"Okzitaniera","Ojibwa":"Ojibwera","Oriya (macrolanguage)":"Oriya (makro-hizkuntza)","Oromo":"Oromoera","Ossetian":"Osetiera","Panjabi":"Punjabera","Pakistan Sign Language":"Pakistango zeinu-hizkuntza","Polish":"Poloniera","Portuguese":"Portugesa","Pushto":"Paxtuera","Quechua":"Kitxua","Romansh":"Erromantxea","Romanian":"Errumaniera","Russian Sign Language":"Errusiako zeinu-hizkuntza","Rundi":"Kirundi","Russian":"Errusiera","Sango":"Sango","Saudi Arabian Sign Language":"Saudi Arabiako zeinu-hizkuntza","South African Sign Language":"Hego Afrikako zeinu-hizkuntza","Sinhala":"Sinhala","Slovak":"Eslovakiera","Slovenian":"Esloveniera","Northern Sami":"Ipar Samiera","Samoan":"Samoera","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somaliera","Southern Sotho":"Sothoera","Spanish":"Espainiera","Albanian":"Albaniera","Sardinian":"Sardiniera","Serbian":"Serbiera","Swati":"Swaziera","Sundanese":"Sundera","Swahili (macrolanguage)":"Swahili (makro-hizkuntza)","Swedish":"Suediera","Swedish Sign Language":"Suediako zeinu-hizkuntza","Tahitian":"Maoriera","Tamil":"Tamilera","Tatar":"Tatarera","Telugu":"Telugu","Tajik":"Tajikera","Tagalog":"Tagaloa","Thai":"Thailandiera","Tigrinya":"Tigrinyera","Klingon":"Klingon","Tonga (Tonga Islands)":"Tonga (Tonga irlak)","Tswana":"Tswanera","Tsonga":"Tsongera","Turkmen":"Turkmenera","Turkish":"Turkiera","Twi":"Twi","Uighur":"Uigurrera","Ukrainian":"Ukrainera","Urdu":"Urduera","Uzbek":"Uzbekera","Venda":"Vendera","Vietnamese":"Vietnamera","Walloon":"Valoniera","Wolof":"Wolofera","Xhosa":"Xhosera","Yiddish":"Yiddish","Yoruba":"Jorubera","Zhuang":"Zhuang","Chinese":"Txinera","Zulu":"Zuluera"}
\ No newline at end of file
+{"Music":"Musika","Films":"Filmak","Vehicles":"Ibilgailuak","Art":"Artea","Sports":"Kirolak","Travels":"Bidaiak","Gaming":"Jolasak","People":"Jendea","Comedy":"Komedia","Entertainment":"Aisia","How To":"Argibideak","Education":"Hezkuntza","Activism":"Aktibismoa","Science & Technology":"Zientzia eta teknologia","Animals":"Animaliak","Kids":"Haurrak","Food":"Janaria","Attribution":"Atribuzioa","Attribution - Share Alike":"Atribuzioa - Partekatu berdin","Attribution - No Derivatives":"Atribuzioa - Eratorririk ez","Attribution - Non Commercial":"Atribuzioa - Ez komertziala","Attribution - Non Commercial - Share Alike":"Atribuzioa - Ez komertziala - Partekatu berdin","Attribution - Non Commercial - No Derivatives":"Atribuzioa - Ez komertziala - Eratorririk ez","Public Domain Dedication":"Domeinu publikoa","Public":"Publikoa","Unlisted":"Zerrendatu gabea","Private":"Pribatua","Published":"Argitaratua","To transcode":"Transkodetzeko","To import":"Inportatzeko","Pending":"Egiteke","Success":"Arrakasta","Failed":"Hutsa","Misc":"Denetarik","Unknown":"Ezezaguna","Afar":"Afar","Abkhazian":"Abkhaziera","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharera","Arabic":"Arabiera","Aragonese":"Aragoiera","American Sign Language":"Amerikako zeinu-hizkuntza ","Assamese":"Assamera","Avaric":"Avarera","Kotava":"Kotava","Aymara":"Aimara","Azerbaijani":"Azerbaijanera","Bashkir":"Baxkirera","Bambara":"Banbara","Belarusian":"Bielorrusiera","Bengali":"Bengalera","British Sign Language":"Britainiako zeinu-hizkuntza","Bislama":"Bislama","Tibetan":"Tibetera","Bosnian":"Bosniera","Breton":"Bretoiera","Bulgarian":"Bulgariera","Brazilian Sign Language":"Brasilgo zeinu-hizkuntza","Catalan":"Katalana","Czech":"Txekiera","Chamorro":"Chamorro","Chechen":"Txetxenera","Chuvash":"Txuvaxera","Cornish":"Kornubiera","Corsican":"Korsikera","Cree":"Cree","Czech Sign Language":"Txekiako zeinu-hizkuntza","Chinese Sign Language":"Txinako zeinu-hizkuntza","Welsh":"Galesa","Danish":"Daniera","German":"Alemana","Dhivehi":"Dhivehi (maldivera) ","Danish Sign Language":"Danimarkako zeinu-hizkuntza","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Greziera moernoa (1453-)","English":"Ingelesa","Esperanto":"Esperantoa","Estonian":"Estoniera","Basque":"Euskara","Ewe":"Eweera","Faroese":"Faroera","Persian":"Persiera","Fijian":"Fijiera","Finnish":"Suomiera","French":"Frantsesa","Western Frisian":"Mendebaldeko frisiera","French Sign Language":"Frantziako zeinu-hizkuntza","Fulah":"Fula","Scottish Gaelic":"Eskoziako gaelikoa","Irish":"Irlandera","Galician":"Galiziera","Manx":"Manera","Guarani":"Guaraniera","German Sign Language":"Alemaniako zeinu-hizkuntza","Gujarati":"Gujaratera","Haitian":"Haitiko kreolera","Hausa":"Hausa","Serbo-Croatian":"Serbokroaziera ","Hebrew":"Hebreera","Herero":"Hereroera","Hindi":"Hindi","Hiri Motu":"Hiri Motu","Croatian":"Kroaziera","Hungarian":"Hungariera","Armenian":"Armeniera","Igbo":"Igboera","Sichuan Yi":"Nuosu","Inuktitut":"Inuktitutera","Indonesian":"Indonesiera","Inupiaq":"Inupiaq","Icelandic":"Islandiera","Italian":"Italiera","Javanese":"Javera","Lojban":"Lojban","Japanese":"Japoniera","Japanese Sign Language":"Japoniako zeinu-hizkuntza","Kalaallisut":"Groenlandiera","Kannada":"Kannada","Kashmiri":"Kaxmirera","Georgian":"Georgiera / Kartveliera ","Kanuri":"Kanuri","Kazakh":"Kazakhera","Khmer":"Khmerera","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyaruanda","Kirghiz":"Kirgizera","Komi":"Komiera","Kongo":"Kikongo","Korean":"Koreera","Kuanyama":"Kuanyama","Kurdish":"Kurduera","Lao":"Laosera","Latvian":"Letoniera","Limburgan":"Limburgera","Lingala":"Lingala","Lithuanian":"Lituaniera","Luxembourgish":"Luxenburgera","Luba-Katanga":"Luba-Katanga","Ganda":"Luganda","Marshallese":"Marshallera","Malayalam":"Malabarera","Marathi":"Marathera","Macedonian":"Mazedoniera","Malagasy":"Malgaxe","Maltese":"Maltera","Mongolian":"Mongoliera","Maori":"Maoriera","Malay (macrolanguage)":"Malaysiera (makro-hizkuntza)","Burmese":"Birmaniera","Nauru":"Nauruera","Navajo":"Navajoa","South Ndebele":"Hego Ndebele","North Ndebele":"Ipar Ndebele","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepalera (makro-hizkuntza)","Dutch":"Nederlandera","Norwegian Nynorsk":"Norvegiako Nynorsk","Norwegian Bokmål":"Norvegiako Bokmål","Norwegian":"Norvegiera","Nyanja":"Txewera","Occitan":"Okzitaniera","Ojibwa":"Ojibwera","Oriya (macrolanguage)":"Oriya (makro-hizkuntza)","Oromo":"Oromoera","Ossetian":"Osetiera","Panjabi":"Punjabera","Pakistan Sign Language":"Pakistango zeinu-hizkuntza","Polish":"Poloniera","Portuguese":"Portugesa","Pushto":"Paxtuera","Quechua":"Kitxua","Romansh":"Erromantxea","Romanian":"Errumaniera","Russian Sign Language":"Errusiako zeinu-hizkuntza","Rundi":"Kirundi","Russian":"Errusiera","Sango":"Sango","Saudi Arabian Sign Language":"Saudi Arabiako zeinu-hizkuntza","South African Sign Language":"Hego Afrikako zeinu-hizkuntza","Sinhala":"Sinhala","Slovak":"Eslovakiera","Slovenian":"Esloveniera","Northern Sami":"Ipar Samiera","Samoan":"Samoera","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somaliera","Southern Sotho":"Sothoera","Spanish":"Espainiera","Albanian":"Albaniera","Sardinian":"Sardiniera","Serbian":"Serbiera","Swati":"Swaziera","Sundanese":"Sundera","Swahili (macrolanguage)":"Swahili (makro-hizkuntza)","Swedish":"Suediera","Swedish Sign Language":"Suediako zeinu-hizkuntza","Tahitian":"Maoriera","Tamil":"Tamilera","Tatar":"Tatarera","Telugu":"Telugu","Tajik":"Tajikera","Tagalog":"Tagaloa","Thai":"Thailandiera","Tigrinya":"Tigrinyera","Klingon":"Klingon","Tonga (Tonga Islands)":"Tonga (Tonga irlak)","Tswana":"Tswanera","Tsonga":"Tsongera","Turkmen":"Turkmenera","Turkish":"Turkiera","Twi":"Twi","Uighur":"Uigurrera","Ukrainian":"Ukrainera","Urdu":"Urduera","Uzbek":"Uzbekera","Venda":"Vendera","Vietnamese":"Vietnamera","Walloon":"Valoniera","Wolof":"Wolofera","Xhosa":"Xhosera","Yiddish":"Yiddish","Yoruba":"Jorubera","Zhuang":"Zhuang","Chinese":"Txinera","Zulu":"Zuluera"}
\ No newline at end of file
-{"Music":"Musiques","Films":"Films","Vehicles":"Transport","Art":"Art","Sports":"Sports","Travels":"Voyages","Gaming":"Jeux vidéos","People":"Personnalités","Comedy":"Humour","Entertainment":"Divertissement","News":"Actualités","How To":"Tutoriels","Education":"Éducation","Activism":"Militantisme","Science & Technology":"Science & Technologie","Animals":"Animaux","Kids":"Enfants","Food":"Cuisine","Attribution":"Attribution","Attribution - Share Alike":"Attribution - Partage dans les mêmes conditions","Attribution - No Derivatives":"Attribution - Pas d’œuvre dérivée","Attribution - Non Commercial":"Attribution - Utilisation non commerciale","Attribution - Non Commercial - Share Alike":"Attribution - Utilisation non commerciale - Partage dans les mêmes conditions","Attribution - Non Commercial - No Derivatives":"Attribution - Utilisation non commerciale - Pas d’œuvre dérivée","Public Domain Dedication":"Domaine public","Public":"Publique","Unlisted":"Non listée","Private":"Privée","Published":"Publiée","To transcode":"À transcoder","To import":"À importer","Pending":"En cours","Success":"Succès","Failed":"Échoué","Misc":"Divers","Unknown":"Inconnu","Afar":"Afar","Abkhazian":"Abkhaze","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharique","Arabic":"Arabe","Aragonese":"Aragonais","American Sign Language":"Langue des signes américaine","Assamese":"Assamais","Avaric":"Avar","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Azéri","Bashkir":"Bachkir","Bambara":"Bambara","Belarusian":"Biélorusse","Bengali":"Bengali","British Sign Language":"Langue des signes britannique","Bislama":"Bichlamar","Tibetan":"Tibétain","Bosnian":"Bosniaque","Breton":"Breton","Bulgarian":"Bulgare","Brazilian Sign Language":"Langue des signes brésilienne","Catalan":"Catalan","Czech":"Tchèque","Chamorro":"Chamorro","Chechen":"Tchétchène","Chuvash":"Tchouvache","Cornish":"Cornique","Corsican":"Corse","Cree":"Cree","Czech Sign Language":"Langue des signes tchèque","Chinese Sign Language":"Langue des signes chinoise","Welsh":"Gallois","Danish":"Danois","German":"Allemand","Dhivehi":"Maldivien","Danish Sign Language":"Langue des signes danoise","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Grec moderne (après 1453)","English":"Anglais","Esperanto":"Espéranto","Estonian":"Estonien","Basque":"Basque","Ewe":"Éwé","Faroese":"Féroïen","Persian":"Persan","Fijian":"Fidjien","Finnish":"Finnois","French":"Français","Western Frisian":"Frison occidental","French Sign Language":"Langue des signes française","Fulah":"Peul","Scottish Gaelic":"Gaélique","Irish":"Irlandais","Galician":"Galicien","Manx":"Manx","Guarani":"Guarani","German Sign Language":"Langue des signes allemande","Gujarati":"Goudjrati","Haitian":"Haïtien","Hausa":"Haoussa","Serbo-Croatian":"Serbo-croate","Hebrew":"Hébreu","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri motu","Croatian":"Croate","Hungarian":"Hongrois","Armenian":"Arménien","Igbo":"Igbo","Sichuan Yi":"Yi de Sichuan","Inuktitut":"Inuktitut","Indonesian":"Indonésien","Inupiaq":"Inupiaq","Icelandic":"Islandais","Italian":"Italien","Javanese":"Javanais","Lojban":"Lojban","Japanese":"Japonais","Japanese Sign Language":"Langue des signes japonaise","Kalaallisut":"Groenlandais","Kannada":"Kannada","Kashmiri":"Kashmiri","Georgian":"Géorgien","Kanuri":"Kanouri","Kazakh":"Kazakh","Khmer":"Khmer central","Kikuyu":"Kikuyu","Kinyarwanda":"Rwanda","Kirghiz":"Kirghiz","Komi":"Kom","Kongo":"Kongo","Korean":"Coréen","Kuanyama":"Kuanyama","Kurdish":"Kurde","Lao":"Lao","Latvian":"Letton","Limburgan":"Limbourgeois","Lingala":"Lingala","Lithuanian":"Lituanien","Luxembourgish":"Luxembourgeois","Luba-Katanga":"Luba-katanga","Ganda":"Ganda","Marshallese":"Marshall","Malayalam":"Malayalam","Marathi":"Marathe","Macedonian":"Macédonien","Malagasy":"Malgache","Maltese":"Maltais","Mongolian":"Mongol","Maori":"Maori","Malay (macrolanguage)":"Malais","Burmese":"Birman","Nauru":"Nauruan","Navajo":"Navaho","South Ndebele":"Ndébélé du Sud","North Ndebele":"Ndébélé du Nord","Ndonga":"Ndonga","Nepali (macrolanguage)":"Népalais","Dutch":"Néerlandais","Norwegian Nynorsk":"Norvégien nynorsk","Norwegian Bokmål":"Norvégien bokmål","Norwegian":"Norvégien","Nyanja":"Chichewa","Occitan":"Occitane","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya","Oromo":"Galla","Ossetian":"Ossète","Panjabi":"Pendjabi","Pakistan Sign Language":"Langue des signes pakistanaise","Polish":"Polonais","Portuguese":"Portugais","Pushto":"Pachto","Quechua":"Quechua","Romansh":"Romanche","Romanian":"Roumain","Russian Sign Language":"Langue des signes russe","Rundi":"Rundi","Russian":"Russe","Sango":"Sango","Saudi Arabian Sign Language":"Langue des signes saoudienne","South African Sign Language":"Langue des signes sud-africaine","Sinhala":"Singhalais","Slovak":"Slovaque","Slovenian":"Slovène","Northern Sami":"Sami du Nord","Samoan":"Samoan","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sotho du Sud","Spanish":"Espagnol","Albanian":"Albanais","Sardinian":"Sarde","Serbian":"Serbe","Swati":"Swati","Sundanese":"Soundanais","Swahili (macrolanguage)":"Swahili","Swedish":"Suédois","Swedish Sign Language":"Langue des signes suédoise","Tahitian":"Tahitien","Tamil":"Tamoul","Tatar":"Tatar","Telugu":"Télougou","Tajik":"Tadjik","Tagalog":"Tagalog","Thai":"Thaï","Tigrinya":"Tigrigna","Klingon":"Klingon","Tonga (Tonga Islands)":"Tongan (Îles Tonga)","Tswana":"Tswana","Tsonga":"Tsonga","Turkmen":"Turkmène","Turkish":"Turc","Twi":"Twi","Uighur":"Ouïgour","Ukrainian":"Ukrainien","Urdu":"Ourdou","Uzbek":"Ouszbek","Venda":"Venda","Vietnamese":"Vietnamien","Walloon":"Wallon","Wolof":"Wolof","Xhosa":"Xhosa","Yiddish":"Yiddish","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinois","Zulu":"Zoulou"}
\ No newline at end of file
+{"Music":"Musiques","Films":"Films","Vehicles":"Transport","Art":"Art","Sports":"Sports","Travels":"Voyages","Gaming":"Jeux vidéos","People":"Personnalités","Comedy":"Humour","Entertainment":"Divertissement","How To":"Tutoriels","Education":"Éducation","Activism":"Militantisme","Science & Technology":"Science & Technologie","Animals":"Animaux","Kids":"Enfants","Food":"Cuisine","Attribution":"Attribution","Attribution - Share Alike":"Attribution - Partage dans les mêmes conditions","Attribution - No Derivatives":"Attribution - Pas d’œuvre dérivée","Attribution - Non Commercial":"Attribution - Utilisation non commerciale","Attribution - Non Commercial - Share Alike":"Attribution - Utilisation non commerciale - Partage dans les mêmes conditions","Attribution - Non Commercial - No Derivatives":"Attribution - Utilisation non commerciale - Pas d’œuvre dérivée","Public Domain Dedication":"Domaine public","Public":"Publique","Unlisted":"Non listée","Private":"Privée","Published":"Publiée","To transcode":"À transcoder","To import":"À importer","Pending":"En cours","Success":"Succès","Failed":"Échoué","Misc":"Divers","Unknown":"Inconnu","Afar":"Afar","Abkhazian":"Abkhaze","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharique","Arabic":"Arabe","Aragonese":"Aragonais","American Sign Language":"Langue des signes américaine","Assamese":"Assamais","Avaric":"Avar","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Azéri","Bashkir":"Bachkir","Bambara":"Bambara","Belarusian":"Biélorusse","Bengali":"Bengali","British Sign Language":"Langue des signes britannique","Bislama":"Bichlamar","Tibetan":"Tibétain","Bosnian":"Bosniaque","Breton":"Breton","Bulgarian":"Bulgare","Brazilian Sign Language":"Langue des signes brésilienne","Catalan":"Catalan","Czech":"Tchèque","Chamorro":"Chamorro","Chechen":"Tchétchène","Chuvash":"Tchouvache","Cornish":"Cornique","Corsican":"Corse","Cree":"Cree","Czech Sign Language":"Langue des signes tchèque","Chinese Sign Language":"Langue des signes chinoise","Welsh":"Gallois","Danish":"Danois","German":"Allemand","Dhivehi":"Maldivien","Danish Sign Language":"Langue des signes danoise","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Grec moderne (après 1453)","English":"Anglais","Esperanto":"Espéranto","Estonian":"Estonien","Basque":"Basque","Ewe":"Éwé","Faroese":"Féroïen","Persian":"Persan","Fijian":"Fidjien","Finnish":"Finnois","French":"Français","Western Frisian":"Frison occidental","French Sign Language":"Langue des signes française","Fulah":"Peul","Scottish Gaelic":"Gaélique","Irish":"Irlandais","Galician":"Galicien","Manx":"Manx","Guarani":"Guarani","German Sign Language":"Langue des signes allemande","Gujarati":"Goudjrati","Haitian":"Haïtien","Hausa":"Haoussa","Serbo-Croatian":"Serbo-croate","Hebrew":"Hébreu","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri motu","Croatian":"Croate","Hungarian":"Hongrois","Armenian":"Arménien","Igbo":"Igbo","Sichuan Yi":"Yi de Sichuan","Inuktitut":"Inuktitut","Indonesian":"Indonésien","Inupiaq":"Inupiaq","Icelandic":"Islandais","Italian":"Italien","Javanese":"Javanais","Lojban":"Lojban","Japanese":"Japonais","Japanese Sign Language":"Langue des signes japonaise","Kalaallisut":"Groenlandais","Kannada":"Kannada","Kashmiri":"Kashmiri","Georgian":"Géorgien","Kanuri":"Kanouri","Kazakh":"Kazakh","Khmer":"Khmer central","Kikuyu":"Kikuyu","Kinyarwanda":"Rwanda","Kirghiz":"Kirghiz","Komi":"Kom","Kongo":"Kongo","Korean":"Coréen","Kuanyama":"Kuanyama","Kurdish":"Kurde","Lao":"Lao","Latvian":"Letton","Limburgan":"Limbourgeois","Lingala":"Lingala","Lithuanian":"Lituanien","Luxembourgish":"Luxembourgeois","Luba-Katanga":"Luba-katanga","Ganda":"Ganda","Marshallese":"Marshall","Malayalam":"Malayalam","Marathi":"Marathe","Macedonian":"Macédonien","Malagasy":"Malgache","Maltese":"Maltais","Mongolian":"Mongol","Maori":"Maori","Malay (macrolanguage)":"Malais","Burmese":"Birman","Nauru":"Nauruan","Navajo":"Navaho","South Ndebele":"Ndébélé du Sud","North Ndebele":"Ndébélé du Nord","Ndonga":"Ndonga","Nepali (macrolanguage)":"Népalais","Dutch":"Néerlandais","Norwegian Nynorsk":"Norvégien nynorsk","Norwegian Bokmål":"Norvégien bokmål","Norwegian":"Norvégien","Nyanja":"Chichewa","Occitan":"Occitane","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya","Oromo":"Galla","Ossetian":"Ossète","Panjabi":"Pendjabi","Pakistan Sign Language":"Langue des signes pakistanaise","Polish":"Polonais","Portuguese":"Portugais","Pushto":"Pachto","Quechua":"Quechua","Romansh":"Romanche","Romanian":"Roumain","Russian Sign Language":"Langue des signes russe","Rundi":"Rundi","Russian":"Russe","Sango":"Sango","Saudi Arabian Sign Language":"Langue des signes saoudienne","South African Sign Language":"Langue des signes sud-africaine","Sinhala":"Singhalais","Slovak":"Slovaque","Slovenian":"Slovène","Northern Sami":"Sami du Nord","Samoan":"Samoan","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sotho du Sud","Spanish":"Espagnol","Albanian":"Albanais","Sardinian":"Sarde","Serbian":"Serbe","Swati":"Swati","Sundanese":"Soundanais","Swahili (macrolanguage)":"Swahili","Swedish":"Suédois","Swedish Sign Language":"Langue des signes suédoise","Tahitian":"Tahitien","Tamil":"Tamoul","Tatar":"Tatar","Telugu":"Télougou","Tajik":"Tadjik","Tagalog":"Tagalog","Thai":"Thaï","Tigrinya":"Tigrigna","Klingon":"Klingon","Tonga (Tonga Islands)":"Tongan (Îles Tonga)","Tswana":"Tswana","Tsonga":"Tsonga","Turkmen":"Turkmène","Turkish":"Turc","Twi":"Twi","Uighur":"Ouïgour","Ukrainian":"Ukrainien","Urdu":"Ourdou","Uzbek":"Ouszbek","Venda":"Venda","Vietnamese":"Vietnamien","Walloon":"Wallon","Wolof":"Wolof","Xhosa":"Xhosa","Yiddish":"Yiddish","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinois","Zulu":"Zoulou"}
\ No newline at end of file
<source>Entertainment</source>
<target>Entretemento</target>
</trans-unit>
- <trans-unit id="News">
- <source>News</source>
- <target>Novas</target>
- </trans-unit>
<trans-unit id="How To">
<source>How To</source>
<target>Manuais</target>
<source>Entertainment</source>
<target>Entertainment</target>
</trans-unit>
- <trans-unit id="News">
- <source>News</source>
- <target>Nieuws</target>
- </trans-unit>
<trans-unit id="How To">
<source>How To</source>
<target>Tutorials</target>
-{"Music":"Musica","Films":"Films","Vehicles":"Veituras","Art":"Art","Sports":"Espòrts","Travels":"Viatges","Gaming":"Vidèo jòc","People":"Gent","Comedy":"Comèdia","Entertainment":"Léser ","News":"Actualitat","How To":"Demonstracions","Education":"Educacion","Activism":"Activisme","Science & Technology":"Sciéncia & Tecnologia","Animals":"Animals","Kids":"Mainatges","Food":"Manjar","Attribution":"Atribucion","Attribution - Share Alike":"Atribucion - Partejar a l’identic","Attribution - No Derivatives":"Atribucion - Cap de derivacion","Attribution - Non Commercial":"Atribucion - Pas comercial","Attribution - Non Commercial - Share Alike":"Atribucion - Pas comercial - Partejar a l’identic","Attribution - Non Commercial - No Derivatives":"Atribucion - Pas comercial - Cap de derivacion","Public Domain Dedication":"Domeni public","Public":"Public","Unlisted":"Pas listat","Private":"Privat","Published":"Publicada","To transcode":"De transcodar","To import":"D’importar","Pending":"En espèra","Success":"Reüssida","Failed":"Fracàs","Misc":"Divèrs","Unknown":"Desconegut","Afar":"Afar","Abkhazian":"Abcaz","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharic","Arabic":"Arabi","Aragonese":"Aragonés","American Sign Language":"Lenga de signes americana","Assamese":"Assamés","Avaric":"Avaric","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Azèri","Bashkir":"Bashkir","Bambara":"Bambara","Belarusian":"Bielorús","Bengali":"Bengalin","British Sign Language":"Lenga de signes britanica","Bislama":"Bislama","Tibetan":"Tibetan","Bosnian":"Bosnian","Breton":"Breton","Bulgarian":"Bulgar","Brazilian Sign Language":"Lenga de signes brasiliana","Catalan":"Catalan","Czech":"Chèc","Chamorro":"Chamorro","Chechen":"Chenchèn","Chuvash":"Chuvash","Cornish":"Cornic","Corsican":"Còrs","Cree":"Cree","Czech Sign Language":"Lenga de signes chèca","Chinese Sign Language":"Lenga de signes chinesa","Welsh":"Galés","Danish":"Danés","German":"Alemand","Danish Sign Language":"Lenga de signes danesa","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Grèc","English":"Anglés","Esperanto":"Esperanto","Estonian":"Estonian","Basque":"Basc","Ewe":"Ewe","Faroese":"Faroés","Persian":"Persan","Fijian":"Fijian","Finnish":"Finés","French":"Francés","Western Frisian":"Frison occitendal","French Sign Language":"Lenga de signes francesa","Fulah":"Fulah","Scottish Gaelic":"Gaelic escossés","Irish":"Irlandés","Galician":"Galician","Manx":"Manés","Guarani":"Guaraní","German Sign Language":"Lenga de signes alemanda","Gujarati":"Gujarati","Haitian":"Haitian","Hausa":"Hausa","Serbo-Croatian":"Sèrbocroat","Hebrew":"Ebrieu","Herero":"Herero","Hindi":"Indi","Hiri Motu":"Hiri Motu","Croatian":"Croat","Hungarian":"Ongrés","Armenian":"Armèni","Igbo":"Igbo","Sichuan Yi":"Nuosu","Inuktitut":"Inuktitut","Indonesian":"Bahasa Indonesia","Inupiaq":"Inupiaq","Icelandic":"Islandés","Italian":"Italian","Javanese":"Javanés","Lojban":"Lojban","Japanese":"Japonés","Japanese Sign Language":"Lenga de signes japonesa","Kalaallisut":"Kalaallisut","Kannada":"Canarés","Georgian":"Georgian","Kanuri":"Kanuri","Kazakh":"Cazac","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyarwanda","Kirghiz":"Quirguiz","Komi":"Komi","Kongo":"Kongo","Korean":"Corean","Kuanyama":"Kuanyama","Kurdish":"Curd","Lao":"Laosian","Latvian":"Leton","Limburgan":"Limborgués","Lingala":"Lingala","Lithuanian":"Lituanian","Luxembourgish":"Luxemborgés","Luba-Katanga":"Luba-Katanga","Ganda":"Ganda","Marshallese":"Marshallés","Marathi":"Marathi","Macedonian":"Macedonian","Malagasy":"Malgash","Maltese":"Maltés","Mongolian":"Mongòl","Maori":"Maòri","Malay (macrolanguage)":"Malai (macrolengatge)","Burmese":"Birman","Nauru":"Nauru","Navajo":"Navajo","South Ndebele":"Ndebele del Sud","North Ndebele":"Ndebele del Nòrd","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepali (macrolengatge)","Dutch":"Neerlandés","Norwegian Nynorsk":"Norvegian Nynorsk","Norwegian Bokmål":"Norvegian","Norwegian":"Norwegian","Nyanja":"Nyanja","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya (macrolengatge)","Oromo":"Oromo","Panjabi":"Panjabi","Polish":"Polonés","Portuguese":"Portugués","Pushto":"Pushto","Quechua":"Quíchoa","Romansh":"Romanch","Romanian":"Romanés","Russian Sign Language":"Lenga de signes russa","Rundi":"Rundi","Russian":"Rus","Sango":"Sango","South African Sign Language":"Lenga de signes d’Africa del Sud","Sinhala":"Singalés","Slovak":"Eslovac","Slovenian":"Eslovèn","Northern Sami":"Sami septentrional","Samoan":"Samoan","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sotho meridional","Spanish":"Espanhòl","Albanian":"Albanés","Sardinian":"Sard","Serbian":"Sèrbe","Swati":"Swati","Sundanese":"Sodanés","Swahili (macrolanguage)":"Swahili (macrolengatge)","Swedish":"Suedés","Swedish Sign Language":"Lenga de signes suedesa","Tahitian":"Tahician","Tamil":"Tamil","Tatar":"Tatar","Telugu":"Telugu","Tajik":"Tajik","Tagalog":"Tagalòg","Thai":"Tailandés","Tigrinya":"Tigrinya","Klingon":"Klingon","Tonga (Tonga Islands)":"Tònga (islas Tònga)","Tswana":"Tswana","Turkmen":"Turcmèn","Turkish":"Turc","Uighur":"Oigors","Ukrainian":"Ucraïnian","Urdu":"Ordo","Uzbek":"Uzbec","Venda":"Venda","Vietnamese":"Vietnamian","Walloon":"Valon","Wolof":"Wolòf","Xhosa":"Xhosa","Yiddish":"Yiddish","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinés","Zulu":"Zulu"}
\ No newline at end of file
+{"Music":"Musica","Films":"Films","Vehicles":"Veituras","Art":"Art","Sports":"Espòrts","Travels":"Viatges","Gaming":"Vidèo jòc","People":"Gent","Comedy":"Comèdia","Entertainment":"Léser ","How To":"Demonstracions","Education":"Educacion","Activism":"Activisme","Science & Technology":"Sciéncia & Tecnologia","Animals":"Animals","Kids":"Mainatges","Food":"Manjar","Attribution":"Atribucion","Attribution - Share Alike":"Atribucion - Partejar a l’identic","Attribution - No Derivatives":"Atribucion - Cap de derivacion","Attribution - Non Commercial":"Atribucion - Pas comercial","Attribution - Non Commercial - Share Alike":"Atribucion - Pas comercial - Partejar a l’identic","Attribution - Non Commercial - No Derivatives":"Atribucion - Pas comercial - Cap de derivacion","Public Domain Dedication":"Domeni public","Public":"Public","Unlisted":"Pas listat","Private":"Privat","Published":"Publicada","To transcode":"De transcodar","To import":"D’importar","Pending":"En espèra","Success":"Reüssida","Failed":"Fracàs","Misc":"Divèrs","Unknown":"Desconegut","Afar":"Afar","Abkhazian":"Abcaz","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharic","Arabic":"Arabi","Aragonese":"Aragonés","American Sign Language":"Lenga de signes americana","Assamese":"Assamés","Avaric":"Avaric","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Azèri","Bashkir":"Bashkir","Bambara":"Bambara","Belarusian":"Bielorús","Bengali":"Bengalin","British Sign Language":"Lenga de signes britanica","Bislama":"Bislama","Tibetan":"Tibetan","Bosnian":"Bosnian","Breton":"Breton","Bulgarian":"Bulgar","Brazilian Sign Language":"Lenga de signes brasiliana","Catalan":"Catalan","Czech":"Chèc","Chamorro":"Chamorro","Chechen":"Chenchèn","Chuvash":"Chuvash","Cornish":"Cornic","Corsican":"Còrs","Cree":"Cree","Czech Sign Language":"Lenga de signes chèca","Chinese Sign Language":"Lenga de signes chinesa","Welsh":"Galés","Danish":"Danés","German":"Alemand","Dhivehi":"Maldivian","Danish Sign Language":"Lenga de signes danesa","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Grèc","English":"Anglés","Esperanto":"Esperanto","Estonian":"Estonian","Basque":"Basc","Ewe":"Ewe","Faroese":"Faroés","Persian":"Persan","Fijian":"Fijian","Finnish":"Finés","French":"Francés","Western Frisian":"Frison occitendal","French Sign Language":"Lenga de signes francesa","Fulah":"Fulah","Scottish Gaelic":"Gaelic escossés","Irish":"Irlandés","Galician":"Galician","Manx":"Manés","Guarani":"Guaraní","German Sign Language":"Lenga de signes alemanda","Gujarati":"Gujarati","Haitian":"Haitian","Hausa":"Hausa","Serbo-Croatian":"Sèrbocroat","Hebrew":"Ebrieu","Herero":"Herero","Hindi":"Indi","Hiri Motu":"Hiri Motu","Croatian":"Croat","Hungarian":"Ongrés","Armenian":"Armèni","Igbo":"Igbo","Sichuan Yi":"Nuosu","Inuktitut":"Inuktitut","Indonesian":"Bahasa Indonesia","Inupiaq":"Inupiaq","Icelandic":"Islandés","Italian":"Italian","Javanese":"Javanés","Lojban":"Lojban","Japanese":"Japonés","Japanese Sign Language":"Lenga de signes japonesa","Kalaallisut":"Kalaallisut","Kannada":"Canarés","Kashmiri":"Cashmiri","Georgian":"Georgian","Kanuri":"Kanuri","Kazakh":"Cazac","Khmer":"Cmèr","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyarwanda","Kirghiz":"Quirguiz","Komi":"Komi","Kongo":"Kongo","Korean":"Corean","Kuanyama":"Kuanyama","Kurdish":"Curd","Lao":"Laosian","Latvian":"Leton","Limburgan":"Limborgués","Lingala":"Lingala","Lithuanian":"Lituanian","Luxembourgish":"Luxemborgés","Luba-Katanga":"Luba-Katanga","Ganda":"Ganda","Marshallese":"Marshallés","Malayalam":"Malaialam","Marathi":"Marathi","Macedonian":"Macedonian","Malagasy":"Malgash","Maltese":"Maltés","Mongolian":"Mongòl","Maori":"Maòri","Malay (macrolanguage)":"Malai (macrolengatge)","Burmese":"Birman","Nauru":"Nauru","Navajo":"Navajo","South Ndebele":"Ndebele del Sud","North Ndebele":"Ndebele del Nòrd","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepali (macrolengatge)","Dutch":"Neerlandés","Norwegian Nynorsk":"Norvegian Nynorsk","Norwegian Bokmål":"Norvegian","Norwegian":"Norwegian","Nyanja":"Nyanja","Occitan":"Occitan","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya (macrolengatge)","Oromo":"Oromo","Ossetian":"Ossèt","Panjabi":"Panjabi","Pakistan Sign Language":"Lenga de signes de Paquistan","Polish":"Polonés","Portuguese":"Portugués","Pushto":"Pushto","Quechua":"Quíchoa","Romansh":"Romanch","Romanian":"Romanés","Russian Sign Language":"Lenga de signes russa","Rundi":"Rundi","Russian":"Rus","Sango":"Sango","Saudi Arabian Sign Language":"Lenga de signes d'Arabia Saudita","South African Sign Language":"Lenga de signes d’Africa del Sud","Sinhala":"Singalés","Slovak":"Eslovac","Slovenian":"Eslovèn","Northern Sami":"Sami septentrional","Samoan":"Samoan","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sotho meridional","Spanish":"Espanhòl","Albanian":"Albanés","Sardinian":"Sard","Serbian":"Sèrbe","Swati":"Swati","Sundanese":"Sodanés","Swahili (macrolanguage)":"Swahili (macrolengatge)","Swedish":"Suedés","Swedish Sign Language":"Lenga de signes suedesa","Tahitian":"Tahician","Tamil":"Tamil","Tatar":"Tatar","Telugu":"Telugu","Tajik":"Tajik","Tagalog":"Tagalòg","Thai":"Tailandés","Tigrinya":"Tigrinya","Klingon":"Klingon","Tonga (Tonga Islands)":"Tònga (islas Tònga)","Tswana":"Tswana","Tsonga":"Tsònga","Turkmen":"Turcmèn","Turkish":"Turc","Twi":"Toï","Uighur":"Oigors","Ukrainian":"Ucraïnian","Urdu":"Ordo","Uzbek":"Uzbec","Venda":"Venda","Vietnamese":"Vietnamian","Walloon":"Valon","Wolof":"Wolòf","Xhosa":"Xhosa","Yiddish":"Yiddish","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinés","Zulu":"Zulu"}
\ No newline at end of file
<source>Entertainment</source>
<target>Rozrywka</target>
</trans-unit>
- <trans-unit id="News">
- <source>News</source>
- <target>Wiadomości</target>
- </trans-unit>
<trans-unit id="How To">
<source>How To</source>
<target>Poradniki</target>
-{"Music":"Músicas","Films":"Filmes","Vehicles":"Veículos","Art":"Arte","Sports":"Esportes","Travels":"Viagens","Gaming":"Jogos","People":"Pessoas","Comedy":"Comédia","Entertainment":"Entretenimento","News":"Notícias","How To":"Como fazer","Education":"Educação","Activism":"Ativismo","Science & Technology":"Ciência & Tecnologia","Animals":"Animais","Kids":"Infantil","Food":"Comida","Attribution":"Atribuição","Attribution - Share Alike":"Atribuição - Compartilha Igual","Attribution - No Derivatives":"Atribuição - Sem Derivações","Attribution - Non Commercial":"Atribuição - Não Comercial","Attribution - Non Commercial - Share Alike":"Atribuição - Não Comercial - Compartilha Igual","Attribution - Non Commercial - No Derivatives":"Atribuição - Não Comercial - Sem Derivações","Public Domain Dedication":"Dedicação para Domínio Público","Public":"Público","Unlisted":"Não listado","Private":"Privado","Published":"Publicado","To transcode":"Para transcodificar","To import":"Para importar","Pending":"Pendente","Success":"Sucesso","Failed":"Falhou","Misc":"Diversos","Unknown":"Desconhecido","Afar":"Afar","Abkhazian":"Abcázio","Afrikaans":"Africâner","Akan":"Akan","Amharic":"Amárico","Arabic":"Árabe","Aragonese":"Aragonês","American Sign Language":"Língua de sinais americana","Assamese":"Assamês","Avaric":"Avárico","Kotava":"Coreano","Aymara":"Aimará","Azerbaijani":"Azerbaidjano","Bashkir":"Basquir","Bambara":"Bambara","Belarusian":"Bielorusso","Bengali":"Bengali","British Sign Language":"Língua de sinais britânica","Bislama":"Bislamá","Tibetan":"Tibetano","Bosnian":"Bósnio","Breton":"Bretão","Bulgarian":"Búlgaro","Brazilian Sign Language":"Língua de sinais brasileira","Catalan":"Catalão","Czech":"Tcheco","Chamorro":"Chamorro","Chechen":"Checheno","Chuvash":"Tchuvache","Cornish":"Córnico","Corsican":"Corso","Cree":"Cree","Czech Sign Language":"Língua de sinais tcheca","Chinese Sign Language":"Língua de sinais chinesa","Welsh":"Galês","Danish":"Dinamarquês","German":"Alemão","Dhivehi":"Sérvio","Danish Sign Language":"Língua de sinais dinamarquesa","Dzongkha":"Butanês","Modern Greek (1453-)":"Grego, Moderno (1453-)","English":"Inglês","Esperanto":"Esperanto","Estonian":"Estoniano","Basque":"Basco","Ewe":"Jeje","Faroese":"Faroês","Persian":"Persa","Fijian":"Fidjiano","Finnish":"Finlandês","French":"Francês","Western Frisian":"Frísio ocidental","French Sign Language":"Língua de sinais francesa","Fulah":"Fula","Scottish Gaelic":"Gaélico Escocês","Irish":"Irlandês","Galician":"Galego","Manx":"Manx","Guarani":"Guarani","German Sign Language":"Língua de sinais alemã","Gujarati":"Gujerati","Haitian":"Italiano","Hausa":"Hauçá","Serbo-Croatian":"Croata","Hebrew":"Hebraico","Herero":"Hereró","Hindi":"Híndi","Hiri Motu":"Hiri Motu","Croatian":"Croata","Hungarian":"Húngaro","Armenian":"Armênio","Igbo":"Ibo","Sichuan Yi":"Lituano","Inuktitut":"Inuktitut","Indonesian":"Indonésio","Inupiaq":"Inupiaque","Icelandic":"Islandês","Italian":"Italiano","Javanese":"Javanês","Lojban":"Lojban","Japanese":"Japonês","Japanese Sign Language":"Língua de sinais japonesa","Kalaallisut":"Groenlandês (Kalaallisut)","Kannada":"Canarês","Kashmiri":"Caxemira","Georgian":"Georgiano","Kanuri":"Canúri","Kazakh":"Cazaque","Khmer":"Khmer","Kikuyu":"Kikuyu","Kinyarwanda":"Ruanda","Kirghiz":"Quirguiz","Komi":"Komi","Kongo":"Congo","Korean":"Coreano","Kuanyama":"Cuanhama","Kurdish":"Curdo","Lao":"Laosiano","Latvian":"Letão","Limburgan":"Lituano","Lingala":"Lingala","Lithuanian":"Lituano","Luxembourgish":"Luxemburguês","Luba-Katanga":"Baluba","Ganda":"Nganda","Marshallese":"Marshalês","Malayalam":"Malaiala","Marathi":"Marati","Macedonian":"Macedônio","Malagasy":"Malgaxe","Maltese":"Maltês","Mongolian":"Mongol","Maori":"Maori","Malay (macrolanguage)":"Malaiala (macrolíngua)","Burmese":"Birmanês","Nauru":"Nauru","Navajo":"Navajo","South Ndebele":"Ndebele do Sul","North Ndebele":"Ndebele do Norte","Ndonga":"Ovampo","Nepali (macrolanguage)":"Nepalês (macrolíngua)","Dutch":"Holandês","Norwegian Nynorsk":"Norueguês Nynorsk","Norwegian Bokmål":"Norueguês Nynorsk","Norwegian":"Norueguês","Nyanja":"Lituano","Occitan":"Occitano","Ojibwa":"Obíjua","Oriya (macrolanguage)":"Oriá (macrolíngua)","Oromo":"Oromo","Ossetian":"Ossétio","Panjabi":"Panjabi","Pakistan Sign Language":"Língua de sinais paquistanesa","Polish":"Polonês","Portuguese":"Português","Pushto":"Pachto","Quechua":"Quíchua","Romansh":"Romanche","Romanian":"Romeno","Russian Sign Language":"Idiomas de Sinais","Rundi":"Kirundi","Russian":"Russo","Sango":"Sango","Saudi Arabian Sign Language":"Língua de sinais da Arábia Saudita","South African Sign Language":"Língua de sinais da África do Sul","Sinhala":"Cingalês","Slovak":"Eslovaco","Slovenian":"Esloveno","Northern Sami":"Sami do norte","Samoan":"Samoano","Shona":"Xona","Sindhi":"Síndi","Somali":"Somali","Southern Sotho":"Soto do Sul","Spanish":"Espanhol","Albanian":"Albanês","Sardinian":"Sardo","Serbian":"Sérvio","Swati":"Swati","Sundanese":"Sundanês","Swahili (macrolanguage)":"Suaíli (macrolíngua)","Swedish":"Sueco","Swedish Sign Language":"Língua de sinais sueca","Tahitian":"Taitiano","Tamil":"Tâmil","Tatar":"Tártaro","Telugu":"Télugo","Tajik":"Tadjique","Tagalog":"Tagalo","Thai":"Tailandês","Tigrinya":"Tigrínia","Klingon":"Letão","Tonga (Tonga Islands)":"Tonga","Tswana":"Tsuana","Tsonga":"Tsonga","Turkmen":"Turcomeno","Turkish":"Turco","Twi":"Twi","Uighur":"Uigur","Ukrainian":"Ucraniano","Urdu":"Urdu","Uzbek":"Uzbeque","Venda":"Venda","Vietnamese":"Vietnamita","Walloon":"Valão","Wolof":"Uólofe","Xhosa":"Xhosa","Yiddish":"Iídiche","Yoruba":"Ioruba","Zhuang":"Zuni","Chinese":"Chinês","Zulu":"Zulu"}
\ No newline at end of file
+{"Music":"Músicas","Films":"Filmes","Vehicles":"Veículos","Art":"Arte","Sports":"Esportes","Travels":"Viagens","Gaming":"Jogos","People":"Pessoas","Comedy":"Comédia","Entertainment":"Entretenimento","How To":"Como fazer","Education":"Educação","Activism":"Ativismo","Science & Technology":"Ciência & Tecnologia","Animals":"Animais","Kids":"Infantil","Food":"Comida","Attribution":"Atribuição","Attribution - Share Alike":"Atribuição - Compartilha Igual","Attribution - No Derivatives":"Atribuição - Sem Derivações","Attribution - Non Commercial":"Atribuição - Não Comercial","Attribution - Non Commercial - Share Alike":"Atribuição - Não Comercial - Compartilha Igual","Attribution - Non Commercial - No Derivatives":"Atribuição - Não Comercial - Sem Derivações","Public Domain Dedication":"Dedicação para Domínio Público","Public":"Público","Unlisted":"Não listado","Private":"Privado","Published":"Publicado","To transcode":"Para transcodificar","To import":"Para importar","Pending":"Pendente","Success":"Sucesso","Failed":"Falhou","Misc":"Diversos","Unknown":"Desconhecido","Afar":"Afar","Abkhazian":"Abcázio","Afrikaans":"Africâner","Akan":"Akan","Amharic":"Amárico","Arabic":"Árabe","Aragonese":"Aragonês","American Sign Language":"Língua de sinais americana","Assamese":"Assamês","Avaric":"Avárico","Kotava":"Coreano","Aymara":"Aimará","Azerbaijani":"Azerbaidjano","Bashkir":"Basquir","Bambara":"Bambara","Belarusian":"Bielorusso","Bengali":"Bengali","British Sign Language":"Língua de sinais britânica","Bislama":"Bislamá","Tibetan":"Tibetano","Bosnian":"Bósnio","Breton":"Bretão","Bulgarian":"Búlgaro","Brazilian Sign Language":"Língua de sinais brasileira","Catalan":"Catalão","Czech":"Tcheco","Chamorro":"Chamorro","Chechen":"Checheno","Chuvash":"Tchuvache","Cornish":"Córnico","Corsican":"Corso","Cree":"Cree","Czech Sign Language":"Língua de sinais tcheca","Chinese Sign Language":"Língua de sinais chinesa","Welsh":"Galês","Danish":"Dinamarquês","German":"Alemão","Dhivehi":"Sérvio","Danish Sign Language":"Língua de sinais dinamarquesa","Dzongkha":"Butanês","Modern Greek (1453-)":"Grego, Moderno (1453-)","English":"Inglês","Esperanto":"Esperanto","Estonian":"Estoniano","Basque":"Basco","Ewe":"Jeje","Faroese":"Faroês","Persian":"Persa","Fijian":"Fidjiano","Finnish":"Finlandês","French":"Francês","Western Frisian":"Frísio ocidental","French Sign Language":"Língua de sinais francesa","Fulah":"Fula","Scottish Gaelic":"Gaélico Escocês","Irish":"Irlandês","Galician":"Galego","Manx":"Manx","Guarani":"Guarani","German Sign Language":"Língua de sinais alemã","Gujarati":"Gujerati","Haitian":"Italiano","Hausa":"Hauçá","Serbo-Croatian":"Croata","Hebrew":"Hebraico","Herero":"Hereró","Hindi":"Híndi","Hiri Motu":"Hiri Motu","Croatian":"Croata","Hungarian":"Húngaro","Armenian":"Armênio","Igbo":"Ibo","Sichuan Yi":"Lituano","Inuktitut":"Inuktitut","Indonesian":"Indonésio","Inupiaq":"Inupiaque","Icelandic":"Islandês","Italian":"Italiano","Javanese":"Javanês","Lojban":"Lojban","Japanese":"Japonês","Japanese Sign Language":"Língua de sinais japonesa","Kalaallisut":"Groenlandês (Kalaallisut)","Kannada":"Canarês","Kashmiri":"Caxemira","Georgian":"Georgiano","Kanuri":"Canúri","Kazakh":"Cazaque","Khmer":"Khmer","Kikuyu":"Kikuyu","Kinyarwanda":"Ruanda","Kirghiz":"Quirguiz","Komi":"Komi","Kongo":"Congo","Korean":"Coreano","Kuanyama":"Cuanhama","Kurdish":"Curdo","Lao":"Laosiano","Latvian":"Letão","Limburgan":"Lituano","Lingala":"Lingala","Lithuanian":"Lituano","Luxembourgish":"Luxemburguês","Luba-Katanga":"Baluba","Ganda":"Nganda","Marshallese":"Marshalês","Malayalam":"Malaiala","Marathi":"Marati","Macedonian":"Macedônio","Malagasy":"Malgaxe","Maltese":"Maltês","Mongolian":"Mongol","Maori":"Maori","Malay (macrolanguage)":"Malaiala (macrolíngua)","Burmese":"Birmanês","Nauru":"Nauru","Navajo":"Navajo","South Ndebele":"Ndebele do Sul","North Ndebele":"Ndebele do Norte","Ndonga":"Ovampo","Nepali (macrolanguage)":"Nepalês (macrolíngua)","Dutch":"Holandês","Norwegian Nynorsk":"Norueguês Nynorsk","Norwegian Bokmål":"Norueguês Nynorsk","Norwegian":"Norueguês","Nyanja":"Lituano","Occitan":"Occitano","Ojibwa":"Obíjua","Oriya (macrolanguage)":"Oriá (macrolíngua)","Oromo":"Oromo","Ossetian":"Ossétio","Panjabi":"Panjabi","Pakistan Sign Language":"Língua de sinais paquistanesa","Polish":"Polonês","Portuguese":"Português","Pushto":"Pachto","Quechua":"Quíchua","Romansh":"Romanche","Romanian":"Romeno","Russian Sign Language":"Idiomas de Sinais","Rundi":"Kirundi","Russian":"Russo","Sango":"Sango","Saudi Arabian Sign Language":"Língua de sinais da Arábia Saudita","South African Sign Language":"Língua de sinais da África do Sul","Sinhala":"Cingalês","Slovak":"Eslovaco","Slovenian":"Esloveno","Northern Sami":"Sami do norte","Samoan":"Samoano","Shona":"Xona","Sindhi":"Síndi","Somali":"Somali","Southern Sotho":"Soto do Sul","Spanish":"Espanhol","Albanian":"Albanês","Sardinian":"Sardo","Serbian":"Sérvio","Swati":"Swati","Sundanese":"Sundanês","Swahili (macrolanguage)":"Suaíli (macrolíngua)","Swedish":"Sueco","Swedish Sign Language":"Língua de sinais sueca","Tahitian":"Taitiano","Tamil":"Tâmil","Tatar":"Tártaro","Telugu":"Télugo","Tajik":"Tadjique","Tagalog":"Tagalo","Thai":"Tailandês","Tigrinya":"Tigrínia","Klingon":"Letão","Tonga (Tonga Islands)":"Tonga","Tswana":"Tsuana","Tsonga":"Tsonga","Turkmen":"Turcomeno","Turkish":"Turco","Twi":"Twi","Uighur":"Uigur","Ukrainian":"Ucraniano","Urdu":"Urdu","Uzbek":"Uzbeque","Venda":"Venda","Vietnamese":"Vietnamita","Walloon":"Valão","Wolof":"Uólofe","Xhosa":"Xhosa","Yiddish":"Iídiche","Yoruba":"Ioruba","Zhuang":"Zuni","Chinese":"Chinês","Zulu":"Zulu"}
\ No newline at end of file
-{"Music":"Musik","Films":"Filmer","Vehicles":"Fordon","Art":"Konst","Sports":"Sport","Travels":"Resor","Gaming":"Spel","People":"Människor","Comedy":"Komedi","Entertainment":"Underhållning","News":"Nyheter","How To":"Instruktioner","Education":"Utbildning","Activism":"Aktivism","Science & Technology":"Vetenskap och teknik","Animals":"Djur","Kids":"Barn","Food":"Mat","Attribution":"Attribution","Attribution - Share Alike":"Attribution - Share Alike","Attribution - No Derivatives":"Attribution - No Derivatives","Attribution - Non Commercial":"Attribution - Non Commercial","Attribution - Non Commercial - Share Alike":"Attribution - Non Commercial - Share Alike","Attribution - Non Commercial - No Derivatives":"Attribution - Non Commercial - No Derivatives","Public Domain Dedication":"Public Domain Dedication","Public":"Offentlig","Unlisted":"Olistad","Private":"Privat","Published":"Publicerad","To transcode":"Att omkoda","To import":"Att importera","Pending":"I kö","Success":"Lyckades","Failed":"Misslyckades","Misc":"Diverse","Unknown":"Okänd","Afar":"afar","Abkhazian":"abchaziska","Afrikaans":"afrikaans","Akan":"akan","Amharic":"amhariska","Arabic":"arabiska","Aragonese":"aragonska","American Sign Language":"amerikanskt teckenspråk","Assamese":"assamesiska","Avaric":"avariska","Kotava":"kotava","Aymara":"aymara","Azerbaijani":"azerbajdzjanska","Bashkir":"basjkiriska","Bambara":"bambara","Belarusian":"vitryska","Bengali":"bengali","British Sign Language":"brittiskt teckenspråk","Bislama":"bislama","Tibetan":"tibetanska","Bosnian":"bosniska","Breton":"bretonska","Bulgarian":"bulgariska","Brazilian Sign Language":"brasilianskt teckenspråk","Catalan":"katalanska","Czech":"tjeckiska","Chamorro":"chamorro","Chechen":"tjetjenska","Chuvash":"tjuvasjiska","Cornish":"korniska","Corsican":"korsikanska","Cree":"cree","Czech Sign Language":"tjeckiskt teckenspråk","Chinese Sign Language":"kinesiskt teckenspråk","Welsh":"kymriska","Danish":"danska","German":"tyska","Dhivehi":"divehi","Danish Sign Language":"danskt teckenspråk","Dzongkha":"dzongkha","Modern Greek (1453-)":"modern grekiska (1453–)","English":"engelska","Esperanto":"esperanto","Estonian":"estniska","Basque":"baskiska","Ewe":"ewe","Faroese":"färöiska","Persian":"persiska","Fijian":"fijianska","Finnish":"finska","French":"franska","Western Frisian":"västfrisiska","French Sign Language":"franskt teckenspråk","Fulah":"fula","Scottish Gaelic":"skotsk gäliska","Irish":"iriska","Galician":"galiciska","Manx":"manx","Guarani":"guaraní","German Sign Language":"tyskt teckenspråk","Gujarati":"gujarati","Haitian":"haitisk kreol","Hausa":"hausa","Serbo-Croatian":"serbokroatiska","Hebrew":"hebreiska","Herero":"herero","Hindi":"hindi","Hiri Motu":"hiri motu","Croatian":"kroatiska","Hungarian":"ungerska","Armenian":"armeniska","Igbo":"igbo","Sichuan Yi":"sichuan yi","Inuktitut":"inuktitut","Indonesian":"indonesiska","Inupiaq":"iñupiaq","Icelandic":"isländska","Italian":"italienska","Javanese":"javanesiska","Lojban":"lojban","Japanese":"japanska","Japanese Sign Language":"japanskt teckenspråk","Kalaallisut":"kalaallisut","Kannada":"kannada","Kashmiri":"kashmiri","Georgian":"georgiska","Kanuri":"kanuri","Kazakh":"kazakiska","Khmer":"khmer","Kikuyu":"kikuyu","Kinyarwanda":"rwanda","Kirghiz":"kirgiziska","Komi":"komi","Kongo":"kikongo","Korean":"koreanska","Kuanyama":"kwanyama","Kurdish":"kurdiska","Lao":"lao","Latvian":"lettiska","Limburgan":"limburgiska","Lingala":"lingala","Lithuanian":"litauiska","Luxembourgish":"luxemburgiska","Luba-Katanga":"luba-katanga","Ganda":"luganda","Marshallese":"marshallesiska","Malayalam":"malayalam","Marathi":"marathi","Macedonian":"makedonska","Malagasy":"malagassiska","Maltese":"maltesiska","Mongolian":"mongoliska","Maori":"maori","Malay (macrolanguage)":"malajiska","Burmese":"burmesiska","Nauru":"nauruanska","Navajo":"navajo","South Ndebele":"sydndebele","North Ndebele":"nordndebele","Ndonga":"ndonga","Nepali (macrolanguage)":"nepali","Dutch":"nederländska","Norwegian Nynorsk":"nynorska","Norwegian Bokmål":"bokmål","Norwegian":"norska","Nyanja":"chichewa","Occitan":"occitanska","Ojibwa":"ojibwa","Oriya (macrolanguage)":"oriya","Oromo":"oromo","Ossetian":"ossetiska","Panjabi":"punjabi","Pakistan Sign Language":"pakistanskt teckenspråk","Polish":"polska","Portuguese":"portugisiska","Pushto":"pashto","Quechua":"quechua","Romansh":"rätoromanska","Romanian":"rumänska","Russian Sign Language":"ryskt teckenspråk","Rundi":"kirundi","Russian":"ryska","Sango":"sango","Saudi Arabian Sign Language":"saudiarabiskt teckenspråk","South African Sign Language":"sydafrikanskt teckenspråk","Sinhala":"singalesiska","Slovak":"slovakiska","Slovenian":"slovenska","Northern Sami":"nordsamiska","Samoan":"samoanska","Shona":"shona","Sindhi":"sindhi","Somali":"somaliska","Southern Sotho":"sesotho","Spanish":"spanska","Albanian":"albanska","Sardinian":"sardiska","Serbian":"serbiska","Swati":"siSwati","Sundanese":"sundanesiska","Swahili (macrolanguage)":"swahili","Swedish":"svenska","Swedish Sign Language":"svenskt teckenspråk","Tahitian":"tahitiska","Tamil":"tamil","Tatar":"tatariska","Telugu":"telugu","Tajik":"tadzjikiska","Tagalog":"tagalog","Thai":"thai","Tigrinya":"tigrinska","Klingon":"klingon","Tonga (Tonga Islands)":"tonganska","Tswana":"setswana","Tsonga":"tsonga","Turkmen":"turkmeniska","Turkish":"turkiska","Twi":"twi","Uighur":"uiguriska","Ukrainian":"ukrainska","Urdu":"urdu","Uzbek":"uzbekiska","Venda":"venda","Vietnamese":"vietnamesiska","Walloon":"vallonska","Wolof":"wolof","Xhosa":"xhosa","Yiddish":"jiddisch","Yoruba":"yoruba","Zhuang":"zhuang","Chinese":"kinesiska","Zulu":"zulu"}
\ No newline at end of file
+{"Music":"Musik","Films":"Filmer","Vehicles":"Fordon","Art":"Konst","Sports":"Sport","Travels":"Resor","Gaming":"Spel","People":"Människor","Comedy":"Komedi","Entertainment":"Underhållning","How To":"Instruktioner","Education":"Utbildning","Activism":"Aktivism","Science & Technology":"Vetenskap och teknik","Animals":"Djur","Kids":"Barn","Food":"Mat","Attribution":"Attribution","Attribution - Share Alike":"Attribution - Share Alike","Attribution - No Derivatives":"Attribution - No Derivatives","Attribution - Non Commercial":"Attribution - Non Commercial","Attribution - Non Commercial - Share Alike":"Attribution - Non Commercial - Share Alike","Attribution - Non Commercial - No Derivatives":"Attribution - Non Commercial - No Derivatives","Public Domain Dedication":"Public Domain Dedication","Public":"Offentlig","Unlisted":"Olistad","Private":"Privat","Published":"Publicerad","To transcode":"Att omkoda","To import":"Att importera","Pending":"I kö","Success":"Lyckades","Failed":"Misslyckades","Misc":"Diverse","Unknown":"Okänd","Afar":"afar","Abkhazian":"abchaziska","Afrikaans":"afrikaans","Akan":"akan","Amharic":"amhariska","Arabic":"arabiska","Aragonese":"aragonska","American Sign Language":"amerikanskt teckenspråk","Assamese":"assamesiska","Avaric":"avariska","Kotava":"kotava","Aymara":"aymara","Azerbaijani":"azerbajdzjanska","Bashkir":"basjkiriska","Bambara":"bambara","Belarusian":"vitryska","Bengali":"bengali","British Sign Language":"brittiskt teckenspråk","Bislama":"bislama","Tibetan":"tibetanska","Bosnian":"bosniska","Breton":"bretonska","Bulgarian":"bulgariska","Brazilian Sign Language":"brasilianskt teckenspråk","Catalan":"katalanska","Czech":"tjeckiska","Chamorro":"chamorro","Chechen":"tjetjenska","Chuvash":"tjuvasjiska","Cornish":"korniska","Corsican":"korsikanska","Cree":"cree","Czech Sign Language":"tjeckiskt teckenspråk","Chinese Sign Language":"kinesiskt teckenspråk","Welsh":"kymriska","Danish":"danska","German":"tyska","Dhivehi":"divehi","Danish Sign Language":"danskt teckenspråk","Dzongkha":"dzongkha","Modern Greek (1453-)":"modern grekiska (1453–)","English":"engelska","Esperanto":"esperanto","Estonian":"estniska","Basque":"baskiska","Ewe":"ewe","Faroese":"färöiska","Persian":"persiska","Fijian":"fijianska","Finnish":"finska","French":"franska","Western Frisian":"västfrisiska","French Sign Language":"franskt teckenspråk","Fulah":"fula","Scottish Gaelic":"skotsk gäliska","Irish":"iriska","Galician":"galiciska","Manx":"manx","Guarani":"guaraní","German Sign Language":"tyskt teckenspråk","Gujarati":"gujarati","Haitian":"haitisk kreol","Hausa":"hausa","Serbo-Croatian":"serbokroatiska","Hebrew":"hebreiska","Herero":"herero","Hindi":"hindi","Hiri Motu":"hiri motu","Croatian":"kroatiska","Hungarian":"ungerska","Armenian":"armeniska","Igbo":"igbo","Sichuan Yi":"sichuan yi","Inuktitut":"inuktitut","Indonesian":"indonesiska","Inupiaq":"iñupiaq","Icelandic":"isländska","Italian":"italienska","Javanese":"javanesiska","Lojban":"lojban","Japanese":"japanska","Japanese Sign Language":"japanskt teckenspråk","Kalaallisut":"kalaallisut","Kannada":"kannada","Kashmiri":"kashmiri","Georgian":"georgiska","Kanuri":"kanuri","Kazakh":"kazakiska","Khmer":"khmer","Kikuyu":"kikuyu","Kinyarwanda":"rwanda","Kirghiz":"kirgiziska","Komi":"komi","Kongo":"kikongo","Korean":"koreanska","Kuanyama":"kwanyama","Kurdish":"kurdiska","Lao":"lao","Latvian":"lettiska","Limburgan":"limburgiska","Lingala":"lingala","Lithuanian":"litauiska","Luxembourgish":"luxemburgiska","Luba-Katanga":"luba-katanga","Ganda":"luganda","Marshallese":"marshallesiska","Malayalam":"malayalam","Marathi":"marathi","Macedonian":"makedonska","Malagasy":"malagassiska","Maltese":"maltesiska","Mongolian":"mongoliska","Maori":"maori","Malay (macrolanguage)":"malajiska","Burmese":"burmesiska","Nauru":"nauruanska","Navajo":"navajo","South Ndebele":"sydndebele","North Ndebele":"nordndebele","Ndonga":"ndonga","Nepali (macrolanguage)":"nepali","Dutch":"nederländska","Norwegian Nynorsk":"nynorska","Norwegian Bokmål":"bokmål","Norwegian":"norska","Nyanja":"chichewa","Occitan":"occitanska","Ojibwa":"ojibwa","Oriya (macrolanguage)":"oriya","Oromo":"oromo","Ossetian":"ossetiska","Panjabi":"punjabi","Pakistan Sign Language":"pakistanskt teckenspråk","Polish":"polska","Portuguese":"portugisiska","Pushto":"pashto","Quechua":"quechua","Romansh":"rätoromanska","Romanian":"rumänska","Russian Sign Language":"ryskt teckenspråk","Rundi":"kirundi","Russian":"ryska","Sango":"sango","Saudi Arabian Sign Language":"saudiarabiskt teckenspråk","South African Sign Language":"sydafrikanskt teckenspråk","Sinhala":"singalesiska","Slovak":"slovakiska","Slovenian":"slovenska","Northern Sami":"nordsamiska","Samoan":"samoanska","Shona":"shona","Sindhi":"sindhi","Somali":"somaliska","Southern Sotho":"sesotho","Spanish":"spanska","Albanian":"albanska","Sardinian":"sardiska","Serbian":"serbiska","Swati":"siSwati","Sundanese":"sundanesiska","Swahili (macrolanguage)":"swahili","Swedish":"svenska","Swedish Sign Language":"svenskt teckenspråk","Tahitian":"tahitiska","Tamil":"tamil","Tatar":"tatariska","Telugu":"telugu","Tajik":"tadzjikiska","Tagalog":"tagalog","Thai":"thai","Tigrinya":"tigrinska","Klingon":"klingon","Tonga (Tonga Islands)":"tonganska","Tswana":"setswana","Tsonga":"tsonga","Turkmen":"turkmeniska","Turkish":"turkiska","Twi":"twi","Uighur":"uiguriska","Ukrainian":"ukrainska","Urdu":"urdu","Uzbek":"uzbekiska","Venda":"venda","Vietnamese":"vietnamesiska","Walloon":"vallonska","Wolof":"wolof","Xhosa":"xhosa","Yiddish":"jiddisch","Yoruba":"yoruba","Zhuang":"zhuang","Chinese":"kinesiska","Zulu":"zulu"}
\ No newline at end of file
-{"Music":"音乐","Films":"电影","Vehicles":"汽车","Art":"艺术","Sports":"体育","Travels":"旅游","Gaming":"游戏","People":"人物","Comedy":"喜剧","Entertainment":"娱乐","News":"新闻","How To":"教程","Education":"教育","Activism":"社会活动","Science & Technology":"科学和技术","Animals":"动物","Kids":"儿童","Food":"美食","Attribution":"署名","Attribution - Share Alike":"署名 - 相同方式共享","Attribution - No Derivatives":"署名 - 禁止演绎","Attribution - Non Commercial":"署名 - 非商业性使用","Attribution - Non Commercial - Share Alike":"署名 - 非商业性使用 - 相同方式共享","Attribution - Non Commercial - No Derivatives":"署名 - 非商业性使用 - 禁止演绎","Public Domain Dedication":"公共领域贡献","Public":"公开","Unlisted":"不公开","Private":"私享","Published":"已发布","To transcode":"转码中","To import":"导入中","Pending":"等待中","Success":"成功","Failed":"失败","Misc":"杂项","Unknown":"未知","Afar":"阿法尔语","Abkhazian":"阿布哈兹语","Afrikaans":"阿非利堪斯语","Akan":"阿坎语","Amharic":"阿姆哈拉语","Arabic":"阿拉伯语","Aragonese":"阿拉贡语","American Sign Language":"美国手语","Assamese":"阿萨姆语","Avaric":"阿瓦尔语","Kotava":"科塔瓦语","Aymara":"艾马拉语","Azerbaijani":"阿塞拜疆语","Bashkir":"巴什基尔语","Bambara":"班巴拉语","Belarusian":"白俄罗斯语","Bengali":"孟加拉语","British Sign Language":"英国手语","Bislama":"比斯拉玛语","Tibetan":"藏语","Bosnian":"波斯尼亚语","Breton":"布列塔尼语","Bulgarian":"保加利亚语","Brazilian Sign Language":"巴西手语","Catalan":"加泰隆语","Czech":"捷克语","Chamorro":"查莫罗语","Chechen":"车臣语","Chuvash":"楚瓦什语","Cornish":"康沃尔语","Corsican":"科西嘉语","Cree":"克里语","Czech Sign Language":"捷克手语","Chinese Sign Language":"中国手语","Welsh":"威尔士语","Danish":"丹麦语","German":"德语","Dhivehi":"迪维希语","Danish Sign Language":"丹麦手语","Dzongkha":"不丹语","Modern Greek (1453-)":"现代希腊语","English":"英语","Esperanto":"世界语","Estonian":"爱沙尼亚语","Basque":"巴斯克语","Ewe":"埃维语","Faroese":"法罗斯语","Persian":"波斯语","Fijian":"斐济语","Finnish":"芬兰语","French":"法语","Western Frisian":"弗里西亚语","French Sign Language":"法国手语","Fulah":"富拉语","Scottish Gaelic":"苏格兰盖尔语","Irish":"爱尔兰语","Galician":"加利西亚语","Manx":"马恩岛语","Guarani":"瓜拉尼语","German Sign Language":"德国手语","Gujarati":"古吉拉特语","Haitian":"海地语","Hausa":"豪萨语","Serbo-Croatian":"塞尔维亚-克罗地亚语","Hebrew":"希伯来语","Herero":"赫雷罗语","Hindi":"印地语","Hiri Motu":"希里莫图语","Croatian":"克罗地亚语","Hungarian":"匈牙利语","Armenian":"亚美尼亚语","Igbo":"伊博语","Sichuan Yi":"四川彝语","Inuktitut":"伊努伊特语","Indonesian":"印尼语","Inupiaq":"依努庇克语","Icelandic":"冰岛语","Italian":"意大利语","Javanese":"爪哇语","Lojban":"逻辑语","Japanese":"日语","Japanese Sign Language":"日本手语","Kalaallisut":"格陵兰语","Kannada":"坎纳达语","Kashmiri":"克什米尔语","Georgian":"格鲁吉亚语","Kanuri":"卡努里语","Kazakh":"哈萨克语","Khmer":"高棉语","Kikuyu":"基库尤语","Kinyarwanda":"基尼阿万达语","Kirghiz":"吉尔吉斯语","Komi":"科米语","Kongo":"刚果语","Korean":"朝鲜语","Kuanyama":"宽亚玛语","Kurdish":"库尔德语","Lao":"老挝语","Latvian":"拉脱维亚语","Limburgan":"林堡语","Lingala":"林加拉语","Lithuanian":"立陶宛语","Luxembourgish":"卢森堡语","Luba-Katanga":"卢巴-加丹加语","Ganda":"干达语","Marshallese":"马绍尔语","Malayalam":"马拉亚拉姆语","Marathi":"马拉提语","Macedonian":"马其顿语","Malagasy":"马达加斯加语","Maltese":"马耳他语","Mongolian":"蒙古语","Maori":"毛利语","Malay (macrolanguage)":"马来语(广义)","Burmese":"缅甸语","Nauru":"瑙鲁语","Navajo":"纳瓦霍语","South Ndebele":"南恩德贝勒语","North Ndebele":"北恩德贝勒语","Ndonga":"恩敦加语","Nepali (macrolanguage)":"尼泊尔语(广义)","Dutch":"荷兰语","Norwegian Nynorsk":"新挪威语","Norwegian Bokmål":"挪威布克莫尔语","Norwegian":"挪威语","Nyanja":"尼扬贾语","Occitan":"奥克西唐语","Ojibwa":"奥吉布瓦语","Oriya (macrolanguage)":"奥利亚语(广义)","Oromo":"阿芳·奥洛莫语","Ossetian":"奥塞梯语","Panjabi":"旁遮普语","Pakistan Sign Language":"巴基斯坦手语","Polish":"波兰语","Portuguese":"葡萄牙语","Pushto":"普什图语","Quechua":"凯楚亚语","Romansh":"罗曼什语","Romanian":"罗马尼亚语","Russian Sign Language":"俄罗斯手语","Rundi":"基隆迪语","Russian":"俄语","Sango":"桑戈语","Saudi Arabian Sign Language":"沙特阿拉伯手语","South African Sign Language":"南非手语","Sinhala":"僧加罗语","Slovak":"斯洛伐克语","Slovenian":"斯洛文尼亚语","Northern Sami":"北萨米语","Samoan":"萨摩亚语","Shona":"绍纳语","Sindhi":"信德语","Somali":"索马里语","Southern Sotho":"塞索托语","Spanish":"西班牙语","Albanian":"阿尔巴尼亚语","Sardinian":"撒丁语","Serbian":"塞尔维亚语","Swati":"塞斯瓦替语","Sundanese":"巽他语","Swahili (macrolanguage)":"斯瓦希里语(广义)","Swedish":"瑞典语","Swedish Sign Language":"瑞典手语","Tahitian":"塔希提语","Tamil":"泰米尔语","Tatar":"塔塔尔语","Telugu":"泰卢固语","Tajik":"塔吉克语","Tagalog":"他加禄语","Thai":"泰语","Tigrinya":"提格里尼亚语","Klingon":"克林贡语","Tonga (Tonga Islands)":"汤加语","Tswana":"塞茨瓦纳语","Tsonga":"宗加语","Turkmen":"土库曼语","Turkish":"土耳其语","Twi":"特威语","Uighur":"维吾尔语","Ukrainian":"乌克兰语","Urdu":"乌尔都语","Uzbek":"乌兹别克语","Venda":"文达语","Vietnamese":"越南语","Walloon":"沃伦语","Wolof":"沃洛夫语","Xhosa":"科萨语","Yiddish":"依地语","Yoruba":"约鲁巴语","Zhuang":"壮语","Chinese":"汉语","Zulu":"祖鲁语"}
\ No newline at end of file
+{"Music":"音乐","Films":"电影","Vehicles":"汽车","Art":"艺术","Sports":"体育","Travels":"旅游","Gaming":"游戏","People":"人物","Comedy":"喜剧","Entertainment":"娱乐","How To":"教程","Education":"教育","Activism":"社会活动","Science & Technology":"科学和技术","Animals":"动物","Kids":"儿童","Food":"美食","Attribution":"署名","Attribution - Share Alike":"署名 - 相同方式共享","Attribution - No Derivatives":"署名 - 禁止演绎","Attribution - Non Commercial":"署名 - 非商业性使用","Attribution - Non Commercial - Share Alike":"署名 - 非商业性使用 - 相同方式共享","Attribution - Non Commercial - No Derivatives":"署名 - 非商业性使用 - 禁止演绎","Public Domain Dedication":"公共领域贡献","Public":"公开","Unlisted":"不公开","Private":"私享","Published":"已发布","To transcode":"转码中","To import":"导入中","Pending":"等待中","Success":"成功","Failed":"失败","Misc":"杂项","Unknown":"未知","Afar":"阿法尔语","Abkhazian":"阿布哈兹语","Afrikaans":"阿非利堪斯语","Akan":"阿坎语","Amharic":"阿姆哈拉语","Arabic":"阿拉伯语","Aragonese":"阿拉贡语","American Sign Language":"美国手语","Assamese":"阿萨姆语","Avaric":"阿瓦尔语","Kotava":"科塔瓦语","Aymara":"艾马拉语","Azerbaijani":"阿塞拜疆语","Bashkir":"巴什基尔语","Bambara":"班巴拉语","Belarusian":"白俄罗斯语","Bengali":"孟加拉语","British Sign Language":"英国手语","Bislama":"比斯拉玛语","Tibetan":"藏语","Bosnian":"波斯尼亚语","Breton":"布列塔尼语","Bulgarian":"保加利亚语","Brazilian Sign Language":"巴西手语","Catalan":"加泰隆语","Czech":"捷克语","Chamorro":"查莫罗语","Chechen":"车臣语","Chuvash":"楚瓦什语","Cornish":"康沃尔语","Corsican":"科西嘉语","Cree":"克里语","Czech Sign Language":"捷克手语","Chinese Sign Language":"中国手语","Welsh":"威尔士语","Danish":"丹麦语","German":"德语","Dhivehi":"迪维希语","Danish Sign Language":"丹麦手语","Dzongkha":"不丹语","Modern Greek (1453-)":"现代希腊语","English":"英语","Esperanto":"世界语","Estonian":"爱沙尼亚语","Basque":"巴斯克语","Ewe":"埃维语","Faroese":"法罗斯语","Persian":"波斯语","Fijian":"斐济语","Finnish":"芬兰语","French":"法语","Western Frisian":"弗里西亚语","French Sign Language":"法国手语","Fulah":"富拉语","Scottish Gaelic":"苏格兰盖尔语","Irish":"爱尔兰语","Galician":"加利西亚语","Manx":"马恩岛语","Guarani":"瓜拉尼语","German Sign Language":"德国手语","Gujarati":"古吉拉特语","Haitian":"海地语","Hausa":"豪萨语","Serbo-Croatian":"塞尔维亚-克罗地亚语","Hebrew":"希伯来语","Herero":"赫雷罗语","Hindi":"印地语","Hiri Motu":"希里莫图语","Croatian":"克罗地亚语","Hungarian":"匈牙利语","Armenian":"亚美尼亚语","Igbo":"伊博语","Sichuan Yi":"四川彝语","Inuktitut":"伊努伊特语","Indonesian":"印尼语","Inupiaq":"依努庇克语","Icelandic":"冰岛语","Italian":"意大利语","Javanese":"爪哇语","Lojban":"逻辑语","Japanese":"日语","Japanese Sign Language":"日本手语","Kalaallisut":"格陵兰语","Kannada":"坎纳达语","Kashmiri":"克什米尔语","Georgian":"格鲁吉亚语","Kanuri":"卡努里语","Kazakh":"哈萨克语","Khmer":"高棉语","Kikuyu":"基库尤语","Kinyarwanda":"基尼阿万达语","Kirghiz":"吉尔吉斯语","Komi":"科米语","Kongo":"刚果语","Korean":"朝鲜语","Kuanyama":"宽亚玛语","Kurdish":"库尔德语","Lao":"老挝语","Latvian":"拉脱维亚语","Limburgan":"林堡语","Lingala":"林加拉语","Lithuanian":"立陶宛语","Luxembourgish":"卢森堡语","Luba-Katanga":"卢巴-加丹加语","Ganda":"干达语","Marshallese":"马绍尔语","Malayalam":"马拉亚拉姆语","Marathi":"马拉提语","Macedonian":"马其顿语","Malagasy":"马达加斯加语","Maltese":"马耳他语","Mongolian":"蒙古语","Maori":"毛利语","Malay (macrolanguage)":"马来语(广义)","Burmese":"缅甸语","Nauru":"瑙鲁语","Navajo":"纳瓦霍语","South Ndebele":"南恩德贝勒语","North Ndebele":"北恩德贝勒语","Ndonga":"恩敦加语","Nepali (macrolanguage)":"尼泊尔语(广义)","Dutch":"荷兰语","Norwegian Nynorsk":"新挪威语","Norwegian Bokmål":"挪威布克莫尔语","Norwegian":"挪威语","Nyanja":"尼扬贾语","Occitan":"奥克西唐语","Ojibwa":"奥吉布瓦语","Oriya (macrolanguage)":"奥利亚语(广义)","Oromo":"阿芳·奥洛莫语","Ossetian":"奥塞梯语","Panjabi":"旁遮普语","Pakistan Sign Language":"巴基斯坦手语","Polish":"波兰语","Portuguese":"葡萄牙语","Pushto":"普什图语","Quechua":"凯楚亚语","Romansh":"罗曼什语","Romanian":"罗马尼亚语","Russian Sign Language":"俄罗斯手语","Rundi":"基隆迪语","Russian":"俄语","Sango":"桑戈语","Saudi Arabian Sign Language":"沙特阿拉伯手语","South African Sign Language":"南非手语","Sinhala":"僧加罗语","Slovak":"斯洛伐克语","Slovenian":"斯洛文尼亚语","Northern Sami":"北萨米语","Samoan":"萨摩亚语","Shona":"绍纳语","Sindhi":"信德语","Somali":"索马里语","Southern Sotho":"塞索托语","Spanish":"西班牙语","Albanian":"阿尔巴尼亚语","Sardinian":"撒丁语","Serbian":"塞尔维亚语","Swati":"塞斯瓦替语","Sundanese":"巽他语","Swahili (macrolanguage)":"斯瓦希里语(广义)","Swedish":"瑞典语","Swedish Sign Language":"瑞典手语","Tahitian":"塔希提语","Tamil":"泰米尔语","Tatar":"塔塔尔语","Telugu":"泰卢固语","Tajik":"塔吉克语","Tagalog":"他加禄语","Thai":"泰语","Tigrinya":"提格里尼亚语","Klingon":"克林贡语","Tonga (Tonga Islands)":"汤加语","Tswana":"塞茨瓦纳语","Tsonga":"宗加语","Turkmen":"土库曼语","Turkish":"土耳其语","Twi":"特威语","Uighur":"维吾尔语","Ukrainian":"乌克兰语","Urdu":"乌尔都语","Uzbek":"乌兹别克语","Venda":"文达语","Vietnamese":"越南语","Walloon":"沃伦语","Wolof":"沃洛夫语","Xhosa":"科萨语","Yiddish":"依地语","Yoruba":"约鲁巴语","Zhuang":"壮语","Chinese":"汉语","Zulu":"祖鲁语"}
\ No newline at end of file
-{"Music":"音樂","Films":"電影","Vehicles":"汽車","Art":"藝術","Sports":"運動","Travels":"旅遊","Gaming":"遊戲","People":"大眾","Comedy":"喜劇","Entertainment":"娛樂","News":"新聞","How To":"How To","Education":"教育","Activism":"行動","Science & Technology":"科學與科技","Animals":"動物","Kids":"兒童","Food":"食物","Attribution":"姓名標示","Attribution - Share Alike":"姓名標示 - 相同方式分享","Attribution - No Derivatives":"姓名標示 - 禁止改作","Attribution - Non Commercial":"姓名標示 - 非商業性","Attribution - Non Commercial - Share Alike":"姓名標示 - 非商業性 - 相同方式分享","Attribution - Non Commercial - No Derivatives":"姓名標示 - 非商業性 - 禁止改作","Public Domain Dedication":"公有領域","Public":"公開","Unlisted":"不列出","Private":"私人","Published":"已發佈","To transcode":"待轉換編碼","To import":"待匯入","Pending":"擱置中","Success":"成功","Failed":"失敗","Misc":"雜項","Unknown":"未知","Afar":"阿法爾語","Abkhazian":"阿布哈茲語","Afrikaans":"南非語","Akan":"阿寒語","Amharic":"阿姆哈拉語","Arabic":"阿拉伯語","Aragonese":"亞拉岡語","American Sign Language":"美國手語","Assamese":"阿薩姆語","Avaric":"阿瓦爾語","Kotava":"Kotava 語","Aymara":"艾馬拉語","Azerbaijani":"亞塞拜然語","Bashkir":"巴什基爾語","Bambara":"班巴拉語","Belarusian":"白俄羅斯語","Bengali":"孟加拉語","British Sign Language":"英國手語","Bislama":"比斯拉馬語","Tibetan":"藏語","Bosnian":"波士尼亞語","Breton":"布列塔尼語","Bulgarian":"保加利亞語","Brazilian Sign Language":"巴西手語","Catalan":"加泰隆尼亞語","Czech":"捷克語","Chamorro":"查莫羅語","Chechen":"車臣語","Chuvash":"楚瓦什語","Cornish":"康瓦爾語","Corsican":"科西嘉語","Cree":"克里語","Czech Sign Language":"捷克手語","Chinese Sign Language":"中國手語","Welsh":"威爾斯語","Danish":"丹麥語","German":"德語","Dhivehi":"迪維西語","Danish Sign Language":"丹麥手語","Dzongkha":"不丹語","Modern Greek (1453-)":"現代希臘語(1453年後)","English":"英語","Esperanto":"世界語","Estonian":"愛沙尼亞語","Basque":"巴斯克語","Ewe":"埃維語","Faroese":"法羅語","Persian":"波斯語","Fijian":"斐濟語","Finnish":"芬蘭語","French":"法語","Western Frisian":"西菲士蘭語","French Sign Language":"法國手語","Fulah":"富拉語","Scottish Gaelic":"蘇格蘭蓋爾語","Irish":"愛爾蘭語","Galician":"加利西亞語","Manx":"曼島語","Guarani":"瓜拉尼語","German Sign Language":"德國手語","Gujarati":"古吉拉特語","Haitian":"海地語","Hausa":"豪薩語","Serbo-Croatian":"塞爾維亞-克羅埃西亞語","Hebrew":"希伯來語","Herero":"赫雷羅語","Hindi":"印地語","Hiri Motu":"希里摩圖語","Croatian":"克羅埃西亞語","Hungarian":"匈牙利語","Armenian":"亞美尼亞語","Igbo":"伊博語","Sichuan Yi":"彝語北部方言","Inuktitut":"因紐特語","Indonesian":"印尼語","Inupiaq":"因紐皮雅特語","Icelandic":"冰島語","Italian":"義大利語","Javanese":"爪哇語","Lojban":"邏輯語","Japanese":"日語","Japanese Sign Language":"日本手語","Kalaallisut":"格陵蘭語","Kannada":"康納達語","Kashmiri":"喀什米爾語","Georgian":"喬治亞語","Kanuri":"卡努里語","Kazakh":"哈薩克語","Khmer":"高棉語","Kikuyu":"基庫尤語","Kinyarwanda":"盧安達語","Kirghiz":"吉爾吉斯語","Komi":"科米語","Kongo":"剛果語","Korean":"韓語","Kuanyama":"Kuanyama 語","Kurdish":"庫德語","Lao":"寮語","Latvian":"拉脫維亞語","Limburgan":"林堡語","Lingala":"林格拉語","Lithuanian":"立陶宛語","Luxembourgish":"盧森堡語","Luba-Katanga":"盧巴卡丹加語","Ganda":"盧干達語","Marshallese":"馬紹爾語","Malayalam":"馬拉雅拉姆語","Marathi":"馬拉提語","Macedonian":"馬其頓語","Malagasy":"馬拉加斯語","Maltese":"馬爾他語","Mongolian":"蒙古語","Maori":"毛利語","Malay (macrolanguage)":"馬來語","Burmese":"緬甸語","Nauru":"諾魯語","Navajo":"納瓦荷語","South Ndebele":"南恩德貝勒語","North Ndebele":"北恩德貝勒語","Ndonga":"恩敦加語","Nepali (macrolanguage)":"尼泊爾語","Dutch":"荷蘭語","Norwegian Nynorsk":"新挪威語","Norwegian Bokmål":"書面挪威語","Norwegian":"挪威語","Nyanja":"尼揚賈語","Occitan":"奧克西當語","Ojibwa":"歐及布威語","Oriya (macrolanguage)":"歐利亞語","Oromo":"奧羅莫語","Ossetian":"奧塞提亞語","Panjabi":"旁遮普語","Pakistan Sign Language":"巴基斯坦手語","Polish":"波蘭語","Portuguese":"葡萄牙語","Pushto":"普什圖語","Quechua":"奇楚瓦語","Romansh":"羅曼什語","Romanian":"羅馬尼亞語","Russian Sign Language":"俄羅斯手語","Rundi":"克倫地語","Russian":"俄語","Sango":"桑戈語","Saudi Arabian Sign Language":"沙烏地阿拉伯手語","South African Sign Language":"南非手語","Sinhala":"僧伽羅語","Slovak":"斯洛伐克語","Slovenian":"斯洛維尼亞語","Northern Sami":"北方薩米語","Samoan":"薩摩亞語","Shona":"修納語","Sindhi":"信德語","Somali":"索馬利亞語","Southern Sotho":"塞索托語","Spanish":"西班牙語","Albanian":"阿爾巴尼亞語","Sardinian":"薩丁尼亞語","Serbian":"塞爾維亞語","Swati":"史瓦濟語","Sundanese":"巽他語","Swahili (macrolanguage)":"斯瓦希里語","Swedish":"瑞典語","Swedish Sign Language":"瑞典手語","Tahitian":"大溪地語","Tamil":"坦米爾語","Tatar":"韃靼語","Telugu":"泰盧固語","Tajik":"塔吉克語","Tagalog":"他加祿語","Thai":"泰語","Tigrinya":"提格利尼亞語","Klingon":"克林貢語","Tonga (Tonga Islands)":"東加語","Tswana":"札那語","Tsonga":"宋加語","Turkmen":"土庫曼語","Turkish":"土耳其語","Twi":"契維語","Uighur":"維吾爾語","Ukrainian":"烏克蘭語","Urdu":"烏爾都語","Uzbek":"烏茲別克語","Venda":"文達語","Vietnamese":"越南語","Walloon":"瓦隆語","Wolof":"沃洛夫語","Xhosa":"科薩語","Yiddish":"意第緒語","Yoruba":"約魯巴語","Zhuang":"壯語","Chinese":"漢語","Zulu":"祖魯語"}
\ No newline at end of file
+{"Music":"音樂","Films":"電影","Vehicles":"汽車","Art":"藝術","Sports":"運動","Travels":"旅遊","Gaming":"遊戲","People":"大眾","Comedy":"喜劇","Entertainment":"娛樂","How To":"How To","Education":"教育","Activism":"行動","Science & Technology":"科學與科技","Animals":"動物","Kids":"兒童","Food":"食物","Attribution":"姓名標示","Attribution - Share Alike":"姓名標示 - 相同方式分享","Attribution - No Derivatives":"姓名標示 - 禁止改作","Attribution - Non Commercial":"姓名標示 - 非商業性","Attribution - Non Commercial - Share Alike":"姓名標示 - 非商業性 - 相同方式分享","Attribution - Non Commercial - No Derivatives":"姓名標示 - 非商業性 - 禁止改作","Public Domain Dedication":"公有領域","Public":"公開","Unlisted":"不列出","Private":"私人","Published":"已發佈","To transcode":"待轉換編碼","To import":"待匯入","Pending":"擱置中","Success":"成功","Failed":"失敗","Misc":"雜項","Unknown":"未知","Afar":"阿法爾語","Abkhazian":"阿布哈茲語","Afrikaans":"南非語","Akan":"阿寒語","Amharic":"阿姆哈拉語","Arabic":"阿拉伯語","Aragonese":"亞拉岡語","American Sign Language":"美國手語","Assamese":"阿薩姆語","Avaric":"阿瓦爾語","Kotava":"Kotava 語","Aymara":"艾馬拉語","Azerbaijani":"亞塞拜然語","Bashkir":"巴什基爾語","Bambara":"班巴拉語","Belarusian":"白俄羅斯語","Bengali":"孟加拉語","British Sign Language":"英國手語","Bislama":"比斯拉馬語","Tibetan":"藏語","Bosnian":"波士尼亞語","Breton":"布列塔尼語","Bulgarian":"保加利亞語","Brazilian Sign Language":"巴西手語","Catalan":"加泰隆尼亞語","Czech":"捷克語","Chamorro":"查莫羅語","Chechen":"車臣語","Chuvash":"楚瓦什語","Cornish":"康瓦爾語","Corsican":"科西嘉語","Cree":"克里語","Czech Sign Language":"捷克手語","Chinese Sign Language":"中國手語","Welsh":"威爾斯語","Danish":"丹麥語","German":"德語","Dhivehi":"迪維西語","Danish Sign Language":"丹麥手語","Dzongkha":"不丹語","Modern Greek (1453-)":"現代希臘語(1453年後)","English":"英語","Esperanto":"世界語","Estonian":"愛沙尼亞語","Basque":"巴斯克語","Ewe":"埃維語","Faroese":"法羅語","Persian":"波斯語","Fijian":"斐濟語","Finnish":"芬蘭語","French":"法語","Western Frisian":"西菲士蘭語","French Sign Language":"法國手語","Fulah":"富拉語","Scottish Gaelic":"蘇格蘭蓋爾語","Irish":"愛爾蘭語","Galician":"加利西亞語","Manx":"曼島語","Guarani":"瓜拉尼語","German Sign Language":"德國手語","Gujarati":"古吉拉特語","Haitian":"海地語","Hausa":"豪薩語","Serbo-Croatian":"塞爾維亞-克羅埃西亞語","Hebrew":"希伯來語","Herero":"赫雷羅語","Hindi":"印地語","Hiri Motu":"希里摩圖語","Croatian":"克羅埃西亞語","Hungarian":"匈牙利語","Armenian":"亞美尼亞語","Igbo":"伊博語","Sichuan Yi":"彝語北部方言","Inuktitut":"因紐特語","Indonesian":"印尼語","Inupiaq":"因紐皮雅特語","Icelandic":"冰島語","Italian":"義大利語","Javanese":"爪哇語","Lojban":"邏輯語","Japanese":"日語","Japanese Sign Language":"日本手語","Kalaallisut":"格陵蘭語","Kannada":"康納達語","Kashmiri":"喀什米爾語","Georgian":"喬治亞語","Kanuri":"卡努里語","Kazakh":"哈薩克語","Khmer":"高棉語","Kikuyu":"基庫尤語","Kinyarwanda":"盧安達語","Kirghiz":"吉爾吉斯語","Komi":"科米語","Kongo":"剛果語","Korean":"韓語","Kuanyama":"Kuanyama 語","Kurdish":"庫德語","Lao":"寮語","Latvian":"拉脫維亞語","Limburgan":"林堡語","Lingala":"林格拉語","Lithuanian":"立陶宛語","Luxembourgish":"盧森堡語","Luba-Katanga":"盧巴卡丹加語","Ganda":"盧干達語","Marshallese":"馬紹爾語","Malayalam":"馬拉雅拉姆語","Marathi":"馬拉提語","Macedonian":"馬其頓語","Malagasy":"馬拉加斯語","Maltese":"馬爾他語","Mongolian":"蒙古語","Maori":"毛利語","Malay (macrolanguage)":"馬來語","Burmese":"緬甸語","Nauru":"諾魯語","Navajo":"納瓦荷語","South Ndebele":"南恩德貝勒語","North Ndebele":"北恩德貝勒語","Ndonga":"恩敦加語","Nepali (macrolanguage)":"尼泊爾語","Dutch":"荷蘭語","Norwegian Nynorsk":"新挪威語","Norwegian Bokmål":"書面挪威語","Norwegian":"挪威語","Nyanja":"尼揚賈語","Occitan":"奧克西當語","Ojibwa":"歐及布威語","Oriya (macrolanguage)":"歐利亞語","Oromo":"奧羅莫語","Ossetian":"奧塞提亞語","Panjabi":"旁遮普語","Pakistan Sign Language":"巴基斯坦手語","Polish":"波蘭語","Portuguese":"葡萄牙語","Pushto":"普什圖語","Quechua":"奇楚瓦語","Romansh":"羅曼什語","Romanian":"羅馬尼亞語","Russian Sign Language":"俄羅斯手語","Rundi":"克倫地語","Russian":"俄語","Sango":"桑戈語","Saudi Arabian Sign Language":"沙烏地阿拉伯手語","South African Sign Language":"南非手語","Sinhala":"僧伽羅語","Slovak":"斯洛伐克語","Slovenian":"斯洛維尼亞語","Northern Sami":"北方薩米語","Samoan":"薩摩亞語","Shona":"修納語","Sindhi":"信德語","Somali":"索馬利亞語","Southern Sotho":"塞索托語","Spanish":"西班牙語","Albanian":"阿爾巴尼亞語","Sardinian":"薩丁尼亞語","Serbian":"塞爾維亞語","Swati":"史瓦濟語","Sundanese":"巽他語","Swahili (macrolanguage)":"斯瓦希里語","Swedish":"瑞典語","Swedish Sign Language":"瑞典手語","Tahitian":"大溪地語","Tamil":"坦米爾語","Tatar":"韃靼語","Telugu":"泰盧固語","Tajik":"塔吉克語","Tagalog":"他加祿語","Thai":"泰語","Tigrinya":"提格利尼亞語","Klingon":"克林貢語","Tonga (Tonga Islands)":"東加語","Tswana":"札那語","Tsonga":"宋加語","Turkmen":"土庫曼語","Turkish":"土耳其語","Twi":"契維語","Uighur":"維吾爾語","Ukrainian":"烏克蘭語","Urdu":"烏爾都語","Uzbek":"烏茲別克語","Venda":"文達語","Vietnamese":"越南語","Walloon":"瓦隆語","Wolof":"沃洛夫語","Xhosa":"科薩語","Yiddish":"意第緒語","Yoruba":"約魯巴語","Zhuang":"壯語","Chinese":"漢語","Zulu":"祖魯語"}
\ No newline at end of file
import { getDevLocale, isOnDevLocale } from '@app/shared/i18n/i18n-utils'
import { buildFileLocale } from '../../shared'
-let providers = []
+let providers: any[] = []
if (environment.production) {
enableProdMode()
}
* BROWSER POLYFILLS
*/
-/** IE9, IE10 and IE11 requires all of the following polyfills. **/
+/**
+ * IE9, IE10 and IE11 requires all of the following polyfills.
+ */
// For Google Bot
-import 'core-js/es6/symbol';
-import 'core-js/es6/object';
-import 'core-js/es6/function';
-import 'core-js/es6/parse-int';
-import 'core-js/es6/parse-float';
-import 'core-js/es6/number';
-import 'core-js/es6/math';
-import 'core-js/es6/string';
-import 'core-js/es6/date';
-import 'core-js/es6/array';
-import 'core-js/es6/regexp';
-import 'core-js/es6/map';
-import 'core-js/es6/weak-map';
-import 'core-js/es6/set';
-import 'core-js/es7/object';
+import 'core-js/es6/symbol'
+import 'core-js/es6/object'
+import 'core-js/es6/function'
+import 'core-js/es6/parse-int'
+import 'core-js/es6/parse-float'
+import 'core-js/es6/number'
+import 'core-js/es6/math'
+import 'core-js/es6/string'
+import 'core-js/es6/date'
+import 'core-js/es6/array'
+import 'core-js/es6/regexp'
+import 'core-js/es6/map'
+import 'core-js/es6/weak-map'
+import 'core-js/es6/set'
+import 'core-js/es7/object'
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js'; // Run `npm install --save classlist.js`.
/** IE10 and IE11 requires the following for the Reflect API. */
// For Google Bot
-import 'core-js/es6/reflect';
+import 'core-js/es6/reflect'
-/** Evergreen browsers require these. **/
+/**
+ * Evergreen browsers require these.
+ */
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
import 'core-js/es7/reflect'
-
/**
* Required to support Web Animations `@angular/platform-browser/animations`.
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
- **/
+ */
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
*/
// (window as any).__Zone_enable_cross_context_check = true;
-
/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import 'zone.js/dist/zone' // Included with Angular CLI.
-
/***************************************************************************************************
* APPLICATION IMPORTS
*/
// global/process polyfills
-;(window as any).global = window;
-;(window as any).process = require('process/');
-;(window as any).Buffer = require('buffer/').Buffer;
+;(window as any).global = window
+;(window as any).process = require('process/')
+;(window as any).Buffer = require('buffer/').Buffer
$input-focus-border-color: #ced4da;
$nav-pills-link-active-bg: #F0F0F0;
-$nav-pills-link-active-color: #000;
\ No newline at end of file
+$nav-pills-link-active-color: #000;
+
+$zindex-dropdown: 10000;
\ No newline at end of file
display: block;
/* Fallback for non-webkit */
display: -webkit-box;
- max-height: $font-size*$line-height*$lines-to-show;
+ max-height: $font-size*$line-height*$lines-to-show + 0.2;
/* Fallback for non-webkit */
font-size: $font-size;
line-height: $line-height;
p-table {
font-size: 15px !important;
+ .ui-table-caption {
+ border: none;
+
+ .caption {
+ height: 40px;
+ display: flex;
+ align-items: center;
+ }
+ }
+
td {
- // border: 1px solid #E5E5E5 !important;
padding-left: 15px !important;
&:not(.action-cell) {
tr {
background-color: var(--mainBackgroundColor) !important;
height: 46px;
+
+ &.ui-state-highlight {
+ background-color:var(--submenuColor) !important;
+ color:var(--mainForegroundColor) !important;
+ }
}
.ui-table-tbody {
@include glyphicon-light;
}
}
+}
+
+.ui-chkbox-box {
+ &.ui-state-active {
+ border-color: var(--mainColor) !important;
+ background-color: var(--mainColor) !important;
+ }
+
+ .ui-chkbox-icon {
+ position: relative;
+
+ &:after {
+ content: '';
+ position: absolute;
+ left: 5px;
+ width: 5px;
+ height: 12px;
+ opacity: 0;
+ transform: rotate(45deg) scale(0);
+ border-right: 2px solid var(--mainBackgroundColor);
+ border-bottom: 2px solid var(--mainBackgroundColor);
+ }
+
+ &.pi-check:after {
+ opacity: 1;
+ transform: rotate(45deg) scale(1);
+ }
+ }
}
\ No newline at end of file
// Does nothing. Used to shim out node.js modules
// which are no-ops in the browser.
-export const NOOP = 0
\ No newline at end of file
+export const NOOP = 0
// For google bot that uses Chrome 41 and does not understand fetch
import 'whatwg-fetch'
+// FIXME: something weird with our path definition in tsconfig and typings
+// @ts-ignore
import * as vjs from 'video.js'
+
import * as Channel from 'jschannel'
import { peertubeTranslate, ResultList, VideoDetails } from '../../../../shared'
this.playerOptions = videojsOptions
this.player = vjs(this.videoContainerId, videojsOptions, () => {
- this.player.on('customError', (event, data) => this.handleError(data.err))
+ this.player.on('customError', (event: any, data: any) => this.handleError(data.err))
window[ 'videojsPlayer' ] = this.player
import './test-embed.scss'
import { PeerTubePlayer } from '../player/player'
-import { PlayerEventType } from '../player/definitions'
+import { PeerTubeResolution, PlayerEventType } from '../player/definitions'
window.addEventListener('load', async () => {
const urlParts = window.location.href.split('/')
updateRates()
})
- let updateResolutions = resolutions => {
+ let updateResolutions = ((resolutions: PeerTubeResolution[]) => {
let resolutionListEl = document.querySelector('#resolution-list')
resolutionListEl.innerHTML = ''
resolutionListEl.appendChild(itemEl)
}
})
- }
+ })
player.getResolutions().then(
resolutions => updateResolutions(resolutions))
/* SystemJS module definition */
-declare var module: NodeModule;
+declare var module: NodeModule
+
interface NodeModule {
- id: string;
+ id: string
}
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
- "noImplicitAny": false,
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "suppressImplicitAnyIndexErrors":true,
+ "alwaysStrict": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
"max-line-length": [true, 140],
"no-floating-promises": false,
"no-unused-variable": false, // Memory issues
- "member-ordering": [true,
- "public-before-private",
- "static-before-instance",
- "variables-before-functions"
+ "member-ordering": [true, {
+ "order": [
+ "public-static-field",
+ "private-static-field",
+ "public-instance-field",
+ "private-instance-field",
+ "public-constructor",
+ "private-constructor",
+ "public-instance-method",
+ "protected-instance-method",
+ "private-instance-method"
+ ]}
],
"angular-whitespace": [true, "check-interpolation", "check-semicolon"],
"@angular-devkit/architect@0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.8.3.tgz#320c7de2e2e7b984a0e4be51dc60dfe12d4c973e"
+ integrity sha512-cFku50grgEJPg1CZZ0DXt4CkA6WnV6zN3hCXzpWbOfc/Id923Mml/jsEaoByeXHsRqb5rIZKZAhz7R509ya8OQ==
dependencies:
"@angular-devkit/core" "0.8.3"
rxjs "~6.2.0"
"@angular-devkit/build-angular@^0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.8.3.tgz#e302fdf0f11d589bc518f93afaa7fe5f967bde94"
+ integrity sha512-NWwWV+6apvCGmllWjwwy9Pmj5uK5tVGL/xIVQgSGC5waLmW/vFWNRXCI50ji5UPP+vAeRi/pWdXWMxuoVA08FA==
dependencies:
"@angular-devkit/architect" "0.8.3"
"@angular-devkit/build-optimizer" "0.8.3"
"@angular-devkit/build-optimizer@0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.8.3.tgz#6fdc56bc29313ef9f80af095d5234af750b3277e"
+ integrity sha512-uvscKyKHkC2NhGt1M+bbHkEESKumiYB0j6NfVpGjYvBPQnXvsm2/shzTkwOb13kEmtaMpnT/iV9EQuODbsh7Rw==
dependencies:
loader-utils "^1.1.0"
source-map "^0.5.6"
"@angular-devkit/build-webpack@0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.8.3.tgz#df8fd2195b0304acfd0c64c8af95ec543ec28593"
+ integrity sha512-PiMKlhUhaAl0G8dbhTTRZB3RpHOE0SuMjnimyCmZt6U6/dM46KPXd2GFtwtDjwpMJEvz6ep9gIPgF2bJMnwzJg==
dependencies:
"@angular-devkit/architect" "0.8.3"
"@angular-devkit/core" "0.8.3"
"@angular-devkit/core@0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.8.3.tgz#a7158195dc90997de62ec0b12af3325870182c3b"
+ integrity sha512-2KHt5osMs3zACYXev20ZU5SXdWoinoKwZkj2caj2LCj9W7QNHmsz34QvaygNq7YdJzF3jkXkdy0GSUgUgDke0w==
dependencies:
ajv "~6.4.0"
chokidar "^2.0.3"
"@angular-devkit/schematics@0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.8.3.tgz#32f2e99b43c39864ec63301963329c9190d7c5d2"
+ integrity sha512-NzsRc0O6nlwCviynZbbkrSWPvTSICviqyYxCXkmEkrbiXqvvahJjSQ/sXQQV0TRkgyTFdhnDF4WIwpeJM4UDeg==
dependencies:
"@angular-devkit/core" "0.8.3"
rxjs "~6.2.0"
"@angular/animations@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-6.1.8.tgz#a1861c7f63aca5bd18ba48e0c736ee7b1f2dac36"
+ integrity sha512-OUetZPkEfUz0o58bVmx42Jdd/ep+KcgV5xaFvRTwXI/mVbTYgODJUos7aaoyBz6J2EPB/pTA4NMyZU3XFKjDiw==
dependencies:
tslib "^1.9.0"
"@angular/cli@~6.2.3":
version "6.2.3"
resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-6.2.3.tgz#212e11cd5e2eed994b33feb93c550a84a0e38ba8"
+ integrity sha512-6cKPEwtVXWRipDcWmJns32TY9LmbsUPhzWh/y7DLW+FzzJv/5amX1/mdMqUS0hTdq4gKm7hZ/muVx6bLooVPxA==
dependencies:
"@angular-devkit/architect" "0.8.3"
"@angular-devkit/core" "0.8.3"
"@angular/common@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-6.1.8.tgz#e9106cecd448f24e3a553a6ea9431e113fe3becd"
+ integrity sha512-v8U49a7w2hXKX229WCLNF40RYY3v26+QKlN/jxdzKpP4wu5dguX6s6d3+AJdtywvsE8WS1NwOTHWCCWuMiVxrg==
dependencies:
tslib "^1.9.0"
"@angular/compiler-cli@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-6.1.8.tgz#b31842b42a6cee90d0f61f3849fbd15fc6f5ddbf"
+ integrity sha512-oL7ghO1Yjfp+J349hWrOqsrwJZ6ZAC0mRsXY0SkadnPI3oLzcmysmZV91UUjjZ43KR6lmXXkxo52Gt8bIRYEWQ==
dependencies:
chokidar "^1.4.2"
minimist "^1.2.0"
"@angular/compiler@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-6.1.8.tgz#bbbb70961724c6e5755e05fc5d7f4b39d3bb4a0c"
+ integrity sha512-a+OblYNKzjBVsYy3FlZd8QkZvWpsDlqb8xGCfUBPazPFlbeDGp4Bvz5KdX0uCTv46OQyh6jeAmKWPt0PVxLrhg==
dependencies:
tslib "^1.9.0"
"@angular/core@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.1.8.tgz#2de584e184dc148a55ec153f8125acdf3e88eae6"
+ integrity sha512-6bMVQmPqpKJZspjNRIEMaGOxCmDWrAZENlofXNgPhQ0mUNh17iTH7XpqjKbW7UWtnTqGcdnDC9dI++P08ggD3g==
dependencies:
tslib "^1.9.0"
"@angular/forms@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-6.1.8.tgz#058429b99fc4c6554fe4943a23d4d6221cb1d9ac"
+ integrity sha512-S+spi72wxXTTIdB+02xgYdl8UlCYMJ13ast0dfCGStwx/fRUsgo0sWppDpMJz9sseC7xKEJ4U5tsfjTiCQ9dqw==
dependencies:
tslib "^1.9.0"
"@angular/http@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/http/-/http-6.1.8.tgz#8c627a879285a366e960edc15522006474f4ec6f"
+ integrity sha512-WqOm3mAjU9SdPazi7DTJzPosRzb4+3Dk3gdzMpKwDNP40Zg940UBt62udVmK2ERReIQlQbHgq/+JLiPe3q5O5A==
dependencies:
tslib "^1.9.0"
"@angular/language-service@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-6.1.8.tgz#2b076eca1e415204a4e2e8e4b066d258a7fe16fd"
+ integrity sha512-AQpjHDlhGuuRvBuWEpq/u49lcaEL/PO2tLMMU5gRqBFYido9wP/6Flz0Oxgu1g5Xjj19Kj00j9uNGgSGc4UCyQ==
"@angular/platform-browser-dynamic@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.1.8.tgz#a0c523857e9e55343e6e1747052141d870d4e870"
+ integrity sha512-rXsyY6xpeuBTGyEmgx3KFMv1PTgaa1efA1bo8I3KIuUn595GnQamszpXISSySGeMYxEhKFeQWafb/ZDnSg0vWQ==
dependencies:
tslib "^1.9.0"
"@angular/platform-browser@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-6.1.8.tgz#2a0340995ee4b67809f10e039a872afb7f228403"
+ integrity sha512-ZjnlnKj6K+Z+LvA9dbzckOfB0CwaamTkQGxyODXdYpwEJ/7YOoz+v+LYf6BpKdyqiDHEyVQnkU0YiniNNy+CWA==
dependencies:
tslib "^1.9.0"
"@angular/router@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-6.1.8.tgz#7106a55392e9f920358544f431dace2ef3715630"
+ integrity sha512-0J7xkN8l4vdmtFETgJFYqHYxUPZz9grTnjeKmEkBSogxpOfJE5doDkAcBraRzB/Nb95MSb+zc4rIjx9Otx2IjA==
dependencies:
tslib "^1.9.0"
"@angular/service-worker@~6.1.4":
version "6.1.8"
resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-6.1.8.tgz#1f8be0db90d28a019cfeaa684ff00bfe739f3dda"
+ integrity sha512-hlMRCciD+kCB8Z3DWWUHjYFUK/xVh/gPGrKJu2yw76R+5BwCntre2NyTL/CR9fppxp5PqDrMI3Vzb1Br5ynXxg==
dependencies:
tslib "^1.9.0"
"@angularclass/hmr@^2.1.3":
version "2.1.3"
resolved "https://registry.yarnpkg.com/@angularclass/hmr/-/hmr-2.1.3.tgz#34e658ed3da37f23b0a200e2da5a89be92bb209f"
+ integrity sha1-NOZY7T2jfyOwogDi2lqJvpK7IJ8=
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
+ integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
dependencies:
"@babel/highlight" "^7.0.0"
"@babel/generator@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa"
+ integrity sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==
dependencies:
"@babel/types" "^7.0.0"
jsesc "^2.5.1"
"@babel/helper-function-name@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
+ integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
dependencies:
"@babel/helper-get-function-arity" "^7.0.0"
"@babel/template" "^7.1.0"
"@babel/helper-get-function-arity@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
+ integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
dependencies:
"@babel/types" "^7.0.0"
"@babel/helper-split-export-declaration@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813"
+ integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==
dependencies:
"@babel/types" "^7.0.0"
"@babel/highlight@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
+ integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
"@babel/parser@^7.0.0", "@babel/parser@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.0.tgz#a7cd42cb3c12aec52e24375189a47b39759b783e"
+ integrity sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==
"@babel/template@^7.0.0", "@babel/template@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.0.tgz#58cc9572e1bfe24fe1537fdf99d839d53e517e22"
+ integrity sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/parser" "^7.1.0"
"@babel/traverse@^7.0.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.0.tgz#503ec6669387efd182c3888c4eec07bcc45d91b2"
+ integrity sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/generator" "^7.0.0"
"@babel/types@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118"
+ integrity sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==
dependencies:
esutils "^2.0.2"
lodash "^4.17.10"
"@neos21/bootstrap3-glyphicons@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@neos21/bootstrap3-glyphicons/-/bootstrap3-glyphicons-1.0.1.tgz#e5eeec43e0153d4b51effd9ecb58cdf7029924d7"
+ integrity sha1-5e7sQ+AVPUtR7/2ey1jN9wKZJNc=
"@ng-bootstrap/ng-bootstrap@^3.1.0":
version "3.2.0"
resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-3.2.0.tgz#d44b5ed18ad6f489125074b0f6099668cdce841d"
+ integrity sha512-P+baWRj0Fs2Hm6ZKN2Mtw/xdC6yeuQ0wv2pXGkI231vUb7Jaso28n+9Qc9HSSkfup2Xpm9WVQzhv8AJ4KUOpyA==
dependencies:
tslib "^1.9.0"
"@ngtools/webpack@6.2.3":
version "6.2.3"
resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-6.2.3.tgz#88313131079d14f6c7e07940e807bb445db6a0aa"
+ integrity sha512-nRc0qXUO2PfilTFaqfkCy6qdXyq+I3NZCaR4jzJbhlQnaHwd+AWMa5f1tyIjmDq9VT0Xnr/JnArWRhbOwcHt7Q==
dependencies:
"@angular-devkit/core" "0.8.3"
rxjs "~6.2.0"
"@ngx-loading-bar/core@2.2.0", "@ngx-loading-bar/core@^2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@ngx-loading-bar/core/-/core-2.2.0.tgz#ad313bbbd69e4c52cc2d6f0a8b5911272371d16a"
+ integrity sha512-0jcnEzuhqE/c+4iAumJ/0D4GBWm4RRVas0+qXpX4Wm225SJoE5KupUOlMrvLnJNK2bn8NW31dEj80kJ+UzhE5A==
dependencies:
tslib "^1.7.1"
"@ngx-loading-bar/http-client@^2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@ngx-loading-bar/http-client/-/http-client-2.2.0.tgz#4b5443feed5c53bc5b5f06119f771edbe89799f4"
+ integrity sha512-+eilxs10KncQWg7DQJLK2AoWnmTPidhVHNxfTOPHJVnmcyAFmTtk+lQbf5Ke3aC4d/KXZklkRyBizqDfvRvc9w==
dependencies:
"@ngx-loading-bar/core" "2.2.0"
tslib "^1.7.1"
"@ngx-loading-bar/router@^2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@ngx-loading-bar/router/-/router-2.2.0.tgz#c13c1a05c620a9da102102322685b671d3c9a1ba"
+ integrity sha512-/lrWc0ZwGcpmuoa26/h0rC7SRVKgCtsikhy0mVXwrb1VVJ+sRU8vNKbq7aidcvEY5vdi3l0Z7DcVq9+JV/i/BQ==
dependencies:
"@ngx-loading-bar/core" "2.2.0"
tslib "^1.7.1"
"@ngx-meta/core@^6.0.0-rc.1":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@ngx-meta/core/-/core-6.0.0.tgz#3cdc176e810fbe7b9b2d0d09abc5c8606ec61023"
+ integrity sha512-44BZrKeJsvAsnJHIgp2PG5RyM/GrkvPbE2HxFhMBgOpHBtNcsosbr3FmdhYMwKDim3fsd6HnNEE21nqEMI9+Nw==
dependencies:
tslib "~1.9.0"
"@ngx-translate/i18n-polyfill@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@ngx-translate/i18n-polyfill/-/i18n-polyfill-1.0.0.tgz#145edb28bcfc1332e1bc25279eadf9d4ed0a20f8"
+ integrity sha512-+UKmSr6cWBJiMDex6w2FwVjEeVnlEsINDGYvTgRaFRI3/IKZrsSVcfISDcBX2wWr6m4jumfOyCcimIl2TxcaoA==
dependencies:
glob "7.1.2"
tslib "^1.9.0"
"@schematics/angular@0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.8.3.tgz#f4b661c5a196a06c050c0ae56809e6dbcfbf9f98"
+ integrity sha512-kAax08neZQhIsWfqnNdmpSekWbLku+po+1ndfxOMDIhQOAgS/3QTc2mxfSRz/JyQMw1UMSDiXHG8F2Q7gkFIZw==
dependencies:
"@angular-devkit/core" "0.8.3"
"@angular-devkit/schematics" "0.8.3"
"@schematics/update@0.8.3":
version "0.8.3"
resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.8.3.tgz#e8ca76066fa14a9db732e20cf41ec540c8ee7a13"
+ integrity sha512-Cf9cRimaPd8s5ew8uT1EUFfmoYm3YUDFPyDKZUuNZS3+OU/j1HMGpGBsuDOvjqA5zB1V3B0OvyfNFOhJem35xg==
dependencies:
"@angular-devkit/core" "0.8.3"
"@angular-devkit/schematics" "0.8.3"
"@types/bittorrent-protocol@*":
version "2.2.2"
resolved "https://registry.yarnpkg.com/@types/bittorrent-protocol/-/bittorrent-protocol-2.2.2.tgz#169e9633e1bd18e6b830d11cf42e611b1972cb83"
+ integrity sha512-VAPyW8eGh8FjyGxBSKyPSH60Qkxo3r2W4sDYXCQJYfYD49UnA1SUP+5GQ/4MgbdiEDSp9YW4yuebpIR/vstD5Q==
dependencies:
"@types/node" "*"
"@types/core-js@^2.5.0":
version "2.5.0"
resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-2.5.0.tgz#35cc282488de6f10af1d92902899a3b8ca3fbc47"
+ integrity sha512-qjkHL3wF0JMHMqgm/kmL8Pf8rIiqvueEiZ0g6NVTcBX1WN46GWDr+V5z+gsHUeL0n8TfAmXnYmF7ajsxmBp4PQ==
"@types/jasmine@*", "@types/jasmine@^2.8.7":
version "2.8.8"
resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.8.tgz#bf53a7d193ea8b03867a38bfdb4fbb0e0bf066c9"
+ integrity sha512-OJSUxLaxXsjjhob2DBzqzgrkLmukM3+JMpRp0r0E4HTdT1nwDCWhaswjYxazPij6uOdzHCJfNbDjmQ1/rnNbCg==
"@types/jasminewd2@^2.0.3":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/jasminewd2/-/jasminewd2-2.0.3.tgz#0d2886b0cbdae4c0eeba55e30792f584bf040a95"
+ integrity sha512-hYDVmQZT5VA2kigd4H4bv7vl/OhlympwREUemqBdOqtrYTo5Ytm12a5W5/nGgGYdanGVxj0x/VhZ7J3hOg/YKg==
dependencies:
"@types/jasmine" "*"
"@types/jest@^23.3.1":
version "23.3.2"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.2.tgz#07b90f6adf75d42c34230c026a2529e56c249dbb"
+ integrity sha512-D1xlXHZpDonVX+VJ28XtcD5xlu8ex6Fc4cQNnrm2wJvlQnbec9RedhCrhQr6kRAE9XWHSec+JPuTmqJ9jC0qsA==
"@types/jschannel@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/jschannel/-/jschannel-1.0.0.tgz#2e25447f661de85e221647076e9d257d9fb76d0c"
+ integrity sha512-cxdvK/GJExxT1pXR5wjqHNeFgMQQVTM9waKraGfUTYiBYjXGYXIS2Otrtlko4ps9o8jfWPhERY10++vmjAyDYg==
"@types/lodash-es@^4.17.0":
version "4.17.1"
resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.1.tgz#56745e5411558362aeca31def918f88f725dd29d"
+ integrity sha512-3EDZjphPfdjnsWvY11ufYImFMPyQJwIH1eFYRgWQsjOctce06fmNgVf5sfvXBRiaS1o0X50bAln1lfWs8ZO3BA==
dependencies:
"@types/lodash" "*"
"@types/lodash@*":
version "4.14.116"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz#5ccf215653e3e8c786a58390751033a9adca0eb9"
+ integrity sha512-lRnAtKnxMXcYYXqOiotTmJd74uawNWuPnsnPrrO7HiFuE3npE2iQhfABatbYDyxTNqZNuXzcKGhw37R7RjBFLg==
"@types/magnet-uri@*":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.1.tgz#861aaf64c92a3137dd848fefc55cd352a8ea851a"
+ integrity sha1-hhqvZMkqMTfdhI/vxVzTUqjqhRo=
dependencies:
"@types/node" "*"
"@types/markdown-it@^0.0.5":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.5.tgz#5cdcbe08e81075d5dbf15466b311359b02a30c2b"
+ integrity sha512-Bhc4jTJ3g+WU+dBvyhwwssHifjqapauyjV+0cTWVWRjwDAaK9PebZBFpLJmoOCp47qlkDeeT1Y9sV9LyyaG02w==
"@types/mousetrap@^1.6.0":
version "1.6.0"
resolved "https://registry.yarnpkg.com/@types/mousetrap/-/mousetrap-1.6.0.tgz#c3951ab98b88ff6093cd0b1e4f8591af439141b8"
+ integrity sha512-Jn2cF8X6RAMiSmJaATGjf2r3GzIfpZQpvnQhKprQ5sAbMaNXc7hc9sA2XHdMl3bEMEQhTV79JVW7n4Pgg7sjtg==
"@types/node@*", "@types/node@^10.9.2":
version "10.10.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.10.1.tgz#d5c96ca246a418404914d180b7fdd625ad18eca6"
+ integrity sha512-nzsx28VwfaIykfzMAG9TB3jxF5Nn+1/WMKnmVZc8TsB+LMIVvwUscVn7PAq+LFaY5ng5u4jp5mRROSswo76PPA==
"@types/node@^6.0.46":
version "6.0.117"
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.117.tgz#ccfc2506001404708528d657aad9c1b931111646"
+ integrity sha512-sihk0SnN8PpiS5ihu5xJQ5ddnURNq4P+XPmW+nORlKkHy21CoZO/IVHK/Wq/l3G8fFW06Fkltgnqx229uPlnRg==
"@types/parse-torrent-file@*":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/parse-torrent-file/-/parse-torrent-file-4.0.1.tgz#056a6c18f3fac0cd7c6c74540f00496a3225976b"
+ integrity sha1-BWpsGPP6wM18bHRUDwBJajIll2s=
dependencies:
"@types/node" "*"
"@types/parse-torrent@*":
version "5.8.2"
resolved "https://registry.yarnpkg.com/@types/parse-torrent/-/parse-torrent-5.8.2.tgz#53ab880e38ced2005a79948f0df0c8762539323e"
+ integrity sha512-wfXO0N2vNkk/W1CEiPbT+7GPiOe3fnRLecdFBw/HNxPyx6czOGqUYi8bw2dbjEmYqWSsqhMdrajEd6o5ry2p4w==
dependencies:
"@types/magnet-uri" "*"
"@types/node" "*"
"@types/q@^0.0.32":
version "0.0.32"
resolved "http://registry.npmjs.org/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5"
+ integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU=
"@types/sanitize-html@1.18.0":
version "1.18.0"
resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-1.18.0.tgz#de5cb560a41308ea8474e93b9d10bbb4050692f5"
+ integrity sha512-cGOcHB/CFqqu4l6b7yVGej6eQ/QsUSsgWHcJPCvfPgXx8Q7t602EdnZ6fZcM019dbdE9/7ecRipBwk8cCMgukw==
"@types/selenium-webdriver@^3.0.0":
version "3.0.10"
resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.10.tgz#e98cc6f05b4b436277671c784ee2f9d05a634f9b"
+ integrity sha512-ikB0JHv6vCR1KYUQAzTO4gi/lXLElT4Tx+6De2pc/OZwizE9LRNiTa+U8TBFKBD/nntPnr/MPSHSnOTybjhqNA==
"@types/simple-peer@*":
version "6.1.5"
resolved "https://registry.yarnpkg.com/@types/simple-peer/-/simple-peer-6.1.5.tgz#9353f84cefd052a9684b9a5662c983fc2bcfab41"
+ integrity sha512-huXri3g0rQpIO5jkG630a2sBrh1WXgsd2Gsoc9MqWTRZ0AWqyMEcMCfLXmw5i8AvrZbjAT6BIxW2gEqvpqSYwA==
dependencies:
"@types/node" "*"
-"@types/video.js@6.2.7":
- version "6.2.7"
- resolved "https://registry.yarnpkg.com/@types/video.js/-/video.js-6.2.7.tgz#ef6f965746c10928dd68c80ad8e50c433b35d49a"
+"@types/video.js@^7.2.5":
+ version "7.2.5"
+ resolved "https://registry.yarnpkg.com/@types/video.js/-/video.js-7.2.5.tgz#20896c81141d3517c3a89bb6eb97c6a191aa5d4c"
+ integrity sha512-5WUDOme0q81d58nEqf7qnz7B2Jc4jlA7/MQGOgoqI5VE6oied0KUfk5x/XqPSZSAHNwDDREAkrcK8JXcB+iruQ==
"@types/webtorrent@^0.98.4":
version "0.98.4"
resolved "https://registry.yarnpkg.com/@types/webtorrent/-/webtorrent-0.98.4.tgz#cf8dbe22e3d5cf6915305f7f970b52bca01bf8b4"
+ integrity sha1-z42+IuPVz2kVMF9/lwtSvKAb+LQ=
dependencies:
"@types/bittorrent-protocol" "*"
"@types/node" "*"
"@videojs/http-streaming@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@videojs/http-streaming/-/http-streaming-1.2.4.tgz#6245524b76203db5e6750153d4896d007cc7f7cd"
+ integrity sha512-rwNe4g3L7Dyoa3nTUQ6RmRMV5P/Mg9yG4mSGh83xMKU1RPTAjvQ+iqKTd5zzYn4TqoUAI7L8b5RHsXgBwTnz7A==
dependencies:
aes-decrypter "3.0.0"
global "^4.3.0"
"@webassemblyjs/ast@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.6.tgz#3ef8c45b3e5e943a153a05281317474fef63e21e"
+ integrity sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==
dependencies:
"@webassemblyjs/helper-module-context" "1.7.6"
"@webassemblyjs/helper-wasm-bytecode" "1.7.6"
"@webassemblyjs/floating-point-hex-parser@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz#7cb37d51a05c3fe09b464ae7e711d1ab3837801f"
+ integrity sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==
"@webassemblyjs/helper-api-error@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz#99b7e30e66f550a2638299a109dda84a622070ef"
+ integrity sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==
"@webassemblyjs/helper-buffer@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz#ba0648be12bbe560c25c997e175c2018df39ca3e"
+ integrity sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==
"@webassemblyjs/helper-code-frame@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz#5a94d21b0057b69a7403fca0c253c3aaca95b1a5"
+ integrity sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==
dependencies:
"@webassemblyjs/wast-printer" "1.7.6"
"@webassemblyjs/helper-fsm@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz#ae1741c6f6121213c7a0b587fb964fac492d3e49"
+ integrity sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==
"@webassemblyjs/helper-module-context@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz#116d19a51a6cebc8900ad53ca34ff8269c668c23"
+ integrity sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==
dependencies:
mamacro "^0.0.3"
"@webassemblyjs/helper-wasm-bytecode@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz#98e515eaee611aa6834eb5f6a7f8f5b29fefb6f1"
+ integrity sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==
"@webassemblyjs/helper-wasm-section@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz#783835867bdd686df7a95377ab64f51a275e8333"
+ integrity sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/helper-buffer" "1.7.6"
"@webassemblyjs/ieee754@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz#c34fc058f2f831fae0632a8bb9803cf2d3462eb1"
+ integrity sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==
dependencies:
"@xtuc/ieee754" "^1.2.0"
"@webassemblyjs/leb128@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.6.tgz#197f75376a29f6ed6ace15898a310d871d92f03b"
+ integrity sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==
dependencies:
"@xtuc/long" "4.2.1"
"@webassemblyjs/utf8@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.6.tgz#eb62c66f906af2be70de0302e29055d25188797d"
+ integrity sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==
"@webassemblyjs/wasm-edit@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz#fa41929160cd7d676d4c28ecef420eed5b3733c5"
+ integrity sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/helper-buffer" "1.7.6"
"@webassemblyjs/wasm-gen@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz#695ac38861ab3d72bf763c8c75e5f087ffabc322"
+ integrity sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/helper-wasm-bytecode" "1.7.6"
"@webassemblyjs/wasm-opt@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz#fbafa78e27e1a75ab759a4b658ff3d50b4636c21"
+ integrity sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/helper-buffer" "1.7.6"
"@webassemblyjs/wasm-parser@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz#84eafeeff405ad6f4c4b5777d6a28ae54eed51fe"
+ integrity sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/helper-api-error" "1.7.6"
"@webassemblyjs/wast-parser@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz#ca4d20b1516e017c91981773bd7e819d6bd9c6a7"
+ integrity sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/floating-point-hex-parser" "1.7.6"
"@webassemblyjs/wast-printer@1.7.6":
version "1.7.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz#a6002c526ac5fa230fe2c6d2f1bdbf4aead43a5e"
+ integrity sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/wast-parser" "1.7.6"
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+ integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
"@xtuc/long@4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8"
+ integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==
abab@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
+ integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==
abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
abbrev@1.0.x:
version "1.0.9"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
+ integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU=
accepts@~1.3.4, accepts@~1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
+ integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
dependencies:
mime-types "~2.1.18"
negotiator "0.6.1"
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"
+ integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==
dependencies:
acorn "^5.0.0"
acorn-globals@^4.1.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103"
+ integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==
dependencies:
acorn "^6.0.1"
acorn-walk "^6.0.1"
acorn-walk@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.0.1.tgz#c7827bdbb8e21aa97b609adfa225400d9ae348ba"
+ integrity sha512-PqVQ8c6a3kyqdsUZlC7nljp3FFuxipBRHKu+7C1h8QygBFlzTaDX5HD383jej3Peed+1aDG8HwkfB1Z1HMNPkw==
acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.3:
version "5.7.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
+ integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
acorn@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.1.tgz#66e6147e1027704479dc6d9b20d884c572db3cc1"
+ integrity sha512-SiwgrRuRD2D1R6qjwwoopKcCTkmmIWjy1M15Wv+Nk/7VUsBad4P8GOPft2t6coDZG0TuR5dq9o1v0g8wo7F6+A==
addr-to-ip-port@^1.0.1, addr-to-ip-port@^1.4.2:
version "1.5.1"
resolved "https://registry.yarnpkg.com/addr-to-ip-port/-/addr-to-ip-port-1.5.1.tgz#bfada13fd6aeeeac19f1e9f7d84b4bbab45e5208"
+ integrity sha512-bA+dyydTNuQtrEDJ0g9eR7XabNhvrM5yZY0hvTbNK3yvoeC73ZqMES6E1cEqH9WPxs4uMtMsOjfwS4FmluhsAA==
adm-zip@^0.4.9:
version "0.4.11"
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a"
+ integrity sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==
aes-decrypter@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/aes-decrypter/-/aes-decrypter-3.0.0.tgz#7848a1c145b9fdbf57ae3e2b5b1bc7cf0644a8fb"
+ integrity sha1-eEihwUW5/b9Xrj4rWxvHzwZEqPs=
dependencies:
commander "^2.9.0"
global "^4.3.2"
after@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
+ integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
agent-base@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
+ integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==
dependencies:
es6-promisify "^5.0.0"
ajv-errors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59"
+ integrity sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=
ajv-keywords@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
+ integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=
ajv@^4.11.2:
version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
+ integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=
dependencies:
co "^4.6.0"
json-stable-stringify "^1.0.1"
ajv@^5.0.0, ajv@^5.1.0, ajv@^5.3.0:
version "5.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
dependencies:
co "^4.6.0"
fast-deep-equal "^1.0.0"
ajv@^6.1.0:
version "6.5.3"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9"
+ integrity sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==
dependencies:
fast-deep-equal "^2.0.1"
fast-json-stable-stringify "^2.0.0"
ajv@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6"
+ integrity sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=
dependencies:
fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+ integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
angular2-hotkeys@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/angular2-hotkeys/-/angular2-hotkeys-2.1.2.tgz#6693ecc2fbbf6f3874fb6715804e88ba6a584c0a"
+ integrity sha512-Xh4PsqduUWG9AuhLW75n75N2tpwvlqJ43kNrxBFNM+4PjbN2cR5AUsv0URW5ooTEVRyujV4P/d/BcWG+KLSAaA==
dependencies:
"@types/mousetrap" "^1.6.0"
mousetrap "^1.6.0"
angular2-notifications@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/angular2-notifications/-/angular2-notifications-1.0.4.tgz#7b3c449dbad45503965f8cd8ac00e998a4463544"
+ integrity sha512-DjazfwXtLY8BNXKIEw1oEEMy7G6fmldpzP1FYwyVGUwEtZPLQyYGu9MQYCjtVlZMljxpa3qvnv8l9ZUfXAarNA==
ansi-colors@^3.0.0:
version "3.0.5"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.0.5.tgz#cb9dc64993b64fd6945485f797fc3853137d9a7b"
+ integrity sha512-VVjWpkfaphxUBFarydrQ3n26zX5nIK7hcbT3/ielrvwDDyBBjuh2vuSw1P9zkPq0cfqvdw7lkYHnu+OLSfIBsg==
ansi-escapes@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
+ integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+ integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
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"
+ integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
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"
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
dependencies:
micromatch "^3.1.4"
normalize-path "^2.1.1"
app-root-path@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.1.0.tgz#98bf6599327ecea199309866e8140368fd2e646a"
+ integrity sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=
append-transform@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
+ integrity sha1-126/jKlNJ24keja61EpLdKthGZE=
dependencies:
default-require-extensions "^1.0.0"
append-transform@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab"
+ integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==
dependencies:
default-require-extensions "^2.0.0"
aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
are-we-there-yet@~1.1.2:
version "1.1.5"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
dependencies:
delegates "^1.0.0"
readable-stream "^2.0.6"
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
dependencies:
arr-flatten "^1.0.1"
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
arr-flatten@^1.0.1, arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
arr-union@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
array-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
+ integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
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"
+ integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
array-flatten@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
+ integrity sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=
array-slice@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5"
+ integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU=
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
dependencies:
array-uniq "^1.0.1"
array-uniq@^1.0.1, array-uniq@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+ integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
arraybuffer.slice@~0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
+ integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+ integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
asn1.js@^4.0.0:
version "4.10.1"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+ integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
dependencies:
bn.js "^4.0.0"
inherits "^2.0.1"
asn1@~0.2.3:
version "0.2.4"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
dependencies:
safer-buffer "~2.1.0"
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"
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
assert@^1.1.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
+ integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=
dependencies:
util "0.10.3"
assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
ast-types@0.9.6:
version "0.9.6"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
+ integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=
astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+ integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
async-foreach@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
+ integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=
async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
+ integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
async@1.x, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+ integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
async@^2.1.4, async@^2.4.1, async@^2.5.0, async@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
+ integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==
dependencies:
lodash "^4.17.10"
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
atob@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
autoprefixer@^8.4.1:
version "8.6.5"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.6.5.tgz#343f3d193ed568b3208e00117a1b96eb691d4ee9"
+ integrity sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==
dependencies:
browserslist "^3.2.8"
caniuse-lite "^1.0.30000864"
awesome-typescript-loader@5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz#a41daf7847515f4925cdbaa3075d61f289e913fc"
+ integrity sha512-slv66OAJB8orL+UUaTI3pKlLorwIvS4ARZzYR9iJJyGsEgOqueMfOMdKySWzZ73vIkEe3fcwFgsKMg4d8zyb1g==
dependencies:
chalk "^2.4.1"
enhanced-resolve "^4.0.0"
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.6.0, aws4@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
+ integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
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"
+ integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
dependencies:
chalk "^1.1.3"
esutils "^2.0.2"
babel-core@^6.0.0, babel-core@^6.26.0:
version "6.26.3"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
+ integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
dependencies:
babel-code-frame "^6.26.0"
babel-generator "^6.26.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"
+ integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
dependencies:
babel-messages "^6.23.0"
babel-runtime "^6.26.0"
babel-helpers@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
+ integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=
dependencies:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
babel-jest@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1"
+ integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==
dependencies:
babel-plugin-istanbul "^4.1.6"
babel-preset-jest "^23.2.0"
babel-messages@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
dependencies:
babel-runtime "^6.22.0"
babel-plugin-istanbul@^4.1.6:
version "4.1.6"
resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
+ integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==
dependencies:
babel-plugin-syntax-object-rest-spread "^6.13.0"
find-up "^2.1.0"
babel-plugin-jest-hoist@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
+ integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=
babel-plugin-syntax-object-rest-spread@^6.13.0:
version "6.13.0"
resolved "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
+ integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
babel-preset-jest@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46"
+ integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY=
dependencies:
babel-plugin-jest-hoist "^23.2.0"
babel-plugin-syntax-object-rest-spread "^6.13.0"
babel-register@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
+ integrity sha1-btAhFz4vy0htestFxgCahW9kcHE=
dependencies:
babel-core "^6.26.0"
babel-runtime "^6.26.0"
babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
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"
+ integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=
dependencies:
babel-runtime "^6.26.0"
babel-traverse "^6.26.0"
babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
dependencies:
babel-code-frame "^6.26.0"
babel-messages "^6.23.0"
babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
dependencies:
babel-runtime "^6.26.0"
esutils "^2.0.2"
babylon@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+ integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
backo2@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-arraybuffer@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
+ integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
base64-js@^1.0.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
+ integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
base64id@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
+ integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
dependencies:
cache-base "^1.0.1"
class-utils "^0.3.5"
batch@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+ integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
dependencies:
tweetnacl "^0.14.3"
bencode@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bencode/-/bencode-2.0.0.tgz#e72e6b3691d824bd03ea7aa9d752cd1d49a50027"
+ integrity sha512-wr2HwwrUpfB5c68zmAudOltC7rZ1G0+lQOcnuEcfIM3AWAVnB3rHI3nlgd/2CWTfQ3w3zagKt89zni/M+VLZ8g==
dependencies:
safe-buffer "^5.1.1"
better-assert@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
+ integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=
dependencies:
callsite "1.0.0"
bfj@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48"
+ integrity sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==
dependencies:
bluebird "^3.5.1"
check-types "^7.3.0"
big.js@^3.1.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+ integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
binary-extensions@^1.0.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14"
+ integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==
binary-search@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.4.tgz#d15f44ff9226ef309d85247fa0dbfbf659955f56"
+ integrity sha512-dPxU/vZLnH0tEVjVPgi015oSwqu6oLfCeHywuFRhBE0yM0mYocvleTl8qsdM1YFhRzTRhM1+VzS8XLDVrHPopg==
bitfield@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bitfield/-/bitfield-2.0.0.tgz#fbe6767592fe5b4c87ecf1d04126294cc1bfa837"
+ integrity sha512-4xM4DYejOHQ/qWBfeqBXNA4mJ12PwcOibFYnH1kYh5U9BHciCqEJBqGNVnMJXUhm8mflujNRLSv7IiVQxovgjw==
bittorrent-dht@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/bittorrent-dht/-/bittorrent-dht-9.0.0.tgz#08d5ebb51ed91d7e3eea5c275554f4323fb523e5"
+ integrity sha512-X5ax4G/PLtEPfqOUjqDZ2nmPENndWRMK4sT2jcQ4sXor904zhR40r4KqTyTvWYAljh5/hPPqM9DCUUtqWzRXoQ==
dependencies:
bencode "^2.0.0"
buffer-equals "^1.0.3"
bittorrent-peerid@^1.0.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/bittorrent-peerid/-/bittorrent-peerid-1.3.0.tgz#a435d3b267c887c586c528b53359845905d7c158"
+ integrity sha512-SYd5H3RbN1ex+TrWAKXkEkASFWxAR7Tk6iLt9tfAT9ehBvZb/Y3AQDVRVJynlrixcWpnmsLYKI7tkRWgp7ORoQ==
bittorrent-protocol@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/bittorrent-protocol/-/bittorrent-protocol-3.0.1.tgz#d3948f4d2b09d538095f7e5f93f64ba5df6b5c2a"
+ integrity sha512-hnvOzAu9u+2H0OLLL5byoFdz6oz5f3bx5f7R+ItUohTHMq9TgUhEJfcjo7xWtQHSKOVciYWwYTJ4EjczF5RX2A==
dependencies:
bencode "^2.0.0"
bitfield "^2.0.0"
bittorrent-tracker@^9.0.0:
version "9.10.1"
resolved "https://registry.yarnpkg.com/bittorrent-tracker/-/bittorrent-tracker-9.10.1.tgz#5de14aac012a287af394d3cc9eda1ec6cc956f11"
+ integrity sha512-n5zTL/g6Wt0rb2EnkiyiaGYhth7I/N0/xMqGUpvGX/7g1scDGBVPhJnXR8lfp3/OMj681fv40o4q/otECMtZSA==
dependencies:
bencode "^2.0.0"
bittorrent-peerid "^1.0.2"
blob-to-buffer@^1.2.6:
version "1.2.8"
resolved "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.8.tgz#78eeeb332f1280ed0ca6fb2b60693a8c6d36903a"
+ integrity sha512-re0AIxakF504MgeMtIyJkVcZ8T5aUxtp/QmTMlmjyb3P44E1BEv5x3LATBGApWAJATyXHtkXRD+gWTmeyYLiQA==
blob@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
+ integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=
block-stream2@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/block-stream2/-/block-stream2-1.1.0.tgz#c738e3a91ba977ebb5e1fef431e13ca11d8639e2"
+ integrity sha1-xzjjqRupd+u14f70MeE8oR2GOeI=
dependencies:
defined "^1.0.0"
inherits "^2.0.1"
block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
+ integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
dependencies:
inherits "~2.0.0"
blocking-proxy@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-1.0.1.tgz#81d6fd1fe13a4c0d6957df7f91b75e98dac40cb2"
+ integrity sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==
dependencies:
minimist "^1.2.0"
bluebird@^3.3.0, bluebird@^3.5.1:
version "3.5.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a"
+ integrity sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==
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"
+ integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
body-parser@1.18.2:
version "1.18.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
+ integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
body-parser@^1.16.1:
version "1.18.3"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
+ integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
bonjour@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+ integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
dependencies:
array-flatten "^2.1.0"
deep-equal "^1.0.1"
boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
bootstrap@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.1.3.tgz#0eb371af2c8448e8c210411d0cb824a6409a12be"
+ integrity sha512-rDFIzgXcof0jDyjNosjv4Sno77X4KuPeFxG2XZZv1/Kc8DRVGVADdoQyyOVDwPqL36DDmtCQbrpMCqvpPLJQ0w==
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
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"
+ integrity sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=
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"
+ integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
dependencies:
expand-range "^1.8.1"
preserve "^0.2.0"
braces@^2.3.0, braces@^2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
dependencies:
arr-flatten "^1.1.0"
array-unique "^0.3.2"
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
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"
+ integrity sha1-Ql1opY00R/AqBKqJQYf86K+Le44=
browser-resolve@^1.11.3:
version "1.11.3"
resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
+ integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==
dependencies:
resolve "1.1.7"
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
version "1.2.0"
resolved "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
dependencies:
buffer-xor "^1.0.3"
cipher-base "^1.0.0"
browserify-cipher@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
dependencies:
browserify-aes "^1.0.4"
browserify-des "^1.0.0"
browserify-des@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
dependencies:
cipher-base "^1.0.1"
des.js "^1.0.0"
browserify-package-json@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/browserify-package-json/-/browserify-package-json-1.0.1.tgz#98dde8aa5c561fd6d3fe49bbaa102b74b396fdea"
+ integrity sha1-mN3oqlxWH9bT/km7qhArdLOW/eo=
browserify-rsa@^4.0.0:
version "4.0.1"
resolved "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
+ integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
dependencies:
bn.js "^4.1.0"
randombytes "^2.0.1"
browserify-sign@^4.0.0:
version "4.0.4"
resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
+ integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
dependencies:
bn.js "^4.1.1"
browserify-rsa "^4.0.0"
browserify-zlib@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
dependencies:
pako "~1.0.5"
browserslist@^3.2.8:
version "3.2.8"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6"
+ integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==
dependencies:
caniuse-lite "^1.0.30000844"
electron-to-chromium "^1.3.47"
browserstack@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.5.1.tgz#e2dfa66ffee940ebad0a07f7e00fd4687c455d66"
+ integrity sha512-O8VMT64P9NOLhuIoD4YngyxBURefaSdR4QdhG8l6HZ9VxtU7jc3m6jLufFwKA5gaf7fetfB2TnRJnMxyob+heg==
dependencies:
https-proxy-agent "^2.2.1"
bs-logger@0.x:
version "0.2.5"
resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.5.tgz#1d82f0cf88864e1341cd9262237f8d0748a49b22"
+ integrity sha512-uFLE0LFMxrH8Z5Hd9QgivvRbrl/NFkOTHzGhlqQxsnmx5JBLrp4bc249afLL+GccyY/8hkcGi2LpVaOzaEY0nQ==
dependencies:
fast-json-stable-stringify "^2.0.0"
bser@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
+ integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=
dependencies:
node-int64 "^0.4.0"
buffer-alloc-unsafe@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+ integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
buffer-alloc@^1.1.0, buffer-alloc@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+ integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
dependencies:
buffer-alloc-unsafe "^1.1.0"
buffer-fill "^1.0.0"
buffer-equals@^1.0.3, buffer-equals@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5"
+ integrity sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=
buffer-fill@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+ integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
buffer-from@1.x, buffer-from@^1.0.0, buffer-from@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
buffer-indexof@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+ integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+ integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
buffer@^4.3.0:
version "4.9.1"
resolved "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
+ integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
buffer@^5.1.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
+ integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
bufferutil@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.0.tgz#a5078160e443751a4e83b6f4d6d7e26c058326a0"
+ integrity sha512-jpnqMVLo7sqfUY2W92RC4jjj9TuiOSkjB0k43TxPcrBSntZwXUOl8Krfd3eVEdApuScpSTwYKntm/dXU2T8gnw==
dependencies:
node-gyp-build "~3.4.0"
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+ integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+ integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
builtins@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
+ integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og=
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+ integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
cacache@^10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
+ integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
dependencies:
bluebird "^3.5.1"
chownr "^1.0.1"
cacache@^11.0.2:
version "11.2.0"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.2.0.tgz#617bdc0b02844af56310e411c0878941d5739965"
+ integrity sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==
dependencies:
bluebird "^3.5.1"
chownr "^1.0.1"
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
dependencies:
collection-visit "^1.0.0"
component-emitter "^1.2.1"
cache-chunk-store@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cache-chunk-store/-/cache-chunk-store-3.0.0.tgz#49e28823ba4c2b2f8595e7dfa27d73b87939ee5c"
+ integrity sha512-QNFKTFZo9LJGCZITlXDV44xe4N7AWjZwpbU4YTVAa0ShvKLhn7A/8uaQcZuY33b5lrMIPTLbGmd8uTebzH5T/A==
dependencies:
lru "^3.1.0"
callsite@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
+ integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
callsites@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
camel-case@3.0.x:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
+ integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
dependencies:
no-case "^2.2.0"
upper-case "^1.1.1"
camelcase-keys@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+ integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
dependencies:
camelcase "^2.0.0"
map-obj "^1.0.0"
camelcase@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+ integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+ integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+ integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864:
version "1.0.30000885"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984"
+ integrity sha512-cXKbYwpxBLd7qHyej16JazPoUacqoVuDhvR61U7Fr5vSxMUiodzcYa1rQYRYfZ5GexV03vGZHd722vNPLjPJGQ==
capture-exit@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f"
+ integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=
dependencies:
rsvp "^3.3.3"
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
+ integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
chardet@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
check-types@^7.3.0:
version "7.4.0"
resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4"
+ integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==
chokidar@^1.4.2:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
+ integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
dependencies:
anymatch "^1.3.0"
async-each "^1.0.0"
chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
+ integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==
dependencies:
anymatch "^2.0.0"
async-each "^1.0.0"
chownr@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
+ integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
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"
+ integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==
dependencies:
tslib "^1.9.0"
chunk-store-stream@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/chunk-store-stream/-/chunk-store-stream-3.0.1.tgz#8e0d739226dcb386f44447b82a005b597a1d41d9"
+ integrity sha512-GA1NIFDZKElhkjiO6QOyzfK1QbUt6M3gFhUU/aR05JYaDqXbU5d7U92cLvGKdItJEDfojky6NQefy5VL5PpDBA==
dependencies:
block-stream2 "^1.0.0"
readable-stream "^2.0.5"
ci-info@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
+ integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
+ integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
dependencies:
inherits "^2.0.1"
safe-buffer "^5.0.1"
circular-dependency-plugin@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz#da168c0b37e7b43563fb9f912c1c007c213389ef"
+ integrity sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==
circular-json@^0.5.5:
version "0.5.7"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.7.tgz#b8be478d72ea58c7eeda26bf1cf1fba43d188842"
+ integrity sha512-/pXoV1JA847qRKPrHbBK6YIBGFF8GOP4wzSgUOA7q0ew0vAv0iJswP+2/nZQ9uzA3Azi7eTrg9L2yzXc/7ZMIA==
class-utils@^0.3.5:
version "0.3.6"
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
dependencies:
arr-union "^3.1.0"
define-property "^0.2.5"
clean-css@4.2.x, clean-css@^4.0.12, clean-css@^4.1.11:
version "4.2.1"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17"
+ integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==
dependencies:
source-map "~0.6.0"
cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
dependencies:
restore-cursor "^2.0.0"
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
cliui@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
+ integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
dependencies:
string-width "^2.1.1"
strip-ansi "^4.0.0"
clone-deep@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713"
+ integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==
dependencies:
for-own "^1.0.0"
is-plain-object "^2.0.4"
clone@^2.1.1, clone@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+ integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
closest-file-data@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/closest-file-data/-/closest-file-data-0.1.4.tgz#975f87c132f299d24a0375b9f63ca3fb88f72b3a"
+ integrity sha1-l1+HwTLymdJKA3W59jyj+4j3Kzo=
closest-to@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/closest-to/-/closest-to-2.0.0.tgz#bb2a860edb7769b62d04821748ae50da24dbefaa"
+ integrity sha1-uyqGDtt3abYtBIIXSK5Q2iTb76o=
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
codelyzer@^4.4.4:
version "4.4.4"
resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-4.4.4.tgz#29b7dbb51ba9ecc45c7300d61280a6564765d402"
+ integrity sha512-JgFMudx0n50IuE/ydAfnkksCwQkWSVWgYvhDPHZgDUbmsiYC22VuEXKu5l8Hhx9UJsLgjWDLjTAFGj2WaW5DUA==
dependencies:
app-root-path "^2.1.0"
css-selector-tokenizer "^0.7.0"
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
dependencies:
map-visit "^1.0.0"
object-visit "^1.0.0"
color-convert@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
color-name "1.1.3"
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
colors@*, colors@^1.1.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz#2df8ff573dfbf255af562f8ce7181d6b971a359b"
+ integrity sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==
colors@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+ integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
combine-lists@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6"
+ integrity sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=
dependencies:
lodash "^4.5.0"
combined-stream@1.0.6:
version "1.0.6"
resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
+ integrity sha1-cj599ugBrFYTETp+RFqbactjKBg=
dependencies:
delayed-stream "~1.0.0"
combined-stream@~1.0.5, combined-stream@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
+ integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
dependencies:
delayed-stream "~1.0.0"
commander@2.17.x, commander@~2.17.1:
version "2.17.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+ integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
commander@^2.12.1, commander@^2.18.0, commander@^2.9.0:
version "2.18.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970"
+ integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==
commander@~2.13.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
+ integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
compact2string@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/compact2string/-/compact2string-1.4.0.tgz#a99cd96ea000525684b269683ae2222d6eea7b49"
+ integrity sha1-qZzZbqAAUlaEsmloOuIiLW7qe0k=
dependencies:
ipaddr.js ">= 0.1.5"
compare-versions@^3.2.1:
version "3.4.0"
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26"
+ integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==
component-bind@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
+ integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=
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"
+ integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
component-inherit@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
+ integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=
compressible@~2.0.14:
version "2.0.15"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.15.tgz#857a9ab0a7e5a07d8d837ed43fe2defff64fe212"
+ integrity sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==
dependencies:
mime-db ">= 1.36.0 < 2"
compression@^1.5.2:
version "1.7.3"
resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db"
+ integrity sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==
dependencies:
accepts "~1.3.5"
bytes "3.0.0"
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@^1.5.0, concat-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
dependencies:
buffer-from "^1.0.0"
inherits "^2.0.3"
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"
+ integrity sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=
connect@^3.6.0:
version "3.6.6"
resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524"
+ integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=
dependencies:
debug "2.6.9"
finalhandler "1.1.0"
console-browserify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+ integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
dependencies:
date-now "^0.1.4"
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"
+ integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+ integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
content-disposition@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+ integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+ integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
convert-source-map@^0.3.3:
version "0.3.5"
resolved "http://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190"
+ integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA=
convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
+ integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
dependencies:
safe-buffer "~5.1.1"
cookie-signature@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
cookie@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+ integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
dependencies:
aproba "^1.1.1"
fs-write-stream-atomic "^1.0.8"
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
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"
+ integrity sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==
dependencies:
cacache "^10.0.4"
find-cache-dir "^1.0.0"
core-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
version "2.5.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e"
+ integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==
core-js@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65"
+ integrity sha1-+rg/uwstjchfpjbEudNMdUIMbWU=
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"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cosmiconfig@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
+ integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==
dependencies:
is-directory "^0.3.1"
js-yaml "^3.9.0"
create-ecdh@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
+ integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
dependencies:
bn.js "^4.1.0"
elliptic "^6.0.0"
create-hash@^1.1.0, create-hash@^1.1.2:
version "1.2.0"
resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
dependencies:
cipher-base "^1.0.1"
inherits "^2.0.1"
create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
version "1.1.7"
resolved "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
dependencies:
cipher-base "^1.0.3"
create-hash "^1.1.0"
create-torrent@^3.33.0:
version "3.33.0"
resolved "https://registry.yarnpkg.com/create-torrent/-/create-torrent-3.33.0.tgz#8a7a2aa2213a799c266c40e4c12f1468ede25105"
+ integrity sha512-KMd0KuvwVUg1grlRd5skG9ZkSbBYDDkAjDUMLnvxdRn0rL7ph3IwoOk7I8u1yLX4HYjGiLVlWYO55YWNNPjJFA==
dependencies:
bencode "^2.0.0"
block-stream2 "^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"
+ integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI=
dependencies:
lru-cache "^4.0.1"
which "^1.2.9"
cross-spawn@^5.0.1:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
dependencies:
lru-cache "^4.0.1"
shebang-command "^1.2.0"
cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
dependencies:
nice-try "^1.0.4"
path-key "^2.0.1"
crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+ integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
dependencies:
browserify-cipher "^1.0.0"
browserify-sign "^4.0.0"
css-loader@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56"
+ integrity sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==
dependencies:
babel-code-frame "^6.26.0"
css-selector-tokenizer "^0.7.0"
css-parse@1.7.x:
version "1.7.0"
resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b"
+ integrity sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=
css-select@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
+ integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
dependencies:
boolbase "~1.0.0"
css-what "2.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"
+ integrity sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=
dependencies:
cssesc "^0.1.0"
fastparse "^1.1.1"
css-what@2.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+ integrity sha1-lGfQMsOM+u+58teVASUwYvh/ob0=
css@^2.0.0:
version "2.2.4"
resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929"
+ integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==
dependencies:
inherits "^2.0.3"
source-map "^0.6.1"
cssauron@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8"
+ integrity sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=
dependencies:
through X.X.X
cssesc@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
+ integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
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"
+ integrity sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==
cssstyle@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb"
+ integrity sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==
dependencies:
cssom "0.3.x"
cuint@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
+ integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+ integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
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"
+ integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=
cyclist@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
+ integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
d@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
+ integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=
dependencies:
es5-ext "^0.10.9"
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
dependencies:
assert-plus "^1.0.0"
data-urls@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.1.tgz#d416ac3896918f29ca84d81085bc3705834da579"
+ integrity sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==
dependencies:
abab "^2.0.0"
whatwg-mimetype "^2.1.0"
date-format@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8"
+ integrity sha1-YV6CjiM90aubua4JUODOzPpuytg=
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+ integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
debug@*:
version "4.0.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.0.1.tgz#f9bb36d439b8d1f0dd52d8fb6b46e4ebb8c1cd5b"
+ integrity sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==
dependencies:
ms "^2.1.1"
debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.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"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
dependencies:
ms "2.0.0"
debug@^3.1.0:
version "3.2.5"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407"
+ integrity sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==
+ dependencies:
+ ms "^2.1.1"
+
+debug@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
+ integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
dependencies:
ms "^2.1.1"
decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
decamelize@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7"
+ integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==
dependencies:
xregexp "4.0.0"
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"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
decompress-response@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+ integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
dependencies:
mimic-response "^1.0.0"
deep-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+ integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
default-gateway@^2.6.0:
version "2.7.2"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f"
+ integrity sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==
dependencies:
execa "^0.10.0"
ip-regex "^2.1.0"
default-require-extensions@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
+ integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=
dependencies:
strip-bom "^2.0.0"
default-require-extensions@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7"
+ integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=
dependencies:
strip-bom "^3.0.0"
define-properties@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
dependencies:
object-keys "^1.0.12"
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
dependencies:
is-descriptor "^0.1.0"
define-property@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
dependencies:
is-descriptor "^1.0.0"
define-property@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
dependencies:
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"
+ integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
del@^2.2.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
+ integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=
dependencies:
globby "^5.0.0"
is-path-cwd "^1.0.0"
del@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
+ integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=
dependencies:
globby "^6.1.0"
is-path-cwd "^1.0.0"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
depd@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
+ integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=
depd@~1.1.1, depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
des.js@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
+ integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
dependencies:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+ integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
detect-indent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg=
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"
+ integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-newline@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
+ integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
detect-node@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
+ integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
dexie@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/dexie/-/dexie-2.0.4.tgz#6027a5e05879424e8f9979d8c14e7420f27e3a11"
+ integrity sha512-aQ/s1U2wHxwBKRrt2Z/mwFNHMQWhESerFsMYzE+5P5OsIe5o1kgpFMWkzKTtkvkyyEni6mWr/T4HUJuY9xIHLA==
di@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
+ integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=
diff@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+ integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
diffie-hellman@^5.0.0:
version "5.0.3"
resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
dependencies:
bn.js "^4.1.0"
miller-rabin "^4.0.0"
dijkstrajs@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b"
+ integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs=
dir-glob@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
+ integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==
dependencies:
arrify "^1.0.1"
path-type "^3.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"
+ integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
dns-packet@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
+ integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
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"
+ integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
dependencies:
buffer-indexof "^1.0.0"
doctrine@0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
+ integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=
dependencies:
esutils "^1.1.6"
isarray "0.0.1"
dom-converter@~0.1:
version "0.1.4"
resolved "http://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b"
+ integrity sha1-pF71cnuJDJv/5tfIduexnLDhfzs=
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"
+ integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=
dependencies:
custom-event "~1.0.0"
ent "~2.2.0"
dom-serializer@0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+ integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=
dependencies:
domelementtype "~1.1.1"
entities "~1.1.1"
dom-walk@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
+ integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=
domain-browser@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+ integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
domelementtype@1, domelementtype@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
+ integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=
domelementtype@~1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
+ integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=
domexception@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
+ integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
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"
+ integrity sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=
dependencies:
domelementtype "1"
domhandler@^2.3.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
+ integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
dependencies:
domelementtype "1"
domutils@1.1:
version "1.1.6"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485"
+ integrity sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=
dependencies:
domelementtype "1"
domutils@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+ integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
dependencies:
dom-serializer "0"
domelementtype "1"
domutils@^1.5.1:
version "1.7.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+ integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
dependencies:
dom-serializer "0"
domelementtype "1"
duplexer@^0.1.1:
version "0.1.1"
resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+ integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
duplexify@^3.4.2, duplexify@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410"
+ integrity sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==
dependencies:
end-of-stream "^1.0.0"
inherits "^2.0.1"
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
dependencies:
jsbn "~0.1.0"
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"
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
ejs@^2.5.7, ejs@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
+ integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==
electron-to-chromium@^1.3.47:
version "1.3.70"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz#ded377256d92d81b4257d36c65aa890274afcfd2"
+ integrity sha512-WYMjqCnPVS5JA+XvwEnpwucJpVi2+q9cdCFpbhxgWGsCtforFBEkuP9+nCyy/wnU/0SyLcLRIeZct9ayMGcXoQ==
elliptic@^6.0.0:
version "6.4.1"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
+ integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==
dependencies:
bn.js "^4.4.0"
brorand "^1.0.1"
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+ integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
encodeurl@~1.0.1, encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+ integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
dependencies:
once "^1.4.0"
engine.io-client@~3.2.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
+ integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==
dependencies:
component-emitter "1.2.1"
component-inherit "0.0.3"
engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
+ integrity sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==
dependencies:
after "0.8.2"
arraybuffer.slice "~0.0.7"
engine.io@~3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
+ integrity sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==
dependencies:
accepts "~1.3.4"
base64id "1.0.0"
enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
+ integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
dependencies:
graceful-fs "^4.1.2"
memory-fs "^0.4.0"
ent@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
+ integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0=
entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+ integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA=
errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
+ integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
dependencies:
prr "~1.0.1"
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"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"
es-abstract@^1.5.1:
version "1.12.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
+ integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
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"
+ integrity sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=
dependencies:
is-callable "^1.1.1"
is-date-object "^1.0.1"
es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
version "0.10.46"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572"
+ integrity sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==
dependencies:
es6-iterator "~2.0.3"
es6-symbol "~3.1.1"
es6-iterator@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
dependencies:
d "1"
es5-ext "^0.10.35"
es6-promise@^4.0.3:
version "4.2.5"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054"
+ integrity sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==
es6-promise@~3.0.2:
version "3.0.2"
resolved "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6"
+ integrity sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=
es6-promisify@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
+ integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
dependencies:
es6-promise "^4.0.3"
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"
+ integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=
dependencies:
d "1"
es5-ext "~0.10.14"
es6-templates@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4"
+ integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=
dependencies:
recast "~0.11.12"
through "~2.3.6"
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
escodegen@1.8.x:
version "1.8.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
+ integrity sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=
dependencies:
esprima "^2.7.1"
estraverse "^1.9.1"
escodegen@^1.9.1:
version "1.11.0"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589"
+ integrity sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==
dependencies:
esprima "^3.1.3"
estraverse "^4.2.0"
eslint-scope@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
+ integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==
dependencies:
esrecurse "^4.1.0"
estraverse "^4.1.1"
esprima@2.7.x, esprima@^2.7.1:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+ integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
esprima@^3.1.3, esprima@~3.1.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+ integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
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"
+ integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=
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"
+ integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
esutils@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
+ integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+ integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
eventemitter3@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163"
+ integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==
events@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
+ integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
eventsource@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232"
+ integrity sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=
dependencies:
original ">=0.0.5"
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+ integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
dependencies:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
exec-sh@^0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36"
+ integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==
dependencies:
merge "^1.2.0"
execa@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50"
+ integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==
dependencies:
cross-spawn "^6.0.0"
get-stream "^3.0.0"
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
dependencies:
cross-spawn "^5.0.1"
get-stream "^3.0.0"
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
expand-braces@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea"
+ integrity sha1-SIsdHSRRyz06axks/AMPRMWFX+o=
dependencies:
array-slice "^0.2.3"
array-unique "^0.2.1"
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
dependencies:
is-posix-bracket "^0.1.0"
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
dependencies:
debug "^2.3.3"
define-property "^0.2.5"
expand-range@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044"
+ integrity sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=
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"
+ integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
dependencies:
fill-range "^2.1.0"
expect@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98"
+ integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==
dependencies:
ansi-styles "^3.2.0"
jest-diff "^23.6.0"
express@^4.16.2, express@^4.16.3:
version "4.16.3"
resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
+ integrity sha1-avilAjUNsyRuzEvs9rWjTSL37VM=
dependencies:
accepts "~1.3.5"
array-flatten "1.1.1"
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
dependencies:
is-extendable "^0.1.0"
extend-shallow@^3.0.0, extend-shallow@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
dependencies:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
extend@^3.0.0, extend@~3.0.1, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
external-editor@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
+ integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
dependencies:
chardet "^0.7.0"
iconv-lite "^0.4.24"
extglob@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
dependencies:
is-extglob "^1.0.0"
extglob@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
dependencies:
array-unique "^0.3.2"
define-property "^1.0.0"
extract-text-webpack-plugin@4.0.0-beta.0:
version "4.0.0-beta.0"
resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz#f7361d7ff430b42961f8d1321ba8c1757b5d4c42"
+ integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==
dependencies:
async "^2.4.1"
loader-utils "^1.1.0"
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
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"
+ integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
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"
+ integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
fast-json-stable-stringify@2.x, 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"
+ integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fastparse@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
+ integrity sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=
faye-websocket@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
+ integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
dependencies:
websocket-driver ">=0.5.1"
faye-websocket@~0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"
+ integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=
dependencies:
websocket-driver ">=0.5.1"
fb-watchman@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
+ integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=
dependencies:
bser "^2.0.0"
figgy-pudding@^3.1.0, figgy-pudding@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
+ integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
dependencies:
escape-string-regexp "^1.0.5"
file-loader@^1.1.11:
version "1.1.11"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8"
+ integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==
dependencies:
loader-utils "^1.0.2"
schema-utils "^0.4.5"
file-loader@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde"
+ integrity sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==
dependencies:
loader-utils "^1.0.2"
schema-utils "^1.0.0"
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+ integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
fileset@^2.0.2, fileset@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
+ integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=
dependencies:
glob "^7.0.3"
minimatch "^3.0.3"
filesize@^3.6.1:
version "3.6.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
+ integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
filestream@^4.0.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/filestream/-/filestream-4.1.3.tgz#948fcaade8221f715f5ecaddc54862faaacc9325"
+ integrity sha1-lI/KregiH3FfXsrdxUhi+qrMkyU=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
fill-range@^2.1.0:
version "2.2.4"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
+ integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
dependencies:
is-number "^2.1.0"
isobject "^2.0.0"
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
dependencies:
extend-shallow "^2.0.1"
is-number "^3.0.0"
finalhandler@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
+ integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=
dependencies:
debug "2.6.9"
encodeurl "~1.0.1"
finalhandler@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
+ integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
find-cache-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
+ integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=
dependencies:
commondir "^1.0.1"
make-dir "^1.0.0"
find-cache-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d"
+ integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==
dependencies:
commondir "^1.0.1"
make-dir "^1.0.0"
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
dependencies:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
find-up@^2.0.0, find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
dependencies:
locate-path "^2.0.0"
find-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
dependencies:
locate-path "^3.0.0"
flatten@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
+ integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=
flush-write-stream@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd"
+ integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.4"
focus-visible@^4.1.5:
version "4.1.5"
resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-4.1.5.tgz#50b44e2e84c24b831ceca3cce84d57c2b311c855"
+ integrity sha512-yo/njtk/BB4Z2euzaZe3CZrg4u5s5uEi7ZwbHBJS2quHx51N0mmcx9nTIiImUGlgy+vf26d0CcQluahBBBL/Fw==
follow-redirects@^1.0.0:
version "1.5.8"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1"
+ integrity sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==
dependencies:
debug "=3.1.0"
for-each@^0.3.2:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
dependencies:
is-callable "^1.1.3"
for-in@^0.1.3:
version "0.1.8"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
+ integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
for-own@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
dependencies:
for-in "^1.0.1"
for-own@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
+ integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=
dependencies:
for-in "^1.0.1"
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
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"
+ integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=
dependencies:
asynckit "^0.4.0"
combined-stream "1.0.6"
forwarded@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+ integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
dependencies:
map-cache "^0.2.2"
fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
from2@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.0"
fs-access@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a"
+ integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=
dependencies:
null-check "^1.0.0"
fs-chunk-store@^1.6.2:
version "1.7.0"
resolved "https://registry.yarnpkg.com/fs-chunk-store/-/fs-chunk-store-1.7.0.tgz#1c4bcbe93c99af10aa04b65348f2bb27377a4010"
+ integrity sha512-KhjJmZAs2eqfhCb6PdPx4RcZtheGTz86tpTC5JTvqBn/xda+Nb+0C7dCyjOSN7T76H6a56LvH0SVXQMchLXDRw==
dependencies:
mkdirp "^0.5.1"
random-access-file "^2.0.1"
fs-extra@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b"
+ integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==
dependencies:
graceful-fs "^4.1.2"
jsonfile "^4.0.0"
fs-minipass@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
+ integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==
dependencies:
minipass "^2.2.1"
fs-write-stream-atomic@^1.0.8:
version "1.0.10"
resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
dependencies:
graceful-fs "^4.1.2"
iferr "^0.1.5"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.0.0, fsevents@^1.2.2, fsevents@^1.2.3:
version "1.2.4"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
+ integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==
dependencies:
nan "^2.9.2"
node-pre-gyp "^0.10.0"
fstream@^1.0.0, fstream@^1.0.2:
version "1.0.11"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
+ integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=
dependencies:
graceful-fs "^4.1.2"
inherits "~2.0.0"
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
dependencies:
aproba "^1.0.3"
console-control-strings "^1.0.0"
gaze@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
+ integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==
dependencies:
globule "^1.0.0"
get-browser-rtc@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.0.2.tgz#bbcd40c8451a7ed4ef5c373b8169a409dd1d11d9"
+ integrity sha1-u81AyEUaftTvXDc7gWmkCd0dEdk=
get-caller-file@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+ integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
get-stdin@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
+ integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+ integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
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"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
dependencies:
assert-plus "^1.0.0"
glob-base@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
dependencies:
glob-parent "^2.0.0"
is-glob "^2.0.0"
glob-parent@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
dependencies:
is-glob "^2.0.0"
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
dependencies:
is-glob "^3.1.0"
path-dirname "^1.0.0"
glob@7.0.x:
version "7.0.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
+ integrity sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
glob@7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
glob@^5.0.15:
version "5.0.15"
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
+ integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=
dependencies:
inflight "^1.0.4"
inherits "2"
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1:
version "7.1.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+ integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
global-modules-path@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc"
+ integrity sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==
global@4.3.2, global@^4.3.0, global@^4.3.1, global@^4.3.2, global@~4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
+ integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=
dependencies:
min-document "^2.19.0"
process "~0.5.1"
globals@^11.1.0:
version "11.7.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
+ integrity sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==
globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+ integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
+ integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=
dependencies:
array-union "^1.0.1"
arrify "^1.0.0"
globby@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
dependencies:
array-union "^1.0.1"
glob "^7.0.3"
globby@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
+ integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
dependencies:
array-union "^1.0.1"
dir-glob "^2.0.0"
globule@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
+ integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==
dependencies:
glob "~7.1.1"
lodash "~4.17.10"
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"
+ integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
+ integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
gzip-size@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80"
+ integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==
dependencies:
duplexer "^0.1.1"
pify "^3.0.0"
handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
+ integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=
handlebars@^4.0.1, handlebars@^4.0.11, handlebars@^4.0.3:
version "4.0.12"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5"
+ integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==
dependencies:
async "^2.5.0"
optimist "^0.6.1"
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
har-validator@~5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=
dependencies:
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"
+ integrity sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==
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"
+ integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
dependencies:
ansi-regex "^2.0.0"
has-binary2@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
+ integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==
dependencies:
isarray "2.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"
+ integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+ integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
has-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
+ integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
dependencies:
get-value "^2.0.3"
has-values "^0.1.4"
has-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
dependencies:
get-value "^2.0.6"
has-values "^1.0.0"
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
has-values@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
dependencies:
is-number "^3.0.0"
kind-of "^4.0.0"
has@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
hash-base@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+ integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
dependencies:
inherits "^2.0.1"
safe-buffer "^5.0.1"
hash.js@^1.0.0, hash.js@^1.0.3:
version "1.1.5"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"
+ integrity sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==
dependencies:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
he@1.1.x:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+ integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
dependencies:
hash.js "^1.0.3"
minimalistic-assert "^1.0.0"
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"
+ integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg=
dependencies:
os-homedir "^1.0.0"
os-tmpdir "^1.0.1"
hoopy@^0.1.2:
version "0.1.4"
resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
+ integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
hosted-git-info@^2.1.4, hosted-git-info@^2.6.0:
version "2.7.1"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
+ integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
hpack.js@^2.1.6:
version "2.1.6"
resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+ integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
dependencies:
inherits "^2.0.1"
obuf "^1.0.0"
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"
+ integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
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"
+ integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
html-loader@^0.5.5:
version "0.5.5"
resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea"
+ integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==
dependencies:
es6-templates "^0.2.3"
fastparse "^1.1.1"
html-minifier@^3.2.3, html-minifier@^3.5.8:
version "3.5.20"
resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.20.tgz#7b19fd3caa0cb79f7cde5ee5c3abdf8ecaa6bb14"
+ integrity sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==
dependencies:
camel-case "3.0.x"
clean-css "4.2.x"
html-webpack-plugin@^3.0.6, html-webpack-plugin@^3.2.0:
version "3.2.0"
resolved "http://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b"
+ integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s=
dependencies:
html-minifier "^3.2.3"
loader-utils "^0.2.16"
htmlparser2@^3.9.0:
version "3.9.2"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
+ integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=
dependencies:
domelementtype "^1.3.0"
domhandler "^2.3.0"
htmlparser2@~3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe"
+ integrity sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=
dependencies:
domelementtype "1"
domhandler "2.1"
http-deceiver@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+ integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
http-errors@1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
+ integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=
dependencies:
depd "1.1.1"
inherits "2.0.3"
http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
version "1.6.3"
resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
dependencies:
depd "~1.1.2"
inherits "2.0.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"
+ integrity sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=
http-proxy-middleware@~0.18.0:
version "0.18.0"
resolved "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab"
+ integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==
dependencies:
http-proxy "^1.16.2"
is-glob "^4.0.0"
http-proxy@^1.13.0, http-proxy@^1.16.2:
version "1.17.0"
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
+ integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==
dependencies:
eventemitter3 "^3.0.0"
follow-redirects "^1.0.0"
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
dependencies:
assert-plus "^1.0.0"
jsprim "^1.2.2"
https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+ integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
https-proxy-agent@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
+ integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
dependencies:
agent-base "^4.1.0"
debug "^3.1.0"
iconv-lite@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+ integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
iconv-lite@0.4.23:
version "0.4.23"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
+ integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
iconv-lite@^0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
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"
+ integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
icss-utils@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
+ integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=
dependencies:
postcss "^6.0.1"
ieee754@^1.1.4:
version "1.1.12"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
+ integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==
iferr@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+ integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
ignore-walk@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
+ integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
dependencies:
minimatch "^3.0.4"
ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+ integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
image-size@~0.5.0:
version "0.5.5"
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
+ integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
immediate-chunk-store@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/immediate-chunk-store/-/immediate-chunk-store-2.0.0.tgz#f313fd0cc71396d8911ad031179e1cccfda3da18"
+ integrity sha512-5s6NiCGbtWc+OQA60jrre54w12U7tynIyUNjO5LJjNA5lWwvCv6640roq8Wk/wIuaqnd4Pgtp453OyJ7hbONkQ==
immediate@~3.0.5:
version "3.0.6"
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
+ integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
import-cwd@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
+ integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
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"
+ integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
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"
+ integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==
dependencies:
pkg-dir "^2.0.0"
resolve-cwd "^2.0.0"
import-local@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+ integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
dependencies:
pkg-dir "^3.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"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
in-publish@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
+ integrity sha1-4g/146KvwmkDILbcVSaCqcf631E=
indent-string@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
dependencies:
repeating "^2.0.0"
indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+ integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
individual@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/individual/-/individual-2.0.0.tgz#833b097dad23294e76117a98fb38e0d9ad61bb97"
+ integrity sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c=
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
inherits@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+ integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+ integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
inquirer@^6.0.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8"
+ integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
internal-ip@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27"
+ integrity sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==
dependencies:
default-gateway "^2.6.0"
ipaddr.js "^1.5.2"
interpret@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
+ integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=
invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
dependencies:
loose-envify "^1.0.0"
invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
invert-kv@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
+ integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
+ integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
ip-set@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ip-set/-/ip-set-1.0.1.tgz#633b66d0bd6c8d0de968d053263c9120d3b6727e"
+ integrity sha1-Yztm0L1sjQ3paNBTJjyRINO2cn4=
dependencies:
ip "^1.1.3"
ip@^1.0.1, ip@^1.1.0, ip@^1.1.3, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
ipaddr.js@1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
+ integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4=
"ipaddr.js@>= 0.1.5", ipaddr.js@^1.0.1, ipaddr.js@^1.5.2:
version "1.8.1"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427"
+ integrity sha1-+kt5+kf9Pe9eOxWYJRYcClGclCc=
is-accessor-descriptor@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
dependencies:
kind-of "^3.0.2"
is-accessor-descriptor@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
dependencies:
kind-of "^6.0.0"
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-ascii@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-ascii/-/is-ascii-1.0.0.tgz#f02ad0259a0921cd199ff21ce1b09e0f6b4e3929"
+ integrity sha1-8CrQJZoJIc0Zn/Ic4bCeD2tOOSk=
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"
+ integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
dependencies:
binary-extensions "^1.0.0"
is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
is-builtin-module@^1.0.0:
version "1.0.0"
resolved "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
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"
+ integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
is-ci@^1.0.10:
version "1.2.1"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
+ integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
dependencies:
ci-info "^1.5.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"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
dependencies:
kind-of "^3.0.2"
is-data-descriptor@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
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"
+ integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
is-descriptor@^0.1.0:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
dependencies:
is-accessor-descriptor "^0.1.6"
is-data-descriptor "^0.1.4"
is-descriptor@^1.0.0, is-descriptor@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
dependencies:
is-accessor-descriptor "^1.0.0"
is-data-descriptor "^1.0.0"
is-directory@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+ integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
is-equal-shallow@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
dependencies:
is-primitive "^2.0.0"
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
dependencies:
is-plain-object "^2.0.4"
is-extglob@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+ integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
is-file@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-file/-/is-file-1.0.0.tgz#28a44cfbd9d3db193045f22b65fce8edf9620596"
+ integrity sha1-KKRM+9nT2xkwRfIrZfzo7fliBZY=
is-finite@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
dependencies:
number-is-nan "^1.0.0"
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
dependencies:
number-is-nan "^1.0.0"
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
is-function@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
+ integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=
is-generator-fn@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a"
+ integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
dependencies:
is-extglob "^1.0.0"
is-glob@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
dependencies:
is-extglob "^2.1.0"
is-glob@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
+ integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
dependencies:
is-extglob "^2.1.1"
is-number@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806"
+ integrity sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=
is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
dependencies:
kind-of "^3.0.2"
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
dependencies:
kind-of "^3.0.2"
is-number@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+ integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
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"
+ integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
is-path-in-cwd@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
+ integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
dependencies:
is-path-inside "^1.0.0"
is-path-inside@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+ integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
dependencies:
path-is-inside "^1.0.1"
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"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
is-posix-bracket@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+ integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
is-primitive@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+ integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+ integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+ integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
dependencies:
has "^1.0.1"
is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
is-symbol@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
+ integrity sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+ integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
is-wsl@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+ integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
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"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isarray@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
+ integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=
isarray@^2.0.1:
version "2.0.4"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7"
+ integrity sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==
isbinaryfile@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80"
+ integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==
dependencies:
buffer-alloc "^1.2.0"
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
dependencies:
isarray "1.0.0"
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
istanbul-api@^1.3.1:
version "1.3.7"
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa"
+ integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==
dependencies:
async "^2.1.4"
fileset "^2.0.2"
istanbul-api@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.0.6.tgz#cd7b33ee678f6c01531d05f5e567ebbcd25f8ecc"
+ integrity sha512-8W5oeAGWXhtTJjAyVfvavOLVyZCTNCKsyF6GON/INKlBdO7uJ/bv3qnPj5M6ERKzmMCJS1kntnjjGuJ86fn3rQ==
dependencies:
async "^2.6.1"
compare-versions "^3.2.1"
istanbul-instrumenter-loader@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949"
+ integrity sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==
dependencies:
convert-source-map "^1.5.0"
istanbul-lib-instrument "^1.7.3"
istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
+ integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==
istanbul-lib-coverage@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#2aee0e073ad8c5f6a0b00e0dfbf52b4667472eda"
+ integrity sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==
istanbul-lib-hook@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86"
+ integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==
dependencies:
append-transform "^0.4.0"
istanbul-lib-hook@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.1.tgz#918a57b75a0f951d552a08487ca1fa5336433d72"
+ integrity sha512-ufiZoiJ8CxY577JJWEeFuxXZoMqiKpq/RqZtOAYuQLvlkbJWscq9n3gc4xrCGH9n4pW0qnTxOz1oyMmVtk8E1w==
dependencies:
append-transform "^1.0.0"
istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2, istanbul-lib-instrument@^1.7.3:
version "1.10.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca"
+ integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==
dependencies:
babel-generator "^6.18.0"
babel-template "^6.16.0"
istanbul-lib-instrument@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz#b5f066b2a161f75788be17a9d556f40a0cf2afc9"
+ integrity sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==
dependencies:
"@babel/generator" "^7.0.0"
"@babel/parser" "^7.0.0"
istanbul-lib-report@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c"
+ integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==
dependencies:
istanbul-lib-coverage "^1.2.1"
mkdirp "^0.5.1"
istanbul-lib-report@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.2.tgz#430a2598519113e1da7af274ba861bd42dd97535"
+ integrity sha512-rJ8uR3peeIrwAxoDEbK4dJ7cqqtxBisZKCuwkMtMv0xYzaAnsAi3AHrHPAAtNXzG/bcCgZZ3OJVqm1DTi9ap2Q==
dependencies:
istanbul-lib-coverage "^2.0.1"
make-dir "^1.3.0"
istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6:
version "1.2.6"
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f"
+ integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==
dependencies:
debug "^3.1.0"
istanbul-lib-coverage "^1.2.1"
istanbul-lib-source-maps@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-2.0.1.tgz#ce8b45131d8293fdeaa732f4faf1852d13d0a97e"
+ integrity sha512-30l40ySg+gvBLcxTrLzR4Z2XTRj3HgRCA/p2rnbs/3OiTaoj054gAbuP5DcLOtwqmy4XW8qXBHzrmP2/bQ9i3A==
dependencies:
debug "^3.1.0"
istanbul-lib-coverage "^2.0.1"
istanbul-reports@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a"
+ integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==
dependencies:
handlebars "^4.0.3"
istanbul-reports@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.0.1.tgz#fb8d6ea850701a3984350b977a969e9a556116a7"
+ integrity sha512-CT0QgMBJqs6NJLF678ZHcquUAZIoBIUNzdJrRJfpkI9OnzG6MkUfHxbJC3ln981dMswC7/B1mfX3LNkhgJxsuw==
dependencies:
handlebars "^4.0.11"
istanbul@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
+ integrity sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=
dependencies:
abbrev "1.0.x"
async "1.x"
jasmine-core@^3.1.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.2.1.tgz#8e4ff5b861603ee83343f2b49eee6a0ffe9650ce"
+ integrity sha512-pa9tbBWgU0EE4SWgc85T4sa886ufuQdsgruQANhECYjwqgV4z7Vw/499aCaP8ZH79JDS4vhm8doDG9HO4+e4sA==
jasmine-core@~2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"
+ integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=
jasmine-diff@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/jasmine-diff/-/jasmine-diff-0.1.3.tgz#93ccc2dcc41028c5ddd4606558074839f2deeaa8"
+ integrity sha1-k8zC3MQQKMXd1GBlWAdIOfLe6qg=
dependencies:
diff "^3.2.0"
jasmine-spec-reporter@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz#1d632aec0341670ad324f92ba84b4b32b35e9e22"
+ integrity sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==
dependencies:
colors "1.1.2"
jasmine@2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e"
+ integrity sha1-awicChFXax8W3xG4AUbZHU6Lij4=
dependencies:
exit "^0.1.2"
glob "^7.0.6"
jasminewd2@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e"
+ integrity sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=
jest-changed-files@^23.4.2:
version "23.4.2"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83"
+ integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==
dependencies:
throat "^4.0.0"
jest-cli@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4"
+ integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.1"
jest-config@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d"
+ integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==
dependencies:
babel-core "^6.0.0"
babel-jest "^23.6.0"
jest-diff@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d"
+ integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==
dependencies:
chalk "^2.0.1"
diff "^3.2.0"
jest-docblock@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7"
+ integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=
dependencies:
detect-newline "^2.1.0"
jest-each@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575"
+ integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==
dependencies:
chalk "^2.0.1"
pretty-format "^23.6.0"
jest-environment-jsdom@^23.4.0:
version "23.4.0"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023"
+ integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM=
dependencies:
jest-mock "^23.2.0"
jest-util "^23.4.0"
jest-environment-node@^23.4.0:
version "23.4.0"
resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10"
+ integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=
dependencies:
jest-mock "^23.2.0"
jest-util "^23.4.0"
jest-get-type@^22.1.0:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
+ integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==
jest-haste-map@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16"
+ integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==
dependencies:
fb-watchman "^2.0.0"
graceful-fs "^4.1.11"
jest-jasmine2@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0"
+ integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==
dependencies:
babel-traverse "^6.0.0"
chalk "^2.0.1"
jest-leak-detector@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de"
+ integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==
dependencies:
pretty-format "^23.6.0"
jest-matcher-utils@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80"
+ integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==
dependencies:
chalk "^2.0.1"
jest-get-type "^22.1.0"
jest-message-util@^23.4.0:
version "23.4.0"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f"
+ integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=
dependencies:
"@babel/code-frame" "^7.0.0-beta.35"
chalk "^2.0.1"
jest-mock@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134"
+ integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=
jest-preset-angular@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/jest-preset-angular/-/jest-preset-angular-6.0.1.tgz#40a6c16ca5bbf3ac83a8594ac190643d7c6e7a07"
+ integrity sha512-7b54ZOntt8wtf39X838vZZmXWkZYVRtk9bCO66yQhkmFkmLaxULDHdbUobiD+f8sn5Zb2u9grhOQbZZ+/RaY0g==
dependencies:
"@types/jest" "^23.3.1"
jest-zone-patch "^0.0.8"
jest-regex-util@^23.3.0:
version "23.3.0"
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5"
+ integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=
jest-resolve-dependencies@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d"
+ integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==
dependencies:
jest-regex-util "^23.3.0"
jest-snapshot "^23.6.0"
jest-resolve@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae"
+ integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==
dependencies:
browser-resolve "^1.11.3"
chalk "^2.0.1"
jest-runner@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38"
+ integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==
dependencies:
exit "^0.1.2"
graceful-fs "^4.1.11"
jest-runtime@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082"
+ integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==
dependencies:
babel-core "^6.0.0"
babel-plugin-istanbul "^4.1.6"
jest-serializer@^23.0.1:
version "23.0.1"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165"
+ integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=
jest-snapshot@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a"
+ integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==
dependencies:
babel-types "^6.0.0"
chalk "^2.0.1"
jest-util@^23.4.0:
version "23.4.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561"
+ integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=
dependencies:
callsites "^2.0.0"
chalk "^2.0.1"
jest-validate@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474"
+ integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==
dependencies:
chalk "^2.0.1"
jest-get-type "^22.1.0"
jest-watcher@^23.4.0:
version "23.4.0"
resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c"
+ integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.1"
jest-worker@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9"
+ integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=
dependencies:
merge-stream "^1.0.1"
jest-zone-patch@^0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/jest-zone-patch/-/jest-zone-patch-0.0.8.tgz#90fa3b5b60e95ad3e624dd2c3eb59bb1dcabd371"
+ integrity sha1-kPo7W2DpWtPmJN0sPrWbsdyr03E=
jest@^23.5.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d"
+ integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==
dependencies:
import-local "^1.0.0"
jest-cli "^23.6.0"
jquery@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
+ integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==
js-base64@^2.1.8:
version "2.4.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03"
+ integrity sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+ integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
+ integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
jschannel@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/jschannel/-/jschannel-1.0.2.tgz#8932010e9c6042a27bc93b918dac2e267976ae14"
+ integrity sha1-iTIBDpxgQqJ7yTuRjawuJnl2rhQ=
jsdom@^11.5.1:
version "11.12.0"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
+ integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==
dependencies:
abab "^2.0.0"
acorn "^5.5.3"
jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+ integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
jsesc@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
+ integrity sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=
jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
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"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
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"
+ integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
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"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+ integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
dependencies:
jsonify "~0.0.0"
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"
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
json3@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
+ integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
json5@2.x:
version "2.0.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.0.1.tgz#3d6d0d1066039eb50984e66a7840e4f4b7a2c660"
+ integrity sha512-t6N/86QDIRYvOL259jR5c5TbtMnekl2Ib314mGeMh37zAwjgbWHieqijPH7pWaogmJq1F2I4Sphg19U1s+ZnXQ==
dependencies:
minimist "^1.2.0"
json5@^0.5.0, json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
optionalDependencies:
graceful-fs "^4.1.6"
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
dependencies:
assert-plus "1.0.0"
extsprintf "1.3.0"
jszip@^3.1.3:
version "3.1.5"
resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.5.tgz#e3c2a6c6d706ac6e603314036d43cd40beefdf37"
+ integrity sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==
dependencies:
core-js "~2.3.0"
es6-promise "~3.0.2"
junk@^1, junk@^2.1.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/junk/-/junk-1.0.3.tgz#87be63488649cbdca6f53ab39bec9ccd2347f592"
+ integrity sha1-h75jSIZJy9ym9Tqzm+yczSNH9ZI=
k-bucket@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-4.0.1.tgz#3fc2e5693f0b7bff90d7b6b476edd6087955d542"
+ integrity sha512-YvDpmY3waI999h1zZoW1rJ04fZrgZ+5PAlVmvwDHT6YO/Q1AOhdel07xsKy9eAvJjQ9xZV1wz3rXKqEfaWvlcQ==
dependencies:
inherits "^2.0.1"
randombytes "^2.0.3"
k-bucket@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.0.0.tgz#ef7a401fcd4c37cd31dceaa6ae4440ca91055e01"
+ integrity sha512-r/q+wV/Kde62/tk+rqyttEJn6h0jR7x+incdMVSYTqK73zVxVrzJa70kJL49cIKen8XjIgUZKSvk8ktnrQbK4w==
dependencies:
randombytes "^2.0.3"
k-rpc-socket@^1.7.2:
version "1.8.0"
resolved "https://registry.yarnpkg.com/k-rpc-socket/-/k-rpc-socket-1.8.0.tgz#9a4dd6a4f3795ed847ffa156579cc389990bd1f2"
+ integrity sha512-f/9TynsO8YYjZ6JjNNtSSH7CJcIHcio1buy3zqByGxb/GX8AWLdL6FZEWTrN8V3/J7W4/E0ZTQQ+Jt2rVq7ELg==
dependencies:
bencode "^2.0.0"
buffer-equals "^1.0.4"
k-rpc@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/k-rpc/-/k-rpc-5.0.0.tgz#a72651860c96db440579e4c9f38dce8a42b481a8"
+ integrity sha512-vCH2rQdfMOS+MlUuTSuar1pS2EMrltURf9LmAR9xR6Jik0XPlMX3vEixgqMn17wKmFVCublJqSJ4hJIP7oKZ3Q==
dependencies:
buffer-equals "^1.0.3"
k-bucket "^4.0.0"
karma-chrome-launcher@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf"
+ integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==
dependencies:
fs-access "^1.0.0"
which "^1.2.1"
karma-coverage-istanbul-reporter@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.4.tgz#402ae4ed6eadb9d9dafbd408ffda17897c0d003a"
+ integrity sha512-xJS7QSQIVU6VK9HuJ/ieE5yynxKhjCCkd96NLY/BX/HXsx0CskU9JJiMQbd4cHALiddMwI4OWh1IIzeWrsavJw==
dependencies:
istanbul-api "^2.0.5"
minimatch "^3.0.4"
karma-jasmine-html-reporter@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.3.1.tgz#17db92e76ecbce97b281c97c9ac3d8b1723848f9"
+ integrity sha512-J8pUc58QeRhpHQ+sXBRZ016ZW9ZOjU4vjYA6Jah69WvBaqR7tGvXUzy7w/DoULbNrD8+hnZCpvdeEtqXtirY2g==
karma-jasmine@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz#394f2b25ffb4a644b9ada6f22d443e2fd08886c3"
+ integrity sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=
karma-source-map-support@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz#36dd4d8ca154b62ace95696236fae37caf0a7dde"
+ integrity sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==
dependencies:
source-map-support "^0.5.5"
karma@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/karma/-/karma-3.0.0.tgz#6da83461a8a28d8224575c3b5b874e271b4730c3"
+ integrity sha512-ZTjyuDXVXhXsvJ1E4CnZzbCjSxD6sEdzEsFYogLuZM0yqvg/mgz+O+R1jb0J7uAQeuzdY8kJgx6hSNXLwFuHIQ==
dependencies:
bluebird "^3.3.0"
body-parser "^1.16.1"
killable@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
+ integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
dependencies:
is-buffer "^1.1.5"
kind-of@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
dependencies:
is-buffer "^1.1.5"
kind-of@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
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"
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
kleur@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300"
+ integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==
last-one-wins@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/last-one-wins/-/last-one-wins-1.0.4.tgz#c1bfd0cbcb46790ec9156b8d1aee8fcb86cda22a"
+ integrity sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio=
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
dependencies:
invert-kv "^1.0.0"
lcid@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
+ integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
dependencies:
invert-kv "^2.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"
+ integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
less-loader@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e"
+ integrity sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==
dependencies:
clone "^2.1.1"
loader-utils "^1.1.0"
less@^3.7.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/less/-/less-3.8.1.tgz#f31758598ef5a1930dd4caefa9e4340641e71e1d"
+ integrity sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==
dependencies:
clone "^2.1.2"
optionalDependencies:
leven@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+ integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
license-webpack-plugin@^1.3.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-1.4.0.tgz#be504a849ba7d736f1a6da4b133864f30af885fa"
+ integrity sha512-iwuNFMWbXS76WiQXJBTs8/7Tby4NQnY8AIkBMuJG5El79UT8zWrJQMfpW+KRXt4Y2Bs5uk+Myg/MO7ROSF8jzA==
dependencies:
ejs "^2.5.7"
lie@~3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
+ integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=
dependencies:
immediate "~3.0.5"
linkify-it@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f"
+ integrity sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=
dependencies:
uc.micro "^1.0.1"
linkifyjs@^2.1.5:
version "2.1.7"
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-2.1.7.tgz#e5d68d2ae30b9c055e1d74cc40f9a31d3abb4012"
+ integrity sha512-Cbn77BnYEslpAObZZoP6GVQHF1j5T6RsDydNq5RVxIy4eiZAiADRx7qHfWzfEMQecc1PtZFog1AsCGGX2WjQLA==
optionalDependencies:
jquery "^3.3.1"
react "^16.4.2"
load-ip-set@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/load-ip-set/-/load-ip-set-2.1.0.tgz#2d50b737cae41de4e413d213991d4083a3e1784b"
+ integrity sha512-taz7U6B+F7Zq90dfIKwqsB1CrFKelSEmMGC68OUqem8Cgd1QZygQBYb2Fk9i6muBSfH4xwF/Pjt4KKlAdOyWZw==
dependencies:
ip-set "^1.0.0"
netmask "^1.0.6"
load-json-file@^1.0.0:
version "1.1.0"
resolved "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
load-json-file@^2.0.0:
version "2.0.0"
resolved "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
loader-runner@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
+ integrity sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=
loader-utils@^0.2.16:
version "0.2.17"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+ integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
dependencies:
big.js "^3.1.3"
emojis-list "^2.0.0"
loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.0.4, loader-utils@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
+ integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=
dependencies:
big.js "^3.1.3"
emojis-list "^2.0.0"
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
dependencies:
p-locate "^2.0.0"
path-exists "^3.0.0"
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
dependencies:
p-locate "^3.0.0"
path-exists "^3.0.0"
lodash-es@^4.17.4:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0"
+ integrity sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==
lodash.assign@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
+ integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+ integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
lodash.escaperegexp@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
+ integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=
lodash.isplainobject@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
lodash.isstring@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
lodash.mergewith@^4.6.0:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
+ integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
lodash.tail@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
+ integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=
lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.5.0, lodash@~4.17.10:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+ integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
log-symbols@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+ integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
dependencies:
chalk "^2.0.1"
log4js@^3.0.0:
version "3.0.5"
resolved "https://registry.yarnpkg.com/log4js/-/log4js-3.0.5.tgz#b80146bfebad68b430d4f3569556d8a6edfef303"
+ integrity sha512-IX5c3G/7fuTtdr0JjOT2OIR12aTESVhsH6cEsijloYwKgcPRlO6DgOU72v0UFhWcoV1HN6+M3dwT89qVPLXm0w==
dependencies:
circular-json "^0.5.5"
date-format "^1.2.0"
loglevel@^1.4.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
+ integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
loglevelnext@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2"
+ integrity sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==
dependencies:
es6-symbol "^3.1.1"
object.assign "^4.1.0"
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.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"
+ integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
dependencies:
currently-unhandled "^0.4.1"
signal-exit "^3.0.0"
lower-case@^1.1.1:
version "1.1.4"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+ integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
lru-cache@2.2.x:
version "2.2.4"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d"
+ integrity sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=
lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
+ integrity sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==
dependencies:
pseudomap "^1.0.2"
yallist "^2.1.2"
lru@^3.0.0, lru@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz#ea7fb8546d83733396a13091d76cfeb4c06837d5"
+ integrity sha1-6n+4VG2DczOWoTCR12z+tMBoN9U=
dependencies:
inherits "^2.0.1"
m3u8-parser@4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/m3u8-parser/-/m3u8-parser-4.2.0.tgz#c8e0785fd17f741f4408b49466889274a9e36447"
+ integrity sha512-LVHw0U6IPJjwk9i9f7Xe26NqaUHTNlIt4SSWoEfYFROeVKHN6MIjOhbRheI3dg8Jbq5WCuMFQ0QU3EgZpmzFPg==
magnet-uri@^5.1.3:
version "5.2.4"
resolved "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.2.4.tgz#7afe5b736af04445aff744c93a890a3710077688"
+ integrity sha512-VYaJMxhr8B9BrCiNINUsuhaEe40YnG+AQBwcqUKO66lSVaI9I3A1iH/6EmEwRI8OYUg5Gt+4lLE7achg676lrg==
dependencies:
thirty-two "^1.0.1"
uniq "^1.0.1"
make-dir@^1.0.0, make-dir@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+ integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
dependencies:
pify "^3.0.0"
make-error@1.x:
version "1.3.5"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
+ integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
makeerror@1.0.x:
version "1.0.11"
resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
+ integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=
dependencies:
tmpl "1.0.x"
mamacro@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
+ integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
map-age-cleaner@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74"
+ integrity sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==
dependencies:
p-defer "^1.0.0"
map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+ integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
map-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
dependencies:
object-visit "^1.0.0"
markdown-it@^8.4.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
+ integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
dependencies:
argparse "^1.0.7"
entities "~1.1.1"
math-random@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
+ integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w=
md5.js@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
+ integrity sha1-6b296UogpawYsENA/Fdk1bCdkB0=
dependencies:
hash-base "^3.0.0"
inherits "^2.0.1"
mdurl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
+ integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
mediasource@^2.0.0, mediasource@^2.1.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/mediasource/-/mediasource-2.2.2.tgz#2fe826f14e51da97fa4bf87be7b808a0b11d3a4c"
+ integrity sha512-yIyAJMcu1mudTkxZ0jDAKnZJJba4eWPCxxtZRMpoaA4/AI7m7nqbRjmdxmi+x3hKTohb5vC9Yd3IBF/SUzp1vQ==
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
mem@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
dependencies:
mimic-fn "^1.0.0"
mem@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf"
+ integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==
dependencies:
map-age-cleaner "^0.1.1"
mimic-fn "^1.0.0"
memory-chunk-store@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/memory-chunk-store/-/memory-chunk-store-1.3.0.tgz#ae99e7e3b58b52db43d49d94722930d39459d0c4"
+ integrity sha512-6LsOpHKKhxYrLhHmOJdBCUtSO7op5rUs1pag0fhjHo0QiXRyna0bwYf4EmQuL7InUeF2J7dUMPr6VMogRyf9NA==
memory-fs@^0.4.0, memory-fs@~0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
dependencies:
errno "^0.1.3"
readable-stream "^2.0.1"
meow@^3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+ integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
dependencies:
camelcase-keys "^2.0.0"
decamelize "^1.1.2"
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
merge-stream@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
+ integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=
dependencies:
readable-stream "^2.0.1"
merge@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
+ integrity sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
micromatch@^2.1.5, micromatch@^2.3.11:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
dependencies:
arr-diff "^2.0.0"
array-unique "^0.2.1"
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"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
dependencies:
bn.js "^4.0.0"
brorand "^1.0.1"
"mime-db@>= 1.36.0 < 2", mime-db@~1.36.0:
version "1.36.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397"
+ integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19:
version "2.1.20"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19"
+ integrity sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==
dependencies:
mime-db "~1.36.0"
mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
+ integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
mime@^1.4.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
mime@^2.0.3, mime@^2.2.0, mime@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369"
+ integrity sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
mimic-response@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+ integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
min-document@^2.19.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
+ integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
dependencies:
dom-walk "^0.1.0"
mini-css-extract-plugin@~0.4.0:
version "0.4.3"
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz#98d60fcc5d228c3e36a9bd15a1d6816d6580beb8"
+ integrity sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg==
dependencies:
loader-utils "^1.1.0"
schema-utils "^1.0.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"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
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"
+ integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
minimist@~0.0.1:
version "0.0.10"
resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minipass@^2.2.1, minipass@^2.3.3:
version "2.3.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957"
+ integrity sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==
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"
+ integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==
dependencies:
minipass "^2.2.1"
mississippi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
+ integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
dependencies:
concat-stream "^1.5.0"
duplexify "^3.4.2"
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
+ integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
dependencies:
concat-stream "^1.5.0"
duplexify "^3.4.2"
mixin-deep@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+ integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
mixin-object@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
+ integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=
dependencies:
for-in "^0.1.3"
is-extendable "^0.1.1"
mkdirp@0.5.x, mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
version "0.5.1"
resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
mousetrap@^1.6.0:
version "1.6.2"
resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.2.tgz#caadd9cf886db0986fb2fee59a82f6bd37527587"
+ integrity sha512-jDjhi7wlHwdO6q6DS7YRmSHcuI+RVxadBkLt3KHrhd3C2b+w5pKefg3oj5beTcHZyVFA9Aksf+yEE1y5jxUjVA==
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
dependencies:
aproba "^1.1.1"
copy-concurrently "^1.0.0"
mp4-box-encoding@^1.1.0, mp4-box-encoding@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/mp4-box-encoding/-/mp4-box-encoding-1.3.0.tgz#2a6f750947ff68c3a498fd76cd6424c53d995d48"
+ integrity sha512-U4pMLpjT/UzB8d36dxj6Mf1bG9xypEvgbuRIa1fztRXNKKTCAtRxsnFZhNOd7YDFOKtjBgssYGvo4H/Q3ZY1MA==
dependencies:
buffer-alloc "^1.2.0"
buffer-from "^1.1.0"
mp4-stream@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/mp4-stream/-/mp4-stream-2.0.3.tgz#30acee07709d323f8dcd87a07b3ce9c3c4bfb364"
+ integrity sha512-5NzgI0+bGakoZEwnIYINXqB3mnewkt3Y7jcvkXsTubnCNUSdM8cpP0Vemxf6FLg0qUN8fydTgNMVAc3QU8B92g==
dependencies:
buffer-alloc "^1.1.0"
inherits "^2.0.1"
mpd-parser@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/mpd-parser/-/mpd-parser-0.6.1.tgz#27e7aafe075817846ce55406ac03711df1ce0eb7"
+ integrity sha512-3ucsY5NJMABltTLtYMSDfqZpvKV4yF8YvMx91hZFrHiblseuoKq4XUQ5IkcdtFAIRBAkPhXMU3/eunTFNCNsHw==
dependencies:
global "^4.3.0"
url-toolkit "^2.1.1"
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
ms@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
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"
+ integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
multicast-dns@^6.0.1:
version "6.2.3"
resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
+ integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
dependencies:
dns-packet "^1.3.1"
thunky "^1.0.2"
multistream@^2.0.2, multistream@^2.0.5:
version "2.1.1"
resolved "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz#629d3a29bd76623489980d04519a2c365948148c"
+ integrity sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
mux.js@4.5.1:
version "4.5.1"
resolved "https://registry.yarnpkg.com/mux.js/-/mux.js-4.5.1.tgz#1d70f1ad9b951315e16390d47be8fc42fd080194"
+ integrity sha512-j4rEyZKCRinGaSiBxPx9YD9B782TMPHPOlKyaMY07vIGTNYg4ouCEBvL6zX9Hh1k1fKZ5ZF3S7c+XVk6PB+Igw==
nan@^2.10.0, nan@^2.9.2:
version "2.11.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099"
+ integrity sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
needle@^2.2.1:
version "2.2.3"
resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.3.tgz#c1b04da378cd634d8befe2de965dc2cfb0fd65ca"
+ integrity sha512-GPL22d/U9cai87FcCPO6e+MT3vyHS2j+zwotakDc7kE2DtUAqFKMXLJCTtRp+5S75vXIwQPvIxkvlctxf9q4gQ==
dependencies:
debug "^2.1.2"
iconv-lite "^0.4.4"
negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+ integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
neo-async@^2.5.0:
version "2.5.2"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc"
+ integrity sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==
netmask@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
+ integrity sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=
next-event@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-event/-/next-event-1.0.0.tgz#e7778acde2e55802e0ad1879c39cf6f75eda61d8"
+ integrity sha1-53eKzeLlWALgrRh5w5z2917aYdg=
next-tick@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
+ integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
ng2-material-dropdown@0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/ng2-material-dropdown/-/ng2-material-dropdown-0.10.1.tgz#0120ce1bbabfb065c62610fe3b572cd09f61b1e1"
+ integrity sha512-dOmk4+T6Rbtk60Un7sxOOFU546z5JEYupSL+RiG0/rN4DmJvxPp297AvA2Qm9LSMNszUZMi55cRzj79zQYu85g==
dependencies:
tslib "^1.9.0"
ngx-chips@1.9.7:
version "1.9.7"
resolved "https://registry.yarnpkg.com/ngx-chips/-/ngx-chips-1.9.7.tgz#0f0f30df65566edb4cc129554e8e071cf78835a5"
+ integrity sha512-AJyKJ24V5a19ANYTNgaftsv9zffpZgR4hNBJfrQ3Pct6zs545NPz5DVIiUBOTWbH4YMgcCpS2uDcbec+J1N06g==
dependencies:
ng2-material-dropdown "0.10.1"
tslib "^1.9.0"
ngx-clipboard@11.1.7:
version "11.1.7"
resolved "https://registry.yarnpkg.com/ngx-clipboard/-/ngx-clipboard-11.1.7.tgz#a880f82ab2dd17476d8fa9a48f7f524f37fdbef8"
+ integrity sha512-84BMdd8h9TqI87CtEElj19B4AlDyqj9pz+Iy52jwnXereui774A8H7CT6OoDQ+JP6MGl0r+gpTjTfiKC0hhxIg==
dependencies:
ngx-window-token "^1.0.0"
tslib "^1.9.0"
ngx-pipes@^2.1.7:
version "2.3.5"
resolved "https://registry.yarnpkg.com/ngx-pipes/-/ngx-pipes-2.3.5.tgz#3a5663dcd540d04f1a7997db50b33bf4c2b1f03e"
+ integrity sha512-dufw+PjkDGuqZKDOlhIKGPfnpoYRqVrms4aRL05Bf2bhCwvSuMSWWKwbRU7oXF1GbPDk1VdEEWxt1NGNHgU5eQ==
dependencies:
tslib "^1.9.0"
ngx-qrcode2@^0.0.9:
version "0.0.9"
resolved "https://registry.yarnpkg.com/ngx-qrcode2/-/ngx-qrcode2-0.0.9.tgz#8229783623b60f79cce155e763ac170d8ad1eae8"
+ integrity sha512-PsELe+37ktkD/xv3rodWb7r5viK4KNZP9BqxmluyI7MCruea48+PqKNKQOx6R+V+8zypbb7vWxXJxGRlrdAaBQ==
dependencies:
qrcode "^0.8.2"
ngx-textarea-autosize@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ngx-textarea-autosize/-/ngx-textarea-autosize-2.0.0.tgz#70d0bf770ebd62b5609c6552233d29c304f92ab8"
+ integrity sha512-g05ByshiYukVvO7CMgTxxYR1OyEW0veyGE0+qGM987Yo6RPW26SSWqFiu9PaTdCDHK+yq7lF1FKw1eidzhFErQ==
dependencies:
tslib "^1.7.1"
ngx-window-token@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ngx-window-token/-/ngx-window-token-1.0.0.tgz#12acb174fbbcffa5c60b3fea5a6ea78cc3304793"
+ integrity sha512-n+ZTyuNKHGccKoaofIgNCSJ7XgfujDodSYOxauY5eE6s4sxCriMBZelBIMqjaEuIE2GleViIwlCzb/j45rakPA==
dependencies:
tslib "^1.9.0"
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
no-case@^2.2.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
+ integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
dependencies:
lower-case "^1.1.1"
node-forge@0.7.5:
version "0.7.5"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
+ integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==
node-gyp-build@~3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.4.0.tgz#f8f62507e65f152488b28aac25d04b9d79748cf7"
+ integrity sha512-YoviGBJYGrPdLOKDIQB0sKxuKy/EEsxzooNkOZak4vSTKT/qH0Pa6dj3t1MJjEQGsefih61IyHDmO1WW7xOFfw==
node-gyp@^3.8.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
+ integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
dependencies:
fstream "^1.0.0"
glob "^7.0.3"
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
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"
+ integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==
dependencies:
assert "^1.1.1"
browserify-zlib "^0.2.0"
node-notifier@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"
+ integrity sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==
dependencies:
growly "^1.3.0"
semver "^5.4.1"
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"
+ integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
node-sass@^4.9.3:
version "4.9.3"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224"
+ integrity sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==
dependencies:
async-foreach "^0.1.3"
chalk "^1.1.1"
"nopt@2 || 3", nopt@3.x:
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
dependencies:
abbrev "1"
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
+ integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
dependencies:
abbrev "1"
osenv "^0.1.4"
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, "normalize-package-data@~1.0.1 || ^2.0.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
dependencies:
hosted-git-info "^2.1.4"
is-builtin-module "^1.0.0"
normalize-path@^2.0.0, 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"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
dependencies:
remove-trailing-separator "^1.0.1"
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
npm-bundled@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
+ integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==
npm-font-source-sans-pro@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/npm-font-source-sans-pro/-/npm-font-source-sans-pro-1.0.2.tgz#c55c8ae368eebdbcaca65425a0d7e1f9a192a03e"
+ integrity sha1-xVyK42juvbysplQloNfh+aGSoD4=
"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0":
version "6.1.0"
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1"
+ integrity sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==
dependencies:
hosted-git-info "^2.6.0"
osenv "^0.1.5"
npm-packlist@^1.1.6:
version "1.1.11"
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de"
+ integrity sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==
dependencies:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
npm-registry-client@^8.5.1:
version "8.6.0"
resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4"
+ integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==
dependencies:
concat-stream "^1.5.2"
graceful-fs "^4.1.6"
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
dependencies:
path-key "^2.0.0"
"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
dependencies:
are-we-there-yet "~1.1.2"
console-control-strings "~1.1.0"
nth-check@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
+ integrity sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=
dependencies:
boolbase "~1.0.0"
null-check@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd"
+ integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+ integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
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"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
nwsapi@^2.0.7:
version "2.0.9"
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016"
+ integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==
oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+ integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
object-component@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
+ integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=
object-copy@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
dependencies:
copy-descriptor "^0.1.0"
define-property "^0.2.5"
object-keys@^1.0.11, object-keys@^1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
+ integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
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"
+ integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
dependencies:
define-properties "^1.1.2"
function-bind "^1.1.1"
object.getownpropertydescriptors@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
+ integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
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"
+ integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
dependencies:
for-own "^0.1.4"
is-extendable "^0.1.1"
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
dependencies:
isobject "^3.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"
+ integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
dependencies:
ee-first "1.1.1"
on-headers@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
+ integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=
once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
onetime@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
dependencies:
mimic-fn "^1.0.0"
opener@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
+ integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==
opn@^5.1.0, opn@^5.3.0:
version "5.4.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035"
+ integrity sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==
dependencies:
is-wsl "^1.1.0"
optimist@^0.6.1, optimist@~0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
optionator@^0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
dependencies:
deep-is "~0.1.3"
fast-levenshtein "~2.0.4"
original@>=0.0.5:
version "1.0.2"
resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
+ integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==
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"
+ integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
os-homedir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+ integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
os-locale@^1.4.0:
version "1.4.0"
resolved "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
+ integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
dependencies:
lcid "^1.0.0"
os-locale@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
dependencies:
execa "^0.7.0"
lcid "^1.0.0"
os-locale@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620"
+ integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==
dependencies:
execa "^0.10.0"
lcid "^2.0.0"
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
osenv@0, osenv@^0.1.4, osenv@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+ integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
dependencies:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
+ integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
p-is-promise@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
+ integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=
p-limit@^1.0.0, p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
dependencies:
p-try "^1.0.0"
p-limit@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec"
+ integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==
dependencies:
p-try "^2.0.0"
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
dependencies:
p-limit "^1.1.0"
p-locate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
dependencies:
p-limit "^2.0.0"
p-map@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
+ integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
p-try@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
+ integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==
package-json-versionify@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/package-json-versionify/-/package-json-versionify-1.0.4.tgz#5860587a944873a6b7e6d26e8e51ffb22315bf17"
+ integrity sha1-WGBYepRIc6a35tJujlH/siMVvxc=
dependencies:
browserify-package-json "^1.0.0"
pako@~1.0.2, pako@~1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
+ integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==
parallel-transform@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
+ integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=
dependencies:
cyclist "~0.2.2"
inherits "^2.0.3"
param-case@2.1.x:
version "2.1.1"
resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
+ integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
dependencies:
no-case "^2.2.0"
parse-asn1@^5.0.0:
version "5.1.1"
resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8"
+ integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==
dependencies:
asn1.js "^4.0.0"
browserify-aes "^1.0.0"
parse-glob@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
dependencies:
glob-base "^0.3.0"
is-dotfile "^1.0.0"
parse-headers@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536"
+ integrity sha1-aug6eqJanZtwCswoaYzR8e1+lTY=
dependencies:
for-each "^0.3.2"
trim "0.0.1"
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
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"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
dependencies:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
parse-numeric-range@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4"
+ integrity sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=
parse-torrent@^6.1.2:
version "6.1.2"
resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-6.1.2.tgz#99da5bdd23435a1cb7e8e7a63847c4efb21b1956"
+ integrity sha512-Z/vig84sHwtrTEbOzisT4xnYTFlOgAaLQccPruMPgRahZUppVE/BUXzAos3jZM7c64o0lfukQdQ4ozWa5lN39w==
dependencies:
bencode "^2.0.0"
blob-to-buffer "^1.2.6"
parse5@4.0.0, parse5@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
+ integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
parseqs@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
+ integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=
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"
+ integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=
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"
+ integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
path-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
+ integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=
path-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.0.tgz#40702a97af46ae00b0ea6fa8998c0b03c0af160d"
+ integrity sha512-Hkavx/nY4/plImrZPHRk2CL9vpOymZLgEbMNX1U0bjcBL7QN9wODxyx0yaMZURSQaUtSEvDrfAvxa9oPb0at9g==
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+ integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
path-exists@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
dependencies:
pinkie-promise "^2.0.0"
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-is-inside@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
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"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-parse@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
dependencies:
graceful-fs "^4.1.2"
pify "^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"
+ integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
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"
+ integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
dependencies:
pify "^3.0.0"
pbkdf2@^3.0.3:
version "3.0.16"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c"
+ integrity sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==
dependencies:
create-hash "^1.1.2"
create-hmac "^1.1.4"
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
piece-length@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/piece-length/-/piece-length-1.0.0.tgz#4db7167157fd69fef14caf7262cd39f189b24508"
+ integrity sha1-TbcWcVf9af7xTK9yYs058YmyRQg=
dependencies:
closest-to "~2.0.0"
pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
dependencies:
pinkie "^2.0.0"
pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
pkcs7@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pkcs7/-/pkcs7-1.0.2.tgz#b6dba527528c2942bfc122ce2dafcdb5e59074e7"
+ integrity sha1-ttulJ1KMKUK/wSLOLa/NteWQdOc=
pkg-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
dependencies:
find-up "^2.1.0"
pkg-dir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
dependencies:
find-up "^3.0.0"
pn@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
+ integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
pngjs@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-2.3.1.tgz#11d1e12b9cb64d63e30c143a330f4c1f567da85f"
+ integrity sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8=
portfinder@^1.0.13, portfinder@^1.0.9:
version "1.0.17"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.17.tgz#a8a1691143e46c4735edefcf4fbcccedad26456a"
+ integrity sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==
dependencies:
async "^1.5.2"
debug "^2.2.0"
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"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
postcss-import@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0"
+ integrity sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==
dependencies:
postcss "^6.0.1"
postcss-value-parser "^3.2.3"
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"
+ integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==
dependencies:
cosmiconfig "^4.0.0"
import-cwd "^2.0.0"
postcss-loader@^2.1.5:
version "2.1.6"
resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740"
+ integrity sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==
dependencies:
loader-utils "^1.1.0"
postcss "^6.0.0"
postcss-modules-extract-imports@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85"
+ integrity sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=
dependencies:
postcss "^6.0.1"
postcss-modules-local-by-default@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
+ integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
dependencies:
css-selector-tokenizer "^0.7.0"
postcss "^6.0.1"
postcss-modules-scope@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
+ integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A=
dependencies:
css-selector-tokenizer "^0.7.0"
postcss "^6.0.1"
postcss-modules-values@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
+ integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
dependencies:
icss-replace-symbols "^1.1.0"
postcss "^6.0.1"
postcss-url@^7.3.2:
version "7.3.2"
resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-7.3.2.tgz#5fea273807fb84b38c461c3c9a9e8abd235f7120"
+ integrity sha512-QMV5mA+pCYZQcUEPQkmor9vcPQ2MT+Ipuu8qdi1gVxbNiIiErEGft+eny1ak19qALoBkccS5AHaCaCDzh7b9MA==
dependencies:
mime "^1.4.1"
minimatch "^3.0.4"
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"
+ integrity sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=
postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.14, postcss@^6.0.22, postcss@^6.0.23:
version "6.0.23"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
dependencies:
chalk "^2.4.1"
source-map "^0.6.1"
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+ integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
pretty-error@^2.0.2:
version "2.1.1"
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
+ integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=
dependencies:
renderkid "^2.0.1"
utila "~0.4"
pretty-format@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
+ integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==
dependencies:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"
primeng@^6.1.2:
version "6.1.4"
resolved "https://registry.yarnpkg.com/primeng/-/primeng-6.1.4.tgz#c4b92c1c9f8ba6cf717b122ed87c3701a5e1cf20"
+ integrity sha512-z9jkgvaOveWtylpQXp1wOZtLNcnJuivdot6EpquPGV8oBjKMxFX+2k0NbTwDINldR384rurxUd8830Wk9/Z9Nw==
private@^0.1.8, private@~0.1.5:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+ integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
+ integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+ integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
process@~0.5.1:
version "0.5.2"
resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
+ integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
dependencies:
asap "~2.0.3"
prompts@^0.1.9:
version "0.1.14"
resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2"
+ integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==
dependencies:
kleur "^2.0.1"
sisteransi "^0.1.1"
prop-types@^15.6.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
+ integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
dependencies:
loose-envify "^1.3.1"
object-assign "^4.1.1"
protractor@^5.3.2:
version "5.4.1"
resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.4.1.tgz#011a99e38df7aa45d22455b889ffbb13a6ce0bd9"
+ integrity sha512-ORey5ewQMYiXQxcQohsqEiKYOg/r5yJoJbt0tuROmmgajdg/CA3gTOZNIFJncUVMAJIk5YFqBBLUjKVmQO6tfA==
dependencies:
"@types/node" "^6.0.46"
"@types/q" "^0.0.32"
proxy-addr@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
+ integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==
dependencies:
forwarded "~0.1.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"
+ integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
psl@^1.1.24:
version "1.1.29"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
+ integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==
public-encrypt@^4.0.0:
version "4.0.2"
resolved "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994"
+ integrity sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==
dependencies:
bn.js "^4.1.0"
browserify-rsa "^4.0.0"
pump@^2.0.0, pump@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
pumpify@^1.3.3:
version "1.5.1"
resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
dependencies:
duplexify "^3.6.0"
inherits "^2.0.3"
punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+ integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
punycode@^1.2.4, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
purify-css@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/purify-css/-/purify-css-1.2.5.tgz#c4b9ec90735765f3e247ba6a3b49f132f3482500"
+ integrity sha512-Vy4jRnV2w/kUjTyxzQOKbFkqwUe6RNLuZgIWR/IRQ8nCqRwiFgwC9XiO9+8poq5KL053uWAQnCSbsfihq77zPg==
dependencies:
clean-css "^4.0.12"
glob "^7.1.1"
purifycss-webpack@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/purifycss-webpack/-/purifycss-webpack-0.7.0.tgz#07c9ce7988f608f1928102ed3ff19178ce38f0e0"
+ integrity sha1-B8nOeYj2CPGSgQLtP/GReM448OA=
dependencies:
ajv "^4.11.2"
webpack-sources "^0.1.4"
q@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
+ integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=
q@^1.4.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+ integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
qjobs@^1.1.4:
version "1.2.0"
resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071"
+ integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==
qrcode@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-0.8.2.tgz#4a4b4dd74ae43b7b05d4cc598badc1c03837189c"
+ integrity sha1-SktN10rkO3sF1MxZi63BwDg3GJw=
dependencies:
colors "*"
dijkstrajs "^1.0.1"
qs@6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+ integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
qs@6.5.2, qs@~6.5.1, qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
querystring-es3@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+ integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+ integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
querystringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755"
+ integrity sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==
random-access-file@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-2.0.1.tgz#dc22de79270e9a84cb36a2419b759725930dcaeb"
+ integrity sha512-nb4fClpzoUY+v1SHrro+9yykN90eMA1rc+xM39tnZ5R3BgFY+J/NxPZ0KuUpishEsvnwou9Fvm2wa3cjeuG7vg==
dependencies:
mkdirp "^0.5.1"
random-access-storage "^1.1.1"
random-access-storage@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/random-access-storage/-/random-access-storage-1.3.0.tgz#d27e4d897b79dc4358afc2bbe553044e5c8cfe35"
+ integrity sha512-pdS9Mcb9TB7oICypPRALlheaSuszuAKmLVEPKJMuYor7R/zDuHh5ALuQoS+ox31XRwQUL+tDwWH2GPdyspwelA==
dependencies:
inherits "^2.0.3"
random-iterate@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/random-iterate/-/random-iterate-1.0.1.tgz#f7d97d92dee6665ec5f6da08c7f963cad4b2ac99"
+ integrity sha1-99l9kt7mZl7F9toIx/ljytSyrJk=
randomatic@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116"
+ integrity sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==
dependencies:
is-number "^4.0.0"
kind-of "^6.0.0"
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.3, randombytes@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80"
+ integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==
dependencies:
safe-buffer "^5.1.0"
randomfill@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+ integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
dependencies:
randombytes "^2.0.5"
safe-buffer "^5.1.0"
range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+ integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
range-slice-stream@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/range-slice-stream/-/range-slice-stream-1.2.0.tgz#01ba954276052b783900e63d6118d8fcf3875d7f"
+ integrity sha1-AbqVQnYFK3g5AOY9YRjY/POHXX8=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
raw-body@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
+ integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=
dependencies:
bytes "3.0.0"
http-errors "1.6.2"
raw-body@2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
+ integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==
dependencies:
bytes "3.0.0"
http-errors "1.6.3"
raw-loader@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
+ integrity sha1-DD0L6u2KAclm2Xh793goElKpeao=
rc@^1.2.7:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
dependencies:
deep-extend "^0.6.0"
ini "~1.3.0"
react-dom@^16.4.2:
version "16.5.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7"
+ integrity sha512-RC8LDw8feuZOHVgzEf7f+cxBr/DnKdqp56VU0lAs1f4UfKc4cU8wU4fTq/mgnvynLQo8OtlPC19NUFh/zjZPuA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
react@^16.4.2:
version "16.5.2"
resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42"
+ integrity sha512-FDCSVd3DjVTmbEAjUNX6FgfAmQ+ypJfHUsqUJOYNCBUp1h8lqmtC+0mXJ+JjsWx4KAVTkk1vKd1hLQPvEviSuw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=
dependencies:
pify "^2.3.0"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
dependencies:
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"
+ integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
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"
+ integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
dependencies:
load-json-file "^1.0.0"
normalize-package-data "^2.3.2"
read-pkg@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
dependencies:
load-json-file "^2.0.0"
normalize-package-data "^2.3.2"
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.2, readable-stream@^2.3.3, readable-stream@^2.3.4, readable-stream@^2.3.6:
version "2.3.6"
resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
readable-stream@1.0:
version "1.0.34"
resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
readable-stream@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.3.tgz#a4db8813e3e0b87abdc01d5d5dbae828e59744b5"
+ integrity sha512-CzN1eAu5Pmh4EaDlJp1g5E37LIHR24b82XlMWRQlPFjhvOYKa4HhClRsQO21zhdDWUpdWfiKt9/L/ZL2+vwxCw==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
readable-stream@~2.0.6:
version "2.0.6"
resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
+ integrity sha1-j5A0HmilPMySh4jaz80Rs265t44=
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
readdirp@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
dependencies:
graceful-fs "^4.1.11"
micromatch "^3.1.10"
realpath-native@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560"
+ integrity sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g==
dependencies:
util.promisify "^1.0.0"
recast@~0.11.12:
version "0.11.23"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
+ integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=
dependencies:
ast-types "0.9.6"
esprima "~3.1.0"
record-cache@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/record-cache/-/record-cache-1.1.0.tgz#f8a467a691a469584b26e88d36b18afdb3932037"
+ integrity sha512-u8rbtLEJV7HRacl/ZYwSBFD8NFyB3PfTTfGLP37IW3hftQCwu6z4Q2RLyxo1YJUNRTEzJfpLpGwVuEYdaIkG9Q==
redent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+ integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
dependencies:
indent-string "^2.1.0"
strip-indent "^1.0.1"
reflect-metadata@^0.1.2:
version "0.1.12"
resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2"
+ integrity sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==
regenerate@^1.2.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
+ integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
regenerator-runtime@^0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+ integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
regex-cache@^0.4.2:
version "0.4.4"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+ integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
dependencies:
is-equal-shallow "^0.1.3"
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
dependencies:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
regexpu-core@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
+ integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=
dependencies:
regenerate "^1.2.1"
regjsgen "^0.2.0"
regjsgen@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
+ integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
regjsparser@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
+ integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=
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"
+ integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
render-media@^3.0.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/render-media/-/render-media-3.1.3.tgz#aa8c8cd3f720049370067180709b551d3c566254"
+ integrity sha512-K7ziKKlIcgYpAovRsABDiSaNn7TzDDyyuFGpRwM52cloNcajInB6sCxFPUEzOuTJUeyvKCqT/k5INOjpKLCjhQ==
dependencies:
debug "^3.1.0"
is-ascii "^1.0.0"
renderkid@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319"
+ integrity sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=
dependencies:
css-select "^1.1.0"
dom-converter "~0.1"
repeat-element@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
repeat-string@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae"
+ integrity sha1-x6jTI2BoNiBZp+RlH8aITosftK4=
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"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
repeating@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
dependencies:
is-finite "^1.0.0"
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"
+ integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=
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"
+ integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=
dependencies:
request-promise-core "1.1.1"
stealthy-require "^1.1.0"
request@2.87.0:
version "2.87.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e"
+ integrity sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.6.0"
request@^2.74.0, request@^2.83.0, request@^2.87.0:
version "2.88.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
+ integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
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"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
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"
+ integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
resolve-cwd@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
dependencies:
resolve-from "^3.0.0"
resolve-from@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+ integrity sha1-six699nWiBvItuZTM17rywoYh0g=
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@1.1.7, resolve@1.1.x:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+ integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
resolve@^1.1.7, resolve@^1.3.2:
version "1.8.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
+ integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
dependencies:
path-parse "^1.0.5"
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
dependencies:
onetime "^2.0.0"
signal-exit "^3.0.2"
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
retry@^0.10.0:
version "0.10.1"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
+ integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=
rework@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7"
+ integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=
dependencies:
convert-source-map "^0.3.3"
css "^2.0.0"
rfdc@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349"
+ integrity sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA==
rimraf@2, rimraf@^2.2.8, rimraf@^2.4.2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
dependencies:
glob "^7.0.5"
ripemd160@^2.0.0, ripemd160@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
+ integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
dependencies:
hash-base "^3.0.0"
inherits "^2.0.1"
rsvp@^3.3.3:
version "3.6.2"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
+ integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==
run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
+ integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
dependencies:
is-promise "^2.1.0"
run-parallel-limit@^1.0.3:
version "1.0.5"
resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.5.tgz#c29a4fd17b4df358cb52a8a697811a63c984f1b7"
+ integrity sha512-NsY+oDngvrvMxKB3G8ijBzIema6aYbQMD2bHOamvN52BysbIGTnEY2xsNyfrcr9GhY995/t/0nQN3R3oZvaDlg==
run-parallel@^1.0.0, run-parallel@^1.1.2, run-parallel@^1.1.6:
version "1.1.9"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
+ integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
dependencies:
aproba "^1.1.1"
run-series@^1.0.2:
version "1.1.8"
resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.8.tgz#2c4558f49221e01cd6371ff4e0a1e203e460fc36"
+ integrity sha512-+GztYEPRpIsQoCSraWHDBs9WVy4eVME16zhOtDB4H9J4xN0XRhknnmLOl+4gRgZtu8dpp9N/utSPjKH/xmDzXg==
rusha@^0.8.1:
version "0.8.13"
resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz#9a084e7b860b17bff3015b92c67a6a336191513a"
+ integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo=
rust-result@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/rust-result/-/rust-result-1.0.0.tgz#34c75b2e6dc39fe5875e5bdec85b5e0f91536f72"
+ integrity sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=
dependencies:
individual "^2.0.0"
rxjs@^6.1.0:
version "6.3.2"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f"
+ integrity sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==
dependencies:
tslib "^1.9.0"
rxjs@~6.2.0:
version "6.2.2"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.2.tgz#eb75fa3c186ff5289907d06483a77884586e1cf9"
+ integrity sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==
dependencies:
tslib "^1.9.0"
safe-buffer@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+ integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
safe-buffer@5.1.2, safe-buffer@^5.0.0, 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"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-json-parse@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-4.0.0.tgz#7c0f578cfccd12d33a71c0e05413e2eca171eaac"
+ integrity sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=
dependencies:
rust-result "^1.0.0"
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
dependencies:
ret "~0.1.10"
"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"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sane@^2.0.0:
version "2.5.2"
resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa"
+ integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o=
dependencies:
anymatch "^2.0.0"
capture-exit "^1.2.0"
sanitize-html@^1.18.4:
version "1.19.0"
resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.19.0.tgz#34d8a4b864aba79602e4a32003f293fc242df0a9"
+ integrity sha512-Qt2imq49f2qP4537a7R2Xgx9sjTvw18jIT7zKurhu5kpYNQfMo8EZaW3OcpoXCvg3GTN4C4R3mN8ao7STUtKtA==
dependencies:
chalk "^2.3.0"
htmlparser2 "^3.9.0"
sass-graph@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
+ integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=
dependencies:
glob "^7.0.0"
lodash "^4.0.0"
sass-loader@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d"
+ integrity sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==
dependencies:
clone-deep "^2.0.1"
loader-utils "^1.0.1"
sass-resources-loader@^1.2.1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-1.3.3.tgz#90f0e614c444f6dfb8f54ce3e1d5f64a18d31537"
+ integrity sha512-wEXBIn4DWE86KaYafPwoKXvyqGQdmbB7ePlGxrKTuUzwVnkgwUZXald48k+9WdwCWWffTiSr0pb9PIVGGPU/rw==
dependencies:
async "^2.1.4"
chalk "^1.1.3"
saucelabs@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d"
+ integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==
dependencies:
https-proxy-agent "^2.2.1"
sax@0.5.x:
version "0.5.8"
resolved "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
+ integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=
sax@>=0.6.0, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
schedule@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.5.0.tgz#c128fffa0b402488b08b55ae74bb9df55cc29cc8"
+ integrity sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==
dependencies:
object-assign "^4.1.1"
schema-utils@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
+ integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=
dependencies:
ajv "^5.0.0"
schema-utils@^0.4.0, 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"
+ integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
dependencies:
ajv "^6.1.0"
ajv-keywords "^3.1.0"
schema-utils@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+ integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
dependencies:
ajv "^6.1.0"
ajv-errors "^1.0.0"
scss-tokenizer@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
+ integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE=
dependencies:
js-base64 "^2.1.8"
source-map "^0.4.2"
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+ integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc"
+ integrity sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==
dependencies:
jszip "^3.1.3"
rimraf "^2.5.4"
selfsigned@^1.9.1:
version "1.10.3"
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823"
+ integrity sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==
dependencies:
node-forge "0.7.5"
semver-dsl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0"
+ integrity sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=
dependencies:
semver "^5.3.0"
semver-intersect@^1.1.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.4.0.tgz#bdd9c06bedcdd2fedb8cd352c3c43ee8c61321f3"
+ integrity sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==
dependencies:
semver "^5.0.0"
"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@5.x, semver@^5.0.0, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
version "5.5.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
+ integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==
semver@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+ integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
send@0.16.2:
version "0.16.2"
resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
+ integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==
dependencies:
debug "2.6.9"
depd "~1.1.2"
serialize-javascript@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe"
+ integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==
serve-index@^1.7.2:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+ integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
dependencies:
accepts "~1.3.4"
batch "0.6.1"
serve-static@1.13.2:
version "1.13.2"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
+ integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
set-value@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
+ integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
dependencies:
extend-shallow "^2.0.1"
is-extendable "^0.1.1"
set-value@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+ integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
dependencies:
extend-shallow "^2.0.1"
is-extendable "^0.1.1"
setimmediate@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
+ integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=
setprototypeof@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+ integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.11"
resolved "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+ integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
dependencies:
inherits "^2.0.1"
safe-buffer "^5.0.1"
shallow-clone@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571"
+ integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==
dependencies:
is-extendable "^0.1.1"
kind-of "^5.0.0"
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
dependencies:
shebang-regex "^1.0.0"
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
shellwords@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
+ integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
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"
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
simple-concat@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
+ integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
simple-get@^2.8.1, simple-get@^3.0.0, simple-get@^3.0.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d"
+ integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==
dependencies:
decompress-response "^3.3.0"
once "^1.3.1"
simple-peer@^9.0.0:
version "9.1.2"
resolved "https://registry.yarnpkg.com/simple-peer/-/simple-peer-9.1.2.tgz#f8afa5eb83f8a17d66e437e5ac54c1221eca4b39"
+ integrity sha512-MUWWno5o5cvISKOH4pYQ18PQJLpDaNWoKUbrPPKuspCLCkkh+zhtuQyTE8h2U2Ags+/OUN5wnUe92+9B8/Sm2Q==
dependencies:
debug "^3.1.0"
get-browser-rtc "^1.0.0"
simple-sha1@^2.0.0, simple-sha1@^2.0.8, simple-sha1@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/simple-sha1/-/simple-sha1-2.1.1.tgz#93f3b7f2e8dfdc056c32793e5d47b58d311b140d"
+ integrity sha512-pFMPd+I/lQkpf4wFUeS/sED5IqdIG1lUlrQviBMV4u4mz8BRAcB5fvUx5Ckfg3kBigEglAjHg7E9k/yy2KlCqA==
dependencies:
rusha "^0.8.1"
simple-websocket@^7.0.1:
version "7.2.0"
resolved "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-7.2.0.tgz#c3190555d74399372b96b51435f2d8c4b04611df"
+ integrity sha512-wdxFg1fHw1yqFKWDcw+yNb4VIYqtl+vknZMlpLhvZSlR6l7/iVuwozqo+Qtl73mB1IH5QnXzonD1S+hAaLNTvQ==
dependencies:
debug "^3.1.0"
inherits "^2.0.1"
sisteransi@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce"
+ integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+ integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
slide@^1.1.3:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+ integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
dependencies:
define-property "^1.0.0"
isobject "^3.0.0"
snapdragon-util@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
dependencies:
kind-of "^3.2.0"
snapdragon@^0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
dependencies:
base "^0.11.1"
debug "^2.2.0"
socket.io-adapter@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
+ integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=
socket.io-client@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f"
+ integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==
dependencies:
backo2 "1.0.2"
base64-arraybuffer "0.1.5"
socket.io-parser@~3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
+ integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==
dependencies:
component-emitter "1.2.1"
debug "~3.1.0"
socket.io@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980"
+ integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==
dependencies:
debug "~3.1.0"
engine.io "~3.2.0"
sockjs-client@1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.5.tgz#1bb7c0f7222c40f42adf14f4442cbd1269771a83"
+ integrity sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=
dependencies:
debug "^2.6.6"
eventsource "0.1.6"
sockjs@0.3.19:
version "0.3.19"
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
+ integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==
dependencies:
faye-websocket "^0.10.0"
uuid "^3.0.1"
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"
+ integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==
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"
+ integrity sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=
source-map-loader@^0.2.3:
version "0.2.4"
resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271"
+ integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==
dependencies:
async "^2.5.0"
loader-utils "^1.1.0"
source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
+ integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
dependencies:
atob "^2.1.1"
decode-uri-component "^0.2.0"
source-map-support@^0.4.15, source-map-support@~0.4.0:
version "0.4.18"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
+ integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
dependencies:
source-map "^0.5.6"
source-map-support@^0.5.0, source-map-support@^0.5.3, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.6:
version "0.5.9"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f"
+ integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==
dependencies:
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"
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
source-map@0.1.x:
version "0.1.43"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
+ integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=
dependencies:
amdefine ">=0.0.4"
source-map@^0.4.2, source-map@~0.4.1:
version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
dependencies:
amdefine ">=0.0.4"
source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.3:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
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"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
+ integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50=
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"
+ integrity sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==
dependencies:
spdx-expression-parse "^3.0.0"
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+ integrity sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==
spdx-expression-parse@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
dependencies:
spdx-exceptions "^2.1.0"
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz#e2a303236cac54b04031fa7a5a79c7e701df852f"
+ integrity sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==
spdy-transport@^2.0.18:
version "2.1.0"
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1"
+ integrity sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==
dependencies:
debug "^2.6.8"
detect-node "^2.0.3"
spdy@^3.4.1:
version "3.4.7"
resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc"
+ integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=
dependencies:
debug "^2.6.8"
handle-thing "^1.2.5"
speedometer@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-1.1.0.tgz#a30b13abda45687a1a76977012c060f2ac8a7934"
+ integrity sha512-z/wAiTESw2XVPssY2XRcme4niTc4S5FkkJ4gknudtVoc33Zil8TdTxHy5torRcgqMqksJV2Yz8HQcvtbsnw0mQ==
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"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
dependencies:
extend-shallow "^3.0.0"
split@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
+ integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
dependencies:
through "2"
sprintf-js@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c"
+ integrity sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
srcset@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz#a5669de12b42f3b1d5e83ed03c71046fc48f41ef"
+ integrity sha1-pWad4StC87HV6D7QPHEEb8SPQe8=
dependencies:
array-uniq "^1.0.2"
number-is-nan "^1.0.0"
sshpk@^1.7.0:
version "1.14.2"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
+ integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg=
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
ssri@^5.2.4:
version "5.3.0"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
+ integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
dependencies:
safe-buffer "^5.1.1"
ssri@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
+ integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
dependencies:
figgy-pudding "^3.5.1"
stack-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
+ integrity sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
dependencies:
define-property "^0.2.5"
object-copy "^0.1.0"
stats-webpack-plugin@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/stats-webpack-plugin/-/stats-webpack-plugin-0.6.2.tgz#2c5949b531e07f87a88e6ea4dcfac53aa8c75a2b"
+ integrity sha1-LFlJtTHgf4eojm6k3PrFOqjHWis=
dependencies:
lodash "^4.17.4"
"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
statuses@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
+ integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=
statuses@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+ integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
stdout-stream@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de"
+ integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==
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"
+ integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
stream-browserify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
+ integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=
dependencies:
inherits "~2.0.1"
readable-stream "^2.0.2"
stream-each@^1.1.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+ integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
dependencies:
end-of-stream "^1.1.0"
stream-shift "^1.0.0"
stream-http@^2.7.2, stream-http@^2.8.3:
version "2.8.3"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+ integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
dependencies:
builtin-status-codes "^3.0.0"
inherits "^2.0.1"
stream-shift@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
+ integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
stream-to-blob-url@^2.0.0, stream-to-blob-url@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/stream-to-blob-url/-/stream-to-blob-url-2.1.1.tgz#e1ac97f86ca8e9f512329a48e7830ce9a50beef2"
+ integrity sha512-DKJPEmCmIZoBfGVle9IhSfERiWaN5cuOtmfPxP2dZbLDRZxkBWZ4QbYxEJOSALk1Kf+WjBgedAMO6qkkf7Lmrg==
dependencies:
stream-to-blob "^1.0.0"
stream-to-blob@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/stream-to-blob/-/stream-to-blob-1.0.1.tgz#2dc1e09b71677a234d00445f8eb7ff70c4fe9948"
+ integrity sha512-aRy4neA4rf+qMtLT9fCRLPGWdrsIKtCx4kUdNTIPgPQ2hkHkdxbViVAvABMx9oRM6yCWfngHx6pwXfbYkVuPuw==
dependencies:
once "^1.3.3"
stream-with-known-length-to-buffer@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.2.tgz#b8ea5a92086a1ed5d27fc4c529636682118c945b"
+ integrity sha512-UxSISjxmguvfYzZdq6d4XAjc3gAocqTIOS1CjgwkDkkGT/LMTsIYiV8agIw42IHFFHf8k4lPOoroCCf4W9oqzg==
dependencies:
once "^1.3.3"
streamroller@0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b"
+ integrity sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==
dependencies:
date-format "^1.2.0"
debug "^3.1.0"
string-length@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
+ integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=
dependencies:
astral-regex "^1.0.0"
strip-ansi "^4.0.0"
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"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
dependencies:
code-point-at "^1.0.0"
is-fullwidth-code-point "^1.0.0"
"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"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string2compact@^1.1.1, string2compact@^1.2.5:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string2compact/-/string2compact-1.3.0.tgz#22d946127b082d1203c51316af60117a337423c3"
+ integrity sha512-004ulKKANDuQilQsNxy2lisrpMG0qUJxBU+2YCEF7KziRyNR0Nredm2qk0f1V82nva59H3y9GWeHXE63HzGRFw==
dependencies:
addr-to-ip-port "^1.0.1"
ipaddr.js "^1.0.1"
string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
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"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
dependencies:
ansi-regex "^2.0.0"
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
dependencies:
ansi-regex "^3.0.0"
strip-bom@3.0.0, strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
dependencies:
is-utf8 "^0.2.0"
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+ integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
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"
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
style-loader@^0.21.0:
version "0.21.0"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.21.0.tgz#68c52e5eb2afc9ca92b6274be277ee59aea3a852"
+ integrity sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==
dependencies:
loader-utils "^1.1.0"
schema-utils "^0.4.5"
stylus-loader@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6"
+ integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==
dependencies:
loader-utils "^1.0.2"
lodash.clonedeep "^4.5.0"
stylus@^0.54.5:
version "0.54.5"
resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79"
+ integrity sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=
dependencies:
css-parse "1.7.x"
debug "*"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
supports-color@^3.1.0, supports-color@^3.1.2:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
dependencies:
has-flag "^1.0.0"
supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
symbol-observable@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+ integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
symbol-tree@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
+ integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
tapable@^1.0.0, tapable@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c"
+ integrity sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==
tar@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
+ integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=
dependencies:
block-stream "*"
fstream "^1.0.2"
tar@^4:
version "4.4.6"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b"
+ integrity sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==
dependencies:
chownr "^1.0.1"
fs-minipass "^1.2.5"
terser-webpack-plugin@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz#cf7c25a1eee25bf121f4a587bb9e004e3f80e528"
+ integrity sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==
dependencies:
cacache "^11.0.2"
find-cache-dir "^2.0.0"
terser@^3.8.1:
version "3.8.2"
resolved "https://registry.yarnpkg.com/terser/-/terser-3.8.2.tgz#48b880f949f8d038aca4dfd00a37c53d96ecf9fb"
+ integrity sha512-FGSBXiBJe2TSXy6pWwXpY0YcEWEK35UKL64BBbxX3aHqM4Nj0RMqXvqBuoSGfyd80t8MKQ5JwYm5jRRGTSEFNg==
dependencies:
commander "~2.17.1"
source-map "~0.6.1"
test-exclude@^4.2.1:
version "4.2.3"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20"
+ integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==
dependencies:
arrify "^1.0.1"
micromatch "^2.3.11"
thirty-two@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a"
+ integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno=
throat@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
+ integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
through2@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
+ integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=
dependencies:
readable-stream "^2.1.5"
xtend "~4.0.1"
through@2, through@X.X.X, through@^2.3.6, through@~2.3.6:
version "2.3.8"
resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
thunky@^1.0.1, thunky@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371"
+ integrity sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=
timers-browserify@^2.0.4:
version "2.0.10"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
+ integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==
dependencies:
setimmediate "^1.0.4"
tmp@0.0.30:
version "0.0.30"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed"
+ integrity sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=
dependencies:
os-tmpdir "~1.0.1"
tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
dependencies:
os-tmpdir "~1.0.2"
tmpl@1.0.x:
version "1.0.4"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
+ integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
to-array@0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
+ integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA=
to-arraybuffer@^1.0.0, to-arraybuffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+ integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
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"
+ integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
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"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
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"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
dependencies:
kind-of "^3.0.2"
to-regex-range@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
dependencies:
is-number "^3.0.0"
repeat-string "^1.6.1"
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
dependencies:
define-property "^2.0.2"
extend-shallow "^3.0.2"
toposort@^1.0.0:
version "1.0.7"
resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
+ integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk=
torrent-discovery@^9.1.1:
version "9.1.1"
resolved "https://registry.yarnpkg.com/torrent-discovery/-/torrent-discovery-9.1.1.tgz#56704e6747b24fe00dbb75b442d202051f78d37d"
+ integrity sha512-3mHf+bxVCVLrlkPJdAoMbPMY1hpTZVeWw5hNc2pPFm+HCc2DS0HgVFTBTSWtB8vQPWA1hSEZpqJ+3QfdXxDE1g==
dependencies:
bittorrent-dht "^9.0.0"
bittorrent-tracker "^9.0.0"
torrent-piece@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/torrent-piece/-/torrent-piece-2.0.0.tgz#6598ae67d93699e887f178db267ba16d89d7ec9b"
+ integrity sha512-H/Z/yCuvZJj1vl1IQHI8dvF2QrUuXRJoptT5DW5967/dsLpXlCg+uyhFR5lfNj5mNaYePUbKtnL+qKWZGXv4Nw==
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"
+ integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
dependencies:
psl "^1.1.24"
punycode "^1.4.1"
tough-cookie@~2.3.3:
version "2.3.4"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
+ integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==
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"
+ integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
dependencies:
punycode "^2.1.0"
tree-kill@^1.0.0, tree-kill@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36"
+ integrity sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==
trim-newlines@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+ integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+ integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
trim@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
+ integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0=
"true-case-path@^1.0.2":
version "1.0.3"
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d"
+ integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==
dependencies:
glob "^7.1.2"
tryer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
+ integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
ts-jest@^23.1.4:
version "23.10.0"
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-23.10.0.tgz#1b1ce1d795791dedf0229b7577b35eaed8565bbd"
+ integrity sha512-SbqUbCRjlPKQjm9kANW3FebLx4iLxJG/HlK+Ds3nuVlr5Z3kX7YSES/OuIPwX/mPUds4MlA5W+/C4H/njztqtw==
dependencies:
bs-logger "0.x"
buffer-from "1.x"
ts-jest@~23.1.3:
version "23.1.4"
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-23.1.4.tgz#66ac1d8d3fbf8f9a98432b11aa377aa850664b2b"
+ integrity sha512-9rCSxbWfoZxxeXnSoEIzRNr9hDIQ8iEJAWmSRsWhDHDT8OeuGfURhJQUE8jtJlkyEygs6rngH8RYtHz9cfjmEA==
dependencies:
closest-file-data "^0.1.4"
fs-extra "6.0.1"
tsickle@^0.32.1:
version "0.32.1"
resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.32.1.tgz#f16e94ba80b32fc9ebe320dc94fbc2ca7f3521a5"
+ integrity sha512-JW9j+W0SaMSZGejIFZBk0AiPfnhljK3oLx5SaqxrJhjlvzFyPml5zqG1/PuScUj6yTe1muEqwk5CnDK0cOZmKw==
dependencies:
jasmine-diff "^0.1.3"
minimist "^1.2.0"
tslib@1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+ integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==
tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@~1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
+ integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
tslint-config-standard@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-8.0.1.tgz#e4dd3128e84b0e34b51990b68715a641f2b417e4"
+ integrity sha512-OWG+NblgjQlVuUS/Dmq3ax2v5QDZwRx4L0kEuDi7qFY9UI6RJhhNfoCV1qI4el8Fw1c5a5BTrjQJP0/jhGXY/Q==
dependencies:
tslint-eslint-rules "^5.3.1"
tslint-eslint-rules@^5.3.1:
version "5.4.0"
resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5"
+ integrity sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==
dependencies:
doctrine "0.7.2"
tslib "1.9.0"
tslint@^5.7.0:
version "5.11.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed"
+ integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0=
dependencies:
babel-code-frame "^6.22.0"
builtin-modules "^1.1.1"
tsml@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/tsml/-/tsml-1.0.1.tgz#89f8218b9d9e257f47d7f6b56d01c5a4d2c68fc3"
+ integrity sha1-ifghi52eJX9H1/a1bQHFpNLGj8M=
tsutils@^2.27.2:
version "2.29.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
+ integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
dependencies:
tslib "^1.8.1"
tsutils@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.0.0.tgz#0c5070a17a0503e056da038c48b5a1870a50a9ad"
+ integrity sha512-LjHBWR0vWAUHWdIAoTjoqi56Kz+FDKBgVEuL+gVPG/Pv7QW5IdaDDeK9Txlr6U0Cmckp5EgCIq1T25qe3J6hyw==
dependencies:
tslib "^1.8.1"
tty-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+ integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
dependencies:
safe-buffer "^5.0.1"
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
dependencies:
prelude-ls "~1.1.2"
type-is@~1.6.15, type-is@~1.6.16:
version "1.6.16"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
+ integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==
dependencies:
media-typer "0.3.0"
mime-types "~2.1.18"
typedarray-to-buffer@^3.0.0:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
dependencies:
is-typedarray "^1.0.0"
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@2.9, "typescript@>=2.6.2 <2.10", typescript@~2.9.2:
version "2.9.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
+ integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==
uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.5.tgz#0c65f15f815aa08b560a61ce8b4db7ffc3f45376"
+ integrity sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==
uglify-es@^3.3.4:
version "3.3.9"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
+ integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
dependencies:
commander "~2.13.0"
source-map "~0.6.1"
uglify-js@3.4.x, uglify-js@^3.0.6, uglify-js@^3.1.4:
version "3.4.9"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
+ integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
dependencies:
commander "~2.17.1"
source-map "~0.6.1"
uglifyjs-webpack-plugin@^1.2.4, uglifyjs-webpack-plugin@^1.2.5:
version "1.3.0"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
+ integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==
dependencies:
cacache "^10.0.4"
find-cache-dir "^1.0.0"
uint64be@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz#ef4a179752fe8f9ddaa29544ecfc13490031e8e5"
+ integrity sha512-9QqdvpGQTXgxthP+lY4e/gIBy+RuqcBaC6JVwT5I3bDLgT/btL6twZMR0pI3/Fgah9G/pdwzIprE5gL6v9UvyQ==
dependencies:
buffer-alloc "^1.1.0"
ultron@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
+ integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
union-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
+ integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
dependencies:
arr-union "^3.1.0"
get-value "^2.0.6"
uniq@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
unique-filename@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
+ integrity sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=
dependencies:
unique-slug "^2.0.0"
unique-slug@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
+ integrity sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=
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"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
unordered-array-remove@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz#c546e8f88e317a0cf2644c97ecb57dba66d250ef"
+ integrity sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
dependencies:
has-value "^0.3.1"
isobject "^3.0.0"
upath@^1.0.5:
version "1.1.0"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
+ integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==
upper-case@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
+ integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
uri-js@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa"
+ integrity sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=
dependencies:
punycode "^2.1.0"
uri-js@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
dependencies:
punycode "^2.1.0"
urix@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
url-join@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a"
+ integrity sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=
url-loader@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.1.tgz#4d1f3b4f90dde89f02c008e662d604d7511167c1"
+ integrity sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==
dependencies:
loader-utils "^1.1.0"
mime "^2.0.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"
+ integrity sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==
dependencies:
querystringify "^2.0.0"
requires-port "^1.0.0"
url-toolkit@^2.1.1, url-toolkit@^2.1.3:
version "2.1.6"
resolved "https://registry.yarnpkg.com/url-toolkit/-/url-toolkit-2.1.6.tgz#6d03246499e519aad224c44044a4ae20544154f2"
+ integrity sha512-UaZ2+50am4HwrV2crR/JAf63Q4VvPYphe63WGeoJxeu8gmOm0qxPt+KsukfakPNrX9aymGNEkkaoICwn+OuvBw==
url@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+ integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
dependencies:
punycode "1.3.2"
querystring "0.2.0"
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
useragent@2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e"
+ integrity sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=
dependencies:
lru-cache "2.2.x"
tmp "0.0.x"
ut_metadata@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/ut_metadata/-/ut_metadata-3.3.0.tgz#a0e0e861ebc39ed96e506601d1463ade3b548a7e"
+ integrity sha512-IK+ke9yL6a4oPLz/3oSW9TW7m9Wr4RG+5kW5aS2YulzEU1QDGAtago/NnOlno91fo3fSO7mnsqzn3NXNXdv8nA==
dependencies:
bencode "^2.0.0"
bitfield "^2.0.0"
ut_pex@^1.1.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ut_pex/-/ut_pex-1.2.1.tgz#472ed0ea5e9bbc9148b833339d56d7b17cf3dad0"
+ integrity sha512-ZrxMCbffYtxQDqvREN9kBXK2CB9tPnd5PylHoqQX9ai+3HV9/S39FnA5JnhLOC82dxIQQg0nTN2wmhtAdGNtOA==
dependencies:
bencode "^2.0.0"
compact2string "^1.2.0"
utf-8-validate@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.1.tgz#cef1f9011ba4b216f4d7c6ddf5189d750599ff8b"
+ integrity sha512-Qef1AuiWWxQeZ1Oa4DTV3ArRafpZvsK+CLrlB8khLfsV+9mwhj58hNSGmel0ns5jYP+3yEwav6vxxW7Gz85bVw==
dependencies:
node-gyp-build "~3.4.0"
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
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"
+ integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
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"
+ integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
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"
+ integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
dependencies:
inherits "2.0.3"
utila@~0.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226"
+ integrity sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=
utila@~0.4:
version "0.4.0"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
+ integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
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"
+ integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
v8-compile-cache@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c"
+ integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
dependencies:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
validate-npm-package-name@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
+ integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34=
dependencies:
builtins "^1.0.3"
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
"video.js@^6 || ^7", "video.js@^6.8.0 || ^7.0.0", video.js@^7:
version "7.2.2"
resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.2.2.tgz#4a1197b2f0c265a1e50d5cd4ff41cd030e22a423"
+ integrity sha512-Ct9ZiYzeNiOW1v9YWbNaeSR0JUKeY3RTvG5wtvUHhUgUMImICDu7crutyY/C2u4PetoFlpkDVAIbhqi/qPDflw==
dependencies:
"@videojs/http-streaming" "1.2.4"
babel-runtime "^6.9.2"
videojs-contextmenu-ui@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/videojs-contextmenu-ui/-/videojs-contextmenu-ui-5.0.0.tgz#6943527c9b3993f3fb83867c0d0348bcd58c924c"
+ integrity sha512-U3UcJizH6oDVMRqb8PbRSQFaP8vRTI4cDv7Z3Co9D1icX7B4Th4XIZw/NRdzrU4kuJbHDq1e9GYxEHjlHkRbLw==
dependencies:
global "^4.3.2"
video.js "^6 || ^7"
videojs-dock@^2.0.2:
version "2.1.4"
resolved "https://registry.yarnpkg.com/videojs-dock/-/videojs-dock-2.1.4.tgz#0ebd198b5d48990e3523fdc87dbfdb9fe96f804c"
+ integrity sha512-ymWYOGOjBMqCv+/lvA1jmbCUbvr+1euwaqN7oBKV/sKcyeeisbxjBoF9yHJYd8LHkXTBtYp96AHYa6XAVeFHJg==
dependencies:
global "^4.3.2"
video.js "^6 || ^7"
videojs-font@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/videojs-font/-/videojs-font-3.0.0.tgz#90eafddcf26b407448c833523f5ca4ad8d5cc1af"
+ integrity sha512-XS6agz2T7p2cFuuXulJD70md8XMlAN617SJkMWjoTPqZWv+RU8NcZCKsE3Tk73inzxnQdihOp0cvI7NGz2ngHg==
videojs-hotkeys@^0.2.21:
version "0.2.22"
resolved "https://registry.yarnpkg.com/videojs-hotkeys/-/videojs-hotkeys-0.2.22.tgz#76f917b1a70e7bf9da5f7f8cd33d5a032c0284be"
+ integrity sha512-sl/D6blI+SY40uD9OJBBUZB4PzV5g4xpfV2aPqzYgYiO1GEdXFAZKXWj80Hz2VEmJ8tXj5ToIbVq+t4v3ckvNw==
videojs-vtt.js@0.14.1:
version "0.14.1"
resolved "https://registry.yarnpkg.com/videojs-vtt.js/-/videojs-vtt.js-0.14.1.tgz#da583eb1fc9c81c826a9432b706040e8dea49911"
+ integrity sha512-YxOiywx6N9t3J5nqsE5WN2Sw4CSqVe3zV+AZm2T4syOc2buNJaD6ZoexSdeszx2sHLU/RRo2r4BJAXFDQ7Qo2Q==
dependencies:
global "^4.3.1"
videostream@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.5.1.tgz#993a8f3efe277e5c8d26a7814ba0c68f79b20688"
+ integrity sha512-S3f34WE6NB1d/YUAa/EYcTURTkGaxsUqcDmsGWV1jQpQQJxeagc79/XA7ygNjzBf3DoQQ1MKTD+SocPsWSniAg==
dependencies:
binary-search "^1.3.4"
inherits "^2.0.1"
vm-browserify@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
+ integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=
dependencies:
indexof "0.0.1"
void-elements@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
+ integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
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"
+ integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
dependencies:
browser-process-hrtime "^0.1.2"
walker@~1.0.5:
version "1.0.7"
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
+ integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=
dependencies:
makeerror "1.0.x"
watch@~0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
+ integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY=
dependencies:
exec-sh "^0.2.0"
minimist "^1.2.0"
watchpack@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
+ integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
dependencies:
chokidar "^2.0.2"
graceful-fs "^4.1.2"
wbuf@^1.1.0, wbuf@^1.7.2:
version "1.7.3"
resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
+ integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
dependencies:
minimalistic-assert "^1.0.0"
webdriver-js-extender@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz#57d7a93c00db4cc8d556e4d3db4b5db0a80c3bb7"
+ integrity sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==
dependencies:
"@types/selenium-webdriver" "^3.0.0"
selenium-webdriver "^3.0.1"
webdriver-manager@^12.0.6:
version "12.1.0"
resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.1.0.tgz#f6601e52de5f0c97fc7024c889eeb2416f2f1d9d"
+ integrity sha512-oEc5fmkpz6Yh6udhwir5m0eN5mgRPq9P/NU5YWuT3Up5slt6Zz+znhLU7q4+8rwCZz/Qq3Fgpr/4oao7NPCm2A==
dependencies:
adm-zip "^0.4.9"
chalk "^1.1.1"
webidl-conversions@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+ integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
webpack-bundle-analyzer@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.0.2.tgz#22f19ea6d1b5a15fd7a90baae0bc0f39bd1e4d48"
+ integrity sha512-cZG4wSQtKrSpk5RJ33dxiaAyo8bP0V+JvycAyIDFEiDIhw4LHhhVKhn40YT1w6TR9E4scHA00LnIoBtTA13Mow==
dependencies:
acorn "^5.7.3"
bfj "^6.1.1"
webpack-cli@^3.0.8:
version "3.1.0"
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.0.tgz#d71a83687dcfeb758fdceeb0fe042f96bcf62994"
+ integrity sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==
dependencies:
chalk "^2.4.1"
cross-spawn "^6.0.5"
webpack-core@^0.6.8:
version "0.6.9"
resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2"
+ integrity sha1-/FcViMhVjad76e+23r3Fo7FyvcI=
dependencies:
source-list-map "~0.1.7"
source-map "~0.4.1"
webpack-dev-middleware@3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz#a20ceef194873710052da678f3c6ee0aeed92552"
+ integrity sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==
dependencies:
loud-rejection "^1.6.0"
memory-fs "~0.4.1"
webpack-dev-middleware@^3.1.3:
version "3.3.0"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.3.0.tgz#8104daf4d4f65defe06ee2eaaeea612a7c541462"
+ integrity sha512-5C5gXtOo1I6+0AEg4UPglYEtu3Rai6l5IiO6aUu65scHXz29dc3oIWMiRwvcNLXgL0HwRkRxa9N02ZjFt4hY8w==
dependencies:
loud-rejection "^1.6.0"
memory-fs "~0.4.1"
webpack-dev-server@^3.1.4:
version "3.1.8"
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.8.tgz#eb7a95945d1108170f902604fb3b939533d9daeb"
+ integrity sha512-c+tcJtDqnPdxCAzEEZKdIPmg3i5i7cAHe+B+0xFNK0BlCc2HF/unYccbU7xTgfGc5xxhCztCQzFmsqim+KhI+A==
dependencies:
ansi-html "0.0.7"
bonjour "^3.5.0"
webpack-log@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d"
+ integrity sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==
dependencies:
chalk "^2.1.0"
log-symbols "^2.1.0"
webpack-log@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
+ integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
dependencies:
ansi-colors "^3.0.0"
uuid "^3.3.2"
webpack-merge@^4.1.2:
version "4.1.4"
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.4.tgz#0fde38eabf2d5fd85251c24a5a8c48f8a3f4eb7b"
+ integrity sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==
dependencies:
lodash "^4.17.5"
webpack-sources@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750"
+ integrity sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=
dependencies:
source-list-map "~0.1.7"
source-map "~0.5.3"
webpack-sources@^1.1.0, webpack-sources@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
+ integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
webpack-subresource-integrity@^1.1.0-rc.4:
version "1.1.0-rc.6"
resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz#37f6f1264e1eb378e41465a98da80fad76ab8886"
+ integrity sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==
dependencies:
webpack-core "^0.6.8"
webpack@^4.15.1, webpack@^4.17.1:
version "4.19.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.19.1.tgz#096674bc3b573f8756c762754366e5b333d6576f"
+ integrity sha512-j7Q/5QqZRqIFXJvC0E59ipLV5Hf6lAnS3ezC3I4HMUybwEDikQBVad5d+IpPtmaQPQArvgUZLXIN6lWijHBn4g==
dependencies:
"@webassemblyjs/ast" "1.7.6"
"@webassemblyjs/helper-module-context" "1.7.6"
websocket-driver@>=0.5.1:
version "0.7.0"
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
+ integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=
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"
+ integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
-webtorrent@^0.102.1:
+"webtorrent@https://github.com/webtorrent/webtorrent#e9b209c7970816fc29e0cc871157a4918d66001d":
version "0.102.4"
- resolved "https://registry.yarnpkg.com/webtorrent/-/webtorrent-0.102.4.tgz#0902f5dddb244c4ca8137d5d678546b733adeb2f"
+ resolved "https://github.com/webtorrent/webtorrent#e9b209c7970816fc29e0cc871157a4918d66001d"
dependencies:
addr-to-ip-port "^1.4.2"
bitfield "^2.0.0"
bittorrent-protocol "^3.0.0"
chunk-store-stream "^3.0.1"
create-torrent "^3.33.0"
- debug "^3.1.0"
+ debug "^4.0.1"
end-of-stream "^1.1.0"
fs-chunk-store "^1.6.2"
immediate-chunk-store "^2.0.0"
whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz#63fb016b7435b795d9025632c086a5209dbd2621"
+ integrity sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg==
dependencies:
iconv-lite "0.4.23"
whatwg-fetch@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
+ integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
whatwg-mimetype@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz#a3d58ef10b76009b042d03e25591ece89b88d171"
+ integrity sha512-5YSO1nMd5D1hY3WzAQV3PzZL83W3YeyR1yW9PcH26Weh1t+Vzh9B6XkDh7aXm83HBZ4nSMvkjvN2H2ySWIvBgw==
whatwg-url@^6.4.1:
version "6.5.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
+ integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==
dependencies:
lodash.sortby "^4.7.0"
tr46 "^1.0.1"
whatwg-url@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
+ integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==
dependencies:
lodash.sortby "^4.7.0"
tr46 "^1.0.1"
when@~3.6.x:
version "3.6.4"
resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e"
+ integrity sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=
which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+ integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which@1, which@^1.1.1, which@^1.2.1, which@^1.2.12, which@^1.2.9, which@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
dependencies:
isexe "^2.0.0"
wide-align@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
dependencies:
string-width "^1.0.2 || 2"
wordwrap@^1.0.0, wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
worker-farm@^1.5.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
+ integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==
dependencies:
errno "~0.1.7"
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
write-file-atomic@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
+ integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
ws@^5.2.0:
version "5.2.2"
resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
+ integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==
dependencies:
async-limiter "~1.0.0"
ws@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.0.0.tgz#eaa494aded00ac4289d455bac8d84c7c651cef35"
+ integrity sha512-c2UlYcAZp1VS8AORtpq6y4RJIkJ9dQz18W32SpR/qXGfLDZ2jU4y4wKvvZwqbi7U6gxFQTeE+urMbXU/tsDy4w==
dependencies:
async-limiter "~1.0.0"
ws@~3.3.1:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
+ integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
dependencies:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"
xhr@2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.4.0.tgz#e16e66a45f869861eeefab416d5eff722dc40993"
+ integrity sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=
dependencies:
global "~4.3.0"
is-function "^1.0.1"
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"
+ integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
xml2js@^0.4.17:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
+ integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==
dependencies:
sax ">=0.6.0"
xmlbuilder "~9.0.1"
xmlbuilder@~9.0.1:
version "9.0.7"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
+ integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
xmlhttprequest-ssl@~1.5.4:
version "1.5.5"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
+ integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
xregexp@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
+ integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==
xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+ integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
xxhashjs@^0.2.1:
version "0.2.2"
resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8"
+ integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==
dependencies:
cuint "^0.2.2"
y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+ integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^3.0.0, yallist@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
+ integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=
yargs-parser@10.x, yargs-parser@^10.0.0, yargs-parser@^10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
+ integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
dependencies:
camelcase "^4.1.0"
yargs-parser@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
+ integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
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"
+ integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k=
dependencies:
camelcase "^4.1.0"
yargs-parser@^8.0.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==
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"
+ integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=
dependencies:
camelcase "^4.1.0"
yargs@10.0.3:
version "10.0.3"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae"
+ integrity sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==
dependencies:
cliui "^3.2.0"
decamelize "^1.1.1"
yargs@12.0.2, yargs@^12.0.1:
version "12.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
+ integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==
dependencies:
cliui "^4.0.0"
decamelize "^2.0.0"
yargs@^11.0.0:
version "11.1.0"
resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
+ integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==
dependencies:
cliui "^4.0.0"
decamelize "^1.1.1"
yargs@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
+ integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=
dependencies:
camelcase "^3.0.0"
cliui "^3.2.0"
yargs@^8.0.1:
version "8.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+ integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A=
dependencies:
camelcase "^4.1.0"
cliui "^3.2.0"
yeast@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
+ integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
zone.js@~0.8.5:
version "0.8.26"
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.26.tgz#7bdd72f7668c5a7ad6b118148b4ea39c59d08d2d"
+ integrity sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==
listen:
- listen: '0.0.0.0'
+ hostname: '0.0.0.0'
port: 9000
webserver:
{
"name": "peertube",
"description": "Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.",
- "version": "1.0.1",
+ "version": "1.1.0-alpha.2",
"private": true,
"licence": "AGPLv3",
"engines": {
"test": "scripty",
"help": "scripty",
"generate-api-doc": "scripty",
+ "generate-cli-doc": "scripty",
"parse-log": "node ./dist/scripts/parse-log.js",
"prune-storage": "node ./dist/scripts/prune-storage.js",
+ "optimize-old-videos": "node ./dist/scripts/optimize-old-videos.js",
"postinstall": "cd client && yarn install --pure-lockfile",
"tsc": "tsc",
"spectacle-docs": "node_modules/spectacle-docs/bin/spectacle.js",
},
"husky": {
"hooks": {
- "pre-commit": "lint-staged"
+ "pre-commit": "lint-staged && ./scripts/openapi-peertube-version.sh"
}
},
"lint-staged": {
"jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017",
"lodash": "^4.17.10",
"magnet-uri": "^5.1.4",
+ "marked-man": "^0.2.1",
"memoizee": "^0.4.14",
"morgan": "^1.5.3",
"multer": "^1.1.0",
"@types/config": "^0.0.34",
"@types/express": "^4.0.35",
"@types/express-rate-limit": "^2.9.3",
+ "@types/fluent-ffmpeg": "^2.1.8",
"@types/fs-extra": "^5.0.4",
"@types/libxmljs": "^0.18.0",
"@types/lodash": "^4.14.64",
--- /dev/null
+#!/bin/sh
+
+set -eu
+
+node_modules/marked-man/bin/marked-man server/tools/README.md > dist/server/tools/peertube.8
printf " create-transcoding-job -- -v [video UUID] \n"
printf " -> Create a transcoding job for a particular video\n"
printf " prune-storage -> Delete (after confirmation) unknown video files/thumbnails/previews... (due to a bad video deletion, transcoding job not finished...)\n"
+printf " optimize-old-videos -> Re-transcode videos that have a high bitrate, to make them suitable for streaming over slow connections"
printf " dev -> Watch, run the livereload and run the server so that you can develop the application\n"
printf " start -> Run the server\n"
printf " update-host -> Upgrade scheme/host in torrent files according to the webserver configuration (config/ folder)\n"
--- /dev/null
+# Version key/value should be on his own line
+PACKAGE_VERSION=$(node -p "require('./package.json').version")
+
+sed -i "s/\(^\s*\)version: .*/\1version: $PACKAGE_VERSION/" support/doc/api/openapi.yaml
--- /dev/null
+import { CONFIG, VIDEO_TRANSCODING_FPS } from '../server/initializers/constants'
+import { getVideoFileBitrate, getVideoFileFPS, getVideoFileResolution, getDurationFromVideoFile } from '../server/helpers/ffmpeg-utils'
+import { getMaxBitrate } from '../shared/models/videos'
+import { VideoModel } from '../server/models/video/video'
+import { optimizeVideofile } from '../server/lib/video-transcoding'
+import { initDatabaseModels } from '../server/initializers'
+import { join, basename, dirname } from 'path'
+import { copy, remove, move } from 'fs-extra'
+
+run()
+ .then(() => process.exit(0))
+ .catch(err => {
+ console.error(err)
+ process.exit(-1)
+ })
+
+let currentVideoId = null
+let currentFile = null
+
+process.on('SIGINT', async function () {
+ console.log('Cleaning up temp files')
+ await remove(`${currentFile}_backup`)
+ await remove(`${dirname(currentFile)}/${currentVideoId}-transcoded.mp4`)
+ process.exit(0)
+})
+
+async function run () {
+ await initDatabaseModels(true)
+
+ const localVideos = await VideoModel.listLocal()
+
+ for (const video of localVideos) {
+ currentVideoId = video.id
+ for (const file of video.VideoFiles) {
+ currentFile = join(CONFIG.STORAGE.VIDEOS_DIR, video.getVideoFilename(file))
+
+ const [ videoBitrate, fps, resolution ] = await Promise.all([
+ getVideoFileBitrate(currentFile),
+ getVideoFileFPS(currentFile),
+ getVideoFileResolution(currentFile)
+ ])
+
+ const maxBitrate = getMaxBitrate(resolution.videoFileResolution, fps, VIDEO_TRANSCODING_FPS)
+ const isMaxBitrateExceeded = videoBitrate > maxBitrate
+ if (isMaxBitrateExceeded) {
+ console.log('Optimizing video file %s with bitrate %s kbps (max: %s kbps)',
+ basename(currentFile), videoBitrate / 1000, maxBitrate / 1000)
+ const backupFile = `${currentFile}_backup`
+ await copy(currentFile, backupFile)
+ await optimizeVideofile(video, file)
+ const originalDuration = await getDurationFromVideoFile(backupFile)
+ const newDuration = await getDurationFromVideoFile(currentFile)
+ if (originalDuration === newDuration) {
+ console.log('Finished optimizing %s', basename(currentFile))
+ await remove(backupFile)
+ } else {
+ console.log('Failed to optimize %s, restoring original', basename(currentFile))
+ move(backupFile, currentFile, { overwrite: true })
+ await video.createTorrentAndSetInfoHash(file)
+ await file.save()
+ }
+ }
+ }
+ }
+
+ console.log('Finished optimizing videos')
+}
import { initDatabaseModels } from '../server/initializers'
import { remove, readdir } from 'fs-extra'
import { VideoRedundancyModel } from '../server/models/redundancy/video-redundancy'
+import { getUUIDFromFilename } from '../server/helpers/utils'
run()
.then(() => process.exit(0))
return toDelete
}
-function getUUIDFromFilename (filename: string) {
- const regex = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/
- const result = filename.match(regex)
-
- if (!result || Array.isArray(result) === false) return null
-
- return result[0]
-}
-
async function askConfirmation () {
return new Promise((res, rej) => {
prompt.start()
version="v$1"
github_prerelease_option=""
-if [[ "$version" = *".pre."* ]]; then
- echo "This is a pre-release."
+if [[ "$version" = *"-alpha."* ]] || [[ "$version" = *"-beta."* ]] || [[ "$version" = *"-rc."* ]]; then
+ echo -e "This is a pre-release.\n"
github_prerelease_option="--pre-release"
fi
changelog=$(awk -v version="$version" '/## v/ { printit = $2 == version }; printit;' CHANGELOG.md | grep -v "$version" | sed '1{/^$/d}')
-printf "Changelog will be:\\n%s\\n" "$changelog"
+printf "Changelog will be:\\n\\n%s\\n\\n" "$changelog"
read -p "Are you sure to release? " -n 1 -r
echo
if [ "$1" = "misc" ]; then
npm run build -- --light-fr
- mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/client.ts server/tests/activitypub.ts \
- server/tests/feeds/index.ts server/tests/misc-endpoints.ts
+ mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/client.ts \
+ server/tests/activitypub.ts \
+ server/tests/feeds/index.ts \
+ server/tests/misc-endpoints.ts \
+ server/tests/helpers/index.ts
elif [ "$1" = "api" ]; then
npm run build:server
mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/api/index.ts
elif [ "$1" = "api-3" ]; then
npm run build:server
mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/api/index-3.ts
+elif [ "$1" = "api-3" ]; then
+ npm run build:server
+ mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/api/index-4.ts
elif [ "$1" = "lint" ]; then
npm run tslint -- --project ./tsconfig.json -c ./tslint.json server.ts "server/**/*.ts" "shared/**/*.ts"
# Backup database
SQL_BACKUP_PATH="$PEERTUBE_PATH/backup/sql-peertube_prod-$(date +"%Y%m%d-%H%M").bak"
+DB_USER=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['username'])")
+DB_PASS=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['password'])")
+DB_HOST=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['hostname'])")
+DB_SUFFIX=$(node -e "console.log(require('js-yaml').safeLoad(fs.readFileSync('$PEERTUBE_PATH/config/production.yaml', 'utf8'))['database']['suffix'])")
mkdir -p $PEERTUBE_PATH/backup
-pg_dump -U peertube -W -h localhost -F c peertube_prod -f "$SQL_BACKUP_PATH"
+
+PGPASSWORD=$DB_PASS pg_dump -U $DB_USER -h $DB_HOST -F c "peertube${DB_SUFFIX}" -f "$SQL_BACKUP_PATH"
# If there is a pre-release, give the user a choice which one to install.
RELEASE_VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4)
localVideoChannelValidator,
videosCustomGetValidator
} from '../../middlewares'
-import { videosGetValidator, videosShareValidator } from '../../middlewares/validators'
-import { videoCommentGetValidator } from '../../middlewares/validators/video-comments'
+import { videoCommentGetValidator, videosGetValidator, videosShareValidator } from '../../middlewares/validators'
import { AccountModel } from '../../models/account/account'
import { ActorModel } from '../../models/activitypub/actor'
import { ActorFollowModel } from '../../models/activitypub/actor-follow'
import * as express from 'express'
import { getFormattedObjects } from '../../helpers/utils'
import {
- asyncMiddleware, commonVideosFiltersValidator,
+ asyncMiddleware,
+ commonVideosFiltersValidator,
listVideoAccountChannelsValidator,
optionalAuthenticate,
paginationValidator,
languageOneOf: req.query.languageOneOf,
tagsOneOf: req.query.tagsOneOf,
tagsAllOf: req.query.tagsAllOf,
+ filter: req.query.filter,
nsfw: buildNSFWFilter(res, req.query.nsfw),
withFiles: false,
- accountId: account.id
+ accountId: account.id,
+ user: res.locals.oauth ? res.locals.oauth.token.User : undefined
})
return res.json(getFormattedObjects(resultList.data, resultList.total))
async function searchVideosDB (query: VideosSearchQuery, res: express.Response) {
const options = Object.assign(query, {
includeLocalVideos: true,
- nsfw: buildNSFWFilter(res, query.nsfw)
+ nsfw: buildNSFWFilter(res, query.nsfw),
+ filter: query.filter,
+ user: res.locals.oauth ? res.locals.oauth.token.User : undefined
})
const resultList = await VideoModel.searchAndPopulateAccountAndServer(options)
async function listFollowing (req: express.Request, res: express.Response, next: express.NextFunction) {
const serverActor = await getServerActor()
- const resultList = await ActorFollowModel.listFollowingForApi(serverActor.id, req.query.start, req.query.count, req.query.sort)
+ const resultList = await ActorFollowModel.listFollowingForApi(
+ serverActor.id,
+ req.query.start,
+ req.query.count,
+ req.query.sort,
+ req.query.search
+ )
return res.json(getFormattedObjects(resultList.data, resultList.total))
}
async function listFollowers (req: express.Request, res: express.Response, next: express.NextFunction) {
const serverActor = await getServerActor()
- const resultList = await ActorFollowModel.listFollowersForApi(serverActor.id, req.query.start, req.query.count, req.query.sort)
+ const resultList = await ActorFollowModel.listFollowersForApi(
+ serverActor.id,
+ req.query.start,
+ req.query.count,
+ req.query.sort,
+ req.query.search
+ )
return res.json(getFormattedObjects(resultList.data, resultList.total))
}
import { serverFollowsRouter } from './follows'
import { statsRouter } from './stats'
import { serverRedundancyRouter } from './redundancy'
+import { serverBlocklistRouter } from './server-blocklist'
const serverRouter = express.Router()
serverRouter.use('/', serverFollowsRouter)
serverRouter.use('/', serverRedundancyRouter)
serverRouter.use('/', statsRouter)
+serverRouter.use('/', serverBlocklistRouter)
// ---------------------------------------------------------------------------
--- /dev/null
+import * as express from 'express'
+import 'multer'
+import { getFormattedObjects, getServerActor } from '../../../helpers/utils'
+import {
+ asyncMiddleware,
+ asyncRetryTransactionMiddleware,
+ authenticate,
+ ensureUserHasRight,
+ paginationValidator,
+ setDefaultPagination,
+ setDefaultSort
+} from '../../../middlewares'
+import {
+ accountsBlocklistSortValidator,
+ blockAccountValidator,
+ blockServerValidator,
+ serversBlocklistSortValidator,
+ unblockAccountByServerValidator,
+ unblockServerByServerValidator
+} from '../../../middlewares/validators'
+import { AccountModel } from '../../../models/account/account'
+import { AccountBlocklistModel } from '../../../models/account/account-blocklist'
+import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../../../lib/blocklist'
+import { ServerBlocklistModel } from '../../../models/server/server-blocklist'
+import { ServerModel } from '../../../models/server/server'
+import { UserRight } from '../../../../shared/models/users'
+
+const serverBlocklistRouter = express.Router()
+
+serverBlocklistRouter.get('/blocklist/accounts',
+ authenticate,
+ ensureUserHasRight(UserRight.MANAGE_ACCOUNTS_BLOCKLIST),
+ paginationValidator,
+ accountsBlocklistSortValidator,
+ setDefaultSort,
+ setDefaultPagination,
+ asyncMiddleware(listBlockedAccounts)
+)
+
+serverBlocklistRouter.post('/blocklist/accounts',
+ authenticate,
+ ensureUserHasRight(UserRight.MANAGE_ACCOUNTS_BLOCKLIST),
+ asyncMiddleware(blockAccountValidator),
+ asyncRetryTransactionMiddleware(blockAccount)
+)
+
+serverBlocklistRouter.delete('/blocklist/accounts/:accountName',
+ authenticate,
+ ensureUserHasRight(UserRight.MANAGE_ACCOUNTS_BLOCKLIST),
+ asyncMiddleware(unblockAccountByServerValidator),
+ asyncRetryTransactionMiddleware(unblockAccount)
+)
+
+serverBlocklistRouter.get('/blocklist/servers',
+ authenticate,
+ ensureUserHasRight(UserRight.MANAGE_SERVERS_BLOCKLIST),
+ paginationValidator,
+ serversBlocklistSortValidator,
+ setDefaultSort,
+ setDefaultPagination,
+ asyncMiddleware(listBlockedServers)
+)
+
+serverBlocklistRouter.post('/blocklist/servers',
+ authenticate,
+ ensureUserHasRight(UserRight.MANAGE_SERVERS_BLOCKLIST),
+ asyncMiddleware(blockServerValidator),
+ asyncRetryTransactionMiddleware(blockServer)
+)
+
+serverBlocklistRouter.delete('/blocklist/servers/:host',
+ authenticate,
+ ensureUserHasRight(UserRight.MANAGE_SERVERS_BLOCKLIST),
+ asyncMiddleware(unblockServerByServerValidator),
+ asyncRetryTransactionMiddleware(unblockServer)
+)
+
+export {
+ serverBlocklistRouter
+}
+
+// ---------------------------------------------------------------------------
+
+async function listBlockedAccounts (req: express.Request, res: express.Response) {
+ const serverActor = await getServerActor()
+
+ const resultList = await AccountBlocklistModel.listForApi(serverActor.Account.id, req.query.start, req.query.count, req.query.sort)
+
+ return res.json(getFormattedObjects(resultList.data, resultList.total))
+}
+
+async function blockAccount (req: express.Request, res: express.Response) {
+ const serverActor = await getServerActor()
+ const accountToBlock: AccountModel = res.locals.account
+
+ await addAccountInBlocklist(serverActor.Account.id, accountToBlock.id)
+
+ return res.status(204).end()
+}
+
+async function unblockAccount (req: express.Request, res: express.Response) {
+ const accountBlock: AccountBlocklistModel = res.locals.accountBlock
+
+ await removeAccountFromBlocklist(accountBlock)
+
+ return res.status(204).end()
+}
+
+async function listBlockedServers (req: express.Request, res: express.Response) {
+ const serverActor = await getServerActor()
+
+ const resultList = await ServerBlocklistModel.listForApi(serverActor.Account.id, req.query.start, req.query.count, req.query.sort)
+
+ return res.json(getFormattedObjects(resultList.data, resultList.total))
+}
+
+async function blockServer (req: express.Request, res: express.Response) {
+ const serverActor = await getServerActor()
+ const serverToBlock: ServerModel = res.locals.server
+
+ await addServerInBlocklist(serverActor.Account.id, serverToBlock.id)
+
+ return res.status(204).end()
+}
+
+async function unblockServer (req: express.Request, res: express.Response) {
+ const serverBlock: ServerBlocklistModel = res.locals.serverBlock
+
+ await removeServerFromBlocklist(serverBlock)
+
+ return res.status(204).end()
+}
import { auditLoggerFactory, getAuditIdFromRes, UserAuditView } from '../../../helpers/audit-logger'
import { meRouter } from './me'
import { deleteUserToken } from '../../../lib/oauth-model'
+import { myBlocklistRouter } from './my-blocklist'
const auditLogger = auditLoggerFactory('users')
})
const usersRouter = express.Router()
+usersRouter.use('/', myBlocklistRouter)
usersRouter.use('/', meRouter)
usersRouter.get('/autocomplete',
}
async function listUsers (req: express.Request, res: express.Response, next: express.NextFunction) {
- const resultList = await UserModel.listForApi(req.query.start, req.query.count, req.query.sort)
+ const resultList = await UserModel.listForApi(req.query.start, req.query.count, req.query.sort, req.query.search)
return res.json(getFormattedObjects(resultList.data, resultList.total))
}
nsfw: buildNSFWFilter(res, req.query.nsfw),
filter: req.query.filter as VideoFilter,
withFiles: false,
- actorId: user.Account.Actor.id
+ actorId: user.Account.Actor.id,
+ user
})
return res.json(getFormattedObjects(resultList.data, resultList.total))
if (body.password !== undefined) user.password = body.password
if (body.email !== undefined) user.email = body.email
if (body.nsfwPolicy !== undefined) user.nsfwPolicy = body.nsfwPolicy
+ if (body.webTorrentEnabled !== undefined) user.webTorrentEnabled = body.webTorrentEnabled
if (body.autoPlayVideo !== undefined) user.autoPlayVideo = body.autoPlayVideo
await sequelizeTypescript.transaction(async t => {
--- /dev/null
+import * as express from 'express'
+import 'multer'
+import { getFormattedObjects } from '../../../helpers/utils'
+import {
+ asyncMiddleware,
+ asyncRetryTransactionMiddleware,
+ authenticate,
+ paginationValidator,
+ setDefaultPagination,
+ setDefaultSort,
+ unblockAccountByAccountValidator
+} from '../../../middlewares'
+import {
+ accountsBlocklistSortValidator,
+ blockAccountValidator,
+ blockServerValidator,
+ serversBlocklistSortValidator,
+ unblockServerByAccountValidator
+} from '../../../middlewares/validators'
+import { UserModel } from '../../../models/account/user'
+import { AccountModel } from '../../../models/account/account'
+import { AccountBlocklistModel } from '../../../models/account/account-blocklist'
+import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../../../lib/blocklist'
+import { ServerBlocklistModel } from '../../../models/server/server-blocklist'
+import { ServerModel } from '../../../models/server/server'
+
+const myBlocklistRouter = express.Router()
+
+myBlocklistRouter.get('/me/blocklist/accounts',
+ authenticate,
+ paginationValidator,
+ accountsBlocklistSortValidator,
+ setDefaultSort,
+ setDefaultPagination,
+ asyncMiddleware(listBlockedAccounts)
+)
+
+myBlocklistRouter.post('/me/blocklist/accounts',
+ authenticate,
+ asyncMiddleware(blockAccountValidator),
+ asyncRetryTransactionMiddleware(blockAccount)
+)
+
+myBlocklistRouter.delete('/me/blocklist/accounts/:accountName',
+ authenticate,
+ asyncMiddleware(unblockAccountByAccountValidator),
+ asyncRetryTransactionMiddleware(unblockAccount)
+)
+
+myBlocklistRouter.get('/me/blocklist/servers',
+ authenticate,
+ paginationValidator,
+ serversBlocklistSortValidator,
+ setDefaultSort,
+ setDefaultPagination,
+ asyncMiddleware(listBlockedServers)
+)
+
+myBlocklistRouter.post('/me/blocklist/servers',
+ authenticate,
+ asyncMiddleware(blockServerValidator),
+ asyncRetryTransactionMiddleware(blockServer)
+)
+
+myBlocklistRouter.delete('/me/blocklist/servers/:host',
+ authenticate,
+ asyncMiddleware(unblockServerByAccountValidator),
+ asyncRetryTransactionMiddleware(unblockServer)
+)
+
+export {
+ myBlocklistRouter
+}
+
+// ---------------------------------------------------------------------------
+
+async function listBlockedAccounts (req: express.Request, res: express.Response) {
+ const user: UserModel = res.locals.oauth.token.User
+
+ const resultList = await AccountBlocklistModel.listForApi(user.Account.id, req.query.start, req.query.count, req.query.sort)
+
+ return res.json(getFormattedObjects(resultList.data, resultList.total))
+}
+
+async function blockAccount (req: express.Request, res: express.Response) {
+ const user: UserModel = res.locals.oauth.token.User
+ const accountToBlock: AccountModel = res.locals.account
+
+ await addAccountInBlocklist(user.Account.id, accountToBlock.id)
+
+ return res.status(204).end()
+}
+
+async function unblockAccount (req: express.Request, res: express.Response) {
+ const accountBlock: AccountBlocklistModel = res.locals.accountBlock
+
+ await removeAccountFromBlocklist(accountBlock)
+
+ return res.status(204).end()
+}
+
+async function listBlockedServers (req: express.Request, res: express.Response) {
+ const user: UserModel = res.locals.oauth.token.User
+
+ const resultList = await ServerBlocklistModel.listForApi(user.Account.id, req.query.start, req.query.count, req.query.sort)
+
+ return res.json(getFormattedObjects(resultList.data, resultList.total))
+}
+
+async function blockServer (req: express.Request, res: express.Response) {
+ const user: UserModel = res.locals.oauth.token.User
+ const serverToBlock: ServerModel = res.locals.server
+
+ await addServerInBlocklist(user.Account.id, serverToBlock.id)
+
+ return res.status(204).end()
+}
+
+async function unblockServer (req: express.Request, res: express.Response) {
+ const serverBlock: ServerBlocklistModel = res.locals.serverBlock
+
+ await removeServerFromBlocklist(serverBlock)
+
+ return res.status(204).end()
+}
languageOneOf: req.query.languageOneOf,
tagsOneOf: req.query.tagsOneOf,
tagsAllOf: req.query.tagsAllOf,
+ filter: req.query.filter,
nsfw: buildNSFWFilter(res, req.query.nsfw),
withFiles: false,
- videoChannelId: videoChannelInstance.id
+ videoChannelId: videoChannelInstance.id,
+ user: res.locals.oauth ? res.locals.oauth.token.User : undefined
})
return res.json(getFormattedObjects(resultList.data, resultList.total))
import * as express from 'express'
import { asyncMiddleware, asyncRetryTransactionMiddleware, authenticate } from '../../../middlewares'
-import {
- addVideoCaptionValidator,
- deleteVideoCaptionValidator,
- listVideoCaptionsValidator
-} from '../../../middlewares/validators/video-captions'
+import { addVideoCaptionValidator, deleteVideoCaptionValidator, listVideoCaptionsValidator } from '../../../middlewares/validators'
import { createReqFiles } from '../../../helpers/express-utils'
import { CONFIG, sequelizeTypescript, VIDEO_CAPTIONS_MIMETYPE_EXT } from '../../../initializers'
import { getFormattedObjects } from '../../../helpers/utils'
import {
asyncMiddleware,
asyncRetryTransactionMiddleware,
- authenticate,
+ authenticate, optionalAuthenticate,
paginationValidator,
setDefaultPagination,
setDefaultSort
} from '../../../middlewares'
-import { videoCommentThreadsSortValidator } from '../../../middlewares/validators'
import {
addVideoCommentReplyValidator,
addVideoCommentThreadValidator,
listVideoCommentThreadsValidator,
listVideoThreadCommentsValidator,
- removeVideoCommentValidator
-} from '../../../middlewares/validators/video-comments'
+ removeVideoCommentValidator,
+ videoCommentThreadsSortValidator
+} from '../../../middlewares/validators'
import { VideoModel } from '../../../models/video/video'
import { VideoCommentModel } from '../../../models/video/video-comment'
import { auditLoggerFactory, CommentAuditView, getAuditIdFromRes } from '../../../helpers/audit-logger'
setDefaultSort,
setDefaultPagination,
asyncMiddleware(listVideoCommentThreadsValidator),
+ optionalAuthenticate,
asyncMiddleware(listVideoThreads)
)
videoCommentRouter.get('/:videoId/comment-threads/:threadId',
asyncMiddleware(listVideoThreadCommentsValidator),
+ optionalAuthenticate,
asyncMiddleware(listVideoThreadComments)
)
async function listVideoThreads (req: express.Request, res: express.Response, next: express.NextFunction) {
const video = res.locals.video as VideoModel
+ const user: UserModel = res.locals.oauth ? res.locals.oauth.token.User : undefined
+
let resultList: ResultList<VideoCommentModel>
if (video.commentsEnabled === true) {
- resultList = await VideoCommentModel.listThreadsForApi(video.id, req.query.start, req.query.count, req.query.sort)
+ resultList = await VideoCommentModel.listThreadsForApi(video.id, req.query.start, req.query.count, req.query.sort, user)
} else {
resultList = {
total: 0,
async function listVideoThreadComments (req: express.Request, res: express.Response, next: express.NextFunction) {
const video = res.locals.video as VideoModel
+ const user: UserModel = res.locals.oauth ? res.locals.oauth.token.User : undefined
+
let resultList: ResultList<VideoCommentModel>
if (video.commentsEnabled === true) {
- resultList = await VideoCommentModel.listThreadCommentsForApi(video.id, res.locals.videoCommentThread.id)
+ resultList = await VideoCommentModel.listThreadCommentsForApi(video.id, res.locals.videoCommentThread.id, user)
} else {
resultList = {
total: 0,
import { videoImportsRouter } from './import'
import { resetSequelizeInstance } from '../../../helpers/database-utils'
import { rename } from 'fs-extra'
+import { watchingRouter } from './watching'
const auditLogger = auditLoggerFactory('videos')
const videosRouter = express.Router()
videosRouter.use('/', videoCaptionsRouter)
videosRouter.use('/', videoImportsRouter)
videosRouter.use('/', ownershipVideoRouter)
+videosRouter.use('/', watchingRouter)
videosRouter.get('/categories', listVideoCategories)
videosRouter.get('/licences', listVideoLicences)
asyncMiddleware(getVideoDescription)
)
videosRouter.get('/:id',
+ optionalAuthenticate,
asyncMiddleware(videosGetValidator),
getVideo
)
tagsAllOf: req.query.tagsAllOf,
nsfw: buildNSFWFilter(res, req.query.nsfw),
filter: req.query.filter as VideoFilter,
- withFiles: false
+ withFiles: false,
+ user: res.locals.oauth ? res.locals.oauth.token.User : undefined
})
return res.json(getFormattedObjects(resultList.data, resultList.total))
--- /dev/null
+import * as express from 'express'
+import { UserWatchingVideo } from '../../../../shared'
+import { asyncMiddleware, asyncRetryTransactionMiddleware, authenticate, videoWatchingValidator } from '../../../middlewares'
+import { UserVideoHistoryModel } from '../../../models/account/user-video-history'
+import { UserModel } from '../../../models/account/user'
+
+const watchingRouter = express.Router()
+
+watchingRouter.put('/:videoId/watching',
+ authenticate,
+ asyncMiddleware(videoWatchingValidator),
+ asyncRetryTransactionMiddleware(userWatchVideo)
+)
+
+// ---------------------------------------------------------------------------
+
+export {
+ watchingRouter
+}
+
+// ---------------------------------------------------------------------------
+
+async function userWatchVideo (req: express.Request, res: express.Response) {
+ const user = res.locals.oauth.token.User as UserModel
+
+ const body: UserWatchingVideo = req.body
+ const { id: videoId } = res.locals.video as { id: number }
+
+ await UserVideoHistoryModel.upsert({
+ videoId,
+ userId: user.id,
+ currentTime: body.currentTime
+ })
+
+ return res.type('json').status(204).end()
+}
import * as express from 'express'
import { CONFIG, FEEDS, ROUTE_CACHE_LIFETIME } from '../initializers/constants'
import { THUMBNAILS_SIZE } from '../initializers'
-import { asyncMiddleware, setDefaultSort, videoCommentsFeedsValidator, videoFeedsValidator, videosSortValidator } from '../middlewares'
+import {
+ asyncMiddleware,
+ commonVideosFiltersValidator,
+ setDefaultSort,
+ videoCommentsFeedsValidator,
+ videoFeedsValidator,
+ videosSortValidator
+} from '../middlewares'
import { VideoModel } from '../models/video/video'
import * as Feed from 'pfeed'
import { AccountModel } from '../models/account/account'
videosSortValidator,
setDefaultSort,
asyncMiddleware(cacheRoute(ROUTE_CACHE_LIFETIME.FEEDS)),
+ commonVideosFiltersValidator,
asyncMiddleware(videoFeedsValidator),
asyncMiddleware(generateVideoFeed)
)
week: 3600000 * 24 * 7,
month: 3600000 * 24 * 30
}
+
export function parseDuration (duration: number | string): number {
if (typeof duration === 'number') return duration
throw new Error('Duration could not be properly parsed')
}
+export function parseBytes (value: string | number): number {
+ if (typeof value === 'number') return value
+
+ const tgm = /^(\d+)\s*TB\s*(\d+)\s*GB\s*(\d+)\s*MB$/
+ const tg = /^(\d+)\s*TB\s*(\d+)\s*GB$/
+ const tm = /^(\d+)\s*TB\s*(\d+)\s*MB$/
+ const gm = /^(\d+)\s*GB\s*(\d+)\s*MB$/
+ const t = /^(\d+)\s*TB$/
+ const g = /^(\d+)\s*GB$/
+ const m = /^(\d+)\s*MB$/
+ const b = /^(\d+)\s*B$/
+ let match
+
+ if (value.match(tgm)) {
+ match = value.match(tgm)
+ return parseInt(match[1], 10) * 1024 * 1024 * 1024 * 1024
+ + parseInt(match[2], 10) * 1024 * 1024 * 1024
+ + parseInt(match[3], 10) * 1024 * 1024
+ } else if (value.match(tg)) {
+ match = value.match(tg)
+ return parseInt(match[1], 10) * 1024 * 1024 * 1024 * 1024
+ + parseInt(match[2], 10) * 1024 * 1024 * 1024
+ } else if (value.match(tm)) {
+ match = value.match(tm)
+ return parseInt(match[1], 10) * 1024 * 1024 * 1024 * 1024
+ + parseInt(match[2], 10) * 1024 * 1024
+ } else if (value.match(gm)) {
+ match = value.match(gm)
+ return parseInt(match[1], 10) * 1024 * 1024 * 1024
+ + parseInt(match[2], 10) * 1024 * 1024
+ } else if (value.match(t)) {
+ match = value.match(t)
+ return parseInt(match[1], 10) * 1024 * 1024 * 1024 * 1024
+ } else if (value.match(g)) {
+ match = value.match(g)
+ return parseInt(match[1], 10) * 1024 * 1024 * 1024
+ } else if (value.match(m)) {
+ match = value.match(m)
+ return parseInt(match[1], 10) * 1024 * 1024
+ } else if (value.match(b)) {
+ match = value.match(b)
+ return parseInt(match[1], 10) * 1024
+ } else {
+ return parseInt(value, 10)
+ }
+}
+
function sanitizeUrl (url: string) {
const urlObject = new URL(url)
return url.type === 'Link' &&
(
- ACTIVITY_PUB.URL_MIME_TYPES.VIDEO.indexOf(url.mimeType) !== -1 &&
+ // TODO: remove mimeType (backward compatibility, introduced in v1.1.0)
+ ACTIVITY_PUB.URL_MIME_TYPES.VIDEO.indexOf(url.mediaType || url.mimeType) !== -1 &&
isActivityPubUrlValid(url.href) &&
validator.isInt(url.height + '', { min: 0 }) &&
validator.isInt(url.size + '', { min: 0 }) &&
(!url.fps || validator.isInt(url.fps + '', { min: -1 }))
) ||
(
- ACTIVITY_PUB.URL_MIME_TYPES.TORRENT.indexOf(url.mimeType) !== -1 &&
+ ACTIVITY_PUB.URL_MIME_TYPES.TORRENT.indexOf(url.mediaType || url.mimeType) !== -1 &&
isActivityPubUrlValid(url.href) &&
validator.isInt(url.height + '', { min: 0 })
) ||
(
- ACTIVITY_PUB.URL_MIME_TYPES.MAGNET.indexOf(url.mimeType) !== -1 &&
+ ACTIVITY_PUB.URL_MIME_TYPES.MAGNET.indexOf(url.mediaType || url.mimeType) !== -1 &&
validator.isLength(url.href, { min: 5 }) &&
validator.isInt(url.height + '', { min: 0 })
)
return exists(value) && nsfwPolicies.indexOf(value) !== -1
}
+function isUserWebTorrentEnabledValid (value: any) {
+ return isBooleanValid(value)
+}
+
function isUserAutoPlayVideoValid (value: any) {
return isBooleanValid(value)
}
isUserUsernameValid,
isUserEmailVerifiedValid,
isUserNSFWPolicyValid,
+ isUserWebTorrentEnabledValid,
isUserAutoPlayVideoValid,
isUserDisplayNameValid,
isUserDescriptionValid,
import { values } from 'lodash'
import 'multer'
import * as validator from 'validator'
-import { UserRight, VideoPrivacy, VideoRateType } from '../../../shared'
+import { UserRight, VideoFilter, VideoPrivacy, VideoRateType } from '../../../shared'
import {
CONSTRAINTS_FIELDS,
VIDEO_CATEGORIES,
const VIDEOS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEOS
+function isVideoFilterValid (filter: VideoFilter) {
+ return filter === 'local' || filter === 'all-local'
+}
+
function isVideoCategoryValid (value: any) {
return value === null || VIDEO_CATEGORIES[ value ] !== undefined
}
}
async function isVideoExist (id: string, res: Response, fetchType: VideoFetchType = 'all') {
- const video = await fetchVideo(id, fetchType)
+ const userId = res.locals.oauth ? res.locals.oauth.token.User.id : undefined
+
+ const video = await fetchVideo(id, fetchType, userId)
if (video === null) {
res.status(404)
isVideoExist,
isVideoImage,
isVideoChannelOfAccountExist,
- isVideoSupportValid
+ isVideoSupportValid,
+ isVideoFilterValid
}
import * as multer from 'multer'
import { CONFIG, REMOTE_SCHEME } from '../initializers'
import { logger } from './logger'
-import { User } from '../../shared/models/users'
import { deleteFileAsync, generateRandomString } from './utils'
import { extname } from 'path'
import { isArray } from './custom-validators/misc'
}
function isUserAbleToSearchRemoteURI (res: express.Response) {
- const user: User = res.locals.oauth ? res.locals.oauth.token.User : undefined
+ const user: UserModel = res.locals.oauth ? res.locals.oauth.token.User : undefined
return CONFIG.SEARCH.REMOTE_URI.ANONYMOUS === true ||
(CONFIG.SEARCH.REMOTE_URI.USERS === true && user !== undefined)
import * as ffmpeg from 'fluent-ffmpeg'
import { join } from 'path'
-import { VideoResolution } from '../../shared/models/videos'
+import { getTargetBitrate, VideoResolution } from '../../shared/models/videos'
import { CONFIG, FFMPEG_NICE, VIDEO_TRANSCODING_FPS } from '../initializers'
import { processImage } from './image-utils'
import { logger } from './logger'
return 0
}
+async function getVideoFileBitrate (path: string) {
+ return new Promise<number>((res, rej) => {
+ ffmpeg.ffprobe(path, (err, metadata) => {
+ if (err) return rej(err)
+
+ return res(metadata.format.bit_rate)
+ })
+ })
+}
+
function getDurationFromVideoFile (path: string) {
return new Promise<number>((res, rej) => {
ffmpeg.ffprobe(path, (err, metadata) => {
function transcode (options: TranscodeOptions) {
return new Promise<void>(async (res, rej) => {
- let command = ffmpeg(options.inputPath, { niceness: FFMPEG_NICE.TRANSCODING })
- .output(options.outputPath)
- .preset(standard)
-
- if (CONFIG.TRANSCODING.THREADS > 0) {
- // if we don't set any threads ffmpeg will chose automatically
- command = command.outputOption('-threads ' + CONFIG.TRANSCODING.THREADS)
- }
-
- let fps = await getVideoFileFPS(options.inputPath)
- if (options.resolution !== undefined) {
- // '?x720' or '720x?' for example
- const size = options.isPortraitMode === true ? `${options.resolution}x?` : `?x${options.resolution}`
- command = command.size(size)
-
+ try {
+ let fps = await getVideoFileFPS(options.inputPath)
// On small/medium resolutions, limit FPS
if (
+ options.resolution !== undefined &&
options.resolution < VIDEO_TRANSCODING_FPS.KEEP_ORIGIN_FPS_RESOLUTION_MIN &&
fps > VIDEO_TRANSCODING_FPS.AVERAGE
) {
fps = VIDEO_TRANSCODING_FPS.AVERAGE
}
- }
- if (fps) {
- // Hard FPS limits
- if (fps > VIDEO_TRANSCODING_FPS.MAX) fps = VIDEO_TRANSCODING_FPS.MAX
- else if (fps < VIDEO_TRANSCODING_FPS.MIN) fps = VIDEO_TRANSCODING_FPS.MIN
+ let command = ffmpeg(options.inputPath, { niceness: FFMPEG_NICE.TRANSCODING })
+ .output(options.outputPath)
+ command = await presetH264(command, options.resolution, fps)
- command = command.withFPS(fps)
- }
+ if (CONFIG.TRANSCODING.THREADS > 0) {
+ // if we don't set any threads ffmpeg will chose automatically
+ command = command.outputOption('-threads ' + CONFIG.TRANSCODING.THREADS)
+ }
+
+ if (options.resolution !== undefined) {
+ // '?x720' or '720x?' for example
+ const size = options.isPortraitMode === true ? `${options.resolution}x?` : `?x${options.resolution}`
+ command = command.size(size)
+ }
+
+ if (fps) {
+ // Hard FPS limits
+ if (fps > VIDEO_TRANSCODING_FPS.MAX) fps = VIDEO_TRANSCODING_FPS.MAX
+ else if (fps < VIDEO_TRANSCODING_FPS.MIN) fps = VIDEO_TRANSCODING_FPS.MIN
- command
- .on('error', (err, stdout, stderr) => {
- logger.error('Error in transcoding job.', { stdout, stderr })
- return rej(err)
- })
- .on('end', res)
- .run()
+ command = command.withFPS(fps)
+ }
+
+ command
+ .on('error', (err, stdout, stderr) => {
+ logger.error('Error in transcoding job.', { stdout, stderr })
+ return rej(err)
+ })
+ .on('end', res)
+ .run()
+ } catch (err) {
+ return rej(err)
+ }
})
}
transcode,
getVideoFileFPS,
computeResolutionsToTranscode,
- audio
+ audio,
+ getVideoFileBitrate
}
// ---------------------------------------------------------------------------
* and quality. Superfast and ultrafast will give you better
* performance, but then quality is noticeably worse.
*/
-function veryfast (_ffmpeg) {
- _ffmpeg
- .preset(standard)
- .outputOption('-preset:v veryfast')
- .outputOption(['--aq-mode=2', '--aq-strength=1.3'])
+async function presetH264VeryFast (command: ffmpeg.FfmpegCommand, resolution: VideoResolution, fps: number): Promise<ffmpeg.FfmpegCommand> {
+ let localCommand = await presetH264(command, resolution, fps)
+ localCommand = localCommand.outputOption('-preset:v veryfast')
+ .outputOption([ '--aq-mode=2', '--aq-strength=1.3' ])
/*
MAIN reference: https://slhck.info/video/2017/03/01/rate-control.html
Our target situation is closer to a livestream than a stream,
Make up for most of the loss of grain and macroblocking
with less computing power.
*/
+
+ return localCommand
}
/**
* A preset optimised for a stillimage audio video
*/
-function audio (_ffmpeg) {
- _ffmpeg
- .preset(veryfast)
- .outputOption('-tune stillimage')
+async function presetStillImageWithAudio (
+ command: ffmpeg.FfmpegCommand,
+ resolution: VideoResolution,
+ fps: number
+): Promise<ffmpeg.FfmpegCommand> {
+ let localCommand = await presetH264VeryFast(command, resolution, fps)
+ localCommand = localCommand.outputOption('-tune stillimage')
+
+ return localCommand
}
/**
* A toolbox to play with audio
*/
namespace audio {
- export const get = (_ffmpeg, pos: number | string = 0) => {
+ export const get = (option: ffmpeg.FfmpegCommand | string) => {
// without position, ffprobe considers the last input only
// we make it consider the first input only
// if you pass a file path to pos, then ffprobe acts on that file directly
return new Promise<{ absolutePath: string, audioStream?: any }>((res, rej) => {
- _ffmpeg.ffprobe(pos, (err,data) => {
+
+ function parseFfprobe (err: any, data: ffmpeg.FfprobeData) {
if (err) return rej(err)
if ('streams' in data) {
- const audioStream = data['streams'].find(stream => stream['codec_type'] === 'audio')
+ const audioStream = data.streams.find(stream => stream['codec_type'] === 'audio')
if (audioStream) {
return res({
absolutePath: data.format.filename,
})
}
}
+
return res({ absolutePath: data.format.filename })
- })
+ }
+
+ if (typeof option === 'string') {
+ return ffmpeg.ffprobe(option, parseFfprobe)
+ }
+
+ return option.ffprobe(parseFfprobe)
})
}
* As for the audio, quality '5' is the highest and ensures 96-112kbps/channel
* See https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_vbr
*/
-async function standard (_ffmpeg) {
- let localFfmpeg = _ffmpeg
+async function presetH264 (command: ffmpeg.FfmpegCommand, resolution: VideoResolution, fps: number): Promise<ffmpeg.FfmpegCommand> {
+ let localCommand = command
.format('mp4')
.videoCodec('libx264')
.outputOption('-level 3.1') // 3.1 is the minimal ressource allocation for our highest supported resolution
.outputOption('-b_strategy 1') // NOTE: b-strategy 1 - heuristic algorythm, 16 is optimal B-frames for it
.outputOption('-bf 16') // NOTE: Why 16: https://github.com/Chocobozzz/PeerTube/pull/774. b-strategy 2 -> B-frames<16
+ .outputOption('-pix_fmt yuv420p') // allows import of source material with incompatible pixel formats (e.g. MJPEG video)
.outputOption('-map_metadata -1') // strip all metadata
.outputOption('-movflags faststart')
- const _audio = await audio.get(localFfmpeg)
- if (!_audio.audioStream) {
- return localFfmpeg.noAudio()
- }
+ const parsedAudio = await audio.get(localCommand)
- // we favor VBR, if a good AAC encoder is available
- if ((await checkFFmpegEncoders()).get('libfdk_aac')) {
- return localFfmpeg
+ if (!parsedAudio.audioStream) {
+ localCommand = localCommand.noAudio()
+ } else if ((await checkFFmpegEncoders()).get('libfdk_aac')) { // we favor VBR, if a good AAC encoder is available
+ localCommand = localCommand
.audioCodec('libfdk_aac')
.audioQuality(5)
+ } else {
+ // we try to reduce the ceiling bitrate by making rough correspondances of bitrates
+ // of course this is far from perfect, but it might save some space in the end
+ const audioCodecName = parsedAudio.audioStream[ 'codec_name' ]
+ let bitrate: number
+ if (audio.bitrate[ audioCodecName ]) {
+ bitrate = audio.bitrate[ audioCodecName ](parsedAudio.audioStream[ 'bit_rate' ])
+
+ if (bitrate === -1) localCommand = localCommand.audioCodec('copy')
+ else if (bitrate !== undefined) localCommand = localCommand.audioBitrate(bitrate)
+ }
}
- // we try to reduce the ceiling bitrate by making rough correspondances of bitrates
- // of course this is far from perfect, but it might save some space in the end
- const audioCodecName = _audio.audioStream['codec_name']
- let bitrate: number
- if (audio.bitrate[audioCodecName]) {
- bitrate = audio.bitrate[audioCodecName](_audio.audioStream['bit_rate'])
-
- if (bitrate === -1) return localFfmpeg.audioCodec('copy')
- }
+ // Constrained Encoding (VBV)
+ // https://slhck.info/video/2017/03/01/rate-control.html
+ // https://trac.ffmpeg.org/wiki/Limiting%20the%20output%20bitrate
+ const targetBitrate = getTargetBitrate(resolution, fps, VIDEO_TRANSCODING_FPS)
+ localCommand = localCommand.outputOptions([`-maxrate ${ targetBitrate }`, `-bufsize ${ targetBitrate * 2 }`])
- if (bitrate !== undefined) return localFfmpeg.audioBitrate(bitrate)
+ // Keyframe interval of 2 seconds for faster seeking and resolution switching.
+ // https://streaminglearningcenter.com/blogs/whats-the-right-keyframe-interval.html
+ // https://superuser.com/a/908325
+ localCommand = localCommand.outputOption(`-g ${ fps * 2 }`)
- return localFfmpeg
+ return localCommand
}
return jsig.promises
.verify(signedDocument, options)
- .then((result: { verified: boolean }) => {
- logger.info('coucou', result)
- return result.verified
- })
+ .then((result: { verified: boolean }) => result.verified)
.catch(err => {
logger.error('Cannot check signature.', { err })
return false
const application = await ApplicationModel.load()
if (!application) throw Error('Could not load Application from database.')
- return application.Account.Actor
+ const actor = application.Account.Actor
+ actor.Account = application.Account
+
+ return actor
})
function generateVideoTmpPath (target: string | ParseTorrent) {
return require('../../../package.json').version
}
+/**
+ * From a filename like "ede4cba5-742b-46fa-a388-9a6eb3a3aeb3.mp4", returns
+ * only the "ede4cba5-742b-46fa-a388-9a6eb3a3aeb3" part. If the filename does
+ * not contain a UUID, returns null.
+ */
+function getUUIDFromFilename (filename: string) {
+ const regex = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/
+ const result = filename.match(regex)
+
+ if (!result || Array.isArray(result) === false) return null
+
+ return result[0]
+}
+
// ---------------------------------------------------------------------------
export {
getSecureTorrentName,
getServerActor,
getVersion,
- generateVideoTmpPath
+ generateVideoTmpPath,
+ getUUIDFromFilename
}
type VideoFetchType = 'all' | 'only-video' | 'id' | 'none'
-function fetchVideo (id: number | string, fetchType: VideoFetchType) {
- if (fetchType === 'all') return VideoModel.loadAndPopulateAccountAndServerAndTags(id)
+function fetchVideo (id: number | string, fetchType: VideoFetchType, userId?: number) {
+ if (fetchType === 'all') return VideoModel.loadAndPopulateAccountAndServerAndTags(id, undefined, userId)
if (fetchType === 'only-video') return VideoModel.load(id)
}
}
- checkFFmpegEncoders()
+ return checkFFmpegEncoders()
}
// Optional encoders, if present, can be used to improve transcoding
supportedOptionalEncoders = new Map<string, boolean>()
for (const encoder of optionalEncoders) {
- supportedOptionalEncoders.set(encoder,
- encoders[encoder] !== undefined
- )
+ supportedOptionalEncoders.set(encoder, encoders[encoder] !== undefined)
}
+
+ return supportedOptionalEncoders
}
// ---------------------------------------------------------------------------
import { JobType, VideoRateType, VideoState, VideosRedundancy } from '../../shared/models'
import { ActivityPubActorType } from '../../shared/models/activitypub'
import { FollowState } from '../../shared/models/actors'
-import { VideoAbuseState, VideoImportState, VideoPrivacy } from '../../shared/models/videos'
+import { VideoAbuseState, VideoImportState, VideoPrivacy, VideoTranscodingFPS } from '../../shared/models/videos'
// Do not use barrels, remain constants as independent as possible
-import { buildPath, isTestInstance, parseDuration, root, sanitizeHost, sanitizeUrl } from '../helpers/core-utils'
+import { buildPath, isTestInstance, parseDuration, parseBytes, root, sanitizeHost, sanitizeUrl } from '../helpers/core-utils'
import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type'
import { invert } from 'lodash'
import { CronRepeatOptions, EveryRepeatOptions } from 'bull'
// ---------------------------------------------------------------------------
-const LAST_MIGRATION_VERSION = 275
+const LAST_MIGRATION_VERSION = 285
// ---------------------------------------------------------------------------
VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'views', 'likes', 'trending' ],
VIDEOS_SEARCH: [ 'name', 'duration', 'createdAt', 'publishedAt', 'views', 'likes', 'match' ],
- VIDEO_CHANNELS_SEARCH: [ 'match', 'displayName', 'createdAt' ]
+ VIDEO_CHANNELS_SEARCH: [ 'match', 'displayName', 'createdAt' ],
+
+ ACCOUNTS_BLOCKLIST: [ 'createdAt' ],
+ SERVERS_BLOCKLIST: [ 'createdAt' ]
}
const OAUTH_LIFETIME = {
}
},
USER: {
- get VIDEO_QUOTA () { return config.get<number>('user.video_quota') },
- get VIDEO_QUOTA_DAILY () { return config.get<number>('user.video_quota_daily') }
+ get VIDEO_QUOTA () { return parseBytes(config.get<number>('user.video_quota')) },
+ get VIDEO_QUOTA_DAILY () { return parseBytes(config.get<number>('user.video_quota_daily')) }
},
TRANSCODING: {
get ENABLED () { return config.get<boolean>('transcoding.enabled') },
const CONSTRAINTS_FIELDS = {
USERS: {
NAME: { min: 3, max: 120 }, // Length
- DESCRIPTION: { min: 3, max: 250 }, // Length
+ DESCRIPTION: { min: 3, max: 1000 }, // Length
USERNAME: { min: 3, max: 20 }, // Length
PASSWORD: { min: 6, max: 255 }, // Length
VIDEO_QUOTA: { min: -1 },
},
VIDEO_CHANNELS: {
NAME: { min: 3, max: 120 }, // Length
- DESCRIPTION: { min: 3, max: 500 }, // Length
- SUPPORT: { min: 3, max: 500 }, // Length
+ DESCRIPTION: { min: 3, max: 1000 }, // Length
+ SUPPORT: { min: 3, max: 1000 }, // Length
URL: { min: 3, max: 2000 } // Length
},
VIDEO_CAPTIONS: {
LANGUAGE: { min: 1, max: 10 }, // Length
TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length
DESCRIPTION: { min: 3, max: 10000 }, // Length
- SUPPORT: { min: 3, max: 500 }, // Length
+ SUPPORT: { min: 3, max: 1000 }, // Length
IMAGE: {
EXTNAME: [ '.jpg', '.jpeg' ],
FILE_SIZE: {
}
let VIDEO_VIEW_LIFETIME = 60000 * 60 // 1 hour
-const VIDEO_TRANSCODING_FPS = {
+const VIDEO_TRANSCODING_FPS: VideoTranscodingFPS = {
MIN: 10,
AVERAGE: 30,
MAX: 60,
8: 'People',
9: 'Comedy',
10: 'Entertainment',
- 11: 'News',
+ 11: 'News & Politics',
12: 'How To',
13: 'Education',
14: 'Activism',
import { VideoViewModel } from '../models/video/video-views'
import { VideoChangeOwnershipModel } from '../models/video/video-change-ownership'
import { VideoRedundancyModel } from '../models/redundancy/video-redundancy'
+import { UserVideoHistoryModel } from '../models/account/user-video-history'
+import { AccountBlocklistModel } from '../models/account/account-blocklist'
+import { ServerBlocklistModel } from '../models/server/server-blocklist'
require('pg').defaults.parseInt8 = true // Avoid BIGINT to be converted to string
ScheduleVideoUpdateModel,
VideoImportModel,
VideoViewModel,
- VideoRedundancyModel
+ VideoRedundancyModel,
+ UserVideoHistoryModel,
+ AccountBlocklistModel,
+ ServerBlocklistModel
])
// Check extensions exist in the database
import * as Sequelize from 'sequelize'
-import { CONSTRAINTS_FIELDS } from '../constants'
async function up (utils: {
transaction: Sequelize.Transaction,
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max),
+ type: Sequelize.STRING(10000),
allowNull: true,
defaultValue: null
}
import * as Sequelize from 'sequelize'
-import { CONSTRAINTS_FIELDS } from '../index'
async function up (utils: {
transaction: Sequelize.Transaction,
}): Promise<void> {
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.SUPPORT.max),
+ type: Sequelize.STRING(500),
allowNull: true,
defaultValue: null
}
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_CHANNELS.SUPPORT.max),
+ type: Sequelize.STRING(500),
allowNull: true,
defaultValue: null
}
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.USERS.DESCRIPTION.max),
+ type: Sequelize.STRING(250),
allowNull: true,
defaultValue: null
}
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max),
+ type: Sequelize.STRING(10000),
allowNull: true,
defaultValue: null
}
import * as Sequelize from 'sequelize'
-import { CONSTRAINTS_FIELDS } from '../constants'
async function up (utils: {
transaction: Sequelize.Transaction
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.USERS.BLOCKED_REASON.max),
+ type: Sequelize.STRING(250),
allowNull: true,
defaultValue: null
}
import * as Sequelize from 'sequelize'
-import { CONSTRAINTS_FIELDS } from '../constants'
import { VideoAbuseState } from '../../../shared/models/videos'
async function up (utils: {
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_ABUSES.MODERATION_COMMENT.max),
+ type: Sequelize.STRING(300),
allowNull: true,
defaultValue: null
}
import * as Sequelize from 'sequelize'
-import { CONSTRAINTS_FIELDS } from '../constants'
import { VideoAbuseState } from '../../../shared/models/videos'
async function up (utils: {
{
const data = {
- type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_BLACKLIST.REASON.max),
+ type: Sequelize.STRING(300),
allowNull: true,
defaultValue: null
}
import * as Sequelize from 'sequelize'
-import { CONSTRAINTS_FIELDS } from '../constants'
async function up (utils: {
transaction: Sequelize.Transaction
--- /dev/null
+import * as Sequelize from 'sequelize'
+
+async function up (utils: {
+ transaction: Sequelize.Transaction
+ queryInterface: Sequelize.QueryInterface
+ sequelize: Sequelize.Sequelize
+}): Promise<any> {
+ {
+ const data = {
+ type: Sequelize.BOOLEAN,
+ allowNull: false,
+ defaultValue: true
+ }
+
+ await utils.queryInterface.addColumn('user', 'webTorrentEnabled', data)
+ }
+
+}
+
+async function down (utils: {
+ transaction: Sequelize.Transaction
+ queryInterface: Sequelize.QueryInterface
+ sequelize: Sequelize.Sequelize
+}): Promise<any> {
+ await utils.queryInterface.removeColumn('user', 'webTorrentEnabled')
+}
+
+export { up, down }
--- /dev/null
+import * as Sequelize from 'sequelize'
+
+async function up (utils: {
+ transaction: Sequelize.Transaction,
+ queryInterface: Sequelize.QueryInterface,
+ sequelize: Sequelize.Sequelize,
+ db: any
+}): Promise<void> {
+ {
+ const data = {
+ type: Sequelize.STRING(1000),
+ allowNull: true,
+ defaultValue: null
+ }
+ await utils.queryInterface.changeColumn('video', 'support', data)
+ }
+
+ {
+ const data = {
+ type: Sequelize.STRING(1000),
+ allowNull: true,
+ defaultValue: null
+ }
+ await utils.queryInterface.changeColumn('videoChannel', 'support', data)
+ }
+
+ {
+ const data = {
+ type: Sequelize.STRING(1000),
+ allowNull: true,
+ defaultValue: null
+ }
+ await utils.queryInterface.changeColumn('videoChannel', 'description', data)
+ }
+
+ {
+ const data = {
+ type: Sequelize.STRING(1000),
+ allowNull: true,
+ defaultValue: null
+ }
+ await utils.queryInterface.changeColumn('account', 'description', data)
+ }
+}
+
+function down (options) {
+ throw new Error('Not implemented.')
+}
+
+export {
+ up,
+ down
+}
import { ACTIVITY_PUB, JOB_REQUEST_TIMEOUT } from '../../initializers'
import { doRequest } from '../../helpers/requests'
import { logger } from '../../helpers/logger'
-import Bluebird = require('bluebird')
+import * as Bluebird from 'bluebird'
async function crawlCollectionPage <T> (uri: string, handler: (items: T[]) => Promise<any> | Bluebird<any>) {
logger.info('Crawling ActivityPub data on %s.', uri)
function isActivityVideoUrlObject (url: ActivityUrlObject): url is ActivityVideoUrlObject {
const mimeTypes = Object.keys(VIDEO_MIMETYPE_EXT)
- return mimeTypes.indexOf(url.mimeType) !== -1 && url.mimeType.startsWith('video/')
+ const urlMediaType = url.mediaType || url.mimeType
+ return mimeTypes.indexOf(urlMediaType) !== -1 && urlMediaType.startsWith('video/')
}
async function createVideo (videoObject: VideoTorrentObject, channelActor: ActorModel, waitThumbnail = false) {
for (const fileUrl of fileUrls) {
// Fetch associated magnet uri
const magnet = videoObject.url.find(u => {
- return u.mimeType === 'application/x-bittorrent;x-scheme-handler/magnet' && u.height === fileUrl.height
+ const mediaType = u.mediaType || u.mimeType
+ return mediaType === 'application/x-bittorrent;x-scheme-handler/magnet' && (u as any).height === fileUrl.height
})
if (!magnet) throw new Error('Cannot find associated magnet uri for file ' + fileUrl.href)
throw new Error('Cannot parse magnet URI ' + magnet.href)
}
+ const mediaType = fileUrl.mediaType || fileUrl.mimeType
const attribute = {
- extname: VIDEO_MIMETYPE_EXT[ fileUrl.mimeType ],
+ extname: VIDEO_MIMETYPE_EXT[ mediaType ],
infoHash: parsed.infoHash,
resolution: fileUrl.height,
size: fileUrl.size,
--- /dev/null
+import { sequelizeTypescript } from '../initializers'
+import { AccountBlocklistModel } from '../models/account/account-blocklist'
+import { ServerBlocklistModel } from '../models/server/server-blocklist'
+
+function addAccountInBlocklist (byAccountId: number, targetAccountId: number) {
+ return sequelizeTypescript.transaction(async t => {
+ return AccountBlocklistModel.upsert({
+ accountId: byAccountId,
+ targetAccountId: targetAccountId
+ }, { transaction: t })
+ })
+}
+
+function addServerInBlocklist (byAccountId: number, targetServerId: number) {
+ return sequelizeTypescript.transaction(async t => {
+ return ServerBlocklistModel.upsert({
+ accountId: byAccountId,
+ targetServerId
+ }, { transaction: t })
+ })
+}
+
+function removeAccountFromBlocklist (accountBlock: AccountBlocklistModel) {
+ return sequelizeTypescript.transaction(async t => {
+ return accountBlock.destroy({ transaction: t })
+ })
+}
+
+function removeServerFromBlocklist (serverBlock: ServerBlocklistModel) {
+ return sequelizeTypescript.transaction(async t => {
+ return serverBlock.destroy({ transaction: t })
+ })
+}
+
+export {
+ addAccountInBlocklist,
+ addServerInBlocklist,
+ removeAccountFromBlocklist,
+ removeServerFromBlocklist
+}
'og:video:url': embedUrl,
'og:video:secure_url': embedUrl,
- 'og:video:type': 'text/html',
+ 'og:video:type': 'video/mp4',
'og:video:width': EMBED_SIZE.width,
'og:video:height': EMBED_SIZE.height,
import { sequelizeTypescript } from '../../../initializers'
import * as Bluebird from 'bluebird'
import { computeResolutionsToTranscode } from '../../../helpers/ffmpeg-utils'
-import { importVideoFile, transcodeOriginalVideofile, optimizeOriginalVideofile } from '../../video-transcoding'
+import { importVideoFile, transcodeOriginalVideofile, optimizeVideofile } from '../../video-transcoding'
export type VideoFilePayload = {
videoUUID: string
await retryTransactionWrapper(onVideoFileTranscoderOrImportSuccess, video)
} else {
- await optimizeOriginalVideofile(video)
+ await optimizeVideofile(video)
await retryTransactionWrapper(onVideoFileOptimizerSuccess, video, payload.isNewVideo)
}
)
}
+ /************* Forgot password *************/
+
async setResetPasswordVerificationString (userId: number) {
const generatedString = await generateRandomString(32)
return this.getValue(this.generateResetPasswordKey(userId))
}
+ /************* Email verification *************/
+
async setVerifyEmailVerificationString (userId: number) {
const generatedString = await generateRandomString(32)
return this.getValue(this.generateVerifyEmailKey(userId))
}
+ /************* Views per IP *************/
+
setIPVideoView (ip: string, videoUUID: string) {
- return this.setValue(this.buildViewKey(ip, videoUUID), '1', VIDEO_VIEW_LIFETIME)
+ return this.setValue(this.generateViewKey(ip, videoUUID), '1', VIDEO_VIEW_LIFETIME)
}
async isVideoIPViewExists (ip: string, videoUUID: string) {
- return this.exists(this.buildViewKey(ip, videoUUID))
+ return this.exists(this.generateViewKey(ip, videoUUID))
}
+ /************* API cache *************/
+
async getCachedRoute (req: express.Request) {
- const cached = await this.getObject(this.buildCachedRouteKey(req))
+ const cached = await this.getObject(this.generateCachedRouteKey(req))
return cached as CachedRoute
}
(statusCode) ? { statusCode: statusCode.toString() } : null
)
- return this.setObject(this.buildCachedRouteKey(req), cached, lifetime)
+ return this.setObject(this.generateCachedRouteKey(req), cached, lifetime)
}
+ /************* Video views *************/
+
addVideoView (videoId: number) {
const keyIncr = this.generateVideoViewKey(videoId)
const keySet = this.generateVideosViewKey()
])
}
- generateVideosViewKey (hour?: number) {
+ /************* Keys generation *************/
+
+ generateCachedRouteKey (req: express.Request) {
+ return req.method + '-' + req.originalUrl
+ }
+
+ private generateVideosViewKey (hour?: number) {
if (!hour) hour = new Date().getHours()
return `videos-view-h${hour}`
}
- generateVideoViewKey (videoId: number, hour?: number) {
+ private generateVideoViewKey (videoId: number, hour?: number) {
if (!hour) hour = new Date().getHours()
return `video-view-${videoId}-h${hour}`
}
- generateResetPasswordKey (userId: number) {
+ private generateResetPasswordKey (userId: number) {
return 'reset-password-' + userId
}
- generateVerifyEmailKey (userId: number) {
+ private generateVerifyEmailKey (userId: number) {
return 'verify-email-' + userId
}
- buildViewKey (ip: string, videoUUID: string) {
+ private generateViewKey (ip: string, videoUUID: string) {
return videoUUID + '-' + ip
}
- buildCachedRouteKey (req: express.Request) {
- return req.method + '-' + req.originalUrl
- }
+ /************* Redis helpers *************/
private getValue (key: string) {
return new Promise<string>((res, rej) => {
})
}
+ private deleteFieldInHash (key: string, field: string) {
+ return new Promise<void>((res, rej) => {
+ this.client.hdel(this.prefix + key, field, err => err ? rej(err) : res())
+ })
+ }
+
private setValue (key: string, value: string, expirationMilliseconds: number) {
return new Promise<void>((res, rej) => {
this.client.set(this.prefix + key, value, 'PX', expirationMilliseconds, (err, ok) => {
})
}
+ private setValueInHash (key: string, field: string, value: string) {
+ return new Promise<void>((res, rej) => {
+ this.client.hset(this.prefix + key, field, value, (err) => {
+ if (err) return rej(err)
+
+ return res()
+ })
+ })
+ }
+
private increment (key: string) {
return new Promise<number>((res, rej) => {
this.client.incr(this.prefix + key, (err, value) => {
}
const parentCommentThread = idx[childComment.inReplyToCommentId]
- if (!parentCommentThread) {
- const msg = `Cannot format video thread tree, parent ${childComment.inReplyToCommentId} not found for child ${childComment.id}`
- throw new Error(msg)
- }
+ // Maybe the parent comment was blocked by the admin/user
+ if (!parentCommentThread) continue
parentCommentThread.children.push(childCommentThread)
idx[childComment.id] = childCommentThread
import { CONFIG } from '../initializers'
-import { join, extname } from 'path'
+import { extname, join } from 'path'
import { getVideoFileFPS, getVideoFileResolution, transcode } from '../helpers/ffmpeg-utils'
import { copy, remove, rename, stat } from 'fs-extra'
import { logger } from '../helpers/logger'
import { VideoFileModel } from '../models/video/video-file'
import { VideoModel } from '../models/video/video'
-async function optimizeOriginalVideofile (video: VideoModel) {
+async function optimizeVideofile (video: VideoModel, inputVideoFileArg?: VideoFileModel) {
const videosDirectory = CONFIG.STORAGE.VIDEOS_DIR
const newExtname = '.mp4'
- const inputVideoFile = video.getOriginalFile()
+
+ const inputVideoFile = inputVideoFileArg ? inputVideoFileArg : video.getOriginalFile()
const videoInputPath = join(videosDirectory, video.getVideoFilename(inputVideoFile))
const videoTranscodedPath = join(videosDirectory, video.id + '-transcoded' + newExtname)
}
export {
- optimizeOriginalVideofile,
+ optimizeVideofile,
transcodeOriginalVideofile,
importVideoFile
}
function cacheRoute (lifetimeArg: string | number) {
return async function (req: express.Request, res: express.Response, next: express.NextFunction) {
- const redisKey = Redis.Instance.buildCachedRouteKey(req)
+ const redisKey = Redis.Instance.generateCachedRouteKey(req)
try {
await lock.acquire(redisKey, async (done) => {
--- /dev/null
+import { body, param } from 'express-validator/check'
+import * as express from 'express'
+import { logger } from '../../helpers/logger'
+import { areValidationErrors } from './utils'
+import { isAccountNameWithHostExist } from '../../helpers/custom-validators/accounts'
+import { UserModel } from '../../models/account/user'
+import { AccountBlocklistModel } from '../../models/account/account-blocklist'
+import { isHostValid } from '../../helpers/custom-validators/servers'
+import { ServerBlocklistModel } from '../../models/server/server-blocklist'
+import { ServerModel } from '../../models/server/server'
+import { CONFIG } from '../../initializers'
+import { getServerActor } from '../../helpers/utils'
+
+const blockAccountValidator = [
+ body('accountName').exists().withMessage('Should have an account name with host'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking blockAccountByAccountValidator parameters', { parameters: req.body })
+
+ if (areValidationErrors(req, res)) return
+ if (!await isAccountNameWithHostExist(req.body.accountName, res)) return
+
+ const user = res.locals.oauth.token.User as UserModel
+ const accountToBlock = res.locals.account
+
+ if (user.Account.id === accountToBlock.id) {
+ res.status(409)
+ .send({ error: 'You cannot block yourself.' })
+ .end()
+
+ return
+ }
+
+ return next()
+ }
+]
+
+const unblockAccountByAccountValidator = [
+ param('accountName').exists().withMessage('Should have an account name with host'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking unblockAccountByAccountValidator parameters', { parameters: req.params })
+
+ if (areValidationErrors(req, res)) return
+ if (!await isAccountNameWithHostExist(req.params.accountName, res)) return
+
+ const user = res.locals.oauth.token.User as UserModel
+ const targetAccount = res.locals.account
+ if (!await isUnblockAccountExists(user.Account.id, targetAccount.id, res)) return
+
+ return next()
+ }
+]
+
+const unblockAccountByServerValidator = [
+ param('accountName').exists().withMessage('Should have an account name with host'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking unblockAccountByServerValidator parameters', { parameters: req.params })
+
+ if (areValidationErrors(req, res)) return
+ if (!await isAccountNameWithHostExist(req.params.accountName, res)) return
+
+ const serverActor = await getServerActor()
+ const targetAccount = res.locals.account
+ if (!await isUnblockAccountExists(serverActor.Account.id, targetAccount.id, res)) return
+
+ return next()
+ }
+]
+
+const blockServerValidator = [
+ body('host').custom(isHostValid).withMessage('Should have a valid host'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking serverGetValidator parameters', { parameters: req.body })
+
+ if (areValidationErrors(req, res)) return
+
+ const host: string = req.body.host
+
+ if (host === CONFIG.WEBSERVER.HOST) {
+ return res.status(409)
+ .send({ error: 'You cannot block your own server.' })
+ .end()
+ }
+
+ const server = await ServerModel.loadByHost(host)
+ if (!server) {
+ return res.status(404)
+ .send({ error: 'Server host not found.' })
+ .end()
+ }
+
+ res.locals.server = server
+
+ return next()
+ }
+]
+
+const unblockServerByAccountValidator = [
+ param('host').custom(isHostValid).withMessage('Should have an account name with host'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking unblockServerByAccountValidator parameters', { parameters: req.params })
+
+ if (areValidationErrors(req, res)) return
+
+ const user = res.locals.oauth.token.User as UserModel
+ if (!await isUnblockServerExists(user.Account.id, req.params.host, res)) return
+
+ return next()
+ }
+]
+
+const unblockServerByServerValidator = [
+ param('host').custom(isHostValid).withMessage('Should have an account name with host'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking unblockServerByServerValidator parameters', { parameters: req.params })
+
+ if (areValidationErrors(req, res)) return
+
+ const serverActor = await getServerActor()
+ if (!await isUnblockServerExists(serverActor.Account.id, req.params.host, res)) return
+
+ return next()
+ }
+]
+
+// ---------------------------------------------------------------------------
+
+export {
+ blockServerValidator,
+ blockAccountValidator,
+ unblockAccountByAccountValidator,
+ unblockServerByAccountValidator,
+ unblockAccountByServerValidator,
+ unblockServerByServerValidator
+}
+
+// ---------------------------------------------------------------------------
+
+async function isUnblockAccountExists (accountId: number, targetAccountId: number, res: express.Response) {
+ const accountBlock = await AccountBlocklistModel.loadByAccountAndTarget(accountId, targetAccountId)
+ if (!accountBlock) {
+ res.status(404)
+ .send({ error: 'Account block entry not found.' })
+ .end()
+
+ return false
+ }
+
+ res.locals.accountBlock = accountBlock
+
+ return true
+}
+
+async function isUnblockServerExists (accountId: number, host: string, res: express.Response) {
+ const serverBlock = await ServerBlocklistModel.loadByAccountAndHost(accountId, host)
+ if (!serverBlock) {
+ res.status(404)
+ .send({ error: 'Server block entry not found.' })
+ .end()
+
+ return false
+ }
+
+ res.locals.serverBlock = serverBlock
+
+ return true
+}
export * from './account'
+export * from './blocklist'
export * from './oembed'
export * from './activitypub'
export * from './pagination'
export * from './users'
export * from './user-subscriptions'
export * from './videos'
-export * from './video-abuses'
-export * from './video-blacklist'
-export * from './video-channels'
export * from './webfinger'
export * from './search'
-export * from './video-imports'
+export * from './server'
import { areValidationErrors } from './utils'
import { logger } from '../../helpers/logger'
import { query } from 'express-validator/check'
-import { isNumberArray, isStringArray, isNSFWQueryValid } from '../../helpers/custom-validators/search'
-import { isBooleanValid, isDateValid, toArray } from '../../helpers/custom-validators/misc'
+import { isDateValid } from '../../helpers/custom-validators/misc'
const videosSearchValidator = [
query('search').optional().not().isEmpty().withMessage('Should have a valid search'),
}
]
-const commonVideosFiltersValidator = [
- query('categoryOneOf')
- .optional()
- .customSanitizer(toArray)
- .custom(isNumberArray).withMessage('Should have a valid one of category array'),
- query('licenceOneOf')
- .optional()
- .customSanitizer(toArray)
- .custom(isNumberArray).withMessage('Should have a valid one of licence array'),
- query('languageOneOf')
- .optional()
- .customSanitizer(toArray)
- .custom(isStringArray).withMessage('Should have a valid one of language array'),
- query('tagsOneOf')
- .optional()
- .customSanitizer(toArray)
- .custom(isStringArray).withMessage('Should have a valid one of tags array'),
- query('tagsAllOf')
- .optional()
- .customSanitizer(toArray)
- .custom(isStringArray).withMessage('Should have a valid all of tags array'),
- query('nsfw')
- .optional()
- .custom(isNSFWQueryValid).withMessage('Should have a valid NSFW attribute'),
-
- (req: express.Request, res: express.Response, next: express.NextFunction) => {
- logger.debug('Checking commons video filters query', { parameters: req.query })
-
- if (areValidationErrors(req, res)) return
-
- return next()
- }
-]
-
// ---------------------------------------------------------------------------
export {
- commonVideosFiltersValidator,
videoChannelsSearchValidator,
videosSearchValidator
}
--- /dev/null
+import * as express from 'express'
+import { logger } from '../../helpers/logger'
+import { areValidationErrors } from './utils'
+import { isHostValid } from '../../helpers/custom-validators/servers'
+import { ServerModel } from '../../models/server/server'
+import { body } from 'express-validator/check'
+
+const serverGetValidator = [
+ body('host').custom(isHostValid).withMessage('Should have a valid host'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking serverGetValidator parameters', { parameters: req.body })
+
+ if (areValidationErrors(req, res)) return
+
+ const server = await ServerModel.loadByHost(req.body.host)
+ if (!server) {
+ return res.status(404)
+ .send({ error: 'Server host not found.' })
+ .end()
+ }
+
+ res.locals.server = server
+
+ return next()
+ }
+]
+
+// ---------------------------------------------------------------------------
+
+export {
+ serverGetValidator
+}
const SORTABLE_FOLLOWERS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.FOLLOWERS)
const SORTABLE_FOLLOWING_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.FOLLOWING)
const SORTABLE_USER_SUBSCRIPTIONS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.USER_SUBSCRIPTIONS)
+const SORTABLE_ACCOUNTS_BLOCKLIST_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.ACCOUNTS_BLOCKLIST)
+const SORTABLE_SERVERS_BLOCKLIST_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.SERVERS_BLOCKLIST)
const usersSortValidator = checkSort(SORTABLE_USERS_COLUMNS)
const accountsSortValidator = checkSort(SORTABLE_ACCOUNTS_COLUMNS)
const followersSortValidator = checkSort(SORTABLE_FOLLOWERS_COLUMNS)
const followingSortValidator = checkSort(SORTABLE_FOLLOWING_COLUMNS)
const userSubscriptionsSortValidator = checkSort(SORTABLE_USER_SUBSCRIPTIONS_COLUMNS)
+const accountsBlocklistSortValidator = checkSort(SORTABLE_ACCOUNTS_BLOCKLIST_COLUMNS)
+const serversBlocklistSortValidator = checkSort(SORTABLE_SERVERS_BLOCKLIST_COLUMNS)
// ---------------------------------------------------------------------------
jobsSortValidator,
videoCommentThreadsSortValidator,
userSubscriptionsSortValidator,
- videoChannelsSearchSortValidator
+ videoChannelsSearchSortValidator,
+ accountsBlocklistSortValidator,
+ serversBlocklistSortValidator
}
--- /dev/null
+export * from './video-abuses'
+export * from './video-blacklist'
+export * from './video-captions'
+export * from './video-channels'
+export * from './video-comments'
+export * from './video-imports'
+export * from './video-watch'
+export * from './videos'
import * as express from 'express'
import 'express-validator'
import { body, param } from 'express-validator/check'
-import { isIdOrUUIDValid, isIdValid } from '../../helpers/custom-validators/misc'
-import { isVideoExist } from '../../helpers/custom-validators/videos'
-import { logger } from '../../helpers/logger'
-import { areValidationErrors } from './utils'
+import { isIdOrUUIDValid, isIdValid } from '../../../helpers/custom-validators/misc'
+import { isVideoExist } from '../../../helpers/custom-validators/videos'
+import { logger } from '../../../helpers/logger'
+import { areValidationErrors } from '../utils'
import {
isVideoAbuseExist,
isVideoAbuseModerationCommentValid,
isVideoAbuseReasonValid,
isVideoAbuseStateValid
-} from '../../helpers/custom-validators/video-abuses'
+} from '../../../helpers/custom-validators/video-abuses'
const videoAbuseReportValidator = [
param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid videoId'),
import * as express from 'express'
import { body, param } from 'express-validator/check'
-import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc'
-import { isVideoExist } from '../../helpers/custom-validators/videos'
-import { logger } from '../../helpers/logger'
-import { areValidationErrors } from './utils'
-import { isVideoBlacklistExist, isVideoBlacklistReasonValid } from '../../helpers/custom-validators/video-blacklist'
+import { isIdOrUUIDValid } from '../../../helpers/custom-validators/misc'
+import { isVideoExist } from '../../../helpers/custom-validators/videos'
+import { logger } from '../../../helpers/logger'
+import { areValidationErrors } from '../utils'
+import { isVideoBlacklistExist, isVideoBlacklistReasonValid } from '../../../helpers/custom-validators/video-blacklist'
const videosBlacklistRemoveValidator = [
param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid videoId'),
import * as express from 'express'
-import { areValidationErrors } from './utils'
-import { checkUserCanManageVideo, isVideoExist } from '../../helpers/custom-validators/videos'
-import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc'
+import { areValidationErrors } from '../utils'
+import { checkUserCanManageVideo, isVideoExist } from '../../../helpers/custom-validators/videos'
+import { isIdOrUUIDValid } from '../../../helpers/custom-validators/misc'
import { body, param } from 'express-validator/check'
-import { CONSTRAINTS_FIELDS } from '../../initializers'
-import { UserRight } from '../../../shared'
-import { logger } from '../../helpers/logger'
-import { isVideoCaptionExist, isVideoCaptionFile, isVideoCaptionLanguageValid } from '../../helpers/custom-validators/video-captions'
-import { cleanUpReqFiles } from '../../helpers/express-utils'
+import { CONSTRAINTS_FIELDS } from '../../../initializers'
+import { UserRight } from '../../../../shared'
+import { logger } from '../../../helpers/logger'
+import { isVideoCaptionExist, isVideoCaptionFile, isVideoCaptionLanguageValid } from '../../../helpers/custom-validators/video-captions'
+import { cleanUpReqFiles } from '../../../helpers/express-utils'
const addVideoCaptionValidator = [
param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid video id'),
import * as express from 'express'
import { body, param } from 'express-validator/check'
-import { UserRight } from '../../../shared'
-import { isAccountNameWithHostExist } from '../../helpers/custom-validators/accounts'
+import { UserRight } from '../../../../shared'
+import { isAccountNameWithHostExist } from '../../../helpers/custom-validators/accounts'
import {
isLocalVideoChannelNameExist,
isVideoChannelDescriptionValid,
isVideoChannelNameValid,
isVideoChannelNameWithHostExist,
isVideoChannelSupportValid
-} from '../../helpers/custom-validators/video-channels'
-import { logger } from '../../helpers/logger'
-import { UserModel } from '../../models/account/user'
-import { VideoChannelModel } from '../../models/video/video-channel'
-import { areValidationErrors } from './utils'
-import { isActorPreferredUsernameValid } from '../../helpers/custom-validators/activitypub/actor'
-import { ActorModel } from '../../models/activitypub/actor'
+} from '../../../helpers/custom-validators/video-channels'
+import { logger } from '../../../helpers/logger'
+import { UserModel } from '../../../models/account/user'
+import { VideoChannelModel } from '../../../models/video/video-channel'
+import { areValidationErrors } from '../utils'
+import { isActorPreferredUsernameValid } from '../../../helpers/custom-validators/activitypub/actor'
+import { ActorModel } from '../../../models/activitypub/actor'
const listVideoAccountChannelsValidator = [
param('accountName').exists().withMessage('Should have a valid account name'),
import * as express from 'express'
import { body, param } from 'express-validator/check'
-import { UserRight } from '../../../shared'
-import { isIdOrUUIDValid, isIdValid } from '../../helpers/custom-validators/misc'
-import { isValidVideoCommentText } from '../../helpers/custom-validators/video-comments'
-import { isVideoExist } from '../../helpers/custom-validators/videos'
-import { logger } from '../../helpers/logger'
-import { UserModel } from '../../models/account/user'
-import { VideoModel } from '../../models/video/video'
-import { VideoCommentModel } from '../../models/video/video-comment'
-import { areValidationErrors } from './utils'
+import { UserRight } from '../../../../shared'
+import { isIdOrUUIDValid, isIdValid } from '../../../helpers/custom-validators/misc'
+import { isValidVideoCommentText } from '../../../helpers/custom-validators/video-comments'
+import { isVideoExist } from '../../../helpers/custom-validators/videos'
+import { logger } from '../../../helpers/logger'
+import { UserModel } from '../../../models/account/user'
+import { VideoModel } from '../../../models/video/video'
+import { VideoCommentModel } from '../../../models/video/video-comment'
+import { areValidationErrors } from '../utils'
const listVideoCommentThreadsValidator = [
param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid videoId'),
import * as express from 'express'
import { body } from 'express-validator/check'
-import { isIdValid } from '../../helpers/custom-validators/misc'
-import { logger } from '../../helpers/logger'
-import { areValidationErrors } from './utils'
+import { isIdValid } from '../../../helpers/custom-validators/misc'
+import { logger } from '../../../helpers/logger'
+import { areValidationErrors } from '../utils'
import { getCommonVideoAttributes } from './videos'
-import { isVideoImportTargetUrlValid, isVideoImportTorrentFile } from '../../helpers/custom-validators/video-imports'
-import { cleanUpReqFiles } from '../../helpers/express-utils'
-import { isVideoChannelOfAccountExist, isVideoMagnetUriValid, isVideoNameValid } from '../../helpers/custom-validators/videos'
-import { CONFIG } from '../../initializers/constants'
-import { CONSTRAINTS_FIELDS } from '../../initializers'
+import { isVideoImportTargetUrlValid, isVideoImportTorrentFile } from '../../../helpers/custom-validators/video-imports'
+import { cleanUpReqFiles } from '../../../helpers/express-utils'
+import { isVideoChannelOfAccountExist, isVideoMagnetUriValid, isVideoNameValid } from '../../../helpers/custom-validators/videos'
+import { CONFIG } from '../../../initializers/constants'
+import { CONSTRAINTS_FIELDS } from '../../../initializers'
const videoImportAddValidator = getCommonVideoAttributes().concat([
body('channelId')
--- /dev/null
+import { body, param } from 'express-validator/check'
+import * as express from 'express'
+import { isIdOrUUIDValid } from '../../../helpers/custom-validators/misc'
+import { isVideoExist } from '../../../helpers/custom-validators/videos'
+import { areValidationErrors } from '../utils'
+import { logger } from '../../../helpers/logger'
+
+const videoWatchingValidator = [
+ param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid id'),
+ body('currentTime')
+ .toInt()
+ .isInt().withMessage('Should have correct current time'),
+
+ async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking videoWatching parameters', { parameters: req.body })
+
+ if (areValidationErrors(req, res)) return
+ if (!await isVideoExist(req.params.videoId, res, 'id')) return
+
+ return next()
+ }
+]
+
+// ---------------------------------------------------------------------------
+
+export {
+ videoWatchingValidator
+}
import * as express from 'express'
import 'express-validator'
-import { body, param, ValidationChain } from 'express-validator/check'
-import { UserRight, VideoChangeOwnershipStatus, VideoPrivacy } from '../../../shared'
+import { body, param, query, ValidationChain } from 'express-validator/check'
+import { UserRight, VideoChangeOwnershipStatus, VideoPrivacy } from '../../../../shared'
import {
isBooleanValid,
isDateValid,
isIdOrUUIDValid,
isIdValid,
isUUIDValid,
+ toArray,
toIntOrNull,
toValueOrNull
-} from '../../helpers/custom-validators/misc'
+} from '../../../helpers/custom-validators/misc'
import {
checkUserCanManageVideo,
isScheduleVideoUpdatePrivacyValid,
isVideoDescriptionValid,
isVideoExist,
isVideoFile,
+ isVideoFilterValid,
isVideoImage,
isVideoLanguageValid,
isVideoLicenceValid,
isVideoRatingTypeValid,
isVideoSupportValid,
isVideoTagsValid
-} from '../../helpers/custom-validators/videos'
-import { getDurationFromVideoFile } from '../../helpers/ffmpeg-utils'
-import { logger } from '../../helpers/logger'
-import { CONSTRAINTS_FIELDS } from '../../initializers'
-import { VideoShareModel } from '../../models/video/video-share'
-import { authenticate } from '../oauth'
-import { areValidationErrors } from './utils'
-import { cleanUpReqFiles } from '../../helpers/express-utils'
-import { VideoModel } from '../../models/video/video'
-import { UserModel } from '../../models/account/user'
-import { checkUserCanTerminateOwnershipChange, doesChangeVideoOwnershipExist } from '../../helpers/custom-validators/video-ownership'
-import { VideoChangeOwnershipAccept } from '../../../shared/models/videos/video-change-ownership-accept.model'
-import { VideoChangeOwnershipModel } from '../../models/video/video-change-ownership'
-import { AccountModel } from '../../models/account/account'
-import { VideoFetchType } from '../../helpers/video'
+} from '../../../helpers/custom-validators/videos'
+import { getDurationFromVideoFile } from '../../../helpers/ffmpeg-utils'
+import { logger } from '../../../helpers/logger'
+import { CONSTRAINTS_FIELDS } from '../../../initializers'
+import { VideoShareModel } from '../../../models/video/video-share'
+import { authenticate } from '../../oauth'
+import { areValidationErrors } from '../utils'
+import { cleanUpReqFiles } from '../../../helpers/express-utils'
+import { VideoModel } from '../../../models/video/video'
+import { UserModel } from '../../../models/account/user'
+import { checkUserCanTerminateOwnershipChange, doesChangeVideoOwnershipExist } from '../../../helpers/custom-validators/video-ownership'
+import { VideoChangeOwnershipAccept } from '../../../../shared/models/videos/video-change-ownership-accept.model'
+import { VideoChangeOwnershipModel } from '../../../models/video/video-change-ownership'
+import { AccountModel } from '../../../models/account/account'
+import { VideoFetchType } from '../../../helpers/video'
+import { isNSFWQueryValid, isNumberArray, isStringArray } from '../../../helpers/custom-validators/search'
const videosAddValidator = getCommonVideoAttributes().concat([
body('videofile')
if (isAble === false) {
res.status(403)
.json({ error: 'The user video quota is exceeded with this video.' })
- .end()
return cleanUpReqFiles(req)
}
logger.error('Invalid input file in videosAddValidator.', { err })
res.status(400)
.json({ error: 'Invalid input file.' })
- .end()
return cleanUpReqFiles(req)
}
cleanUpReqFiles(req)
return res.status(409)
.json({ error: 'Cannot set "private" a video that was not private.' })
- .end()
}
if (req.body.channelId && !await isVideoChannelOfAccountExist(req.body.channelId, user, res)) return cleanUpReqFiles(req)
if (video.VideoChannel.Account.userId !== user.id && !user.hasRight(UserRight.MANAGE_VIDEO_BLACKLIST)) {
return res.status(403)
.json({ error: 'Cannot get this private or blacklisted video.' })
- .end()
}
return next()
const nextOwner = await AccountModel.loadLocalByName(req.body.username)
if (!nextOwner) {
res.status(400)
- .type('json')
- .end()
+ .json({ error: 'Changing video ownership to a remote account is not supported yet' })
+
return
}
res.locals.nextOwner = nextOwner
} else {
res.status(403)
.json({ error: 'Ownership already accepted or refused' })
- .end()
+
return
}
}
if (isAble === false) {
res.status(403)
.json({ error: 'The user video quota is exceeded with this video.' })
- .end()
+
return
}
] as (ValidationChain | express.Handler)[]
}
+const commonVideosFiltersValidator = [
+ query('categoryOneOf')
+ .optional()
+ .customSanitizer(toArray)
+ .custom(isNumberArray).withMessage('Should have a valid one of category array'),
+ query('licenceOneOf')
+ .optional()
+ .customSanitizer(toArray)
+ .custom(isNumberArray).withMessage('Should have a valid one of licence array'),
+ query('languageOneOf')
+ .optional()
+ .customSanitizer(toArray)
+ .custom(isStringArray).withMessage('Should have a valid one of language array'),
+ query('tagsOneOf')
+ .optional()
+ .customSanitizer(toArray)
+ .custom(isStringArray).withMessage('Should have a valid one of tags array'),
+ query('tagsAllOf')
+ .optional()
+ .customSanitizer(toArray)
+ .custom(isStringArray).withMessage('Should have a valid all of tags array'),
+ query('nsfw')
+ .optional()
+ .custom(isNSFWQueryValid).withMessage('Should have a valid NSFW attribute'),
+ query('filter')
+ .optional()
+ .custom(isVideoFilterValid).withMessage('Should have a valid filter attribute'),
+
+ (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ logger.debug('Checking commons video filters query', { parameters: req.query })
+
+ if (areValidationErrors(req, res)) return
+
+ const user: UserModel = res.locals.oauth ? res.locals.oauth.token.User : undefined
+ if (req.query.filter === 'all-local' && (!user || user.hasRight(UserRight.SEE_ALL_VIDEOS) === false)) {
+ res.status(401)
+ .json({ error: 'You are not allowed to see all local videos.' })
+
+ return
+ }
+
+ return next()
+ }
+]
+
// ---------------------------------------------------------------------------
export {
videosTerminateChangeOwnershipValidator,
videosAcceptChangeOwnershipValidator,
- getCommonVideoAttributes
+ getCommonVideoAttributes,
+
+ commonVideosFiltersValidator
}
// ---------------------------------------------------------------------------
if (!req.body.scheduleUpdate.updateAt) {
res.status(400)
.json({ error: 'Schedule update at is mandatory.' })
- .end()
return true
}
--- /dev/null
+import { BelongsTo, Column, CreatedAt, ForeignKey, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
+import { AccountModel } from './account'
+import { getSort } from '../utils'
+import { AccountBlock } from '../../../shared/models/blocklist'
+
+enum ScopeNames {
+ WITH_ACCOUNTS = 'WITH_ACCOUNTS'
+}
+
+@Scopes({
+ [ScopeNames.WITH_ACCOUNTS]: {
+ include: [
+ {
+ model: () => AccountModel,
+ required: true,
+ as: 'ByAccount'
+ },
+ {
+ model: () => AccountModel,
+ required: true,
+ as: 'BlockedAccount'
+ }
+ ]
+ }
+})
+
+@Table({
+ tableName: 'accountBlocklist',
+ indexes: [
+ {
+ fields: [ 'accountId', 'targetAccountId' ],
+ unique: true
+ },
+ {
+ fields: [ 'targetAccountId' ]
+ }
+ ]
+})
+export class AccountBlocklistModel extends Model<AccountBlocklistModel> {
+
+ @CreatedAt
+ createdAt: Date
+
+ @UpdatedAt
+ updatedAt: Date
+
+ @ForeignKey(() => AccountModel)
+ @Column
+ accountId: number
+
+ @BelongsTo(() => AccountModel, {
+ foreignKey: {
+ name: 'accountId',
+ allowNull: false
+ },
+ as: 'ByAccount',
+ onDelete: 'CASCADE'
+ })
+ ByAccount: AccountModel
+
+ @ForeignKey(() => AccountModel)
+ @Column
+ targetAccountId: number
+
+ @BelongsTo(() => AccountModel, {
+ foreignKey: {
+ name: 'targetAccountId',
+ allowNull: false
+ },
+ as: 'BlockedAccount',
+ onDelete: 'CASCADE'
+ })
+ BlockedAccount: AccountModel
+
+ static loadByAccountAndTarget (accountId: number, targetAccountId: number) {
+ const query = {
+ where: {
+ accountId,
+ targetAccountId
+ }
+ }
+
+ return AccountBlocklistModel.findOne(query)
+ }
+
+ static listForApi (accountId: number, start: number, count: number, sort: string) {
+ const query = {
+ offset: start,
+ limit: count,
+ order: getSort(sort),
+ where: {
+ accountId
+ }
+ }
+
+ return AccountBlocklistModel
+ .scope([ ScopeNames.WITH_ACCOUNTS ])
+ .findAndCountAll(query)
+ .then(({ rows, count }) => {
+ return { total: count, data: rows }
+ })
+ }
+
+ toFormattedJSON (): AccountBlock {
+ return {
+ byAccount: this.ByAccount.toFormattedJSON(),
+ blockedAccount: this.BlockedAccount.toFormattedJSON(),
+ createdAt: this.createdAt
+ }
+ }
+}
displayName: this.getDisplayName(),
description: this.description,
createdAt: this.createdAt,
- updatedAt: this.updatedAt
+ updatedAt: this.updatedAt,
+ userId: this.userId ? this.userId : undefined
}
return Object.assign(actor, account)
--- /dev/null
+import { AllowNull, BelongsTo, Column, CreatedAt, ForeignKey, IsInt, Min, Model, Table, UpdatedAt } from 'sequelize-typescript'
+import { VideoModel } from '../video/video'
+import { UserModel } from './user'
+
+@Table({
+ tableName: 'userVideoHistory',
+ indexes: [
+ {
+ fields: [ 'userId', 'videoId' ],
+ unique: true
+ },
+ {
+ fields: [ 'userId' ]
+ },
+ {
+ fields: [ 'videoId' ]
+ }
+ ]
+})
+export class UserVideoHistoryModel extends Model<UserVideoHistoryModel> {
+ @CreatedAt
+ createdAt: Date
+
+ @UpdatedAt
+ updatedAt: Date
+
+ @AllowNull(false)
+ @IsInt
+ @Column
+ currentTime: number
+
+ @ForeignKey(() => VideoModel)
+ @Column
+ videoId: number
+
+ @BelongsTo(() => VideoModel, {
+ foreignKey: {
+ allowNull: false
+ },
+ onDelete: 'CASCADE'
+ })
+ Video: VideoModel
+
+ @ForeignKey(() => UserModel)
+ @Column
+ userId: number
+
+ @BelongsTo(() => UserModel, {
+ foreignKey: {
+ allowNull: false
+ },
+ onDelete: 'CASCADE'
+ })
+ User: UserModel
+}
isUserRoleValid,
isUserUsernameValid,
isUserVideoQuotaDailyValid,
- isUserVideoQuotaValid
+ isUserVideoQuotaValid,
+ isUserWebTorrentEnabledValid
} from '../../helpers/custom-validators/users'
import { comparePassword, cryptPassword } from '../../helpers/peertube-crypto'
import { OAuthTokenModel } from '../oauth/oauth-token'
@Column(DataType.ENUM(values(NSFW_POLICY_TYPES)))
nsfwPolicy: NSFWPolicyType
+ @AllowNull(false)
+ @Default(true)
+ @Is('UserWebTorrentEnabled', value => throwIfNotValid(value, isUserWebTorrentEnabledValid, 'WebTorrent enabled'))
+ @Column
+ webTorrentEnabled: boolean
+
@AllowNull(false)
@Default(true)
@Is('UserAutoPlayVideo', value => throwIfNotValid(value, isUserAutoPlayVideoValid, 'auto play video boolean'))
return this.count()
}
- static listForApi (start: number, count: number, sort: string) {
+ static listForApi (start: number, count: number, sort: string, search?: string) {
+ let where = undefined
+ if (search) {
+ where = {
+ [Sequelize.Op.or]: [
+ {
+ email: {
+ [Sequelize.Op.iLike]: '%' + search + '%'
+ }
+ },
+ {
+ username: {
+ [ Sequelize.Op.iLike ]: '%' + search + '%'
+ }
+ }
+ ]
+ }
+ }
+
const query = {
attributes: {
include: [
},
offset: start,
limit: count,
- order: getSort(sort)
+ order: getSort(sort),
+ where
}
return UserModel.findAndCountAll(query)
email: this.email,
emailVerified: this.emailVerified,
nsfwPolicy: this.nsfwPolicy,
+ webTorrentEnabled: this.webTorrentEnabled,
autoPlayVideo: this.autoPlayVideo,
role: this.role,
roleLabel: USER_ROLE_LABELS[ this.role ],
return ActorFollowModel.findAll(query)
}
- static listFollowingForApi (id: number, start: number, count: number, sort: string) {
+ static listFollowingForApi (id: number, start: number, count: number, sort: string, search?: string) {
const query = {
distinct: true,
offset: start,
model: ActorModel,
as: 'ActorFollowing',
required: true,
- include: [ ServerModel ]
+ include: [
+ {
+ model: ServerModel,
+ required: true,
+ where: search ? {
+ host: {
+ [Sequelize.Op.iLike]: '%' + search + '%'
+ }
+ } : undefined
+ }
+ ]
}
]
}
})
}
+ static listFollowersForApi (id: number, start: number, count: number, sort: string, search?: string) {
+ const query = {
+ distinct: true,
+ offset: start,
+ limit: count,
+ order: getSort(sort),
+ include: [
+ {
+ model: ActorModel,
+ required: true,
+ as: 'ActorFollower',
+ include: [
+ {
+ model: ServerModel,
+ required: true,
+ where: search ? {
+ host: {
+ [ Sequelize.Op.iLike ]: '%' + search + '%'
+ }
+ } : undefined
+ }
+ ]
+ },
+ {
+ model: ActorModel,
+ as: 'ActorFollowing',
+ required: true,
+ where: {
+ id
+ }
+ }
+ ]
+ }
+
+ return ActorFollowModel.findAndCountAll(query)
+ .then(({ rows, count }) => {
+ return {
+ data: rows,
+ total: count
+ }
+ })
+ }
+
static listSubscriptionsForApi (id: number, start: number, count: number, sort: string) {
const query = {
attributes: [],
})
}
- static listFollowersForApi (id: number, start: number, count: number, sort: string) {
- const query = {
- distinct: true,
- offset: start,
- limit: count,
- order: getSort(sort),
- include: [
- {
- model: ActorModel,
- required: true,
- as: 'ActorFollower',
- include: [ ServerModel ]
- },
- {
- model: ActorModel,
- as: 'ActorFollowing',
- required: true,
- where: {
- id
- }
- }
- ]
- }
-
- return ActorFollowModel.findAndCountAll(query)
- .then(({ rows, count }) => {
- return {
- data: rows,
- total: count
- }
- })
- }
-
static listAcceptedFollowerUrlsForApi (actorIds: number[], t: Sequelize.Transaction, start?: number, count?: number) {
return ActorFollowModel.createListAcceptedFollowForApiQuery('followers', actorIds, t, start, count)
}
url: {
type: 'Link',
mimeType: VIDEO_EXT_MIMETYPE[ this.VideoFile.extname ] as any,
+ mediaType: VIDEO_EXT_MIMETYPE[ this.VideoFile.extname ] as any,
href: this.fileUrl,
height: this.VideoFile.resolution,
size: this.VideoFile.size,
--- /dev/null
+import { BelongsTo, Column, CreatedAt, ForeignKey, Model, Scopes, Table, UpdatedAt } from 'sequelize-typescript'
+import { AccountModel } from '../account/account'
+import { ServerModel } from './server'
+import { ServerBlock } from '../../../shared/models/blocklist'
+import { getSort } from '../utils'
+
+enum ScopeNames {
+ WITH_ACCOUNT = 'WITH_ACCOUNT',
+ WITH_SERVER = 'WITH_SERVER'
+}
+
+@Scopes({
+ [ScopeNames.WITH_ACCOUNT]: {
+ include: [
+ {
+ model: () => AccountModel,
+ required: true
+ }
+ ]
+ },
+ [ScopeNames.WITH_SERVER]: {
+ include: [
+ {
+ model: () => ServerModel,
+ required: true
+ }
+ ]
+ }
+})
+
+@Table({
+ tableName: 'serverBlocklist',
+ indexes: [
+ {
+ fields: [ 'accountId', 'targetServerId' ],
+ unique: true
+ },
+ {
+ fields: [ 'targetServerId' ]
+ }
+ ]
+})
+export class ServerBlocklistModel extends Model<ServerBlocklistModel> {
+
+ @CreatedAt
+ createdAt: Date
+
+ @UpdatedAt
+ updatedAt: Date
+
+ @ForeignKey(() => AccountModel)
+ @Column
+ accountId: number
+
+ @BelongsTo(() => AccountModel, {
+ foreignKey: {
+ name: 'accountId',
+ allowNull: false
+ },
+ onDelete: 'CASCADE'
+ })
+ ByAccount: AccountModel
+
+ @ForeignKey(() => ServerModel)
+ @Column
+ targetServerId: number
+
+ @BelongsTo(() => ServerModel, {
+ foreignKey: {
+ name: 'targetServerId',
+ allowNull: false
+ },
+ onDelete: 'CASCADE'
+ })
+ BlockedServer: ServerModel
+
+ static loadByAccountAndHost (accountId: number, host: string) {
+ const query = {
+ where: {
+ accountId
+ },
+ include: [
+ {
+ model: ServerModel,
+ where: {
+ host
+ },
+ required: true
+ }
+ ]
+ }
+
+ return ServerBlocklistModel.findOne(query)
+ }
+
+ static listForApi (accountId: number, start: number, count: number, sort: string) {
+ const query = {
+ offset: start,
+ limit: count,
+ order: getSort(sort),
+ where: {
+ accountId
+ }
+ }
+
+ return ServerBlocklistModel
+ .scope([ ScopeNames.WITH_ACCOUNT, ScopeNames.WITH_SERVER ])
+ .findAndCountAll(query)
+ .then(({ rows, count }) => {
+ return { total: count, data: rows }
+ })
+ }
+
+ toFormattedJSON (): ServerBlock {
+ return {
+ byAccount: this.ByAccount.toFormattedJSON(),
+ blockedServer: this.BlockedServer.toFormattedJSON(),
+ createdAt: this.createdAt
+ }
+ }
+}
return ServerModel.findOne(query)
}
+
+ toFormattedJSON () {
+ return {
+ host: this.host
+ }
+ }
}
)
}
+function buildBlockedAccountSQL (serverAccountId: number, userAccountId?: number) {
+ const blockerIds = [ serverAccountId ]
+ if (userAccountId) blockerIds.push(userAccountId)
+
+ const blockerIdsString = blockerIds.join(', ')
+
+ const query = 'SELECT "targetAccountId" AS "id" FROM "accountBlocklist" WHERE "accountId" IN (' + blockerIdsString + ')' +
+ ' UNION ALL ' +
+ 'SELECT "account"."id" AS "id" FROM account INNER JOIN "actor" ON account."actorId" = actor.id ' +
+ 'INNER JOIN "serverBlocklist" ON "actor"."serverId" = "serverBlocklist"."targetServerId" ' +
+ 'WHERE "serverBlocklist"."accountId" IN (' + blockerIdsString + ')'
+
+ return query
+}
+
// ---------------------------------------------------------------------------
export {
+ buildBlockedAccountSQL,
SortType,
getSort,
getVideoSort,
import * as Sequelize from 'sequelize'
import {
- AllowNull, BeforeDestroy, BelongsTo, Column, CreatedAt, DataType, ForeignKey, IFindOptions, Is, Model, Scopes, Table,
+ AllowNull,
+ BeforeDestroy,
+ BelongsTo,
+ Column,
+ CreatedAt,
+ DataType,
+ ForeignKey,
+ IFindOptions,
+ Is,
+ Model,
+ Scopes,
+ Table,
UpdatedAt
} from 'sequelize-typescript'
import { ActivityTagObject } from '../../../shared/models/activitypub/objects/common-objects'
import { ActorModel } from '../activitypub/actor'
import { AvatarModel } from '../avatar/avatar'
import { ServerModel } from '../server/server'
-import { getSort, throwIfNotValid } from '../utils'
+import { buildBlockedAccountSQL, getSort, throwIfNotValid } from '../utils'
import { VideoModel } from './video'
import { VideoChannelModel } from './video-channel'
+import { getServerActor } from '../../helpers/utils'
+import { UserModel } from '../account/user'
enum ScopeNames {
WITH_ACCOUNT = 'WITH_ACCOUNT',
}
@Scopes({
- [ScopeNames.ATTRIBUTES_FOR_API]: {
- attributes: {
- include: [
- [
- Sequelize.literal(
- '(SELECT COUNT("replies"."id") ' +
- 'FROM "videoComment" AS "replies" ' +
- 'WHERE "replies"."originCommentId" = "VideoCommentModel"."id")'
- ),
- 'totalReplies'
+ [ScopeNames.ATTRIBUTES_FOR_API]: (serverAccountId: number, userAccountId?: number) => {
+ return {
+ attributes: {
+ include: [
+ [
+ Sequelize.literal(
+ '(' +
+ 'WITH "blocklist" AS (' + buildBlockedAccountSQL(serverAccountId, userAccountId) + ')' +
+ 'SELECT COUNT("replies"."id") - (' +
+ 'SELECT COUNT("replies"."id") ' +
+ 'FROM "videoComment" AS "replies" ' +
+ 'WHERE "replies"."originCommentId" = "VideoCommentModel"."id" ' +
+ 'AND "accountId" IN (SELECT "id" FROM "blocklist")' +
+ ')' +
+ 'FROM "videoComment" AS "replies" ' +
+ 'WHERE "replies"."originCommentId" = "VideoCommentModel"."id" ' +
+ 'AND "accountId" NOT IN (SELECT "id" FROM "blocklist")' +
+ ')'
+ ),
+ 'totalReplies'
+ ]
]
- ]
+ }
}
},
[ScopeNames.WITH_ACCOUNT]: {
return VideoCommentModel.scope([ ScopeNames.WITH_IN_REPLY_TO, ScopeNames.WITH_VIDEO ]).findOne(query)
}
- static listThreadsForApi (videoId: number, start: number, count: number, sort: string) {
+ static async listThreadsForApi (videoId: number, start: number, count: number, sort: string, user?: UserModel) {
+ const serverActor = await getServerActor()
+ const serverAccountId = serverActor.Account.id
+ const userAccountId = user ? user.Account.id : undefined
+
const query = {
offset: start,
limit: count,
order: getSort(sort),
where: {
videoId,
- inReplyToCommentId: null
+ inReplyToCommentId: null,
+ accountId: {
+ [Sequelize.Op.notIn]: Sequelize.literal(
+ '(' + buildBlockedAccountSQL(serverAccountId, userAccountId) + ')'
+ )
+ }
}
}
+ // FIXME: typings
+ const scopes: any[] = [
+ ScopeNames.WITH_ACCOUNT,
+ {
+ method: [ ScopeNames.ATTRIBUTES_FOR_API, serverAccountId, userAccountId ]
+ }
+ ]
+
return VideoCommentModel
- .scope([ ScopeNames.WITH_ACCOUNT, ScopeNames.ATTRIBUTES_FOR_API ])
+ .scope(scopes)
.findAndCountAll(query)
.then(({ rows, count }) => {
return { total: count, data: rows }
})
}
- static listThreadCommentsForApi (videoId: number, threadId: number) {
+ static async listThreadCommentsForApi (videoId: number, threadId: number, user?: UserModel) {
+ const serverActor = await getServerActor()
+ const serverAccountId = serverActor.Account.id
+ const userAccountId = user ? user.Account.id : undefined
+
const query = {
order: [ [ 'createdAt', 'ASC' ], [ 'updatedAt', 'ASC' ] ],
where: {
[ Sequelize.Op.or ]: [
{ id: threadId },
{ originCommentId: threadId }
- ]
+ ],
+ accountId: {
+ [Sequelize.Op.notIn]: Sequelize.literal(
+ '(' + buildBlockedAccountSQL(serverAccountId, userAccountId) + ')'
+ )
+ }
}
}
+ const scopes: any[] = [
+ ScopeNames.WITH_ACCOUNT,
+ {
+ method: [ ScopeNames.ATTRIBUTES_FOR_API, serverAccountId, userAccountId ]
+ }
+ ]
+
return VideoCommentModel
- .scope([ ScopeNames.WITH_ACCOUNT, ScopeNames.ATTRIBUTES_FOR_API ])
+ .scope(scopes)
.findAndCountAll(query)
.then(({ rows, count }) => {
return { total: count, data: rows }
getVideoLikesActivityPubUrl,
getVideoSharesActivityPubUrl
} from '../../lib/activitypub'
+import { isArray } from '../../helpers/custom-validators/misc'
export type VideoFormattingJSONOptions = {
completeDescription?: boolean
const formattedAccount = video.VideoChannel.Account.toFormattedJSON()
const formattedVideoChannel = video.VideoChannel.toFormattedJSON()
+ const userHistory = isArray(video.UserVideoHistories) ? video.UserVideoHistories[0] : undefined
+
const videoObject: Video = {
id: video.id,
uuid: video.uuid,
url: formattedVideoChannel.url,
host: formattedVideoChannel.host,
avatar: formattedVideoChannel.avatar
- }
+ },
+
+ userHistory: userHistory ? {
+ currentTime: userHistory.currentTime
+ } : undefined
}
if (options) {
url.push({
type: 'Link',
mimeType: VIDEO_EXT_MIMETYPE[ file.extname ] as any,
+ mediaType: VIDEO_EXT_MIMETYPE[ file.extname ] as any,
href: video.getVideoFileUrl(file, baseUrlHttp),
height: file.resolution,
size: file.size,
url.push({
type: 'Link',
mimeType: 'application/x-bittorrent' as 'application/x-bittorrent',
+ mediaType: 'application/x-bittorrent' as 'application/x-bittorrent',
href: video.getTorrentUrl(file, baseUrlHttp),
height: file.resolution
})
url.push({
type: 'Link',
mimeType: 'application/x-bittorrent;x-scheme-handler/magnet' as 'application/x-bittorrent;x-scheme-handler/magnet',
+ mediaType: 'application/x-bittorrent;x-scheme-handler/magnet' as 'application/x-bittorrent;x-scheme-handler/magnet',
href: video.generateMagnetUri(file, baseUrlHttp, baseUrlWs),
height: file.resolution
})
url.push({
type: 'Link',
mimeType: 'text/html',
+ mediaType: 'text/html',
href: CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid
})
Table,
UpdatedAt
} from 'sequelize-typescript'
-import { VideoPrivacy, VideoState } from '../../../shared'
+import { UserRight, VideoPrivacy, VideoState } from '../../../shared'
import { VideoTorrentObject } from '../../../shared/models/activitypub/objects'
import { Video, VideoDetails, VideoFile } from '../../../shared/models/videos'
import { VideoFilter } from '../../../shared/models/videos/video-query.type'
import { ActorModel } from '../activitypub/actor'
import { AvatarModel } from '../avatar/avatar'
import { ServerModel } from '../server/server'
-import { buildTrigramSearchIndex, createSimilarityAttribute, getVideoSort, throwIfNotValid } from '../utils'
+import { buildBlockedAccountSQL, buildTrigramSearchIndex, createSimilarityAttribute, getVideoSort, throwIfNotValid } from '../utils'
import { TagModel } from './tag'
import { VideoAbuseModel } from './video-abuse'
import { VideoChannelModel } from './video-channel'
videoModelToFormattedJSON
} from './video-format-utils'
import * as validator from 'validator'
+import { UserVideoHistoryModel } from '../account/user-video-history'
+import { UserModel } from '../account/user'
// FIXME: Define indexes here because there is an issue with TS and Sequelize.literal when called directly in the annotation
const indexes: Sequelize.DefineIndexesOptions[] = [
WITH_TAGS = 'WITH_TAGS',
WITH_FILES = 'WITH_FILES',
WITH_SCHEDULED_UPDATE = 'WITH_SCHEDULED_UPDATE',
- WITH_BLACKLISTED = 'WITH_BLACKLISTED'
+ WITH_BLACKLISTED = 'WITH_BLACKLISTED',
+ WITH_USER_HISTORY = 'WITH_USER_HISTORY'
}
type ForAPIOptions = {
}
type AvailableForListIDsOptions = {
+ serverAccountId: number
actorId: number
includeLocalVideos: boolean
filter?: VideoFilter
accountId?: number
videoChannelId?: number
trendingDays?: number
+ user?: UserModel
}
@Scopes({
}
]
},
+ channelId: {
+ [ Sequelize.Op.notIn ]: Sequelize.literal(
+ '(' +
+ 'SELECT id FROM "videoChannel" WHERE "accountId" IN (' +
+ buildBlockedAccountSQL(options.serverAccountId, options.user ? options.user.Account.id : undefined) +
+ ')' +
+ ')'
+ )
+ }
+ },
+ include: []
+ }
+
+ // Only list public/published videos
+ if (!options.filter || options.filter !== 'all-local') {
+ const privacyWhere = {
// Always list public videos
privacy: VideoPrivacy.PUBLIC,
// Always list published videos, or videos that are being transcoded but on which we don't want to wait for transcoding
}
}
]
- },
- include: []
+ }
+
+ Object.assign(query.where, privacyWhere)
}
if (options.filter || options.accountId || options.videoChannelId) {
include: [
{
model: () => VideoFileModel.unscoped(),
+ // FIXME: typings
+ [ 'separate' as any ]: true, // We may have multiple files, having multiple redundancies so let's separate this join
required: false,
include: [
{
required: false
}
]
+ },
+ [ ScopeNames.WITH_USER_HISTORY ]: (userId: number) => {
+ return {
+ include: [
+ {
+ attributes: [ 'currentTime' ],
+ model: UserVideoHistoryModel.unscoped(),
+ required: false,
+ where: {
+ userId
+ }
+ }
+ ]
+ }
}
})
@Table({
name: 'videoId',
allowNull: false
},
- onDelete: 'cascade',
- hooks: true
+ onDelete: 'cascade'
})
VideoViews: VideoViewModel[]
+ @HasMany(() => UserVideoHistoryModel, {
+ foreignKey: {
+ name: 'videoId',
+ allowNull: false
+ },
+ onDelete: 'cascade'
+ })
+ UserVideoHistories: UserVideoHistoryModel[]
+
@HasOne(() => ScheduleVideoUpdateModel, {
foreignKey: {
name: 'videoId',
return VideoModel.scope(ScopeNames.WITH_FILES).findAll()
}
+ static listLocal () {
+ const query = {
+ where: {
+ remote: false
+ }
+ }
+
+ return VideoModel.scope(ScopeNames.WITH_FILES).findAll(query)
+ }
+
static listAllAndSharedByActorForOutbox (actorId: number, start: number, count: number) {
function getRawQuery (select: string) {
const queryVideo = 'SELECT ' + select + ' FROM "video" AS "Video" ' +
accountId?: number,
videoChannelId?: number,
actorId?: number
- trendingDays?: number
+ trendingDays?: number,
+ user?: UserModel
}, countVideos = true) {
+ if (options.filter && options.filter === 'all-local' && !options.user.hasRight(UserRight.SEE_ALL_VIDEOS)) {
+ throw new Error('Try to filter all-local but no user has not the see all videos right')
+ }
+
const query: IFindOptions<VideoModel> = {
offset: options.start,
limit: options.count,
query.group = 'VideoModel.id'
}
+ const serverActor = await getServerActor()
+
// actorId === null has a meaning, so just check undefined
- const actorId = options.actorId !== undefined ? options.actorId : (await getServerActor()).id
+ const actorId = options.actorId !== undefined ? options.actorId : serverActor.id
const queryOptions = {
actorId,
+ serverAccountId: serverActor.Account.id,
nsfw: options.nsfw,
categoryOneOf: options.categoryOneOf,
licenceOneOf: options.licenceOneOf,
accountId: options.accountId,
videoChannelId: options.videoChannelId,
includeLocalVideos: options.includeLocalVideos,
+ user: options.user,
trendingDays
}
tagsAllOf?: string[]
durationMin?: number // seconds
durationMax?: number // seconds
+ user?: UserModel,
+ filter?: VideoFilter
}) {
const whereAnd = []
const serverActor = await getServerActor()
const queryOptions = {
actorId: serverActor.id,
+ serverAccountId: serverActor.Account.id,
includeLocalVideos: options.includeLocalVideos,
nsfw: options.nsfw,
categoryOneOf: options.categoryOneOf,
licenceOneOf: options.licenceOneOf,
languageOneOf: options.languageOneOf,
tagsOneOf: options.tagsOneOf,
- tagsAllOf: options.tagsAllOf
+ tagsAllOf: options.tagsAllOf,
+ user: options.user,
+ filter: options.filter
}
return VideoModel.getAvailableForApi(query, queryOptions)
return VideoModel.scope([ ScopeNames.WITH_ACCOUNT_DETAILS, ScopeNames.WITH_FILES ]).findOne(query)
}
- static loadAndPopulateAccountAndServerAndTags (id: number | string, t?: Sequelize.Transaction) {
+ static loadAndPopulateAccountAndServerAndTags (id: number | string, t?: Sequelize.Transaction, userId?: number) {
const where = VideoModel.buildWhereIdOrUUID(id)
const options = {
transaction: t
}
+ const scopes = [
+ ScopeNames.WITH_TAGS,
+ ScopeNames.WITH_BLACKLISTED,
+ ScopeNames.WITH_FILES,
+ ScopeNames.WITH_ACCOUNT_DETAILS,
+ ScopeNames.WITH_SCHEDULED_UPDATE
+ ]
+
+ if (userId) {
+ scopes.push({ method: [ ScopeNames.WITH_USER_HISTORY, userId ] } as any) // FIXME: typings
+ }
+
return VideoModel
- .scope([
- ScopeNames.WITH_TAGS,
- ScopeNames.WITH_BLACKLISTED,
- ScopeNames.WITH_FILES,
- ScopeNames.WITH_ACCOUNT_DETAILS,
- ScopeNames.WITH_SCHEDULED_UPDATE
- ])
+ .scope(scopes)
.findOne(options)
}
// threshold corresponds to how many video the field should have to be returned
static async getRandomFieldSamples (field: 'category' | 'channelId', threshold: number, count: number) {
- const actorId = (await getServerActor()).id
+ const serverActor = await getServerActor()
+ const actorId = serverActor.id
- const scopeOptions = {
+ const scopeOptions: AvailableForListIDsOptions = {
+ serverAccountId: serverActor.Account.id,
actorId,
includeLocalVideos: true
}
}
private static buildActorWhereWithFilter (filter?: VideoFilter) {
- if (filter && filter === 'local') {
+ if (filter && (filter === 'local' || filter === 'all-local')) {
return {
serverId: null
}
return {}
}
- private static async getAvailableForApi (query: IFindOptions<VideoModel>, options: AvailableForListIDsOptions, countVideos = true) {
+ private static async getAvailableForApi (
+ query: IFindOptions<VideoModel>,
+ options: AvailableForListIDsOptions,
+ countVideos = true
+ ) {
const idsScope = {
method: [
ScopeNames.AVAILABLE_FOR_LIST_IDS, options
if (ids.length === 0) return { data: [], total: count }
- const apiScope = {
- method: [ ScopeNames.FOR_API, { ids, withFiles: options.withFiles } as ForAPIOptions ]
+ // FIXME: typings
+ const apiScope: any[] = [
+ {
+ method: [ ScopeNames.FOR_API, { ids, withFiles: options.withFiles } as ForAPIOptions ]
+ }
+ ]
+
+ if (options.user) {
+ apiScope.push({ method: [ ScopeNames.WITH_USER_HISTORY, options.user.id ] })
}
const secondQuery = {
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import 'mocha'
+
+import {
+ createUser,
+ doubleFollow,
+ flushAndRunMultipleServers,
+ flushTests,
+ killallServers,
+ makeDeleteRequest,
+ makeGetRequest,
+ makePostBodyRequest,
+ ServerInfo,
+ setAccessTokensToServers, userLogin
+} from '../../utils'
+import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../utils/requests/check-api-params'
+
+describe('Test blocklist API validators', function () {
+ let servers: ServerInfo[]
+ let server: ServerInfo
+ let userAccessToken: string
+
+ before(async function () {
+ this.timeout(60000)
+
+ await flushTests()
+
+ servers = await flushAndRunMultipleServers(2)
+ await setAccessTokensToServers(servers)
+
+ server = servers[0]
+
+ const user = { username: 'user1', password: 'password' }
+ await createUser(server.url, server.accessToken, user.username, user.password)
+
+ userAccessToken = await userLogin(server, user)
+
+ await doubleFollow(servers[0], servers[1])
+ })
+
+ // ---------------------------------------------------------------
+
+ describe('When managing user blocklist', function () {
+
+ describe('When managing user accounts blocklist', function () {
+ const path = '/api/v1/users/me/blocklist/accounts'
+
+ describe('When listing blocked accounts', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeGetRequest({
+ url: server.url,
+ path,
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a bad start pagination', async function () {
+ await checkBadStartPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with a bad count pagination', async function () {
+ await checkBadCountPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with an incorrect sort', async function () {
+ await checkBadSortPagination(server.url, path, server.accessToken)
+ })
+ })
+
+ describe('When blocking an account', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ path,
+ fields: { accountName: 'user1' },
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with an unknown account', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { accountName: 'user2' },
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should fail to block ourselves', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { accountName: 'root' },
+ statusCodeExpected: 409
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { accountName: 'user1' },
+ statusCodeExpected: 204
+ })
+ })
+ })
+
+ describe('When unblocking an account', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/user1',
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with an unknown account block', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/user2',
+ token: server.accessToken,
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/user1',
+ token: server.accessToken,
+ statusCodeExpected: 204
+ })
+ })
+ })
+ })
+
+ describe('When managing user servers blocklist', function () {
+ const path = '/api/v1/users/me/blocklist/servers'
+
+ describe('When listing blocked servers', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeGetRequest({
+ url: server.url,
+ path,
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a bad start pagination', async function () {
+ await checkBadStartPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with a bad count pagination', async function () {
+ await checkBadCountPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with an incorrect sort', async function () {
+ await checkBadSortPagination(server.url, path, server.accessToken)
+ })
+ })
+
+ describe('When blocking a server', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ path,
+ fields: { host: 'localhost:9002' },
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with an unknown server', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { host: 'localhost:9003' },
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should fail with our own server', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { host: 'localhost:9001' },
+ statusCodeExpected: 409
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { host: 'localhost:9002' },
+ statusCodeExpected: 204
+ })
+ })
+ })
+
+ describe('When unblocking a server', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/localhost:9002',
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with an unknown server block', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/localhost:9003',
+ token: server.accessToken,
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/localhost:9002',
+ token: server.accessToken,
+ statusCodeExpected: 204
+ })
+ })
+ })
+ })
+ })
+
+ describe('When managing server blocklist', function () {
+
+ describe('When managing server accounts blocklist', function () {
+ const path = '/api/v1/server/blocklist/accounts'
+
+ describe('When listing blocked accounts', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeGetRequest({
+ url: server.url,
+ path,
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a user without the appropriate rights', async function () {
+ await makeGetRequest({
+ url: server.url,
+ token: userAccessToken,
+ path,
+ statusCodeExpected: 403
+ })
+ })
+
+ it('Should fail with a bad start pagination', async function () {
+ await checkBadStartPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with a bad count pagination', async function () {
+ await checkBadCountPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with an incorrect sort', async function () {
+ await checkBadSortPagination(server.url, path, server.accessToken)
+ })
+ })
+
+ describe('When blocking an account', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ path,
+ fields: { accountName: 'user1' },
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a user without the appropriate rights', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: userAccessToken,
+ path,
+ fields: { accountName: 'user1' },
+ statusCodeExpected: 403
+ })
+ })
+
+ it('Should fail with an unknown account', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { accountName: 'user2' },
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should fail to block ourselves', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { accountName: 'root' },
+ statusCodeExpected: 409
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { accountName: 'user1' },
+ statusCodeExpected: 204
+ })
+ })
+ })
+
+ describe('When unblocking an account', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/user1',
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a user without the appropriate rights', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/user1',
+ token: userAccessToken,
+ statusCodeExpected: 403
+ })
+ })
+
+ it('Should fail with an unknown account block', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/user2',
+ token: server.accessToken,
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/user1',
+ token: server.accessToken,
+ statusCodeExpected: 204
+ })
+ })
+ })
+ })
+
+ describe('When managing server servers blocklist', function () {
+ const path = '/api/v1/server/blocklist/servers'
+
+ describe('When listing blocked servers', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeGetRequest({
+ url: server.url,
+ path,
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a user without the appropriate rights', async function () {
+ await makeGetRequest({
+ url: server.url,
+ token: userAccessToken,
+ path,
+ statusCodeExpected: 403
+ })
+ })
+
+ it('Should fail with a bad start pagination', async function () {
+ await checkBadStartPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with a bad count pagination', async function () {
+ await checkBadCountPagination(server.url, path, server.accessToken)
+ })
+
+ it('Should fail with an incorrect sort', async function () {
+ await checkBadSortPagination(server.url, path, server.accessToken)
+ })
+ })
+
+ describe('When blocking a server', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ path,
+ fields: { host: 'localhost:9002' },
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a user without the appropriate rights', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: userAccessToken,
+ path,
+ fields: { host: 'localhost:9002' },
+ statusCodeExpected: 403
+ })
+ })
+
+ it('Should fail with an unknown server', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { host: 'localhost:9003' },
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should fail with our own server', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { host: 'localhost:9001' },
+ statusCodeExpected: 409
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makePostBodyRequest({
+ url: server.url,
+ token: server.accessToken,
+ path,
+ fields: { host: 'localhost:9002' },
+ statusCodeExpected: 204
+ })
+ })
+ })
+
+ describe('When unblocking a server', function () {
+ it('Should fail with an unauthenticated user', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/localhost:9002',
+ statusCodeExpected: 401
+ })
+ })
+
+ it('Should fail with a user without the appropriate rights', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/localhost:9002',
+ token: userAccessToken,
+ statusCodeExpected: 403
+ })
+ })
+
+ it('Should fail with an unknown server block', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/localhost:9003',
+ token: server.accessToken,
+ statusCodeExpected: 404
+ })
+ })
+
+ it('Should succeed with the correct params', async function () {
+ await makeDeleteRequest({
+ url: server.url,
+ path: path + '/localhost:9002',
+ token: server.accessToken,
+ statusCodeExpected: 204
+ })
+ })
+ })
+ })
+ })
+
+ after(async function () {
+ killallServers(servers)
+
+ // Keep the logs if the test failed
+ if (this['ok']) {
+ await flushTests()
+ }
+ })
+})
// Order of the tests we want to execute
import './accounts'
+import './blocklist'
import './config'
import './follows'
import './jobs'
import './video-comments'
import './video-imports'
import './videos'
+import './videos-filter'
+import './videos-history'
it('Should fail with a too long description', async function () {
const fields = {
- description: 'super'.repeat(60)
+ description: 'super'.repeat(201)
}
await makePutBodyRequest({ url: server.url, path: path + 'me', token: userAccessToken, fields })
})
it('Should fail with a long description', async function () {
- const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(150) })
+ const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) })
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
})
it('Should fail with a long support text', async function () {
- const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
+ const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
})
})
it('Should fail with a long description', async function () {
- const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(150) })
+ const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) })
await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields })
})
it('Should fail with a long support text', async function () {
- const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
+ const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields })
})
})
it('Should fail with a long support text', async function () {
- const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
+ const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
})
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import * as chai from 'chai'
+import 'mocha'
+import {
+ createUser,
+ flushTests,
+ killallServers,
+ makeGetRequest,
+ runServer,
+ ServerInfo,
+ setAccessTokensToServers,
+ userLogin
+} from '../../utils'
+import { UserRole } from '../../../../shared/models/users'
+
+const expect = chai.expect
+
+async function testEndpoints (server: ServerInfo, token: string, filter: string, statusCodeExpected: number) {
+ const paths = [
+ '/api/v1/video-channels/root_channel/videos',
+ '/api/v1/accounts/root/videos',
+ '/api/v1/videos',
+ '/api/v1/search/videos'
+ ]
+
+ for (const path of paths) {
+ await makeGetRequest({
+ url: server.url,
+ path,
+ token,
+ query: {
+ filter
+ },
+ statusCodeExpected
+ })
+ }
+}
+
+describe('Test videos filters', function () {
+ let server: ServerInfo
+ let userAccessToken: string
+ let moderatorAccessToken: string
+
+ // ---------------------------------------------------------------
+
+ before(async function () {
+ this.timeout(30000)
+
+ await flushTests()
+
+ server = await runServer(1)
+
+ await setAccessTokensToServers([ server ])
+
+ const user = { username: 'user1', password: 'my super password' }
+ await createUser(server.url, server.accessToken, user.username, user.password)
+ userAccessToken = await userLogin(server, user)
+
+ const moderator = { username: 'moderator', password: 'my super password' }
+ await createUser(
+ server.url,
+ server.accessToken,
+ moderator.username,
+ moderator.password,
+ undefined,
+ undefined,
+ UserRole.MODERATOR
+ )
+ moderatorAccessToken = await userLogin(server, moderator)
+ })
+
+ describe('When setting a video filter', function () {
+
+ it('Should fail with a bad filter', async function () {
+ await testEndpoints(server, server.accessToken, 'bad-filter', 400)
+ })
+
+ it('Should succeed with a good filter', async function () {
+ await testEndpoints(server, server.accessToken,'local', 200)
+ })
+
+ it('Should fail to list all-local with a simple user', async function () {
+ await testEndpoints(server, userAccessToken, 'all-local', 401)
+ })
+
+ it('Should succeed to list all-local with a moderator', async function () {
+ await testEndpoints(server, moderatorAccessToken, 'all-local', 200)
+ })
+
+ it('Should succeed to list all-local with an admin', async function () {
+ await testEndpoints(server, server.accessToken, 'all-local', 200)
+ })
+
+ // Because we cannot authenticate the user on the RSS endpoint
+ it('Should fail on the feeds endpoint with the all-local filter', async function () {
+ await makeGetRequest({
+ url: server.url,
+ path: '/feeds/videos.json',
+ statusCodeExpected: 401,
+ query: {
+ filter: 'all-local'
+ }
+ })
+ })
+
+ it('Should succed on the feeds endpoint with the local filter', async function () {
+ await makeGetRequest({
+ url: server.url,
+ path: '/feeds/videos.json',
+ statusCodeExpected: 200,
+ query: {
+ filter: 'local'
+ }
+ })
+ })
+ })
+
+ after(async function () {
+ killallServers([ server ])
+
+ // Keep the logs if the test failed
+ if (this['ok']) {
+ await flushTests()
+ }
+ })
+})
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import * as chai from 'chai'
+import 'mocha'
+import {
+ flushTests,
+ killallServers,
+ makePostBodyRequest,
+ makePutBodyRequest,
+ runServer,
+ ServerInfo,
+ setAccessTokensToServers,
+ uploadVideo
+} from '../../utils'
+
+const expect = chai.expect
+
+describe('Test videos history API validator', function () {
+ let path: string
+ let server: ServerInfo
+
+ // ---------------------------------------------------------------
+
+ before(async function () {
+ this.timeout(30000)
+
+ await flushTests()
+
+ server = await runServer(1)
+
+ await setAccessTokensToServers([ server ])
+
+ const res = await uploadVideo(server.url, server.accessToken, {})
+ const videoUUID = res.body.video.uuid
+
+ path = '/api/v1/videos/' + videoUUID + '/watching'
+ })
+
+ describe('When notifying a user is watching a video', function () {
+
+ it('Should fail with an unauthenticated user', async function () {
+ const fields = { currentTime: 5 }
+ await makePutBodyRequest({ url: server.url, path, fields, statusCodeExpected: 401 })
+ })
+
+ it('Should fail with an incorrect video id', async function () {
+ const fields = { currentTime: 5 }
+ const path = '/api/v1/videos/blabla/watching'
+ await makePutBodyRequest({ url: server.url, path, fields, token: server.accessToken, statusCodeExpected: 400 })
+ })
+
+ it('Should fail with an unknown video', async function () {
+ const fields = { currentTime: 5 }
+ const path = '/api/v1/videos/d91fff41-c24d-4508-8e13-3bd5902c3b02/watching'
+
+ await makePutBodyRequest({ url: server.url, path, fields, token: server.accessToken, statusCodeExpected: 404 })
+ })
+
+ it('Should fail with a bad current time', async function () {
+ const fields = { currentTime: 'hello' }
+ await makePutBodyRequest({ url: server.url, path, fields, token: server.accessToken, statusCodeExpected: 400 })
+ })
+
+ it('Should succeed with the correct parameters', async function () {
+ const fields = { currentTime: 5 }
+
+ await makePutBodyRequest({ url: server.url, path, fields, token: server.accessToken, statusCodeExpected: 204 })
+ })
+ })
+
+ after(async function () {
+ killallServers([ server ])
+
+ // Keep the logs if the test failed
+ if (this['ok']) {
+ await flushTests()
+ }
+ })
+})
})
it('Should fail with a long support text', async function () {
- const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
+ const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
const attaches = baseCorrectAttaches
await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
})
it('Should fail with a long support text', async function () {
- const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
+ const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields })
})
--- /dev/null
+import './redundancy'
import './index-1'
import './index-2'
import './index-3'
+import './index-4'
--- /dev/null
+import './redundancy'
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import * as chai from 'chai'
+import 'mocha'
+import { VideoDetails } from '../../../../shared/models/videos'
+import {
+ doubleFollow,
+ flushAndRunMultipleServers,
+ getFollowingListPaginationAndSort,
+ getVideo,
+ immutableAssign,
+ killallServers, makeGetRequest,
+ root,
+ ServerInfo,
+ setAccessTokensToServers, unfollow,
+ uploadVideo,
+ viewVideo,
+ wait,
+ waitUntilLog,
+ checkVideoFilesWereRemoved, removeVideo
+} from '../../utils'
+import { waitJobs } from '../../utils/server/jobs'
+import * as magnetUtil from 'magnet-uri'
+import { updateRedundancy } from '../../utils/server/redundancy'
+import { ActorFollow } from '../../../../shared/models/actors'
+import { readdir } from 'fs-extra'
+import { join } from 'path'
+import { VideoRedundancyStrategy } from '../../../../shared/models/redundancy'
+import { getStats } from '../../utils/server/stats'
+import { ServerStats } from '../../../../shared/models/server/server-stats.model'
+
+const expect = chai.expect
+
+let servers: ServerInfo[] = []
+let video1Server2UUID: string
+
+function checkMagnetWebseeds (file: { magnetUri: string, resolution: { id: number } }, baseWebseeds: string[], server: ServerInfo) {
+ const parsed = magnetUtil.decode(file.magnetUri)
+
+ for (const ws of baseWebseeds) {
+ const found = parsed.urlList.find(url => url === `${ws}-${file.resolution.id}.mp4`)
+ expect(found, `Webseed ${ws} not found in ${file.magnetUri} on server ${server.url}`).to.not.be.undefined
+ }
+
+ expect(parsed.urlList).to.have.lengthOf(baseWebseeds.length)
+}
+
+async function runServers (strategy: VideoRedundancyStrategy, additionalParams: any = {}) {
+ const config = {
+ redundancy: {
+ videos: {
+ check_interval: '5 seconds',
+ strategies: [
+ immutableAssign({
+ min_lifetime: '1 hour',
+ strategy: strategy,
+ size: '100KB'
+ }, additionalParams)
+ ]
+ }
+ }
+ }
+ servers = await flushAndRunMultipleServers(3, config)
+
+ // Get the access tokens
+ await setAccessTokensToServers(servers)
+
+ {
+ const res = await uploadVideo(servers[ 1 ].url, servers[ 1 ].accessToken, { name: 'video 1 server 2' })
+ video1Server2UUID = res.body.video.uuid
+
+ await viewVideo(servers[ 1 ].url, video1Server2UUID)
+ }
+
+ await waitJobs(servers)
+
+ // Server 1 and server 2 follow each other
+ await doubleFollow(servers[ 0 ], servers[ 1 ])
+ // Server 1 and server 3 follow each other
+ await doubleFollow(servers[ 0 ], servers[ 2 ])
+ // Server 2 and server 3 follow each other
+ await doubleFollow(servers[ 1 ], servers[ 2 ])
+
+ await waitJobs(servers)
+}
+
+async function check1WebSeed (strategy: VideoRedundancyStrategy, videoUUID?: string) {
+ if (!videoUUID) videoUUID = video1Server2UUID
+
+ const webseeds = [
+ 'http://localhost:9002/static/webseed/' + videoUUID
+ ]
+
+ for (const server of servers) {
+ {
+ const res = await getVideo(server.url, videoUUID)
+
+ const video: VideoDetails = res.body
+ for (const f of video.files) {
+ checkMagnetWebseeds(f, webseeds, server)
+ }
+ }
+ }
+}
+
+async function checkStatsWith2Webseed (strategy: VideoRedundancyStrategy) {
+ const res = await getStats(servers[0].url)
+ const data: ServerStats = res.body
+
+ expect(data.videosRedundancy).to.have.lengthOf(1)
+ const stat = data.videosRedundancy[0]
+
+ expect(stat.strategy).to.equal(strategy)
+ expect(stat.totalSize).to.equal(102400)
+ expect(stat.totalUsed).to.be.at.least(1).and.below(102401)
+ expect(stat.totalVideoFiles).to.equal(4)
+ expect(stat.totalVideos).to.equal(1)
+}
+
+async function checkStatsWith1Webseed (strategy: VideoRedundancyStrategy) {
+ const res = await getStats(servers[0].url)
+ const data: ServerStats = res.body
+
+ expect(data.videosRedundancy).to.have.lengthOf(1)
+
+ const stat = data.videosRedundancy[0]
+ expect(stat.strategy).to.equal(strategy)
+ expect(stat.totalSize).to.equal(102400)
+ expect(stat.totalUsed).to.equal(0)
+ expect(stat.totalVideoFiles).to.equal(0)
+ expect(stat.totalVideos).to.equal(0)
+}
+
+async function check2Webseeds (strategy: VideoRedundancyStrategy, videoUUID?: string) {
+ if (!videoUUID) videoUUID = video1Server2UUID
+
+ const webseeds = [
+ 'http://localhost:9001/static/webseed/' + videoUUID,
+ 'http://localhost:9002/static/webseed/' + videoUUID
+ ]
+
+ for (const server of servers) {
+ const res = await getVideo(server.url, videoUUID)
+
+ const video: VideoDetails = res.body
+
+ for (const file of video.files) {
+ checkMagnetWebseeds(file, webseeds, server)
+
+ // Only servers 1 and 2 have the video
+ if (server.serverNumber !== 3) {
+ await makeGetRequest({
+ url: server.url,
+ statusCodeExpected: 200,
+ path: '/static/webseed/' + `${videoUUID}-${file.resolution.id}.mp4`,
+ contentType: null
+ })
+ }
+ }
+ }
+
+ for (const directory of [ 'test1', 'test2' ]) {
+ const files = await readdir(join(root(), directory, 'videos'))
+ expect(files).to.have.length.at.least(4)
+
+ for (const resolution of [ 240, 360, 480, 720 ]) {
+ expect(files.find(f => f === `${videoUUID}-${resolution}.mp4`)).to.not.be.undefined
+ }
+ }
+}
+
+async function enableRedundancyOnServer1 () {
+ await updateRedundancy(servers[ 0 ].url, servers[ 0 ].accessToken, servers[ 1 ].host, true)
+
+ const res = await getFollowingListPaginationAndSort(servers[ 0 ].url, 0, 5, '-createdAt')
+ const follows: ActorFollow[] = res.body.data
+ const server2 = follows.find(f => f.following.host === 'localhost:9002')
+ const server3 = follows.find(f => f.following.host === 'localhost:9003')
+
+ expect(server3).to.not.be.undefined
+ expect(server3.following.hostRedundancyAllowed).to.be.false
+
+ expect(server2).to.not.be.undefined
+ expect(server2.following.hostRedundancyAllowed).to.be.true
+}
+
+async function disableRedundancyOnServer1 () {
+ await updateRedundancy(servers[ 0 ].url, servers[ 0 ].accessToken, servers[ 1 ].host, false)
+
+ const res = await getFollowingListPaginationAndSort(servers[ 0 ].url, 0, 5, '-createdAt')
+ const follows: ActorFollow[] = res.body.data
+ const server2 = follows.find(f => f.following.host === 'localhost:9002')
+ const server3 = follows.find(f => f.following.host === 'localhost:9003')
+
+ expect(server3).to.not.be.undefined
+ expect(server3.following.hostRedundancyAllowed).to.be.false
+
+ expect(server2).to.not.be.undefined
+ expect(server2.following.hostRedundancyAllowed).to.be.false
+}
+
+async function cleanServers () {
+ killallServers(servers)
+}
+
+describe('Test videos redundancy', function () {
+
+ describe('With most-views strategy', function () {
+ const strategy = 'most-views'
+
+ before(function () {
+ this.timeout(120000)
+
+ return runServers(strategy)
+ })
+
+ it('Should have 1 webseed on the first video', async function () {
+ await check1WebSeed(strategy)
+ await checkStatsWith1Webseed(strategy)
+ })
+
+ it('Should enable redundancy on server 1', function () {
+ return enableRedundancyOnServer1()
+ })
+
+ it('Should have 2 webseed on the first video', async function () {
+ this.timeout(40000)
+
+ await waitJobs(servers)
+ await waitUntilLog(servers[0], 'Duplicated ', 4)
+ await waitJobs(servers)
+
+ await check2Webseeds(strategy)
+ await checkStatsWith2Webseed(strategy)
+ })
+
+ it('Should undo redundancy on server 1 and remove duplicated videos', async function () {
+ this.timeout(40000)
+
+ await disableRedundancyOnServer1()
+
+ await waitJobs(servers)
+ await wait(5000)
+
+ await check1WebSeed(strategy)
+
+ await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ 'videos' ])
+ })
+
+ after(function () {
+ return cleanServers()
+ })
+ })
+
+ describe('With trending strategy', function () {
+ const strategy = 'trending'
+
+ before(function () {
+ this.timeout(120000)
+
+ return runServers(strategy)
+ })
+
+ it('Should have 1 webseed on the first video', async function () {
+ await check1WebSeed(strategy)
+ await checkStatsWith1Webseed(strategy)
+ })
+
+ it('Should enable redundancy on server 1', function () {
+ return enableRedundancyOnServer1()
+ })
+
+ it('Should have 2 webseed on the first video', async function () {
+ this.timeout(40000)
+
+ await waitJobs(servers)
+ await waitUntilLog(servers[0], 'Duplicated ', 4)
+ await waitJobs(servers)
+
+ await check2Webseeds(strategy)
+ await checkStatsWith2Webseed(strategy)
+ })
+
+ it('Should unfollow on server 1 and remove duplicated videos', async function () {
+ this.timeout(40000)
+
+ await unfollow(servers[0].url, servers[0].accessToken, servers[1])
+
+ await waitJobs(servers)
+ await wait(5000)
+
+ await check1WebSeed(strategy)
+
+ await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ 'videos' ])
+ })
+
+ after(function () {
+ return cleanServers()
+ })
+ })
+
+ describe('With recently added strategy', function () {
+ const strategy = 'recently-added'
+
+ before(function () {
+ this.timeout(120000)
+
+ return runServers(strategy, { min_views: 3 })
+ })
+
+ it('Should have 1 webseed on the first video', async function () {
+ await check1WebSeed(strategy)
+ await checkStatsWith1Webseed(strategy)
+ })
+
+ it('Should enable redundancy on server 1', function () {
+ return enableRedundancyOnServer1()
+ })
+
+ it('Should still have 1 webseed on the first video', async function () {
+ this.timeout(40000)
+
+ await waitJobs(servers)
+ await wait(15000)
+ await waitJobs(servers)
+
+ await check1WebSeed(strategy)
+ await checkStatsWith1Webseed(strategy)
+ })
+
+ it('Should view 2 times the first video to have > min_views config', async function () {
+ this.timeout(40000)
+
+ await viewVideo(servers[ 0 ].url, video1Server2UUID)
+ await viewVideo(servers[ 2 ].url, video1Server2UUID)
+
+ await wait(10000)
+ await waitJobs(servers)
+ })
+
+ it('Should have 2 webseed on the first video', async function () {
+ this.timeout(40000)
+
+ await waitJobs(servers)
+ await waitUntilLog(servers[0], 'Duplicated ', 4)
+ await waitJobs(servers)
+
+ await check2Webseeds(strategy)
+ await checkStatsWith2Webseed(strategy)
+ })
+
+ it('Should remove the video and the redundancy files', async function () {
+ this.timeout(20000)
+
+ await removeVideo(servers[1].url, servers[1].accessToken, video1Server2UUID)
+
+ await waitJobs(servers)
+
+ for (const server of servers) {
+ await checkVideoFilesWereRemoved(video1Server2UUID, server.serverNumber)
+ }
+ })
+
+ after(function () {
+ return cleanServers()
+ })
+ })
+
+ describe('Test expiration', function () {
+ const strategy = 'recently-added'
+
+ async function checkContains (servers: ServerInfo[], str: string) {
+ for (const server of servers) {
+ const res = await getVideo(server.url, video1Server2UUID)
+ const video: VideoDetails = res.body
+
+ for (const f of video.files) {
+ expect(f.magnetUri).to.contain(str)
+ }
+ }
+ }
+
+ async function checkNotContains (servers: ServerInfo[], str: string) {
+ for (const server of servers) {
+ const res = await getVideo(server.url, video1Server2UUID)
+ const video: VideoDetails = res.body
+
+ for (const f of video.files) {
+ expect(f.magnetUri).to.not.contain(str)
+ }
+ }
+ }
+
+ before(async function () {
+ this.timeout(120000)
+
+ await runServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
+
+ await enableRedundancyOnServer1()
+ })
+
+ it('Should still have 2 webseeds after 10 seconds', async function () {
+ this.timeout(40000)
+
+ await wait(10000)
+
+ try {
+ await checkContains(servers, 'http%3A%2F%2Flocalhost%3A9001')
+ } catch {
+ // Maybe a server deleted a redundancy in the scheduler
+ await wait(2000)
+
+ await checkContains(servers, 'http%3A%2F%2Flocalhost%3A9001')
+ }
+ })
+
+ it('Should stop server 1 and expire video redundancy', async function () {
+ this.timeout(40000)
+
+ killallServers([ servers[0] ])
+
+ await wait(10000)
+
+ await checkNotContains([ servers[1], servers[2] ], 'http%3A%2F%2Flocalhost%3A9001')
+ })
+
+ after(function () {
+ return killallServers([ servers[1], servers[2] ])
+ })
+ })
+
+ describe('Test file replacement', function () {
+ let video2Server2UUID: string
+ const strategy = 'recently-added'
+
+ before(async function () {
+ this.timeout(120000)
+
+ await runServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
+
+ await enableRedundancyOnServer1()
+
+ await waitJobs(servers)
+ await waitUntilLog(servers[0], 'Duplicated ', 4)
+ await waitJobs(servers)
+
+ await check2Webseeds(strategy)
+ await checkStatsWith2Webseed(strategy)
+
+ const res = await uploadVideo(servers[ 1 ].url, servers[ 1 ].accessToken, { name: 'video 2 server 2' })
+ video2Server2UUID = res.body.video.uuid
+ })
+
+ it('Should cache video 2 webseed on the first video', async function () {
+ this.timeout(50000)
+
+ await waitJobs(servers)
+
+ await wait(7000)
+
+ try {
+ await check1WebSeed(strategy, video1Server2UUID)
+ await check2Webseeds(strategy, video2Server2UUID)
+ } catch {
+ await wait(3000)
+
+ try {
+ await check1WebSeed(strategy, video1Server2UUID)
+ await check2Webseeds(strategy, video2Server2UUID)
+ } catch {
+ await wait(5000)
+
+ await check1WebSeed(strategy, video1Server2UUID)
+ await check2Webseeds(strategy, video2Server2UUID)
+ }
+ }
+ })
+
+ after(function () {
+ return cleanServers()
+ })
+ })
+})
expect(server3Follow.state).to.equal('accepted')
})
- it('Should have 0 followings on server 1 and 2', async function () {
+ it('Should search followings on server 1', async function () {
+ {
+ const res = await getFollowingListPaginationAndSort(servers[ 0 ].url, 0, 1, 'createdAt', ':9002')
+ const follows = res.body.data
+
+ expect(res.body.total).to.equal(1)
+ expect(follows.length).to.equal(1)
+ expect(follows[ 0 ].following.host).to.equal('localhost:9002')
+ }
+
+ {
+ const res = await getFollowingListPaginationAndSort(servers[ 0 ].url, 0, 1, 'createdAt', 'bla')
+ const follows = res.body.data
+
+ expect(res.body.total).to.equal(0)
+ expect(follows.length).to.equal(0)
+ }
+ })
+
+ it('Should have 0 followings on server 2 and 3', async function () {
for (const server of [ servers[1], servers[2] ]) {
const res = await getFollowingListPaginationAndSort(server.url, 0, 5, 'createdAt')
const follows = res.body.data
}
})
+ it('Should search followers on server 2', async function () {
+ {
+ const res = await getFollowersListPaginationAndSort(servers[ 2 ].url, 0, 5, 'createdAt', '9001')
+ const follows = res.body.data
+
+ expect(res.body.total).to.equal(1)
+ expect(follows.length).to.equal(1)
+ expect(follows[ 0 ].following.host).to.equal('localhost:9003')
+ }
+
+ {
+ const res = await getFollowersListPaginationAndSort(servers[ 2 ].url, 0, 5, 'createdAt', 'bla')
+ const follows = res.body.data
+
+ expect(res.body.total).to.equal(0)
+ expect(follows.length).to.equal(0)
+ }
+ })
+
it('Should have 0 followers on server 1', async function () {
const res = await getFollowersListPaginationAndSort(servers[0].url, 0, 5, 'createdAt')
const follows = res.body.data
import './follows'
import './handle-down'
import './jobs'
-import './redundancy'
import './reverse-proxy'
import './stats'
import './tracker'
killallServers([ servers[0] ])
- await wait(10000)
+ await wait(15000)
await checkNotContains([ servers[1], servers[2] ], 'http%3A%2F%2Flocalhost%3A9001')
})
})
it('Should cache video 2 webseed on the first video', async function () {
- this.timeout(50000)
+ this.timeout(120000)
await waitJobs(servers)
- await wait(7000)
+ let checked = false
- try {
- await check1WebSeed(strategy, video1Server2UUID)
- await check2Webseeds(strategy, video2Server2UUID)
- } catch {
- await wait(3000)
+ while (checked === false) {
+ await wait(1000)
try {
await check1WebSeed(strategy, video1Server2UUID)
await check2Webseeds(strategy, video2Server2UUID)
- } catch {
- await wait(5000)
- await check1WebSeed(strategy, video1Server2UUID)
- await check2Webseeds(strategy, video2Server2UUID)
+ checked = true
+ } catch {
+ checked = false
}
}
})
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import * as chai from 'chai'
+import 'mocha'
+import { AccountBlock, ServerBlock, Video } from '../../../../shared/index'
+import {
+ createUser,
+ doubleFollow,
+ flushAndRunMultipleServers,
+ flushTests,
+ killallServers,
+ ServerInfo,
+ uploadVideo,
+ userLogin
+} from '../../utils/index'
+import { setAccessTokensToServers } from '../../utils/users/login'
+import { getVideosListWithToken, getVideosList } from '../../utils/videos/videos'
+import {
+ addVideoCommentReply,
+ addVideoCommentThread,
+ getVideoCommentThreads,
+ getVideoThreadComments
+} from '../../utils/videos/video-comments'
+import { waitJobs } from '../../utils/server/jobs'
+import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model'
+import {
+ addAccountToAccountBlocklist,
+ addAccountToServerBlocklist,
+ addServerToAccountBlocklist,
+ addServerToServerBlocklist,
+ getAccountBlocklistByAccount,
+ getAccountBlocklistByServer,
+ getServerBlocklistByAccount,
+ getServerBlocklistByServer,
+ removeAccountFromAccountBlocklist,
+ removeAccountFromServerBlocklist,
+ removeServerFromAccountBlocklist,
+ removeServerFromServerBlocklist
+} from '../../utils/users/blocklist'
+
+const expect = chai.expect
+
+async function checkAllVideos (url: string, token: string) {
+ {
+ const res = await getVideosListWithToken(url, token)
+
+ expect(res.body.data).to.have.lengthOf(4)
+ }
+
+ {
+ const res = await getVideosList(url)
+
+ expect(res.body.data).to.have.lengthOf(4)
+ }
+}
+
+async function checkAllComments (url: string, token: string, videoUUID: string) {
+ const resThreads = await getVideoCommentThreads(url, videoUUID, 0, 5, '-createdAt', token)
+
+ const threads: VideoComment[] = resThreads.body.data
+ expect(threads).to.have.lengthOf(2)
+
+ for (const thread of threads) {
+ const res = await getVideoThreadComments(url, videoUUID, thread.id, token)
+
+ const tree: VideoCommentThreadTree = res.body
+ expect(tree.children).to.have.lengthOf(1)
+ }
+}
+
+describe('Test blocklist', function () {
+ let servers: ServerInfo[]
+ let videoUUID1: string
+ let videoUUID2: string
+ let userToken1: string
+ let userModeratorToken: string
+ let userToken2: string
+
+ before(async function () {
+ this.timeout(60000)
+
+ await flushTests()
+
+ servers = await flushAndRunMultipleServers(2)
+ await setAccessTokensToServers(servers)
+
+ {
+ const user = { username: 'user1', password: 'password' }
+ await createUser(servers[0].url, servers[0].accessToken, user.username, user.password)
+
+ userToken1 = await userLogin(servers[0], user)
+ await uploadVideo(servers[0].url, userToken1, { name: 'video user 1' })
+ }
+
+ {
+ const user = { username: 'moderator', password: 'password' }
+ await createUser(servers[0].url, servers[0].accessToken, user.username, user.password)
+
+ userModeratorToken = await userLogin(servers[0], user)
+ }
+
+ {
+ const user = { username: 'user2', password: 'password' }
+ await createUser(servers[1].url, servers[1].accessToken, user.username, user.password)
+
+ userToken2 = await userLogin(servers[1], user)
+ await uploadVideo(servers[1].url, userToken2, { name: 'video user 2' })
+ }
+
+ {
+ const res = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'video server 1' })
+ videoUUID1 = res.body.video.uuid
+ }
+
+ {
+ const res = await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video server 2' })
+ videoUUID2 = res.body.video.uuid
+ }
+
+ await doubleFollow(servers[0], servers[1])
+
+ {
+ const resComment = await addVideoCommentThread(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1, 'comment root 1')
+ const resReply = await addVideoCommentReply(servers[ 0 ].url, userToken1, videoUUID1, resComment.body.comment.id, 'comment user 1')
+ await addVideoCommentReply(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1, resReply.body.comment.id, 'comment root 1')
+ }
+
+ {
+ const resComment = await addVideoCommentThread(servers[ 0 ].url, userToken1, videoUUID1, 'comment user 1')
+ await addVideoCommentReply(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1, resComment.body.comment.id, 'comment root 1')
+ }
+
+ await waitJobs(servers)
+ })
+
+ describe('User blocklist', function () {
+
+ describe('When managing account blocklist', function () {
+ it('Should list all videos', function () {
+ return checkAllVideos(servers[ 0 ].url, servers[ 0 ].accessToken)
+ })
+
+ it('Should list the comments', function () {
+ return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1)
+ })
+
+ it('Should block a remote account', async function () {
+ await addAccountToAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:9002')
+ })
+
+ it('Should hide its videos', async function () {
+ const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken)
+
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(3)
+
+ const v = videos.find(v => v.name === 'video user 2')
+ expect(v).to.be.undefined
+ })
+
+ it('Should block a local account', async function () {
+ await addAccountToAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1')
+ })
+
+ it('Should hide its videos', async function () {
+ const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken)
+
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(2)
+
+ const v = videos.find(v => v.name === 'video user 1')
+ expect(v).to.be.undefined
+ })
+
+ it('Should hide its comments', async function () {
+ const resThreads = await getVideoCommentThreads(servers[ 0 ].url, videoUUID1, 0, 5, '-createdAt', servers[ 0 ].accessToken)
+
+ const threads: VideoComment[] = resThreads.body.data
+ expect(threads).to.have.lengthOf(1)
+ expect(threads[ 0 ].totalReplies).to.equal(0)
+
+ const t = threads.find(t => t.text === 'comment user 1')
+ expect(t).to.be.undefined
+
+ for (const thread of threads) {
+ const res = await getVideoThreadComments(servers[ 0 ].url, videoUUID1, thread.id, servers[ 0 ].accessToken)
+
+ const tree: VideoCommentThreadTree = res.body
+ expect(tree.children).to.have.lengthOf(0)
+ }
+ })
+
+ it('Should list all the videos with another user', async function () {
+ return checkAllVideos(servers[ 0 ].url, userToken1)
+ })
+
+ it('Should list all the comments with another user', async function () {
+ return checkAllComments(servers[ 0 ].url, userToken1, videoUUID1)
+ })
+
+ it('Should list blocked accounts', async function () {
+ {
+ const res = await getAccountBlocklistByAccount(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt')
+ const blocks: AccountBlock[] = res.body.data
+
+ expect(res.body.total).to.equal(2)
+
+ const block = blocks[ 0 ]
+ expect(block.byAccount.displayName).to.equal('root')
+ expect(block.byAccount.name).to.equal('root')
+ expect(block.blockedAccount.displayName).to.equal('user2')
+ expect(block.blockedAccount.name).to.equal('user2')
+ expect(block.blockedAccount.host).to.equal('localhost:9002')
+ }
+
+ {
+ const res = await getAccountBlocklistByAccount(servers[ 0 ].url, servers[ 0 ].accessToken, 1, 2, 'createdAt')
+ const blocks: AccountBlock[] = res.body.data
+
+ expect(res.body.total).to.equal(2)
+
+ const block = blocks[ 0 ]
+ expect(block.byAccount.displayName).to.equal('root')
+ expect(block.byAccount.name).to.equal('root')
+ expect(block.blockedAccount.displayName).to.equal('user1')
+ expect(block.blockedAccount.name).to.equal('user1')
+ expect(block.blockedAccount.host).to.equal('localhost:9001')
+ }
+ })
+
+ it('Should unblock the remote account', async function () {
+ await removeAccountFromAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:9002')
+ })
+
+ it('Should display its videos', async function () {
+ const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken)
+
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(3)
+
+ const v = videos.find(v => v.name === 'video user 2')
+ expect(v).not.to.be.undefined
+ })
+
+ it('Should unblock the local account', async function () {
+ await removeAccountFromAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1')
+ })
+
+ it('Should display its comments', function () {
+ return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1)
+ })
+ })
+
+ describe('When managing server blocklist', function () {
+ it('Should list all videos', function () {
+ return checkAllVideos(servers[ 0 ].url, servers[ 0 ].accessToken)
+ })
+
+ it('Should list the comments', function () {
+ return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1)
+ })
+
+ it('Should block a remote server', async function () {
+ await addServerToAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:9002')
+ })
+
+ it('Should hide its videos', async function () {
+ const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken)
+
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(2)
+
+ const v1 = videos.find(v => v.name === 'video user 2')
+ const v2 = videos.find(v => v.name === 'video server 2')
+
+ expect(v1).to.be.undefined
+ expect(v2).to.be.undefined
+ })
+
+ it('Should list all the videos with another user', async function () {
+ return checkAllVideos(servers[ 0 ].url, userToken1)
+ })
+
+ it('Should hide its comments')
+
+ it('Should list blocked servers', async function () {
+ const res = await getServerBlocklistByAccount(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt')
+ const blocks: ServerBlock[] = res.body.data
+
+ expect(res.body.total).to.equal(1)
+
+ const block = blocks[ 0 ]
+ expect(block.byAccount.displayName).to.equal('root')
+ expect(block.byAccount.name).to.equal('root')
+ expect(block.blockedServer.host).to.equal('localhost:9002')
+ })
+
+ it('Should unblock the remote server', async function () {
+ await removeServerFromAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:9002')
+ })
+
+ it('Should display its videos', function () {
+ return checkAllVideos(servers[ 0 ].url, servers[ 0 ].accessToken)
+ })
+
+ it('Should display its comments', function () {
+ return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1)
+ })
+ })
+ })
+
+ describe('Server blocklist', function () {
+
+ describe('When managing account blocklist', function () {
+ it('Should list all videos', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ await checkAllVideos(servers[ 0 ].url, token)
+ }
+ })
+
+ it('Should list the comments', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ await checkAllComments(servers[ 0 ].url, token, videoUUID1)
+ }
+ })
+
+ it('Should block a remote account', async function () {
+ await addAccountToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:9002')
+ })
+
+ it('Should hide its videos', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ const res = await getVideosListWithToken(servers[ 0 ].url, token)
+
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(3)
+
+ const v = videos.find(v => v.name === 'video user 2')
+ expect(v).to.be.undefined
+ }
+ })
+
+ it('Should block a local account', async function () {
+ await addAccountToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1')
+ })
+
+ it('Should hide its videos', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ const res = await getVideosListWithToken(servers[ 0 ].url, token)
+
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(2)
+
+ const v = videos.find(v => v.name === 'video user 1')
+ expect(v).to.be.undefined
+ }
+ })
+
+ it('Should hide its comments', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ const resThreads = await getVideoCommentThreads(servers[ 0 ].url, videoUUID1, 0, 5, '-createdAt', token)
+
+ const threads: VideoComment[] = resThreads.body.data
+ expect(threads).to.have.lengthOf(1)
+ expect(threads[ 0 ].totalReplies).to.equal(0)
+
+ const t = threads.find(t => t.text === 'comment user 1')
+ expect(t).to.be.undefined
+
+ for (const thread of threads) {
+ const res = await getVideoThreadComments(servers[ 0 ].url, videoUUID1, thread.id, token)
+
+ const tree: VideoCommentThreadTree = res.body
+ expect(tree.children).to.have.lengthOf(0)
+ }
+ }
+ })
+
+ it('Should list blocked accounts', async function () {
+ {
+ const res = await getAccountBlocklistByServer(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt')
+ const blocks: AccountBlock[] = res.body.data
+
+ expect(res.body.total).to.equal(2)
+
+ const block = blocks[ 0 ]
+ expect(block.byAccount.displayName).to.equal('peertube')
+ expect(block.byAccount.name).to.equal('peertube')
+ expect(block.blockedAccount.displayName).to.equal('user2')
+ expect(block.blockedAccount.name).to.equal('user2')
+ expect(block.blockedAccount.host).to.equal('localhost:9002')
+ }
+
+ {
+ const res = await getAccountBlocklistByServer(servers[ 0 ].url, servers[ 0 ].accessToken, 1, 2, 'createdAt')
+ const blocks: AccountBlock[] = res.body.data
+
+ expect(res.body.total).to.equal(2)
+
+ const block = blocks[ 0 ]
+ expect(block.byAccount.displayName).to.equal('peertube')
+ expect(block.byAccount.name).to.equal('peertube')
+ expect(block.blockedAccount.displayName).to.equal('user1')
+ expect(block.blockedAccount.name).to.equal('user1')
+ expect(block.blockedAccount.host).to.equal('localhost:9001')
+ }
+ })
+
+ it('Should unblock the remote account', async function () {
+ await removeAccountFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:9002')
+ })
+
+ it('Should display its videos', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ const res = await getVideosListWithToken(servers[ 0 ].url, token)
+
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(3)
+
+ const v = videos.find(v => v.name === 'video user 2')
+ expect(v).not.to.be.undefined
+ }
+ })
+
+ it('Should unblock the local account', async function () {
+ await removeAccountFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1')
+ })
+
+ it('Should display its comments', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ await checkAllComments(servers[ 0 ].url, token, videoUUID1)
+ }
+ })
+ })
+
+ describe('When managing server blocklist', function () {
+ it('Should list all videos', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ await checkAllVideos(servers[ 0 ].url, token)
+ }
+ })
+
+ it('Should list the comments', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ await checkAllComments(servers[ 0 ].url, token, videoUUID1)
+ }
+ })
+
+ it('Should block a remote server', async function () {
+ await addServerToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:9002')
+ })
+
+ it('Should hide its videos', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ const res1 = await getVideosList(servers[ 0 ].url)
+ const res2 = await getVideosListWithToken(servers[ 0 ].url, token)
+
+ for (const res of [ res1, res2 ]) {
+ const videos: Video[] = res.body.data
+ expect(videos).to.have.lengthOf(2)
+
+ const v1 = videos.find(v => v.name === 'video user 2')
+ const v2 = videos.find(v => v.name === 'video server 2')
+
+ expect(v1).to.be.undefined
+ expect(v2).to.be.undefined
+ }
+ }
+ })
+
+ it('Should hide its comments')
+
+ it('Should list blocked servers', async function () {
+ const res = await getServerBlocklistByServer(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt')
+ const blocks: ServerBlock[] = res.body.data
+
+ expect(res.body.total).to.equal(1)
+
+ const block = blocks[ 0 ]
+ expect(block.byAccount.displayName).to.equal('peertube')
+ expect(block.byAccount.name).to.equal('peertube')
+ expect(block.blockedServer.host).to.equal('localhost:9002')
+ })
+
+ it('Should unblock the remote server', async function () {
+ await removeServerFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:9002')
+ })
+
+ it('Should list all videos', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ await checkAllVideos(servers[ 0 ].url, token)
+ }
+ })
+
+ it('Should list the comments', async function () {
+ for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) {
+ await checkAllComments(servers[ 0 ].url, token, videoUUID1)
+ }
+ })
+ })
+ })
+
+ after(async function () {
+ killallServers(servers)
+
+ // Keep the logs if the test failed
+ if (this[ 'ok' ]) {
+ await flushTests()
+ }
+ })
+})
+import './blocklist'
import './user-subscriptions'
import './users'
import './users-verification'
expect(rootServer1Get.displayName).to.equal('my super display name')
expect(rootServer1Get.description).to.equal('my super description updated')
+ if (server.serverNumber === 1) {
+ expect(rootServer1Get.userId).to.be.a('number')
+ } else {
+ expect(rootServer1Get.userId).to.be.undefined
+ }
+
await testImage(server.url, 'avatar2-resized', rootServer1Get.avatar.path, '.png')
}
})
it('Should be able to upload a video again')
it('Should be able to create a new user', async function () {
- await createUser(server.url, accessToken, user.username,user.password, 2 * 1024 * 1024)
+ await createUser(server.url, accessToken, user.username, user.password, 2 * 1024 * 1024)
})
it('Should be able to login with this user', async function () {
expect(users[ 1 ].nsfwPolicy).to.equal('display')
})
+ it('Should search user by username', async function () {
+ const res = await getUsersListPaginationAndSort(server.url, server.accessToken, 0, 2, 'createdAt', 'oot')
+ const users = res.body.data as User[]
+
+ expect(res.body.total).to.equal(1)
+ expect(users.length).to.equal(1)
+
+ expect(users[ 0 ].username).to.equal('root')
+ })
+
+ it('Should search user by email', async function () {
+ {
+ const res = await getUsersListPaginationAndSort(server.url, server.accessToken, 0, 2, 'createdAt', 'r_1@exam')
+ const users = res.body.data as User[]
+
+ expect(res.body.total).to.equal(1)
+ expect(users.length).to.equal(1)
+
+ expect(users[ 0 ].username).to.equal('user_1')
+ expect(users[ 0 ].email).to.equal('user_1@example.com')
+ }
+
+ {
+ const res = await getUsersListPaginationAndSort(server.url, server.accessToken, 0, 2, 'createdAt', 'example')
+ const users = res.body.data as User[]
+
+ expect(res.body.total).to.equal(2)
+ expect(users.length).to.equal(2)
+
+ expect(users[ 0 ].username).to.equal('root')
+ expect(users[ 1 ].username).to.equal('user_1')
+ }
+ })
+
it('Should update my password', async function () {
await updateMyUser({
url: server.url,
import './video-privacy'
import './video-schedule-update'
import './video-transcoder'
+import './videos-filter'
+import './videos-history'
import './videos-overview'
files: [
{
resolution: 720,
- size: 36000
+ size: 72000
},
{
resolution: 480,
- size: 21000
+ size: 45000
},
{
resolution: 360,
- size: 17000
+ size: 34600
},
{
resolution: 240,
- size: 13000
+ size: 24770
}
]
}
const categories = res.body
expect(Object.keys(categories)).to.have.length.above(10)
- expect(categories[11]).to.equal('News')
+ expect(categories[11]).to.equal('News & Politics')
})
it('Should list video licences', async function () {
const videoHttp: VideoDetails = resHttp.body
expect(videoHttp.name).to.equal('small video - youtube')
- expect(videoHttp.category.label).to.equal('News')
+ expect(videoHttp.category.label).to.equal('News & Politics')
expect(videoHttp.licence.label).to.equal('Attribution')
expect(videoHttp.language.label).to.equal('Unknown')
expect(videoHttp.nsfw).to.be.false
import 'mocha'
import { omit } from 'lodash'
import * as ffmpeg from 'fluent-ffmpeg'
-import { VideoDetails, VideoState } from '../../../../shared/models/videos'
-import { getVideoFileFPS, audio } from '../../../helpers/ffmpeg-utils'
+import { getMaxBitrate, VideoDetails, VideoResolution, VideoState } from '../../../../shared/models/videos'
+import { audio, getVideoFileBitrate, getVideoFileFPS, getVideoFileResolution } from '../../../helpers/ffmpeg-utils'
import {
buildAbsoluteFixturePath,
doubleFollow,
ServerInfo,
setAccessTokensToServers,
uploadVideo,
- webtorrentAdd
+ webtorrentAdd,
+ generateHighBitrateVideo
} from '../../utils'
import { join } from 'path'
import { waitJobs } from '../../utils/server/jobs'
+import { pathExists } from 'fs-extra'
+import { VIDEO_TRANSCODING_FPS } from '../../../../server/initializers/constants'
const expect = chai.expect
expect(videoDetails.files).to.have.lengthOf(4)
const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4')
- const probe = await audio.get(ffmpeg, path)
+ const probe = await audio.get(path)
if (probe.audioStream) {
expect(probe.audioStream[ 'codec_name' ]).to.be.equal('aac')
expect(videoDetails.files).to.have.lengthOf(4)
const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4')
- const probe = await audio.get(ffmpeg, path)
+ const probe = await audio.get(path)
expect(probe).to.not.have.property('audioStream')
}
})
expect(videoDetails.files).to.have.lengthOf(4)
const fixturePath = buildAbsoluteFixturePath(videoAttributes.fixture)
- const fixtureVideoProbe = await audio.get(ffmpeg, fixturePath)
+ const fixtureVideoProbe = await audio.get(fixturePath)
const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4')
- const videoProbe = await audio.get(ffmpeg, path)
+ const videoProbe = await audio.get(path)
if (videoProbe.audioStream && fixtureVideoProbe.audioStream) {
const toOmit = [ 'max_bit_rate', 'duration', 'duration_ts', 'nb_frames', 'start_time', 'start_pts' ]
expect(omit(videoProbe.audioStream, toOmit)).to.be.deep.equal(omit(fixtureVideoProbe.audioStream, toOmit))
}
})
- it('Should wait transcoding before publishing the video', async function () {
+ it('Should wait for transcoding before publishing the video', async function () {
this.timeout(80000)
{
}
})
+ it('Should respect maximum bitrate values', async function () {
+ this.timeout(160000)
+
+ let tempFixturePath: string
+
+ {
+ tempFixturePath = await generateHighBitrateVideo()
+
+ const bitrate = await getVideoFileBitrate(tempFixturePath)
+ expect(bitrate).to.be.above(getMaxBitrate(VideoResolution.H_1080P, 60, VIDEO_TRANSCODING_FPS))
+ }
+
+ const videoAttributes = {
+ name: 'high bitrate video',
+ description: 'high bitrate video',
+ fixture: tempFixturePath
+ }
+
+ await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes)
+
+ await waitJobs(servers)
+
+ for (const server of servers) {
+ const res = await getVideosList(server.url)
+
+ const video = res.body.data.find(v => v.name === videoAttributes.name)
+
+ for (const resolution of ['240', '360', '480', '720', '1080']) {
+ const path = join(root(), 'test2', 'videos', video.uuid + '-' + resolution + '.mp4')
+ const bitrate = await getVideoFileBitrate(path)
+ const fps = await getVideoFileFPS(path)
+ const resolution2 = await getVideoFileResolution(path)
+
+ expect(resolution2.videoFileResolution.toString()).to.equal(resolution)
+ expect(bitrate).to.be.below(getMaxBitrate(resolution2.videoFileResolution, fps, VIDEO_TRANSCODING_FPS))
+ }
+ }
+ })
+
after(async function () {
killallServers(servers)
})
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import * as chai from 'chai'
+import 'mocha'
+import {
+ createUser,
+ doubleFollow,
+ flushAndRunMultipleServers,
+ flushTests,
+ killallServers,
+ makeGetRequest,
+ ServerInfo,
+ setAccessTokensToServers,
+ uploadVideo,
+ userLogin
+} from '../../utils'
+import { Video, VideoPrivacy } from '../../../../shared/models/videos'
+import { UserRole } from '../../../../shared/models/users'
+
+const expect = chai.expect
+
+async function getVideosNames (server: ServerInfo, token: string, filter: string, statusCodeExpected = 200) {
+ const paths = [
+ '/api/v1/video-channels/root_channel/videos',
+ '/api/v1/accounts/root/videos',
+ '/api/v1/videos',
+ '/api/v1/search/videos'
+ ]
+
+ const videosResults: Video[][] = []
+
+ for (const path of paths) {
+ const res = await makeGetRequest({
+ url: server.url,
+ path,
+ token,
+ query: {
+ sort: 'createdAt',
+ filter
+ },
+ statusCodeExpected
+ })
+
+ videosResults.push(res.body.data.map(v => v.name))
+ }
+
+ return videosResults
+}
+
+describe('Test videos filter validator', function () {
+ let servers: ServerInfo[]
+
+ // ---------------------------------------------------------------
+
+ before(async function () {
+ this.timeout(120000)
+
+ await flushTests()
+
+ servers = await flushAndRunMultipleServers(2)
+
+ await setAccessTokensToServers(servers)
+
+ for (const server of servers) {
+ const moderator = { username: 'moderator', password: 'my super password' }
+ await createUser(
+ server.url,
+ server.accessToken,
+ moderator.username,
+ moderator.password,
+ undefined,
+ undefined,
+ UserRole.MODERATOR
+ )
+ server['moderatorAccessToken'] = await userLogin(server, moderator)
+
+ await uploadVideo(server.url, server.accessToken, { name: 'public ' + server.serverNumber })
+
+ {
+ const attributes = { name: 'unlisted ' + server.serverNumber, privacy: VideoPrivacy.UNLISTED }
+ await uploadVideo(server.url, server.accessToken, attributes)
+ }
+
+ {
+ const attributes = { name: 'private ' + server.serverNumber, privacy: VideoPrivacy.PRIVATE }
+ await uploadVideo(server.url, server.accessToken, attributes)
+ }
+ }
+
+ await doubleFollow(servers[0], servers[1])
+ })
+
+ describe('Check videos filter', function () {
+
+ it('Should display local videos', async function () {
+ for (const server of servers) {
+ const namesResults = await getVideosNames(server, server.accessToken, 'local')
+ for (const names of namesResults) {
+ expect(names).to.have.lengthOf(1)
+ expect(names[ 0 ]).to.equal('public ' + server.serverNumber)
+ }
+ }
+ })
+
+ it('Should display all local videos by the admin or the moderator', async function () {
+ for (const server of servers) {
+ for (const token of [ server.accessToken, server['moderatorAccessToken'] ]) {
+
+ const namesResults = await getVideosNames(server, token, 'all-local')
+ for (const names of namesResults) {
+ expect(names).to.have.lengthOf(3)
+
+ expect(names[ 0 ]).to.equal('public ' + server.serverNumber)
+ expect(names[ 1 ]).to.equal('unlisted ' + server.serverNumber)
+ expect(names[ 2 ]).to.equal('private ' + server.serverNumber)
+ }
+ }
+ }
+ })
+ })
+
+ after(async function () {
+ killallServers(servers)
+
+ // Keep the logs if the test failed
+ if (this['ok']) {
+ await flushTests()
+ }
+ })
+})
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import * as chai from 'chai'
+import 'mocha'
+import {
+ flushTests,
+ getVideosListWithToken,
+ getVideoWithToken,
+ killallServers, makePutBodyRequest,
+ runServer, searchVideoWithToken,
+ ServerInfo,
+ setAccessTokensToServers,
+ uploadVideo
+} from '../../utils'
+import { Video, VideoDetails } from '../../../../shared/models/videos'
+import { userWatchVideo } from '../../utils/videos/video-history'
+
+const expect = chai.expect
+
+describe('Test videos history', function () {
+ let server: ServerInfo = null
+ let video1UUID: string
+ let video2UUID: string
+ let video3UUID: string
+
+ before(async function () {
+ this.timeout(30000)
+
+ await flushTests()
+
+ server = await runServer(1)
+
+ await setAccessTokensToServers([ server ])
+
+ {
+ const res = await uploadVideo(server.url, server.accessToken, { name: 'video 1' })
+ video1UUID = res.body.video.uuid
+ }
+
+ {
+ const res = await uploadVideo(server.url, server.accessToken, { name: 'video 2' })
+ video2UUID = res.body.video.uuid
+ }
+
+ {
+ const res = await uploadVideo(server.url, server.accessToken, { name: 'video 3' })
+ video3UUID = res.body.video.uuid
+ }
+ })
+
+ it('Should get videos, without watching history', async function () {
+ const res = await getVideosListWithToken(server.url, server.accessToken)
+ const videos: Video[] = res.body.data
+
+ for (const video of videos) {
+ const resDetail = await getVideoWithToken(server.url, server.accessToken, video.id)
+ const videoDetails: VideoDetails = resDetail.body
+
+ expect(video.userHistory).to.be.undefined
+ expect(videoDetails.userHistory).to.be.undefined
+ }
+ })
+
+ it('Should watch the first and second video', async function () {
+ await userWatchVideo(server.url, server.accessToken, video1UUID, 3)
+ await userWatchVideo(server.url, server.accessToken, video2UUID, 8)
+ })
+
+ it('Should return the correct history when listing, searching and getting videos', async function () {
+ const videosOfVideos: Video[][] = []
+
+ {
+ const res = await getVideosListWithToken(server.url, server.accessToken)
+ videosOfVideos.push(res.body.data)
+ }
+
+ {
+ const res = await searchVideoWithToken(server.url, 'video', server.accessToken)
+ videosOfVideos.push(res.body.data)
+ }
+
+ for (const videos of videosOfVideos) {
+ const video1 = videos.find(v => v.uuid === video1UUID)
+ const video2 = videos.find(v => v.uuid === video2UUID)
+ const video3 = videos.find(v => v.uuid === video3UUID)
+
+ expect(video1.userHistory).to.not.be.undefined
+ expect(video1.userHistory.currentTime).to.equal(3)
+
+ expect(video2.userHistory).to.not.be.undefined
+ expect(video2.userHistory.currentTime).to.equal(8)
+
+ expect(video3.userHistory).to.be.undefined
+ }
+
+ {
+ const resDetail = await getVideoWithToken(server.url, server.accessToken, video1UUID)
+ const videoDetails: VideoDetails = resDetail.body
+
+ expect(videoDetails.userHistory).to.not.be.undefined
+ expect(videoDetails.userHistory.currentTime).to.equal(3)
+ }
+
+ {
+ const resDetail = await getVideoWithToken(server.url, server.accessToken, video2UUID)
+ const videoDetails: VideoDetails = resDetail.body
+
+ expect(videoDetails.userHistory).to.not.be.undefined
+ expect(videoDetails.userHistory.currentTime).to.equal(8)
+ }
+
+ {
+ const resDetail = await getVideoWithToken(server.url, server.accessToken, video3UUID)
+ const videoDetails: VideoDetails = resDetail.body
+
+ expect(videoDetails.userHistory).to.be.undefined
+ }
+ })
+
+ after(async function () {
+ killallServers([ server ])
+
+ // Keep the logs if the test failed
+ if (this['ok']) {
+ await flushTests()
+ }
+ })
+})
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import 'mocha'
+import * as chai from 'chai'
+import { getMaxBitrate, Video, VideoDetails, VideoResolution } from '../../../shared/models/videos'
+import {
+ doubleFollow,
+ execCLI,
+ flushAndRunMultipleServers,
+ flushTests, generateHighBitrateVideo,
+ getEnvCli,
+ getVideo,
+ getVideosList,
+ killallServers, root,
+ ServerInfo,
+ setAccessTokensToServers,
+ uploadVideo, viewVideo, wait
+} from '../utils'
+import { waitJobs } from '../utils/server/jobs'
+import { getVideoFileBitrate, getVideoFileFPS, getVideoFileResolution } from '../../helpers/ffmpeg-utils'
+import { VIDEO_TRANSCODING_FPS } from '../../initializers'
+import { join } from 'path'
+
+const expect = chai.expect
+
+describe('Test optimize old videos', function () {
+ let servers: ServerInfo[] = []
+ let video1UUID: string
+ let video2UUID: string
+
+ before(async function () {
+ this.timeout(200000)
+
+ await flushTests()
+
+ // Run server 2 to have transcoding enabled
+ servers = await flushAndRunMultipleServers(2)
+ await setAccessTokensToServers(servers)
+
+ await doubleFollow(servers[0], servers[1])
+
+ let tempFixturePath: string
+
+ {
+ tempFixturePath = await generateHighBitrateVideo()
+
+ const bitrate = await getVideoFileBitrate(tempFixturePath)
+ expect(bitrate).to.be.above(getMaxBitrate(VideoResolution.H_1080P, 60, VIDEO_TRANSCODING_FPS))
+ }
+
+ // Upload two videos for our needs
+ const res1 = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'video1', fixture: tempFixturePath })
+ video1UUID = res1.body.video.uuid
+ const res2 = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'video2', fixture: tempFixturePath })
+ video2UUID = res2.body.video.uuid
+
+ await waitJobs(servers)
+ })
+
+ it('Should have two video files on each server', async function () {
+ this.timeout(30000)
+
+ for (const server of servers) {
+ const res = await getVideosList(server.url)
+ const videos = res.body.data
+ expect(videos).to.have.lengthOf(2)
+
+ for (const video of videos) {
+ const res2 = await getVideo(server.url, video.uuid)
+ const videoDetail: VideoDetails = res2.body
+ expect(videoDetail.files).to.have.lengthOf(1)
+ }
+ }
+ })
+
+ it('Should run optimize script', async function () {
+ this.timeout(120000)
+
+ const env = getEnvCli(servers[0])
+ await execCLI(`${env} npm run optimize-old-videos`)
+
+ await waitJobs(servers)
+
+ for (const server of servers) {
+ const res = await getVideosList(server.url)
+ const videos: Video[] = res.body.data
+
+ expect(videos).to.have.lengthOf(2)
+
+ for (const video of videos) {
+ await viewVideo(server.url, video.uuid)
+
+ // Refresh video
+ await waitJobs(servers)
+ await wait(5000)
+ await waitJobs(servers)
+
+ const res2 = await getVideo(server.url, video.uuid)
+ const videosDetails: VideoDetails = res2.body
+
+ expect(videosDetails.files).to.have.lengthOf(1)
+ const file = videosDetails.files[0]
+
+ expect(file.size).to.be.below(5000000)
+
+ const path = join(root(), 'test1', 'videos', video.uuid + '-' + file.resolution.id + '.mp4')
+ const bitrate = await getVideoFileBitrate(path)
+ const fps = await getVideoFileFPS(path)
+ const resolution = await getVideoFileResolution(path)
+
+ expect(resolution.videoFileResolution).to.equal(file.resolution.id)
+ expect(bitrate).to.be.below(getMaxBitrate(resolution.videoFileResolution, fps, VIDEO_TRANSCODING_FPS))
+ }
+ }
+ })
+
+ after(async function () {
+ killallServers(servers)
+ })
+})
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import * as chai from 'chai'
+import 'mocha'
+import {
+ parseBytes
+} from '../../helpers/core-utils'
+
+const expect = chai.expect
+
+describe('Parse Bytes', function () {
+ it('Should pass when given valid value', async function () {
+ // just return it
+ expect(parseBytes(1024)).to.be.eq(1024)
+ expect(parseBytes(1048576)).to.be.eq(1048576)
+ expect(parseBytes('1024')).to.be.eq(1024)
+ expect(parseBytes('1048576')).to.be.eq(1048576)
+
+ // sizes
+ expect(parseBytes('1B')).to.be.eq(1024)
+ expect(parseBytes('1MB')).to.be.eq(1048576)
+ expect(parseBytes('1GB')).to.be.eq(1073741824)
+ expect(parseBytes('1TB')).to.be.eq(1099511627776)
+
+ expect(parseBytes('5GB')).to.be.eq(5368709120)
+ expect(parseBytes('5TB')).to.be.eq(5497558138880)
+
+ expect(parseBytes('1024B')).to.be.eq(1048576)
+ expect(parseBytes('1024MB')).to.be.eq(1073741824)
+ expect(parseBytes('1024GB')).to.be.eq(1099511627776)
+ expect(parseBytes('1024TB')).to.be.eq(1125899906842624)
+
+ // with whitespace
+ expect(parseBytes('1 GB')).to.be.eq(1073741824)
+ expect(parseBytes('1\tGB')).to.be.eq(1073741824)
+
+ // sum value
+ expect(parseBytes('1TB 1024MB')).to.be.eq(1100585369600)
+ expect(parseBytes('4GB 1024MB')).to.be.eq(5368709120)
+ expect(parseBytes('4TB 1024GB')).to.be.eq(5497558138880)
+ expect(parseBytes('4TB 1024GB 0MB')).to.be.eq(5497558138880)
+ expect(parseBytes('1024TB 1024GB 1024MB')).to.be.eq(1127000492212224)
+ })
+
+ it('Should be invalid when given invalid value', async function () {
+ expect(parseBytes('6GB 1GB')).to.be.eq(6)
+ })
+})
--- /dev/null
+import './core-utils'
import { isAbsolute, join } from 'path'
import * as request from 'supertest'
import * as WebTorrent from 'webtorrent'
-import { readFile } from 'fs-extra'
+import { pathExists, readFile } from 'fs-extra'
+import * as ffmpeg from 'fluent-ffmpeg'
const expect = chai.expect
let webtorrent = new WebTorrent()
expect(data.length).to.be.below(maxLength)
}
-function buildAbsoluteFixturePath (path: string) {
+function buildAbsoluteFixturePath (path: string, customTravisPath = false) {
if (isAbsolute(path)) {
return path
}
+ if (customTravisPath && process.env.TRAVIS) return join(process.env.HOME, 'fixtures', path)
+
return join(__dirname, '..', '..', 'fixtures', path)
}
+async function generateHighBitrateVideo () {
+ const tempFixturePath = buildAbsoluteFixturePath('video_high_bitrate_1080p.mp4', true)
+
+ const exists = await pathExists(tempFixturePath)
+ if (!exists) {
+
+ // Generate a random, high bitrate video on the fly, so we don't have to include
+ // a large file in the repo. The video needs to have a certain minimum length so
+ // that FFmpeg properly applies bitrate limits.
+ // https://stackoverflow.com/a/15795112
+ return new Promise<string>(async (res, rej) => {
+ ffmpeg()
+ .outputOptions([ '-f rawvideo', '-video_size 1920x1080', '-i /dev/urandom' ])
+ .outputOptions([ '-ac 2', '-f s16le', '-i /dev/urandom', '-t 10' ])
+ .outputOptions([ '-maxrate 10M', '-bufsize 10M' ])
+ .output(tempFixturePath)
+ .on('error', rej)
+ .on('end', () => res(tempFixturePath))
+ .run()
+ })
+ }
+
+ return tempFixturePath
+}
+
// ---------------------------------------------------------------------------
export {
immutableAssign,
testImage,
buildAbsoluteFixturePath,
- root
+ root,
+ generateHighBitrateVideo
}
if (options.token) req.set('Authorization', 'Bearer ' + options.token)
- return req
- .expect('Content-Type', /json/)
- .expect(options.statusCodeExpected)
+ return req.expect(options.statusCodeExpected)
}
function makeUploadRequest (options: {
import { ServerInfo } from './servers'
import { waitJobs } from './jobs'
-function getFollowersListPaginationAndSort (url: string, start: number, count: number, sort: string) {
+function getFollowersListPaginationAndSort (url: string, start: number, count: number, sort: string, search?: string) {
const path = '/api/v1/server/followers'
return request(url)
.query({ start })
.query({ count })
.query({ sort })
+ .query({ search })
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
}
-function getFollowingListPaginationAndSort (url: string, start: number, count: number, sort: string) {
+function getFollowingListPaginationAndSort (url: string, start: number, count: number, sort: string, search?: string) {
const path = '/api/v1/server/following'
return request(url)
.query({ start })
.query({ count })
.query({ sort })
+ .query({ search })
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
--- /dev/null
+/* tslint:disable:no-unused-expression */
+
+import { makeDeleteRequest, makePostBodyRequest } from '../index'
+import { makeGetRequest } from '../requests/requests'
+
+function getAccountBlocklistByAccount (
+ url: string,
+ token: string,
+ start: number,
+ count: number,
+ sort = '-createdAt',
+ statusCodeExpected = 200
+) {
+ const path = '/api/v1/users/me/blocklist/accounts'
+
+ return makeGetRequest({
+ url,
+ token,
+ query: { start, count, sort },
+ path,
+ statusCodeExpected
+ })
+}
+
+function addAccountToAccountBlocklist (url: string, token: string, accountToBlock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/users/me/blocklist/accounts'
+
+ return makePostBodyRequest({
+ url,
+ path,
+ token,
+ fields: {
+ accountName: accountToBlock
+ },
+ statusCodeExpected
+ })
+}
+
+function removeAccountFromAccountBlocklist (url: string, token: string, accountToUnblock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/users/me/blocklist/accounts/' + accountToUnblock
+
+ return makeDeleteRequest({
+ url,
+ path,
+ token,
+ statusCodeExpected
+ })
+}
+
+function getServerBlocklistByAccount (
+ url: string,
+ token: string,
+ start: number,
+ count: number,
+ sort = '-createdAt',
+ statusCodeExpected = 200
+) {
+ const path = '/api/v1/users/me/blocklist/servers'
+
+ return makeGetRequest({
+ url,
+ token,
+ query: { start, count, sort },
+ path,
+ statusCodeExpected
+ })
+}
+
+function addServerToAccountBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/users/me/blocklist/servers'
+
+ return makePostBodyRequest({
+ url,
+ path,
+ token,
+ fields: {
+ host: serverToBlock
+ },
+ statusCodeExpected
+ })
+}
+
+function removeServerFromAccountBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/users/me/blocklist/servers/' + serverToBlock
+
+ return makeDeleteRequest({
+ url,
+ path,
+ token,
+ statusCodeExpected
+ })
+}
+
+function getAccountBlocklistByServer (
+ url: string,
+ token: string,
+ start: number,
+ count: number,
+ sort = '-createdAt',
+ statusCodeExpected = 200
+) {
+ const path = '/api/v1/server/blocklist/accounts'
+
+ return makeGetRequest({
+ url,
+ token,
+ query: { start, count, sort },
+ path,
+ statusCodeExpected
+ })
+}
+
+function addAccountToServerBlocklist (url: string, token: string, accountToBlock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/server/blocklist/accounts'
+
+ return makePostBodyRequest({
+ url,
+ path,
+ token,
+ fields: {
+ accountName: accountToBlock
+ },
+ statusCodeExpected
+ })
+}
+
+function removeAccountFromServerBlocklist (url: string, token: string, accountToUnblock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/server/blocklist/accounts/' + accountToUnblock
+
+ return makeDeleteRequest({
+ url,
+ path,
+ token,
+ statusCodeExpected
+ })
+}
+
+function getServerBlocklistByServer (
+ url: string,
+ token: string,
+ start: number,
+ count: number,
+ sort = '-createdAt',
+ statusCodeExpected = 200
+) {
+ const path = '/api/v1/server/blocklist/servers'
+
+ return makeGetRequest({
+ url,
+ token,
+ query: { start, count, sort },
+ path,
+ statusCodeExpected
+ })
+}
+
+function addServerToServerBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/server/blocklist/servers'
+
+ return makePostBodyRequest({
+ url,
+ path,
+ token,
+ fields: {
+ host: serverToBlock
+ },
+ statusCodeExpected
+ })
+}
+
+function removeServerFromServerBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
+ const path = '/api/v1/server/blocklist/servers/' + serverToBlock
+
+ return makeDeleteRequest({
+ url,
+ path,
+ token,
+ statusCodeExpected
+ })
+}
+
+// ---------------------------------------------------------------------------
+
+export {
+ getAccountBlocklistByAccount,
+ addAccountToAccountBlocklist,
+ removeAccountFromAccountBlocklist,
+ getServerBlocklistByAccount,
+ addServerToAccountBlocklist,
+ removeServerFromAccountBlocklist,
+
+ getAccountBlocklistByServer,
+ addAccountToServerBlocklist,
+ removeAccountFromServerBlocklist,
+ getServerBlocklistByServer,
+ addServerToServerBlocklist,
+ removeServerFromServerBlocklist
+}
.expect('Content-Type', /json/)
}
-function getUsersListPaginationAndSort (url: string, accessToken: string, start: number, count: number, sort: string) {
+function getUsersListPaginationAndSort (url: string, accessToken: string, start: number, count: number, sort: string, search?: string) {
const path = '/api/v1/users'
return request(url)
.query({ start })
.query({ count })
.query({ sort })
+ .query({ search })
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
.expect(200)
import * as request from 'supertest'
import { makeDeleteRequest } from '../'
-function getVideoCommentThreads (url: string, videoId: number | string, start: number, count: number, sort?: string) {
+function getVideoCommentThreads (url: string, videoId: number | string, start: number, count: number, sort?: string, token?: string) {
const path = '/api/v1/videos/' + videoId + '/comment-threads'
const req = request(url)
.query({ count: count })
if (sort) req.query({ sort })
+ if (token) req.set('Authorization', 'Bearer ' + token)
return req.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
}
-function getVideoThreadComments (url: string, videoId: number | string, threadId: number) {
+function getVideoThreadComments (url: string, videoId: number | string, threadId: number, token?: string) {
const path = '/api/v1/videos/' + videoId + '/comment-threads/' + threadId
- return request(url)
+ const req = request(url)
.get(path)
.set('Accept', 'application/json')
- .expect(200)
- .expect('Content-Type', /json/)
+
+ if (token) req.set('Authorization', 'Bearer ' + token)
+
+ return req.expect(200)
+ .expect('Content-Type', /json/)
}
function addVideoCommentThread (url: string, token: string, videoId: number | string, text: string, expectedStatus = 200) {
--- /dev/null
+import { makePutBodyRequest } from '../requests/requests'
+
+function userWatchVideo (url: string, token: string, videoId: number | string, currentTime: number) {
+ const path = '/api/v1/videos/' + videoId + '/watching'
+ const fields = { currentTime }
+
+ return makePutBodyRequest({ url, path, token, fields, statusCodeExpected: 204 })
+}
+
+// ---------------------------------------------------------------------------
+
+export {
+ userWatchVideo
+}
--- /dev/null
+peertube(8) -- companion CLI for PeerTube
+=========================================
+
+SYNOPSIS
+--------
+
+```
+peertube [command] [options]
+```
+
+DESCRIPTION
+-----------
+
+`peertube` wraps various utilities around PeerTube that are used either on a running local, running remote, or cold local instance.
+
+COMMANDS
+--------
+
+Unless otherwise specified, every command can be queried for its own help or manual by passing its name to the `help` command, or by using the `--help` option.
+
+`auth [action]`: stores credentials for your accounts on remote instances so that you don't need to pass them at every command
+
+`upload|up`: upload a video to a remote instance
+
+ $ peertube upload \
+ -u "PEERTUBE_URL" \
+ -U "PEERTUBE_USER" \
+ --password "PEERTUBE_PASSWORD"
+
+`import-videos|import`: import a video from a streaming platform to a remote instance
+
+ $ peertube import \
+ -u "PEERTUBE_URL" \
+ -U "PEERTUBE_USER" \
+ --password "PEERTUBE_PASSWORD" \
+ -t "TARGET_URL"
+
+ The target URL can be directly the video file, or any of the supported sites of youtube-dl. The video is downloaded locally and then uploaded. Already downloaded videos will not be uploaded twice, so you can run and re-run the script in case of crash, disconnection…
+
+`watch|w`: watch a video in the terminal ✩°。⋆
+
+ -g, --gui <player> player type (default: ascii)
+ -i, --invert invert colors (ascii player only)
+ -r, --resolution <res> video resolution (default: 720)
+
+ It provides support for different players:
+
+ - ascii (default ; plays in ascii art in your terminal!)
+ - mpv
+ - mplayer
+ - vlc
+ - stdout
+ - xbmc
+ - airplay
+ - chromecast
+
+`repl`: interact with the application libraries and objects even when PeerTube is not running
+
+ Type .help to see the repl-only functions, or to see the available PeerTube core functions:
+
+ repl> lodash.keys(context)
+
+`help [cmd]`: display help for [cmd]
+
+EXAMPLES
+--------
+
+ $ peertube auth add -u "PEERTUBE_URL" -U "PEERTUBE_USER" --password "PEERTUBE_PASSWORD"
+ $ peertube up <videoFile>
+ $ peertube watch https://peertube.cpy.re/videos/watch/e8a1af4e-414a-4d58-bfe6-2146eed06d10
+
+SEE ALSO
+--------
+
+[PeerTube Tools Documentation](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/tools.md)
+
+[PeerTube Admin Documentation](https://docs.joinpeertube.org/lang/en/docs/)
+
+REPORTING BUGS
+--------------
+
+See [PeerTube repository](https://github.com/Chocobozzz/PeerTube).
if (err) {
return rej(err)
}
- return res(data || settings)
+ return res(Object.keys(data).length === 0 ? settings : data)
})
})
}
import { truncate } from 'lodash'
import * as prompt from 'prompt'
import { remove } from 'fs-extra'
+import { sha256 } from '../helpers/core-utils'
import { safeGetYoutubeDL } from '../helpers/youtube-dl'
import { getSettings, netrc } from './cli'
await processVideo(info, program['language'], processOptions.cwd, url, user)
}
- // https://www.youtube.com/watch?v=2Upx39TBc1s
- console.log('I\'m finished!')
+ console.log('Video/s for user %s imported: %s', program['username'], program['targetUrl'])
process.exit(0)
})
}
return res()
}
- const path = join(cwd, new Date().getTime() + '.mp4')
+ const path = join(cwd, sha256(videoInfo.url) + '.mp4')
console.log('Downloading video "%s"...', videoInfo.title)
let thumbnailfile
if (videoInfo.thumbnail) {
- thumbnailfile = join(cwd, 'thumbnail.jpg')
+ thumbnailfile = join(cwd, sha256(videoInfo.thumbnail) + '.jpg')
await doRequestAndSaveToFile({
method: 'GET',
--- /dev/null
+import * as repl from 'repl'
+import * as path from 'path'
+import * as _ from 'lodash'
+import * as uuidv1 from 'uuid/v1'
+import * as uuidv3 from 'uuid/v3'
+import * as uuidv4 from 'uuid/v4'
+import * as uuidv5 from 'uuid/v5'
+import * as Sequelize from 'sequelize'
+import * as YoutubeDL from 'youtube-dl'
+
+import { initDatabaseModels, sequelizeTypescript } from '../initializers'
+import * as cli from '../tools/cli'
+import { logger } from '../helpers/logger'
+import * as constants from '../initializers/constants'
+import * as modelsUtils from '../models/utils'
+import * as coreUtils from '../helpers/core-utils'
+import * as ffmpegUtils from '../helpers/ffmpeg-utils'
+import * as peertubeCryptoUtils from '../helpers/peertube-crypto'
+import * as signupUtils from '../helpers/signup'
+import * as utils from '../helpers/utils'
+import * as YoutubeDLUtils from '../helpers/youtube-dl'
+
+let versionCommitHash
+
+const start = async () => {
+ await initDatabaseModels(true)
+
+ await utils.getVersion().then((data) => {
+ versionCommitHash = data
+ })
+
+ const initContext = (replServer) => {
+ return (context) => {
+ const properties = {
+ context, repl: replServer, env: process.env,
+ lodash: _, path,
+ uuidv1, uuidv3, uuidv4, uuidv5,
+ cli, logger, constants,
+ Sequelize, sequelizeTypescript, modelsUtils,
+ models: sequelizeTypescript.models, transaction: sequelizeTypescript.transaction,
+ query: sequelizeTypescript.query, queryInterface: sequelizeTypescript.getQueryInterface(),
+ YoutubeDL,
+ coreUtils, ffmpegUtils, peertubeCryptoUtils, signupUtils, utils, YoutubeDLUtils
+ }
+
+ for (let prop in properties) {
+ Object.defineProperty(context, prop, {
+ configurable: false,
+ enumerable: true,
+ value: properties[prop]
+ })
+ }
+ }
+ }
+
+ const replServer = repl.start({
+ prompt: `PeerTube [${cli.version}] (${versionCommitHash})> `
+ })
+
+ initContext(replServer)(replServer.context)
+ replServer.on('reset', initContext(replServer))
+
+ const resetCommand = {
+ help: 'Reset REPL',
+ action () {
+ this.write('.clear\n')
+ this.displayPrompt()
+ }
+ }
+ replServer.defineCommand('reset', resetCommand)
+ replServer.defineCommand('r', resetCommand)
+
+}
+
+start().then((data) => {
+ // do nothing
+}).catch((err) => {
+ console.error(err)
+})
.command('import-videos', 'import a video from a streaming platform').alias('import')
.command('get-access-token', 'get a peertube access token', { noHelp: true }).alias('token')
.command('watch', 'watch a video in the terminal ✩°。⋆').alias('w')
+ .command('repl', 'initiate a REPL to access internals')
/* Not Yet Implemented */
program
export type ActivityVideoUrlObject = {
type: 'Link'
- mimeType: 'video/mp4' | 'video/webm' | 'video/ogg'
+ // TODO: remove mimeType (backward compatibility, introduced in v1.1.0)
+ mimeType?: 'video/mp4' | 'video/webm' | 'video/ogg'
+ mediaType: 'video/mp4' | 'video/webm' | 'video/ogg'
href: string
height: number
size: number
|
{
type: 'Link'
- mimeType: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
+ // TODO: remove mimeType (backward compatibility, introduced in v1.1.0)
+ mimeType?: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
+ mediaType: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
href: string
height: number
}
|
{
type: 'Link'
- mimeType: 'text/html'
+ // TODO: remove mimeType (backward compatibility, introduced in v1.1.0)
+ mimeType?: 'text/html'
+ mediaType: 'text/html'
href: string
}
export interface Account extends Actor {
displayName: string
description: string
+
+ userId?: number
}
--- /dev/null
+import { Account } from '../actors'
+
+export interface AccountBlock {
+ byAccount: Account
+ blockedAccount: Account
+ createdAt: Date | string
+}
--- /dev/null
+export * from './account-block.model'
+export * from './server-block.model'
--- /dev/null
+import { Account } from '../actors'
+
+export interface ServerBlock {
+ byAccount: Account
+ blockedServer: {
+ host: string
+ }
+ createdAt: Date | string
+}
export * from './activitypub'
export * from './actors'
export * from './avatars'
+export * from './blocklist'
export * from './redundancy'
export * from './users'
export * from './videos'
import { NSFWQuery } from './nsfw-query.model'
+import { VideoFilter } from '../videos'
export interface VideosSearchQuery {
search?: string
durationMin?: number // seconds
durationMax?: number // seconds
+
+ filter?: VideoFilter
}
export * from './user-right.enum'
export * from './user-role'
export * from './user-video-quota.model'
+export * from './user-watching-video.model'
MANAGE_JOBS,
MANAGE_CONFIGURATION,
+ MANAGE_ACCOUNTS_BLOCKLIST,
+ MANAGE_SERVERS_BLOCKLIST,
+
MANAGE_VIDEO_BLACKLIST,
REMOVE_ANY_VIDEO,
REMOVE_ANY_VIDEO_CHANNEL,
REMOVE_ANY_VIDEO_COMMENT,
UPDATE_ANY_VIDEO,
+ SEE_ALL_VIDEOS,
CHANGE_VIDEO_OWNERSHIP
}
UserRight.REMOVE_ANY_VIDEO,
UserRight.REMOVE_ANY_VIDEO_CHANNEL,
UserRight.REMOVE_ANY_VIDEO_COMMENT,
- UserRight.UPDATE_ANY_VIDEO
+ UserRight.UPDATE_ANY_VIDEO,
+ UserRight.SEE_ALL_VIDEOS,
+ UserRight.MANAGE_ACCOUNTS_BLOCKLIST,
+ UserRight.MANAGE_SERVERS_BLOCKLIST
],
[UserRole.USER]: []
export interface UserUpdateMe {
displayName?: string
description?: string
- nsfwPolicy?: NSFWPolicyType
+ nsfwPolicy?: NSFWPolicyType,
+ webTorrentEnabled?: boolean,
autoPlayVideo?: boolean
email?: string
currentPassword?: string
--- /dev/null
+export interface UserWatchingVideo {
+ currentTime: number
+}
export * from './video.model'
export * from './video-query.type'
export * from './video-state.enum'
+export * from './video-transcoding-fps.model'
export * from './caption/video-caption.model'
export * from './caption/video-caption-update.model'
export * from './import/video-import-create.model'
-export type VideoFilter = 'local'
+export type VideoFilter = 'local' | 'all-local'
+import { VideoTranscodingFPS } from './video-transcoding-fps.model'
+
export enum VideoResolution {
H_240P = 240,
H_360P = 360,
H_720P = 720,
H_1080P = 1080
}
+
+/**
+ * Bitrate targets for different resolutions, at VideoTranscodingFPS.AVERAGE.
+ *
+ * Sources for individual quality levels:
+ * Google Live Encoder: https://support.google.com/youtube/answer/2853702?hl=en
+ * YouTube Video Info (tested with random music video): https://www.h3xed.com/blogmedia/youtube-info.php
+ */
+function getBaseBitrate (resolution: VideoResolution) {
+ switch (resolution) {
+ case VideoResolution.H_240P:
+ // quality according to Google Live Encoder: 300 - 700 Kbps
+ // Quality according to YouTube Video Info: 186 Kbps
+ return 250 * 1000
+ case VideoResolution.H_360P:
+ // quality according to Google Live Encoder: 400 - 1,000 Kbps
+ // Quality according to YouTube Video Info: 480 Kbps
+ return 500 * 1000
+ case VideoResolution.H_480P:
+ // quality according to Google Live Encoder: 500 - 2,000 Kbps
+ // Quality according to YouTube Video Info: 879 Kbps
+ return 900 * 1000
+ case VideoResolution.H_720P:
+ // quality according to Google Live Encoder: 1,500 - 4,000 Kbps
+ // Quality according to YouTube Video Info: 1752 Kbps
+ return 1750 * 1000
+ case VideoResolution.H_1080P: // fallthrough
+ default:
+ // quality according to Google Live Encoder: 3000 - 6000 Kbps
+ // Quality according to YouTube Video Info: 3277 Kbps
+ return 3300 * 1000
+ }
+}
+
+/**
+ * Calculate the target bitrate based on video resolution and FPS.
+ *
+ * The calculation is based on two values:
+ * Bitrate at VideoTranscodingFPS.AVERAGE is always the same as
+ * getBaseBitrate(). Bitrate at VideoTranscodingFPS.MAX is always
+ * getBaseBitrate() * 1.4. All other values are calculated linearly
+ * between these two points.
+ */
+export function getTargetBitrate (resolution: VideoResolution, fps: number, fpsTranscodingConstants: VideoTranscodingFPS) {
+ const baseBitrate = getBaseBitrate(resolution)
+ // The maximum bitrate, used when fps === VideoTranscodingFPS.MAX
+ // Based on numbers from Youtube, 60 fps bitrate divided by 30 fps bitrate:
+ // 720p: 2600 / 1750 = 1.49
+ // 1080p: 4400 / 3300 = 1.33
+ const maxBitrate = baseBitrate * 1.4
+ const maxBitrateDifference = maxBitrate - baseBitrate
+ const maxFpsDifference = fpsTranscodingConstants.MAX - fpsTranscodingConstants.AVERAGE
+ // For 1080p video with default settings, this results in the following formula:
+ // 3300 + (x - 30) * (1320/30)
+ // Example outputs:
+ // 1080p10: 2420 kbps, 1080p30: 3300 kbps, 1080p60: 4620 kbps
+ // 720p10: 1283 kbps, 720p30: 1750 kbps, 720p60: 2450 kbps
+ return baseBitrate + (fps - fpsTranscodingConstants.AVERAGE) * (maxBitrateDifference / maxFpsDifference)
+}
+
+/**
+ * The maximum bitrate we expect to see on a transcoded video in bytes per second.
+ */
+export function getMaxBitrate (resolution: VideoResolution, fps: number, fpsTranscodingConstants: VideoTranscodingFPS) {
+ return getTargetBitrate(resolution, fps, fpsTranscodingConstants) * 2
+}
--- /dev/null
+export type VideoTranscodingFPS = {
+ MIN: number,
+ AVERAGE: number,
+ MAX: number,
+ KEEP_ORIGIN_FPS_RESOLUTION_MIN: number
+}
account: AccountAttribute
channel: VideoChannelAttribute
+
+ userHistory?: {
+ currentTime: number
+ }
}
export interface VideoDetails extends Video {
swagger: '2.0'
info:
title: PeerTube
- version: 1.0.0-beta
+ version: 1.1.0-alpha.2
description: Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.
host: peertube.example.com
securityDefinitions:
# CLI tools guide
- - [CLI wrapper](#cli-wrapper)
- - [Remote tools](#remote-tools)
- - [peertube-import-videos.js](#peertube-import-videosjs)
- - [peertube-upload.js](#peertube-uploadjs)
- - [peertube-watch.js](#peertube-watch)
- - [Server tools](#server-tools)
- - [parse-log](#parse-log)
- - [create-transcoding-job.js](#create-transcoding-jobjs)
- - [create-import-video-file-job.js](#create-import-video-file-jobjs)
- - [prune-storage.js](#prune-storagejs)
+
+<!-- START doctoc generated TOC please keep comment here to allow auto update -->
+<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
+**Table of Contents**
+
+- [CLI wrapper](#cli-wrapper)
+- [Remote Tools](#remote-tools)
+ - [Dependencies](#dependencies)
+ - [Installation](#installation)
+ - [peertube-import-videos.js](#peertube-import-videosjs)
+ - [peertube-upload.js](#peertube-uploadjs)
+ - [peertube-watch.js](#peertube-watchjs)
+- [Server tools](#server-tools)
+ - [parse-log](#parse-log)
+ - [create-transcoding-job.js](#create-transcoding-jobjs)
+ - [create-import-video-file-job.js](#create-import-video-file-jobjs)
+ - [prune-storage.js](#prune-storagejs)
+ - [optimize-old-videos.js](#optimize-old-videosjs)
+ - [update-host.js](#update-hostjs)
+ - [REPL (Read Eval Print Loop)](#repl-read-eval-print-loop)
+ - [.help](#help)
+ - [Lodash example](#lodash-example)
+ - [YoutubeDL example](#youtubedl-example)
+ - [Models examples](#models-examples)
+
+<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## CLI wrapper
upload|up upload a video
import-videos|import import a video from a streaming platform
watch|w watch a video in the terminal ✩°。⋆
+ repl initiate a REPL to access internals
help [cmd] display help for [cmd]
```
### create-transcoding-job.js
-You can use this script to force transcoding of an existing video.
+You can use this script to force transcoding of an existing video. PeerTube needs to be running.
```
$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID]
### create-import-video-file-job.js
-You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video.
+You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video. PeerTube needs to be running.
```
$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile]
$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run prune-storage
```
+### optimize-old-videos.js
+
+Before version v1.0.0-beta.16, Peertube did not specify a bitrate for the
+transcoding of uploaded videos. This means that videos might be encoded into
+very large files that are too large for streaming. This script re-transcodes
+these videos so that they can be watched properly, even on slow connections.
+
+```
+$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run optimize-old-videos
+```
+
+
### update-host.js
-If you started PeerTube with a domain, and then changed it you will have invalid torrent files and invalid URLs in your database.
-To fix this, you have to run:
+If you started PeerTube with a domain, and then changed it you will have
+invalid torrent files and invalid URLs in your database. To fix this, you have
+to run:
```
$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run update-host
```
+
+### REPL ([Read Eval Print Loop](https://nodejs.org/docs/latest-v8.x/api/repl.html))
+
+If you want to interact with the application libraries and objects even when PeerTube is not running, there is a REPL for that.
+
+usage: `node ./dist/server/tools/peertube-repl.js`
+
+"The default evaluator will, by default, assign the result of the most recently evaluated expression to the special variable `_` (underscore). Explicitly setting `_` to a value will disable this behavior."
+
+- type `.help` to list commands available in the repl, notice it starts with a dot
+- type `.exit` to exit, note that you still have to press CTRL-C to actually exit, or press CTRL-C (3 times) without typing `.exit` to exit
+- type `context` to list all available objects and libraries in the context, note: `Promise` is also available but it's not listed in the context, in case you need promises for something
+- type `env` to see the loaded environment variables
+- type `path` to access path library
+- type `lodash` to access lodash library
+- type `uuidv1` to access uuid/v1 library
+- type `uuidv3` to access uuid/v3 library
+- type `uuidv4` to access uuid/v4 library
+- type `uuidv5` to access uuid/v5 library
+- type `YoutubeDL` to access youtube-dl library
+- type `cli` to access the cli helpers object
+- type `logger` to access the logger; if you log to it, it will write to stdout and to the peertube.log file
+- type `constants` to access the constants loaded by the server
+- type `coreUtils` to access the core-utils helpers object
+- type `ffmpegUtils` to access the ffmpeg-utils helpers object
+- type `peertubeCryptoUtils` to access the peertube-crypto helpers object
+- type `signupUtils` to access the signup helpers object
+- type `utils` to access the utils helpers object
+- type `YoutubeDLUtils` to access the youtube-dl helpers object
+- type `sequelizeTypescript` to access sequelizeTypescript
+- type `modelsUtils` to access the models/utils
+- type `models` to access the shortcut to sequelizeTypescript.models
+- type `transaction` to access the shortcut to sequelizeTypescript.transaction
+- type `query` to access the shortcut to sequelizeTypescript.query
+- type `queryInterface` to access the shortcut to sequelizeTypescript.queryInterface
+
+#### .help
+
+```
+PeerTube [1.0.0] (b10eb595)> .help
+.break Sometimes you get stuck, this gets you out
+.clear Break, and also clear the local context
+.editor Enter editor mode
+.exit Exit the repl
+.help Print this help message
+.load Load JS from a file into the REPL session
+.r Reset REPL
+.reset Reset REPL
+.save Save all evaluated commands in this REPL session to a file
+PeerTube [1.0.0] (b10eb595)>
+```
+
+#### Lodash example
+
+```
+PeerTube [1.0.0] (b10eb595)> lodash.keys(context)
+[ 'global',
+ 'console',
+ 'DTRACE_NET_SERVER_CONNECTION',
+ 'DTRACE_NET_STREAM_END',
+ 'DTRACE_HTTP_SERVER_REQUEST',
+ 'DTRACE_HTTP_SERVER_RESPONSE',
+ 'DTRACE_HTTP_CLIENT_REQUEST',
+ 'DTRACE_HTTP_CLIENT_RESPONSE',
+ 'process',
+ 'Buffer',
+ 'clearImmediate',
+ 'clearInterval',
+ 'clearTimeout',
+ 'setImmediate',
+ 'setInterval',
+ 'setTimeout',
+ 'XMLHttpRequest',
+ 'compact2string',
+ 'module',
+ 'require',
+ 'path',
+ 'repl',
+ 'context',
+ 'env',
+ 'lodash',
+ 'uuidv1',
+ 'uuidv3',
+ 'uuidv4',
+ 'uuidv5',
+ 'cli',
+ 'logger',
+ 'constants',
+ 'Sequelize',
+ 'sequelizeTypescript',
+ 'modelsUtils',
+ 'models',
+ 'transaction',
+ 'query',
+ 'queryInterface',
+ 'YoutubeDL',
+ 'coreUtils',
+ 'ffmpegUtils',
+ 'peertubeCryptoUtils',
+ 'signupUtils',
+ 'utils',
+ 'YoutubeDLUtils' ]
+PeerTube [1.0.0] (b10eb595)>
+```
+
+#### YoutubeDL example
+```
+YoutubeDL.getInfo('https://www.youtube.com/watch?v=I5ZN289jjDo', function(err, data) {console.log(err, data)})
+```
+
+#### Models examples
+```
+PeerTube [1.0.0] (b10eb595)> new models.ActorModel({id: 3}).getVideoChannel().then(function(data){console.log(data.dataValues.name)})
+Promise {
+ _bitField: 0,
+ _fulfillmentHandler0: undefined,
+ _rejectionHandler0: undefined,
+ _promise0: undefined,
+ _receiver0: undefined }
+PeerTube [1.0.0] (b10eb595)> Main root channel
+PeerTube [1.0.0] (b10eb595)> let out; new models.UserModel({id: 1}).getAccount().then(function (data) {out = data.dataValues.id})
+Promise {
+ _bitField: 0,
+ _fulfillmentHandler0: undefined,
+ _rejectionHandler0: undefined,
+ _promise0: undefined,
+ _receiver0: undefined }
+PeerTube [1.0.0] (b10eb595)> out
+2
+PeerTube [1.0.0] (b10eb595)>
+```
-FROM janitortechnology/ubuntu-dev
+FROM ubuntu:bionic
+
+# Avoid tzdata interactive dialog
+ENV DEBIAN_FRONTEND=noninteractive
# Install PeerTube's dependencies.
# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
-RUN sudo apt-get update -q && sudo apt-get install -qy \
- ffmpeg \
- postgresql \
- openssl
+RUN apt-get update -q && apt-get install -qy \
+ curl \
+ ffmpeg \
+ g++ \
+ git \
+ gnupg \
+ make \
+ nano \
+ openssl \
+ postgresql \
+ postgresql-contrib \
+ redis-server \
+ && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
+ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
+ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
+ && apt-get update \
+ && apt-get install -qy nodejs yarn \
+ && rm -rf /var/lib/apt/lists/*
# Download PeerTube's source code.
RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
WORKDIR /home/user/PeerTube
-# Configure the IDEs to use Janitor's source directory as workspace.
-ENV WORKSPACE /home/user/PeerTube/
-
-# Install dependencies.
-RUN yarn install --pure-lockfile
+# Copy postgresql setup script
+COPY setup_postgres.sql /tmp/
-# Configure Janitor for PeerTube.
-COPY --chown=user:user janitor.json /home/user/
+# Install Node.js dependencies and setup PostgreSQL
+RUN yarn install --pure-lockfile \
+ && service postgresql start \
+ && su postgres -c "psql --file=/tmp/setup_postgres.sql"
-# Configure and build PeerTube.
-COPY create_user.sql /tmp/
-RUN sudo service postgresql start \
- && sudo -u postgres psql --file=/tmp/create_user.sql \
- && npm run build
-
-COPY --chown=user:user supervisord.conf /tmp/supervisord-extra.conf
-RUN cat /tmp/supervisord-extra.conf | sudo tee -a /etc/supervisord.conf
+# Expose PeerTube sources as a volume
+VOLUME /home/user/PeerTube
+# Expose API and frontend
EXPOSE 3000 9000
+
+# Start PostgreSQL and Redis
+CMD ["service postgresql start && redis-server"]
--- /dev/null
+create database peertube_dev;
+create user peertube password 'peertube';
+grant all privileges on database peertube_dev to peertube;
+\c peertube_dev
+CREATE EXTENSION pg_trgm;
+CREATE EXTENSION unaccent;
--- /dev/null
+### Usage
+1. Build the image:
+ ```
+ docker build -t my_peertube_dev .
+ ```
+1. Start the container:
+ ```
+ docker run -d -i -p 3000:3000 -p 9000:9000 --name peertube my_peertube_dev
+ ```
+ This will create a new Docker volume containing PeerTube sources.
+
+1. Start PeerTube inside the container:
+ ```
+ docker exec -it peertube npm run dev
+ ```
+1. In another window, find the path to the Docker volume
+ ```
+ docker inspect peertube | less +/Mounts
+ ```
+ You can now make changes to the files. They should be automatically recompiled.
--- /dev/null
+FROM janitortechnology/ubuntu-dev
+
+# Install PeerTube's dependencies.
+# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
+RUN sudo apt-get update -q && sudo apt-get install -qy \
+ ffmpeg \
+ postgresql \
+ openssl
+
+# Download PeerTube's source code.
+RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
+WORKDIR /home/user/PeerTube
+
+# Configure the IDEs to use Janitor's source directory as workspace.
+ENV WORKSPACE /home/user/PeerTube/
+
+# Install dependencies.
+RUN yarn install --pure-lockfile
+
+# Configure Janitor for PeerTube.
+COPY --chown=user:user janitor.json /home/user/
+
+# Configure and build PeerTube.
+COPY create_user.sql /tmp/
+RUN sudo service postgresql start \
+ && sudo -u postgres psql --file=/tmp/create_user.sql \
+ && npm run build
+
+COPY --chown=user:user supervisord.conf /tmp/supervisord-extra.conf
+RUN cat /tmp/supervisord-extra.conf | sudo tee -a /etc/supervisord.conf
+
+EXPOSE 3000 9000
PEERTUBE_WEBSERVER_HOSTNAME=domain.tld
PEERTUBE_WEBSERVER_PORT=443
PEERTUBE_WEBSERVER_HTTPS=true
-PEERTUBE_TRUST_PROXY=127.0.0.1
+# If you need more than one IP as trust_proxy
+# pass them as a comma separated array:
+PEERTUBE_TRUST_PROXY=["127.0.0.1"]
+#PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "192.168.1.0/24"]
PEERTUBE_SMTP_USERNAME=
PEERTUBE_SMTP_PASSWORD=
PEERTUBE_SMTP_HOSTNAME=
__name: "PEERTUBE_WEBSERVER_HTTPS"
__format: "json"
-trust_proxy: "PEERTUBE_TRUST_PROXY"
+trust_proxy:
+ __name: "PEERTUBE_TRUST_PROXY"
+ __format: "json"
database:
hostname: "PEERTUBE_DB_HOSTNAME"
__name: "PEERTUBE_SIGNUP_LIMIT"
__format: "json"
+search:
+ remote_uri:
+ users:
+ __name: "PEERTUBE_SEARCH_REMOTEURI_USERS"
+ __format: "json"
+ anonymous:
+ __name: "PEERTUBE_SEARCH_REMOTEURI_ANONYMOUS"
+ __format: "json"
+
+import:
+ videos:
+ http:
+ enabled:
+ __name: "PEERTUBE_IMPORT_VIDEOS_HTTP"
+ __format: "json"
+ torrent:
+ enabled:
+ __name: "PEERTUBE_IMPORT_VIDEOS_TORRENT"
+ __format: "json"
+
transcoding:
enabled:
__name: "PEERTUBE_TRANSCODING_ENABLED"
"await-promise": [true, "Bluebird"],
"no-inferrable-types": true,
"eofline": true,
- "indent": ["spaces"],
+ "indent": [true, "spaces"],
"ter-indent": [true, 2],
"max-line-length": [true, 140],
"no-unused-variable": false, // Memory issues
"@samverschueren/stream-to-observable@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
+ integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==
dependencies:
any-observable "^0.3.0"
"@types/async-lock@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@types/async-lock/-/async-lock-1.1.0.tgz#002b1ebeebd382aff66b68bed70a74c7bdd06e3e"
+ integrity sha512-Eo8EXiqmChtkt0ETf6AQ8aiDHT3Tht6OuMSa3/9nfuyqFimp7ZwPMiufsA56A7ZUGBuwFzH860jO0d8n0lETtg==
"@types/async@^2.0.40":
version "2.0.49"
resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.49.tgz#92e33d13f74c895cb9a7f38ba97db8431ed14bc0"
+ integrity sha512-Benr3i5odUkvpFkOpzGqrltGdbSs+EVCkEBGXbuR7uT0VzhXKIkhem6PDzHdx5EonA+rfbB3QvP6aDOw5+zp5Q==
"@types/bcrypt@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@types/bcrypt/-/bcrypt-2.0.0.tgz#74cccef82026341fd786cf2eb9c912c7f9107c55"
+ integrity sha512-/r/ihQBlYMUYHqcFXix76I3OLYTaUcU8xV2agtB2hCds2rfJI56UyKu0e2LkAW2/4HHmQKmQRFXqM8D6y3Tc5g==
"@types/bittorrent-protocol@*":
version "2.2.2"
resolved "https://registry.yarnpkg.com/@types/bittorrent-protocol/-/bittorrent-protocol-2.2.2.tgz#169e9633e1bd18e6b830d11cf42e611b1972cb83"
+ integrity sha512-VAPyW8eGh8FjyGxBSKyPSH60Qkxo3r2W4sDYXCQJYfYD49UnA1SUP+5GQ/4MgbdiEDSp9YW4yuebpIR/vstD5Q==
dependencies:
"@types/node" "*"
"@types/bluebird@*", "@types/bluebird@3.5.18", "@types/bluebird@3.5.21":
version "3.5.21"
resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.21.tgz#567615589cc913e84a28ecf9edb031732bdf2634"
+ integrity sha512-6UNEwyw+6SGMC/WMI0ld0PS4st7Qq51qgguFrFizOSpGvZiqe9iswztFSdZvwJBEhLOy2JaxNE6VC7yMAlbfyQ==
"@types/body-parser@*", "@types/body-parser@^1.16.3":
version "1.17.0"
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c"
+ integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==
dependencies:
"@types/connect" "*"
"@types/node" "*"
"@types/bull@^3.3.12":
version "3.3.20"
resolved "https://registry.yarnpkg.com/@types/bull/-/bull-3.3.20.tgz#c61a597def297252419cf16ac4effdfb4d82d9c9"
+ integrity sha512-/dIHEfzyxsd0WZ3enmj+7z5Qg6T9bZpeJk1cfRVgUQdb4ss9vUc4WpfIqC8O0f+QwicAm90yqKxnU33xsRyp2g==
dependencies:
"@types/bluebird" "*"
"@types/ioredis" "*"
"@types/bytes@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/bytes/-/bytes-3.0.0.tgz#549eeacd0a8fecfaa459334583a4edcee738e6db"
+ integrity sha512-ZF43+CIIlzngQe8/Zo7L1kpY9W8O6rO006VDz3c5iM21ddtXWxCEyOXyft+q4pVF2tGqvrVuVrEDH1+gJEi1fQ==
"@types/caseless@*":
version "0.12.1"
resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz#9794c69c8385d0192acc471a540d1f8e0d16218a"
+ integrity sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==
"@types/chai-json-schema@^1.4.3":
version "1.4.3"
resolved "https://registry.yarnpkg.com/@types/chai-json-schema/-/chai-json-schema-1.4.3.tgz#1dd1e88ae911dd6e6e1c3c2d0e0397328aab0bfb"
+ integrity sha1-HdHoiukR3W5uHDwtDgOXMoqrC/s=
dependencies:
"@types/tv4" "*"
"@types/chai-xml@^0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@types/chai-xml/-/chai-xml-0.3.1.tgz#a9cc5812bd67e9c9221d1e9b4dfb0cca797fd40a"
+ integrity sha1-qcxYEr1n6ckiHR6bTfsMynl/1Ao=
dependencies:
"@types/chai" "*"
"@types/chai@*", "@types/chai@^4.0.4":
version "4.1.5"
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.5.tgz#6163dc60078d215ec46186dc76062ef6ed68d39c"
+ integrity sha512-nyzJ08qQMY4umgXD6SzbLflQucEnoAf2H5iUxPX5t0euDgXDV+bFTJlEmEepM35/2l07jYHdAfP6YEndeTWM0w==
"@types/config@^0.0.34":
version "0.0.34"
resolved "https://registry.yarnpkg.com/@types/config/-/config-0.0.34.tgz#123f91bdb5afdd702294b9de9ca04d9ea11137b0"
+ integrity sha512-jWi9DXx77hnzN4kHCNEvP/kab+nchRLTg9yjXYxjTcMBkuc5iBb3QuwJ4sPrb+nzy1GQjrfyfMqZOdR4i7opRQ==
"@types/connect@*":
version "3.4.32"
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28"
+ integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==
dependencies:
"@types/node" "*"
"@types/continuation-local-storage@*":
version "3.2.1"
resolved "https://registry.yarnpkg.com/@types/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#a33e0df9dce9b424d1c98fc4fdebd8578dceec7e"
+ integrity sha1-oz4N+dzptCTRyY/E/evYV43O7H4=
dependencies:
"@types/node" "*"
"@types/cookiejar@*":
version "2.1.0"
resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.0.tgz#4b7daf2c51696cfc70b942c11690528229d1a1ce"
+ integrity sha512-EIjmpvnHj+T4nMcKwHwxZKUfDmphIKJc2qnEMhSoOvr1lYEQpuRKRz8orWr//krYIIArS/KGGLfL2YGVUYXmIA==
"@types/events@*":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86"
+ integrity sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==
"@types/express-rate-limit@^2.9.3":
version "2.9.3"
resolved "https://registry.yarnpkg.com/@types/express-rate-limit/-/express-rate-limit-2.9.3.tgz#e83a548bf251ad12ca49055c22d3f2da4e16b62d"
+ integrity sha512-KIiEnkemd20SpTHUvN8Yqr11nddpD1xch3hY5G9GnuaURQ9EnoAi1N2DJQK8n8V0vHBJOcmwnMdufLdWn1GYhQ==
dependencies:
"@types/express" "*"
"@types/express-serve-static-core@*":
version "4.16.0"
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7"
+ integrity sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==
dependencies:
"@types/events" "*"
"@types/node" "*"
"@types/express@*", "@types/express@^4.0.35":
version "4.16.0"
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19"
+ integrity sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==
dependencies:
"@types/body-parser" "*"
"@types/express-serve-static-core" "*"
"@types/serve-static" "*"
+"@types/fluent-ffmpeg@^2.1.8":
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.8.tgz#a9ffff2140d641ec898ebdddaa1e6e7e962d7943"
+ integrity sha512-dbEJwEPpKlJPujNTSj7HM03T9rurGDEdrbh/BHR5lJ1A6uYx9VrOP+/GjJMsO5hXjf2hpk/41wBC/H9TmKIm9A==
+ dependencies:
+ "@types/events" "*"
+ "@types/node" "*"
+
"@types/form-data@*":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz#ee2b3b8eaa11c0938289953606b745b738c54b1e"
+ integrity sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==
dependencies:
"@types/node" "*"
"@types/fs-extra@^5.0.4":
version "5.0.4"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz#b971134d162cc0497d221adde3dbb67502225599"
+ integrity sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==
dependencies:
"@types/node" "*"
"@types/geojson@^1.0.0":
version "1.0.6"
resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz#3e02972728c69248c2af08d60a48cbb8680fffdf"
+ integrity sha512-Xqg/lIZMrUd0VRmSRbCAewtwGZiAk3mEUDvV4op1tGl+LvyPcb/MIOSxTl9z+9+J+R4/vpjiCAT4xeKzH9ji1w==
"@types/ioredis@*":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.0.1.tgz#dfe9de0d5dce54193975c1909f0d082e5574e2f2"
+ integrity sha512-pvGlg7THjfjC6hzhOBVNtD0p+B0ph2FYx0wJjDBW7rpDLe9zazQgAt2WRWm3COW6Z0ZXqmCzPkq7WrOJWJklSQ==
dependencies:
"@types/node" "*"
"@types/libxmljs@^0.18.0":
version "0.18.2"
resolved "https://registry.yarnpkg.com/@types/libxmljs/-/libxmljs-0.18.2.tgz#c424173a07477a7552173d7c779d5ffe77dd8efc"
+ integrity sha512-D0S5gpn0AFGckaBJj803zFpAOgERx/SiBfCI63U/mUEADr+wuKkDQdsWJadAxUikBSAZ7/ekibaDnjkECUYSBQ==
dependencies:
"@types/events" "*"
"@types/node" "*"
"@types/lodash@*", "@types/lodash@^4.14.64":
version "4.14.116"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz#5ccf215653e3e8c786a58390751033a9adca0eb9"
+ integrity sha512-lRnAtKnxMXcYYXqOiotTmJd74uawNWuPnsnPrrO7HiFuE3npE2iQhfABatbYDyxTNqZNuXzcKGhw37R7RjBFLg==
"@types/magnet-uri@*", "@types/magnet-uri@^5.1.1":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.1.tgz#861aaf64c92a3137dd848fefc55cd352a8ea851a"
+ integrity sha1-hhqvZMkqMTfdhI/vxVzTUqjqhRo=
dependencies:
"@types/node" "*"
"@types/maildev@^0.0.1":
version "0.0.1"
resolved "https://registry.yarnpkg.com/@types/maildev/-/maildev-0.0.1.tgz#9fe4fa05610f6c6afc10224bcca6b67bc3c56fc0"
+ integrity sha512-hh2pmc+7TSO2/xCmjhkEc7JQCpHUjJPrXx4OPNF+oXlv5ratDTGp+YamZvxlf8PSVdPLI11ihmcF6VFuzwA5OQ==
dependencies:
"@types/node" "*"
"@types/memoizee@^0.4.2":
version "0.4.2"
resolved "https://registry.yarnpkg.com/@types/memoizee/-/memoizee-0.4.2.tgz#a500158999a8144a9b46cf9a9fb49b15f1853573"
+ integrity sha512-bhdZXZWKfpkQuuiQjVjnPiNeBHpIAC6rfOFqlJXKD3VC35mCcolfVfXYTnk9Ppee5Mkmmz3Llgec7xCdJAbzWw==
"@types/mime@*":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b"
+ integrity sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==
"@types/mkdirp@^0.5.1":
version "0.5.2"
resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f"
+ integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==
dependencies:
"@types/node" "*"
"@types/mocha@^5.0.0":
version "5.2.5"
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073"
+ integrity sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==
"@types/morgan@^1.7.32":
version "1.7.35"
resolved "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.7.35.tgz#6358f502931cc2583d7a94248c41518baa688494"
+ integrity sha512-E9qFi0seOkdlQnCTPv54brNfGWeFdRaEhI5tSue4pdx/V+xfxvMETsxXhOEcj1cYL+0n/jcTEmj/jD2gjzCwMg==
dependencies:
"@types/express" "*"
"@types/multer@^1.3.3":
version "1.3.7"
resolved "https://registry.yarnpkg.com/@types/multer/-/multer-1.3.7.tgz#9fe1de9f44f401ff2eaf0d4468cf16935a9c6866"
+ integrity sha512-Lx4rNtGajRGtcVwJe1sKPAkAuBBWq8TOuimKJfOfK7ayY1Jc+18Lx00GjagLeIwaH2+OvFJvCv8tz+pvbt3OoA==
dependencies:
"@types/express" "*"
"@types/node@*", "@types/node@^10.0.8":
version "10.10.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.10.1.tgz#d5c96ca246a418404914d180b7fdd625ad18eca6"
+ integrity sha512-nzsx28VwfaIykfzMAG9TB3jxF5Nn+1/WMKnmVZc8TsB+LMIVvwUscVn7PAq+LFaY5ng5u4jp5mRROSswo76PPA==
"@types/node@6.0.41":
version "6.0.41"
resolved "http://registry.npmjs.org/@types/node/-/node-6.0.41.tgz#578cf53aaec65887bcaf16792f8722932e8ff8ea"
+ integrity sha1-V4z1Oq7GWIe8rxZ5L4ciky6P+Oo=
"@types/nodemailer@^4.3.1":
version "4.6.5"
resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-4.6.5.tgz#8bb799202f8cfcc8200a1c1627f6a8a74fe71da6"
+ integrity sha512-cbs2HFLj33TBqzcCqTrs+6/mgTX3xl0odbApv3vTdF2+JERLxh5rDZCasXhvy+YqaiUNBr2I1RjNCdbKGs1Bnw==
dependencies:
"@types/events" "*"
"@types/node" "*"
"@types/oauth2-server@^3.0.8":
version "3.0.8"
resolved "https://registry.yarnpkg.com/@types/oauth2-server/-/oauth2-server-3.0.8.tgz#0b7f5083790732ea00bf8c5e0b04b9fa1f22f22c"
+ integrity sha512-+P/rJsQwxMfEBu5sG9CvuqirL4BguCs1KdV3dBYob5PqxJLN6VT4m0Ol9usvCfdY+AHmkpdDaHAltA1rqzE6bw==
dependencies:
"@types/express" "*"
"@types/parse-torrent-file@*":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/parse-torrent-file/-/parse-torrent-file-4.0.1.tgz#056a6c18f3fac0cd7c6c74540f00496a3225976b"
+ integrity sha1-BWpsGPP6wM18bHRUDwBJajIll2s=
dependencies:
"@types/node" "*"
"@types/parse-torrent@*":
version "5.8.2"
resolved "https://registry.yarnpkg.com/@types/parse-torrent/-/parse-torrent-5.8.2.tgz#53ab880e38ced2005a79948f0df0c8762539323e"
+ integrity sha512-wfXO0N2vNkk/W1CEiPbT+7GPiOe3fnRLecdFBw/HNxPyx6czOGqUYi8bw2dbjEmYqWSsqhMdrajEd6o5ry2p4w==
dependencies:
"@types/magnet-uri" "*"
"@types/node" "*"
"@types/pem@^1.9.3":
version "1.9.3"
resolved "https://registry.yarnpkg.com/@types/pem/-/pem-1.9.3.tgz#0c864c8b79e43fef6367db895f60fd1edd10e86c"
+ integrity sha512-+hHbGi9PAyHVeRdMJN6yNuMWoshJ+7oTqYuhBB1/vHq0Tfu46ucbvgxmhwBfe0GCiJZvCa20VHhHsA0mY5W6hQ==
"@types/range-parser@*":
version "1.2.2"
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d"
+ integrity sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw==
"@types/redis@^2.8.5":
version "2.8.6"
resolved "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.6.tgz#3674d07a13ad76bccda4c37dc3909e4e95757e7e"
+ integrity sha512-kaSI4XQwCfJtPiuyCXvLxCaw2N0fMZesdob3Jh01W20vNFct+3lfvJ/4yCJxbSopXOBOzpg+pGxkW6uWZrPZHA==
dependencies:
"@types/events" "*"
"@types/node" "*"
"@types/request@^2.0.3":
version "2.47.1"
resolved "https://registry.yarnpkg.com/@types/request/-/request-2.47.1.tgz#25410d3afbdac04c91a94ad9efc9824100735824"
+ integrity sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==
dependencies:
"@types/caseless" "*"
"@types/form-data" "*"
"@types/sequelize@4.27.24":
version "4.27.24"
resolved "https://registry.yarnpkg.com/@types/sequelize/-/sequelize-4.27.24.tgz#7d593c062c368f570c68b0217f5c1d4c892ead48"
+ integrity sha512-5uMFsMa/0hU/7/8znyfBKSJy2Mbd57uRpYk5X1+Phz9dN0MRZLbTbj1JMeB3CJ4R9b1coNQGfp2kXh4OjI9UyA==
dependencies:
"@types/bluebird" "*"
"@types/continuation-local-storage" "*"
"@types/serve-static@*":
version "1.13.2"
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48"
+ integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==
dependencies:
"@types/express-serve-static-core" "*"
"@types/mime" "*"
"@types/sharp@^0.17.6":
version "0.17.10"
resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.17.10.tgz#4f546861c53fae2b1bffcdd1ae7e691cc68afa52"
+ integrity sha512-nISitptrYm6hUpiC+vN21cbT8Of54TubXY95N+pcqNCmmXZqd1hRk7fC5HYRRQwWJiKV/NLHx8f4CxPIsIQXqg==
dependencies:
"@types/node" "*"
"@types/simple-peer@*":
version "6.1.5"
resolved "https://registry.yarnpkg.com/@types/simple-peer/-/simple-peer-6.1.5.tgz#9353f84cefd052a9684b9a5662c983fc2bcfab41"
+ integrity sha512-huXri3g0rQpIO5jkG630a2sBrh1WXgsd2Gsoc9MqWTRZ0AWqyMEcMCfLXmw5i8AvrZbjAT6BIxW2gEqvpqSYwA==
dependencies:
"@types/node" "*"
"@types/superagent@*":
version "3.8.4"
resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-3.8.4.tgz#24a5973c7d1a9c024b4bbda742a79267c33fb86a"
+ integrity sha512-Dnh0Iw6NO55z1beXvlsvUrfk4cd9eL2nuTmUk+rAhSVCk10PGGFbqCCTwbau9D0d2W3DITiXl4z8VCqppGkMPQ==
dependencies:
"@types/cookiejar" "*"
"@types/node" "*"
"@types/supertest@^2.0.3":
version "2.0.6"
resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.6.tgz#a0665350c0e36315e1bccdf4785f2b76fcb71b6b"
+ integrity sha512-qRvPP8dO7IBqJz8LaQ7/Lw2oo/geiDUPAMx/L+CQCkR9sN622O30XCH7RSyUmilyCSyjxyhJ7cEtd3hmwPwvhw==
dependencies:
"@types/superagent" "*"
"@types/tough-cookie@*":
version "2.3.3"
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.3.tgz#7f226d67d654ec9070e755f46daebf014628e9d9"
+ integrity sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==
"@types/tv4@*":
version "1.2.29"
resolved "https://registry.yarnpkg.com/@types/tv4/-/tv4-1.2.29.tgz#4c6d2222b03245dd2104f4fd67f54d1658985911"
+ integrity sha512-NtJmi+XbYocrLb5Au4Q64srX4FlCPDvrSF/OnK3H0QJwrw40tIUoQPDoUHnZ5wpAB2KThtVyeS+kOEQyZabORg==
"@types/validator@*", "@types/validator@^9.4.0":
version "9.4.2"
resolved "https://registry.yarnpkg.com/@types/validator/-/validator-9.4.2.tgz#9fec264b35f0ea21d0967eeec2dcd6a798b34350"
+ integrity sha512-v6H2QH+oXVdLKp9keOJi5LQSt6X5/XIOtK1YmbCzvkAT2kHW9WyQkixit9w1UgJpBGrDCqqCZlQ+Qucpmsf8hA==
"@types/webtorrent@^0.98.4":
version "0.98.4"
resolved "https://registry.yarnpkg.com/@types/webtorrent/-/webtorrent-0.98.4.tgz#cf8dbe22e3d5cf6915305f7f970b52bca01bf8b4"
+ integrity sha1-z42+IuPVz2kVMF9/lwtSvKAb+LQ=
dependencies:
"@types/bittorrent-protocol" "*"
"@types/node" "*"
"@types/ws@^6.0.0":
version "6.0.1"
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.1.tgz#ca7a3f3756aa12f62a0a62145ed14c6db25d5a28"
+ integrity sha512-EzH8k1gyZ4xih/MaZTXwT2xOkPiIMSrhQ9b8wrlX88L0T02eYsddatQlwVFlEPyEqV0ChpdpNnE51QPH6NVT4Q==
dependencies:
"@types/events" "*"
"@types/node" "*"
JSONStream@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.4.tgz#615bb2adb0cd34c8f4c447b5f6512fa1d8f16a2e"
+ integrity sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==
dependencies:
jsonparse "^1.2.0"
through ">=2.2.7 <3"
abbrev@1, abbrev@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
accepts@1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
+ integrity sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=
dependencies:
mime-types "~2.1.11"
negotiator "0.6.1"
accepts@~1.2.12:
version "1.2.13"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz#e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea"
+ integrity sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=
dependencies:
mime-types "~2.1.6"
negotiator "0.5.3"
accepts@~1.3.4, accepts@~1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
+ integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
dependencies:
mime-types "~2.1.18"
negotiator "0.6.1"
acorn-jsx@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+ integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=
dependencies:
acorn "^3.0.4"
acorn@^3.0.4:
version "3.3.0"
resolved "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+ integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
acorn@^5.5.0:
version "5.7.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
+ integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
addr-to-ip-port@^1.0.1, addr-to-ip-port@^1.4.2:
version "1.5.1"
resolved "https://registry.yarnpkg.com/addr-to-ip-port/-/addr-to-ip-port-1.5.1.tgz#bfada13fd6aeeeac19f1e9f7d84b4bbab45e5208"
+ integrity sha512-bA+dyydTNuQtrEDJ0g9eR7XabNhvrM5yZY0hvTbNK3yvoeC73ZqMES6E1cEqH9WPxs4uMtMsOjfwS4FmluhsAA==
addressparser@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746"
+ integrity sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=
after@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
+ integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
agent-base@4, agent-base@^4.1.0, agent-base@~4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
+ integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==
dependencies:
es6-promisify "^5.0.0"
agentkeepalive@^3.4.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.1.tgz#4eba75cf2ad258fc09efd506cdb8d8c2971d35a4"
+ integrity sha512-Cte/sTY9/XcygXjJ0q58v//SnEQ7ViWExKyJpLJlLqomDbQyMLh6Is4KuWJ/wmxzhiwkGRple7Gqv1zf6Syz5w==
dependencies:
humanize-ms "^1.2.1"
ajv-keywords@^1.0.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
+ integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw=
ajv@^4.7.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
+ integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=
dependencies:
co "^4.6.0"
json-stable-stringify "^1.0.1"
ajv@^5.1.0, ajv@^5.3.0:
version "5.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
dependencies:
co "^4.6.0"
fast-deep-equal "^1.0.0"
alce@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/alce/-/alce-1.2.0.tgz#a8be2dacaac42494612f18dc09db691f3dea4aab"
+ integrity sha1-qL4trKrEJJRhLxjcCdtpHz3qSqs=
dependencies:
esprima "^1.2.0"
estraverse "^1.5.0"
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+ integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
ansi-align@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
+ integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=
dependencies:
string-width "^2.0.0"
ansi-escapes@^1.0.0, ansi-escapes@^1.1.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
+ integrity sha1-06ioOzGapneTZisT52HHkRQiMG4=
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
dependencies:
color-convert "^1.9.0"
ansicolors@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
+ integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=
ansistyles@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539"
+ integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=
any-observable@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
+ integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
dependencies:
micromatch "^3.1.4"
normalize-path "^2.1.1"
append-field@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/append-field/-/append-field-0.1.0.tgz#6ddc58fa083c7bc545d3c5995b2830cc2366d44a"
+ integrity sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo=
application-config-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz#193c5f0a86541a4c66fba1e2dc38583362ea5e8f"
+ integrity sha1-GTxfCoZUGkxm+6Hi3DhYM2LqXo8=
application-config@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/application-config/-/application-config-1.0.1.tgz#5aa2e2a5ed6abd2e5d1d473d3596f574044fe9e7"
+ integrity sha1-WqLipe1qvS5dHUc9NZb1dARP6ec=
dependencies:
application-config-path "^0.1.0"
mkdirp "^0.5.1"
aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, aproba@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
"aproba@^1.1.2 || 2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
+ integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
archy@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+ integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=
are-we-there-yet@~1.1.2:
version "1.1.5"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
dependencies:
delegates "^1.0.0"
readable-stream "^2.0.6"
argparse@^1.0.2, argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
arr-union@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
array-differ@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-0.1.0.tgz#12e2c9b706bed47c8b483b57e487473fb0861f3a"
+ integrity sha1-EuLJtwa+1HyLSDtX5IdHP7CGHzo=
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"
+ integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
array-union@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-0.1.0.tgz#ede98088330665e699e1ebf0227cbc6034e627db"
+ integrity sha1-7emAiDMGZeaZ4evwIny8YDTmJ9s=
dependencies:
array-uniq "^0.1.0"
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
dependencies:
array-uniq "^1.0.1"
array-uniq@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-0.1.1.tgz#5861f3ed4e4bb6175597a4e078e8aa78ebe958c7"
+ integrity sha1-WGHz7U5LthdVl6TgeOiqeOvpWMc=
array-uniq@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
arraybuffer.slice@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
+ integrity sha1-8zshWfBTKj8xB6JywMz70a0peco=
arrify@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+ integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
asap@^2.0.0, asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
asn1@~0.2.3:
version "0.2.4"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
dependencies:
safer-buffer "~2.1.0"
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"
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
assertion-error@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b"
+ integrity sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=
assertion-error@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
+ integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+ integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
async-foreach@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
+ integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=
async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
+ integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
async-lock@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.1.3.tgz#e47f1cbb6bec765b73e27ed8961d58006457ec08"
+ integrity sha512-nxlfFLGfCJ1r7p9zhR5OuL6jYkDd9P7FqSitfLji+C1NdyhCz4+rWW3kiPiyPASHhN7VlsKEvRWWbnME9lYngw==
async-lru@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/async-lru/-/async-lru-1.1.2.tgz#abe831f3a52123c87d44273615e203b1ef04692e"
+ integrity sha512-CXwKC9Wu0GnywJRc8kxjg2HnDHhomhL99DmNGhyV7gna1MmKTJAibE8zp0+ugWEhnIA29xwnZ+FbdEE7yNNkUA==
dependencies:
lru "^3.1.0"
async@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.1.tgz#b05714f4b11b357bf79adaffdd06da42d0766c10"
+ integrity sha1-sFcU9LEbNXv3mtr/3QbaQtB2bBA=
async@1.5.2, async@^1.5.2, async@~1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+ integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
async@>=0.2.9, async@^2.0.0, async@^2.5.0, async@^2.6.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
+ integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==
dependencies:
lodash "^4.17.10"
async@^0.9.0, async@~0.9.0:
version "0.9.2"
resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+ integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
async@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9"
+ integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
atob@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.6.0, aws4@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
+ integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
babel-code-frame@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
dependencies:
chalk "^1.1.3"
esutils "^2.0.2"
backo2@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-arraybuffer@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
+ integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
base64-js@~0.0.6:
version "0.0.8"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
+ integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=
base64id@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
+ integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
dependencies:
cache-base "^1.0.1"
class-utils "^0.3.5"
basic-auth@1.1.0:
version "1.1.0"
resolved "http://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884"
+ integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=
basic-auth@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"
+ integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
dependencies:
safe-buffer "5.1.2"
batch@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+ integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
dependencies:
tweetnacl "^0.14.3"
bcrypt@2:
version "2.0.1"
resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-2.0.1.tgz#229c5afe09379789f918efe86e5e5b682e509f85"
+ integrity sha512-DwB7WgJPdskbR+9Y3OTJtwRq09Lmm7Na6b+4ewvXjkD0nfNRi1OozxljHm5ETlDCBq9DTy04lQz+rj+T2ztIJg==
dependencies:
nan "2.10.0"
node-pre-gyp "0.9.1"
bencode@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bencode/-/bencode-2.0.0.tgz#e72e6b3691d824bd03ea7aa9d752cd1d49a50027"
+ integrity sha512-wr2HwwrUpfB5c68zmAudOltC7rZ1G0+lQOcnuEcfIM3AWAVnB3rHI3nlgd/2CWTfQ3w3zagKt89zni/M+VLZ8g==
dependencies:
safe-buffer "^5.1.1"
better-assert@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
+ integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=
dependencies:
callsite "1.0.0"
bin-links@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz#fb74bd54bae6b7befc6c6221f25322ac830d9757"
+ integrity sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==
dependencies:
bluebird "^3.5.0"
cmd-shim "^2.0.2"
binary-extensions@^1.0.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14"
+ integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==
binary-search@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.4.tgz#d15f44ff9226ef309d85247fa0dbfbf659955f56"
+ integrity sha512-dPxU/vZLnH0tEVjVPgi015oSwqu6oLfCeHywuFRhBE0yM0mYocvleTl8qsdM1YFhRzTRhM1+VzS8XLDVrHPopg==
bindings@^1.3.0, bindings@~1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
+ integrity sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==
bindings@~1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11"
+ integrity sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=
bitcore-lib@^0.13.7:
version "0.13.19"
resolved "https://registry.yarnpkg.com/bitcore-lib/-/bitcore-lib-0.13.19.tgz#48af1e9bda10067c1ab16263472b5add2000f3dc"
+ integrity sha1-SK8em9oQBnwasWJjRyta3SAA89w=
dependencies:
bn.js "=2.0.4"
bs58 "=2.0.0"
bitfield@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bitfield/-/bitfield-2.0.0.tgz#fbe6767592fe5b4c87ecf1d04126294cc1bfa837"
+ integrity sha512-4xM4DYejOHQ/qWBfeqBXNA4mJ12PwcOibFYnH1kYh5U9BHciCqEJBqGNVnMJXUhm8mflujNRLSv7IiVQxovgjw==
bittorrent-dht@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/bittorrent-dht/-/bittorrent-dht-9.0.0.tgz#08d5ebb51ed91d7e3eea5c275554f4323fb523e5"
+ integrity sha512-X5ax4G/PLtEPfqOUjqDZ2nmPENndWRMK4sT2jcQ4sXor904zhR40r4KqTyTvWYAljh5/hPPqM9DCUUtqWzRXoQ==
dependencies:
bencode "^2.0.0"
buffer-equals "^1.0.3"
bittorrent-peerid@^1.0.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/bittorrent-peerid/-/bittorrent-peerid-1.3.0.tgz#a435d3b267c887c586c528b53359845905d7c158"
+ integrity sha512-SYd5H3RbN1ex+TrWAKXkEkASFWxAR7Tk6iLt9tfAT9ehBvZb/Y3AQDVRVJynlrixcWpnmsLYKI7tkRWgp7ORoQ==
bittorrent-protocol@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/bittorrent-protocol/-/bittorrent-protocol-3.0.1.tgz#d3948f4d2b09d538095f7e5f93f64ba5df6b5c2a"
+ integrity sha512-hnvOzAu9u+2H0OLLL5byoFdz6oz5f3bx5f7R+ItUohTHMq9TgUhEJfcjo7xWtQHSKOVciYWwYTJ4EjczF5RX2A==
dependencies:
bencode "^2.0.0"
bitfield "^2.0.0"
bittorrent-tracker@^9.0.0:
version "9.10.1"
resolved "https://registry.yarnpkg.com/bittorrent-tracker/-/bittorrent-tracker-9.10.1.tgz#5de14aac012a287af394d3cc9eda1ec6cc956f11"
+ integrity sha512-n5zTL/g6Wt0rb2EnkiyiaGYhth7I/N0/xMqGUpvGX/7g1scDGBVPhJnXR8lfp3/OMj681fv40o4q/otECMtZSA==
dependencies:
bencode "^2.0.0"
bittorrent-peerid "^1.0.2"
bl@^1.0.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
+ integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
dependencies:
readable-stream "^2.3.5"
safe-buffer "^5.1.1"
blob-to-buffer@^1.2.6:
version "1.2.8"
resolved "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.8.tgz#78eeeb332f1280ed0ca6fb2b60693a8c6d36903a"
+ integrity sha512-re0AIxakF504MgeMtIyJkVcZ8T5aUxtp/QmTMlmjyb3P44E1BEv5x3LATBGApWAJATyXHtkXRD+gWTmeyYLiQA==
blob@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
+ integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=
block-stream2@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/block-stream2/-/block-stream2-1.1.0.tgz#c738e3a91ba977ebb5e1fef431e13ca11d8639e2"
+ integrity sha1-xzjjqRupd+u14f70MeE8oR2GOeI=
dependencies:
defined "^1.0.0"
inherits "^2.0.1"
block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
+ integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
dependencies:
inherits "~2.0.0"
bluebird@3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
+ integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=
bluebird@^2.10.0:
version "2.11.0"
resolved "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
+ integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=
bluebird@^3.0.5, bluebird@^3.3.4, bluebird@^3.4.6, bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@~3.5.1:
version "3.5.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a"
+ integrity sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==
bn.js@=2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-2.0.4.tgz#220a7cd677f7f1bfa93627ff4193776fe7819480"
+ integrity sha1-Igp81nf38b+pNif/QZN3b+eBlIA=
bn.js@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-2.2.0.tgz#12162bc2ae71fc40a5626c33438f3a875cd37625"
+ integrity sha1-EhYrwq5x/EClYmwzQ486h1zTdiU=
bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+ integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
body-parser@1.18.2:
version "1.18.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
+ integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
body-parser@^1.12.4:
version "1.18.3"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
+ integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
body@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069"
+ integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=
dependencies:
continuable-cache "^0.3.1"
error "^7.0.0"
boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
boxen@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
+ integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==
dependencies:
ansi-align "^2.0.0"
camelcase "^4.0.0"
brace-expansion@^1.0.0, brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
braces@^2.3.0, braces@^2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
dependencies:
arr-flatten "^1.1.0"
array-unique "^0.3.2"
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
browser-stdout@1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+ integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
browserify-package-json@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/browserify-package-json/-/browserify-package-json-1.0.1.tgz#98dde8aa5c561fd6d3fe49bbaa102b74b396fdea"
+ integrity sha1-mN3oqlxWH9bT/km7qhArdLOW/eo=
bs58@=2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.0.tgz#72b713bed223a0ac518bbda0e3ce3f4817f39eb5"
+ integrity sha1-crcTvtIjoKxRi72g484/SBfznrU=
buffer-alloc-unsafe@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+ integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
buffer-alloc@^1.1.0, buffer-alloc@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+ integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
dependencies:
buffer-alloc-unsafe "^1.1.0"
buffer-fill "^1.0.0"
buffer-compare@=1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-compare/-/buffer-compare-1.0.0.tgz#acaa7a966e98eee9fae14b31c39a5f158fb3c4a2"
+ integrity sha1-rKp6lm6Y7un64Usxw5pfFY+zxKI=
buffer-equal-constant-time@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
+ integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
buffer-equals@^1.0.3, buffer-equals@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5"
+ integrity sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=
buffer-fill@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+ integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
buffer-from@^1.0.0, buffer-from@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
buffer-writer@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08"
+ integrity sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg=
bufferutil@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.0.tgz#a5078160e443751a4e83b6f4d6d7e26c058326a0"
+ integrity sha512-jpnqMVLo7sqfUY2W92RC4jjj9TuiOSkjB0k43TxPcrBSntZwXUOl8Krfd3eVEdApuScpSTwYKntm/dXU2T8gnw==
dependencies:
node-gyp-build "~3.4.0"
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+ integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
builtins@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
+ integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og=
bull@^3.4.2:
version "3.4.8"
resolved "https://registry.yarnpkg.com/bull/-/bull-3.4.8.tgz#bd25ae82f47e0a092c0b06b6a13b875fa5b41bc0"
+ integrity sha512-dO/Dxbe7gpq8hyYlQfkLFz+N7JxTLM7KlEppViOdaaq8JSq15GgQo1wARG7E223MB6Ji9u9xTRcqXi/SwVvI1Q==
dependencies:
bluebird "^3.5.0"
cron-parser "^2.5.0"
busboy@^0.2.11:
version "0.2.14"
resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453"
+ integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=
dependencies:
dicer "0.2.5"
readable-stream "1.1.x"
byline@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
+ integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
byte-size@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.3.tgz#b7c095efc68eadf82985fccd9a2df43a74fa2ccd"
+ integrity sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==
bytes@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8"
+ integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=
bytes@3.0.0, bytes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+ integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
cacache@^10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
+ integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
dependencies:
bluebird "^3.5.1"
chownr "^1.0.1"
cacache@^11.0.1, cacache@^11.0.2, cacache@^11.2.0:
version "11.2.0"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.2.0.tgz#617bdc0b02844af56310e411c0878941d5739965"
+ integrity sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==
dependencies:
bluebird "^3.5.1"
chownr "^1.0.1"
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
dependencies:
collection-visit "^1.0.0"
component-emitter "^1.2.1"
call-limit@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea"
+ integrity sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+ integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=
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"
+ integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+ integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
camelcase-keys@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+ integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
dependencies:
camelcase "^2.0.0"
map-obj "^1.0.0"
camelcase@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+ integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+ integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
camelcase@^4.0.0, camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+ integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
camelize@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
+ integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
capture-stack-trace@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
+ integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
caseless@~0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
+ integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c=
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
chai-json-schema@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/chai-json-schema/-/chai-json-schema-1.5.0.tgz#6960719e40f71fd5b377c9282e5c9a46799474f6"
+ integrity sha1-aWBxnkD3H9Wzd8koLlyaRnmUdPY=
dependencies:
jsonpointer.js "0.4.0"
tv4 "~1.2.7"
chai-xml@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/chai-xml/-/chai-xml-0.3.2.tgz#61d0776aa8fd936a2178769adcaabf3bfb52b8b1"
+ integrity sha512-HAyFPmJE0MEleo+sjWhJUxj+/aYBoUQg5EF/eGhbv1IZtx8mNGyGKD4jKlohhD4DsZaH5jay+Y/xtzBacBLdHw==
dependencies:
chai "^1.9.1"
xml2js "^0.4.4"
chai@^1.9.1:
version "1.10.0"
resolved "https://registry.yarnpkg.com/chai/-/chai-1.10.0.tgz#e4031cc87654461a75943e5a35ab46eaf39c1eb9"
+ integrity sha1-5AMcyHZURhp1lD5aNatG6vOcHrk=
dependencies:
assertion-error "1.0.0"
deep-eql "0.1.3"
chai@^4.1.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
+ integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=
dependencies:
assertion-error "^1.0.1"
check-error "^1.0.1"
chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@~2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
+ integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
charenc@~0.0.1:
version "0.0.2"
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
+ integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
charset-detector@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/charset-detector/-/charset-detector-0.0.2.tgz#1cd5ddaf56e83259c6ef8e906ccf06f75fe9a1b2"
+ integrity sha1-HNXdr1boMlnG746QbM8G91/pobI=
check-error@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+ integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
cheerio@^0.19.0:
version "0.19.0"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.19.0.tgz#772e7015f2ee29965096d71ea4175b75ab354925"
+ integrity sha1-dy5wFfLuKZZQltcepBdbdas1SSU=
dependencies:
css-select "~1.0.0"
dom-serializer "~0.1.0"
chokidar@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
+ integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==
dependencies:
anymatch "^2.0.0"
async-each "^1.0.0"
chownr@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
+ integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
chownr@~1.0.1:
version "1.0.1"
resolved "http://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
+ integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=
chunk-store-stream@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/chunk-store-stream/-/chunk-store-stream-3.0.1.tgz#8e0d739226dcb386f44447b82a005b597a1d41d9"
+ integrity sha512-GA1NIFDZKElhkjiO6QOyzfK1QbUt6M3gFhUU/aR05JYaDqXbU5d7U92cLvGKdItJEDfojky6NQefy5VL5PpDBA==
dependencies:
block-stream2 "^1.0.0"
readable-stream "^2.0.5"
ci-info@^1.4.0, ci-info@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
+ integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
cidr-regex@^2.0.10:
version "2.0.10"
resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d"
+ integrity sha512-sB3ogMQXWvreNPbJUZMRApxuRYd+KoIo4RGQ81VatjmMW6WJPo+IJZ2846FGItr9VzKo5w7DXzijPLGtSd0N3Q==
dependencies:
ip-regex "^2.1.0"
circular-json@^0.3.1:
version "0.3.3"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+ integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
clarify@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/clarify/-/clarify-1.0.5.tgz#3ac7b2341a21615e8fca6e28301fcf9598c61466"
+ integrity sha1-OseyNBohYV6Pym4oMB/PlZjGFGY=
dependencies:
stack-chain "1.3.x"
class-utils@^0.3.5:
version "0.3.6"
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
dependencies:
arr-union "^3.1.0"
define-property "^0.2.5"
clean-css@~4.1.1:
version "4.1.11"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a"
+ integrity sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=
dependencies:
source-map "0.5.x"
cli-boxes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
+ integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM=
cli-columns@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e"
+ integrity sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=
dependencies:
string-width "^2.0.0"
strip-ansi "^3.0.1"
cli-cursor@^1.0.1, cli-cursor@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+ integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=
dependencies:
restore-cursor "^1.0.1"
cli-table3@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202"
+ integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==
dependencies:
object-assign "^4.1.0"
string-width "^2.1.1"
cli-table@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
+ integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM=
dependencies:
colors "1.0.3"
cli-truncate@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+ integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=
dependencies:
slice-ansi "0.0.4"
string-width "^1.0.1"
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
cli@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14"
+ integrity sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=
dependencies:
exit "0.1.2"
glob "^7.1.1"
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
cliui@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
+ integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
dependencies:
string-width "^2.1.1"
strip-ansi "^4.0.0"
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
closest-to@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/closest-to/-/closest-to-2.0.0.tgz#bb2a860edb7769b62d04821748ae50da24dbefaa"
+ integrity sha1-uyqGDtt3abYtBIIXSK5Q2iTb76o=
cls-bluebird@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cls-bluebird/-/cls-bluebird-2.1.0.tgz#37ef1e080a8ffb55c2f4164f536f1919e7968aee"
+ integrity sha1-N+8eCAqP+1XC9BZPU28ZGeeWiu4=
dependencies:
is-bluebird "^1.0.2"
shimmer "^1.1.0"
cluster-key-slot@^1.0.6:
version "1.0.12"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.0.12.tgz#d5deff2a520717bc98313979b687309b2d368e29"
+ integrity sha512-21O0kGmvED5OJ7ZTdqQ5lQQ+sjuez33R+d35jZKLwqUb5mqcPHUsxOSzj61+LHVtxGZd1kShbQM3MjB/gBJkVg==
cmd-shim@^2.0.2, cmd-shim@~2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb"
+ integrity sha1-b8vamUg6j9FdfTChlspp1oii79s=
dependencies:
graceful-fs "^4.1.2"
mkdirp "~0.5.0"
co-bluebird@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/co-bluebird/-/co-bluebird-1.1.0.tgz#c8b9f3a9320a7ed30987dcca1a5c3cff59655c7c"
+ integrity sha1-yLnzqTIKftMJh9zKGlw8/1llXHw=
dependencies:
bluebird "^2.10.0"
co-use "^1.1.0"
co-use@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/co-use/-/co-use-1.1.0.tgz#c6bb3cdf10cb735ecaa9daeeda46d725c94a4e62"
+ integrity sha1-xrs83xDLc17Kqdru2kbXJclKTmI=
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
coffee-script@~1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.7.1.tgz#62996a861780c75e6d5069d13822723b73404bfc"
+ integrity sha1-YplqhheAx15tUGnROCJyO3NAS/w=
dependencies:
mkdirp "~0.3.5"
coffeescript@~1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.10.0.tgz#e7aa8301917ef621b35d8a39f348dcdd1db7e33e"
+ integrity sha1-56qDAZF+9iGzXYo580jc3R234z4=
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
dependencies:
map-visit "^1.0.0"
object-visit "^1.0.0"
color-convert@^1.9.0, color-convert@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
color-name "1.1.3"
color-name@1.1.3, color-name@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
color-string@^1.5.2:
version "1.5.3"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
+ integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color@3.0.x, color@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
+ integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==
dependencies:
color-convert "^1.9.1"
color-string "^1.5.2"
colornames@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96"
+ integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=
colors@1.0.3, colors@1.0.x:
version "1.0.3"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+ integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
colors@^1.1.2, colors@^1.2.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz#2df8ff573dfbf255af562f8ce7181d6b971a359b"
+ integrity sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==
colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+ integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
colorspace@1.1.x:
version "1.1.1"
resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz#9ac2491e1bc6f8fb690e2176814f8d091636d972"
+ integrity sha512-pI3btWyiuz7Ken0BWh9Elzsmv2bM9AhA7psXib4anUXy/orfZ/E0MbQwhSOG/9L8hLlalqrU0UhOuqxW1YjmVw==
dependencies:
color "3.0.x"
text-hex "1.0.x"
columnify@~1.5.4:
version "1.5.4"
resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb"
+ integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=
dependencies:
strip-ansi "^3.0.0"
wcwidth "^1.0.0"
combined-stream@1.0.6:
version "1.0.6"
resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
+ integrity sha1-cj599ugBrFYTETp+RFqbactjKBg=
dependencies:
delayed-stream "~1.0.0"
combined-stream@~1.0.5, combined-stream@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
+ integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
dependencies:
delayed-stream "~1.0.0"
command-exists@^1.2.2:
version "1.2.7"
resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.7.tgz#16828f0c3ff2b0c58805861ef211b64fc15692a8"
+ integrity sha512-doWDvhXCcW5LK0cIUWrOQ8oMFXJv3lEQCkJpGVjM8v9SV0uhqYXB943538tEA2CiaWqSyuYUGAm5ezDwEx9xlw==
commander@*, commander@^2.12.1, commander@^2.13.0, commander@^2.14.1, commander@^2.8.1, commander@^2.9.0:
version "2.18.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970"
+ integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==
commander@2.15.1:
version "2.15.1"
resolved "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
+ integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
commander@2.9.0:
version "2.9.0"
resolved "http://registry.npmjs.org/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
+ integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=
dependencies:
graceful-readlink ">= 1.0.0"
commander@~2.17.1:
version "2.17.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+ integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
compact2string@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/compact2string/-/compact2string-1.4.0.tgz#a99cd96ea000525684b269683ae2222d6eea7b49"
+ integrity sha1-qZzZbqAAUlaEsmloOuIiLW7qe0k=
dependencies:
ipaddr.js ">= 0.1.5"
component-bind@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
+ integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=
component-emitter@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
+ integrity sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=
component-emitter@1.2.1, component-emitter@^1.2.0, component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+ integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
component-inherit@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
+ integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@1.6.2, concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
dependencies:
buffer-from "^1.0.0"
inherits "^2.0.3"
concurrently@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-4.0.1.tgz#f6310fbadf2f476dd95df952edb5c0ab789f672c"
+ integrity sha512-D8UI+mlI/bfvrA57SeKOht6sEpb01dKk+8Yee4fbnkk1Ue8r3S+JXoEdFZIpzQlXJGtnxo47Wvvg/kG4ba3U6Q==
dependencies:
chalk "^2.4.1"
date-fns "^1.23.0"
config-chain@~1.1.11, config-chain@~1.1.5:
version "1.1.12"
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
+ integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
dependencies:
ini "^1.3.4"
proto-list "~1.2.1"
config@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/config/-/config-2.0.1.tgz#995ccc8175460578d646ac0a2e4018ffa44ca046"
+ integrity sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==
dependencies:
json5 "^1.0.1"
configstore@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
+ integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==
dependencies:
dot-prop "^4.1.0"
graceful-fs "^4.1.2"
connect-livereload@^0.5.0:
version "0.5.4"
resolved "https://registry.yarnpkg.com/connect-livereload/-/connect-livereload-0.5.4.tgz#80157d1371c9f37cc14039ab1895970d119dc3bc"
+ integrity sha1-gBV9E3HJ83zBQDmrGJWXDRGdw7w=
connect@^3.4.0:
version "3.6.6"
resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524"
+ integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=
dependencies:
debug "2.6.9"
finalhandler "1.1.0"
console-browserify@1.1.x:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+ integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
dependencies:
date-now "^0.1.4"
console-control-strings@^1.0.0, console-control-strings@^1.1.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"
+ integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
content-disposition@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b"
+ integrity sha1-h0dsamfI2qh+Muh2Ft+IO6f7Bxs=
content-disposition@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+ integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
content-security-policy-builder@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz#8749a1d542fcbe82237281ea9f716ce68b394dd2"
+ integrity sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==
content-type@~1.0.1, content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+ integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
continuable-cache@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f"
+ integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=
cookie-parser@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz#0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5"
+ integrity sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=
dependencies:
cookie "0.3.1"
cookie-signature "1.0.6"
cookie-signature@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
cookie@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.5.tgz#6ab9948a4b1ae21952cd2588530a4722d4044d7c"
+ integrity sha1-armUiksa4hlSzSWIUwpHItQETXw=
cookie@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+ integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
cookiejar@^2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c"
+ integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
dependencies:
aproba "^1.1.1"
fs-write-stream-atomic "^1.0.8"
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
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"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cors@^2.8.1:
version "2.8.4"
resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686"
+ integrity sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=
dependencies:
object-assign "^4"
vary "^1"
cosmiconfig@^5.0.2, cosmiconfig@^5.0.6:
version "5.0.6"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
+ integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==
dependencies:
is-directory "^0.3.1"
js-yaml "^3.9.0"
create-error-class@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
+ integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
dependencies:
capture-stack-trace "^1.0.0"
create-torrent@^3.24.5, create-torrent@^3.33.0:
version "3.33.0"
resolved "https://registry.yarnpkg.com/create-torrent/-/create-torrent-3.33.0.tgz#8a7a2aa2213a799c266c40e4c12f1468ede25105"
+ integrity sha512-KMd0KuvwVUg1grlRd5skG9ZkSbBYDDkAjDUMLnvxdRn0rL7ph3IwoOk7I8u1yLX4HYjGiLVlWYO55YWNNPjJFA==
dependencies:
bencode "^2.0.0"
block-stream2 "^1.0.0"
cron-parser@^2.5.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-2.6.0.tgz#ae2514ceda9ccb540256e201bdd23ae814e03674"
+ integrity sha512-KGfDDTjBIx85MnVYcdhLccoJH/7jcYW+5Z/t3Wsg2QlJhmmjf+97z+9sQftS71lopOYYapjEKEvmWaCsym5Z4g==
dependencies:
is-nan "^1.2.1"
moment-timezone "^0.5.0"
cross-spawn@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
+ integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI=
dependencies:
lru-cache "^4.0.1"
which "^1.2.9"
cross-spawn@^5.0.1:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
dependencies:
lru-cache "^4.0.1"
shebang-command "^1.2.0"
cross-spawn@^6.0.0:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
dependencies:
nice-try "^1.0.4"
path-key "^2.0.1"
crypt@~0.0.1:
version "0.0.2"
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
+ integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
crypto-random-string@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
+ integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
css-select@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.0.0.tgz#b1121ca51848dd264e2244d058cee254deeb44b0"
+ integrity sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=
dependencies:
boolbase "~1.0.0"
css-what "1.0"
css-what@1.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-1.0.0.tgz#d7cc2df45180666f99d2b14462639469e00f736c"
+ integrity sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w=
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+ integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
dependencies:
array-find-index "^1.0.1"
cycle@1.0.x:
version "1.0.3"
resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
+ integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI=
cyclist@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
+ integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
d@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
+ integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=
dependencies:
es5-ext "^0.10.9"
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
dependencies:
assert-plus "^1.0.0"
dasherize@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz#6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308"
+ integrity sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=
date-fns@^1.23.0, date-fns@^1.27.2:
version "1.29.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
+ integrity sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+ integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
dateformat@~1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
+ integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=
dependencies:
get-stdin "^4.0.1"
meow "^3.3.0"
deasync@^0.1.4:
version "0.1.13"
resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.13.tgz#815c2b69bbd1117cae570152cd895661c09f20ea"
+ integrity sha512-/6ngYM7AapueqLtvOzjv9+11N2fHDSrkxeMF1YPE20WIfaaawiBg+HZH1E5lHrcJxlKR42t6XPOEmMmqcAsU1g==
dependencies:
bindings "~1.2.1"
nan "^2.0.7"
debug@2.2.0, debug@~2.2.0:
version "2.2.0"
resolved "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
+ integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=
dependencies:
ms "0.7.1"
debug@2.3.3:
version "2.3.3"
resolved "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
+ integrity sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=
dependencies:
ms "0.7.2"
debug@2.6.9, debug@^2.1.1, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
debug@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
dependencies:
ms "2.0.0"
debug@^3.1.0:
version "3.2.5"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407"
+ integrity sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==
dependencies:
ms "^2.1.1"
debuglog@^1.0.0, debuglog@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
+ integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
decamelize@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7"
+ integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==
dependencies:
xregexp "4.0.0"
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"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
decompress-response@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+ integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
dependencies:
mimic-response "^1.0.0"
dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+ integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
deep-eql@0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
+ integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=
dependencies:
type-detect "0.1.1"
deep-eql@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+ integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
dependencies:
type-detect "^4.0.0"
deep-equal@~0.2.1:
version "0.2.2"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.2.2.tgz#84b745896f34c684e98f2ce0e42abaf43bba017d"
+ integrity sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
deep-object-diff@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a"
+ integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==
defaults@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
+ integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
dependencies:
clone "^1.0.2"
define-properties@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
dependencies:
object-keys "^1.0.12"
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
dependencies:
is-descriptor "^0.1.0"
define-property@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
dependencies:
is-descriptor "^1.0.0"
define-property@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
dependencies:
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"
+ integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
+ integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=
dependencies:
globby "^5.0.0"
is-path-cwd "^1.0.0"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
denque@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/denque/-/denque-1.3.0.tgz#681092ef44a630246d3f6edb2a199230eae8e76b"
+ integrity sha512-4SRaSj+PqmrS1soW5/Avd7eJIM2JJIqLLmwhRqIGleZM/8KwZq80njbSS2Iqas+6oARkSkLDHEk4mm78q3JlIg==
depd@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
+ integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=
depd@^1.1.0, depd@~1.1.0, depd@~1.1.1, depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
descrevit@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/descrevit/-/descrevit-0.1.1.tgz#c0f5840de0a0f7b1b8b4078569b173327947d5da"
+ integrity sha1-wPWEDeCg97G4tAeFabFzMnlH1do=
dependencies:
deasync "^0.1.4"
destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+ integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
detect-indent@~5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
+ integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50=
detect-libc@^1.0.2, detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+ integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-newline@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
+ integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
dezalgo@^1.0.0, dezalgo@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456"
+ integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=
dependencies:
asap "^2.0.0"
wrappy "1"
diagnostics@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a"
+ integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==
dependencies:
colorspace "1.1.x"
enabled "1.0.x"
dicer@0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f"
+ integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=
dependencies:
readable-stream "1.1.x"
streamsearch "0.1.2"
diff@3.5.0, diff@^3.1.0, diff@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+ integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
dns-prefetch-control@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz#60ddb457774e178f1f9415f0cabb0e85b0b300b2"
+ integrity sha1-YN20V3dOF48flBXwyrsOhbCzALI=
docopt@~0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11"
+ integrity sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=
doctrine@0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
+ integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=
dependencies:
esutils "^1.1.6"
isarray "0.0.1"
doctrine@^1.2.2:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=
dependencies:
esutils "^2.0.2"
isarray "^1.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"
+ integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=
dependencies:
domelementtype "~1.1.1"
entities "~1.1.1"
domelementtype@1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
+ integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=
domelementtype@~1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
+ integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=
domhandler@2.2:
version "2.2.1"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.2.1.tgz#59df9dcd227e808b365ae73e1f6684ac3d946fc2"
+ integrity sha1-Wd+dzSJ+gIs2Wuc+H2aErD2Ub8I=
dependencies:
domelementtype "1"
domhandler@2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
+ integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg=
dependencies:
domelementtype "1"
domutils@1.3:
version "1.3.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.3.0.tgz#9ad4d59b5af6ca684c62fe6d768ef170e70df192"
+ integrity sha1-mtTVm1r2ymhMYv5tdo7xcOcN8ZI=
dependencies:
domelementtype "1"
domutils@1.4:
version "1.4.3"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.4.3.tgz#0865513796c6b306031850e175516baf80b72a6f"
+ integrity sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=
dependencies:
domelementtype "1"
domutils@1.5:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+ integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
dependencies:
dom-serializer "0"
domelementtype "1"
dont-sniff-mimetype@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz#5932890dc9f4e2f19e5eb02a20026e5e5efc8f58"
+ integrity sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=
dot-json@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/dot-json/-/dot-json-1.0.4.tgz#b5c5818eb526a7917ac02df017fe9fba37b11195"
+ integrity sha1-tcWBjrUmp5F6wC3wF/6fujexEZU=
dependencies:
docopt "~0.6.2"
underscore-keypath "~0.0.22"
dot-prop@^4.1.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
+ integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
dependencies:
is-obj "^1.0.0"
dotenv@^5.0.1:
version "5.0.1"
resolved "http://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef"
+ integrity sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==
dottie@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.0.tgz#da191981c8b8d713ca0115d5898cf397c2f0ddd0"
+ integrity sha1-2hkZgci41xPKARXViYzzl8Lw3dA=
double-ended-queue@^2.1.0-0:
version "2.1.0-0"
resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
+ integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+ integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
duplexer@^0.1.1, duplexer@~0.1.1:
version "0.1.1"
resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+ integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410"
+ integrity sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==
dependencies:
end-of-stream "^1.0.0"
inherits "^2.0.1"
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
dependencies:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
ecdsa-sig-formatter@1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3"
+ integrity sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=
dependencies:
safe-buffer "^5.0.1"
editor@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742"
+ integrity sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
elegant-spinner@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
+ integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
elliptic@=3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-3.0.3.tgz#865c9b420bfbe55006b9f969f97a0d2c44966595"
+ integrity sha1-hlybQgv75VAGuflp+XoNLESWZZU=
dependencies:
bn.js "^2.0.0"
brorand "^1.0.1"
enabled@1.0.x:
version "1.0.2"
resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93"
+ integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=
dependencies:
env-variable "0.0.x"
encodeurl@~1.0.1, encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
encoding@^0.1.11, encoding@^0.1.12, encoding@~0.1.12:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
+ integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=
dependencies:
iconv-lite "~0.4.13"
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+ integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
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"
+ integrity sha1-F5jtk0USRkU9TG9jXXogH+lA1as=
dependencies:
component-emitter "1.2.1"
component-inherit "0.0.3"
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"
+ integrity sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=
dependencies:
after "0.8.2"
arraybuffer.slice "0.0.6"
engine.io@1.8.3:
version "1.8.3"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4"
+ integrity sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=
dependencies:
accepts "1.3.3"
base64id "1.0.0"
entities@1.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26"
+ integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=
entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+ integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA=
env-variable@0.0.x:
version "0.0.4"
resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.4.tgz#0d6280cf507d84242befe35a512b5ae4be77c54e"
+ integrity sha512-+jpGxSWG4vr6gVxUHOc4p+ilPnql7NzZxOZBxNldsKGjCF+97df3CbuX7XMaDa5oAVkKQj4rKp38rYdC4VcpDg==
err-code@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960"
+ integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=
errno@~0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
+ integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
dependencies:
prr "~1.0.1"
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"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"
error@^7.0.0:
version "7.0.2"
resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02"
+ integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=
dependencies:
string-template "~0.2.1"
xtend "~4.0.0"
es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2:
version "0.10.46"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572"
+ integrity sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==
dependencies:
es6-iterator "~2.0.3"
es6-symbol "~3.1.1"
es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
dependencies:
d "1"
es5-ext "^0.10.35"
es6-map@^0.1.3:
version "0.1.5"
resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=
dependencies:
d "1"
es5-ext "~0.10.14"
es6-promise@^4.0.3:
version "4.2.5"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054"
+ integrity sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==
es6-promisify@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
+ integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
dependencies:
es6-promise "^4.0.3"
es6-promisify@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.0.tgz#b526a75eaa5ca600e960bf3d5ad98c40d75c7203"
+ integrity sha512-8Tbqjrb8lC85dd81haajYwuRmiU2rkqNAFnlvQOJeeKqdUloIlI+JcUqeJruV4rCm5Y7oNU7jfs2FbmxhRR/2g==
es6-set@~0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
+ integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=
dependencies:
d "1"
es5-ext "~0.10.14"
es6-shim@0.35.3:
version "0.35.3"
resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26"
+ integrity sha1-m/tzY/7//4emzbbNk+QF7DxLbyY=
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"
+ integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=
dependencies:
d "1"
es5-ext "~0.10.14"
es6-weak-map@^2.0.1, es6-weak-map@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
+ integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=
dependencies:
d "1"
es5-ext "^0.10.14"
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
escope@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=
dependencies:
es6-map "^0.1.3"
es6-weak-map "^2.0.1"
eslint@^2.7.0:
version "2.13.1"
resolved "http://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11"
+ integrity sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=
dependencies:
chalk "^1.1.3"
concat-stream "^1.4.6"
espree@^3.1.6:
version "3.5.4"
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
+ integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==
dependencies:
acorn "^5.5.0"
acorn-jsx "^3.0.0"
esprima@^1.2.0:
version "1.2.5"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9"
+ integrity sha1-CZNQL+r2aBODJXVvMPmlH+7sEek=
esprima@^2.6.0:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+ integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esrecurse@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
dependencies:
estraverse "^4.1.0"
estraverse@^1.5.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
+ integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=
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"
+ integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
esutils@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
+ integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+ integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
etag@~1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8"
+ integrity sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=
etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
event-emitter@^0.3.5, event-emitter@~0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
dependencies:
d "1"
es5-ext "~0.10.14"
event-stream@~3.3.0:
version "3.3.6"
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.6.tgz#cac1230890e07e73ec9cacd038f60a5b66173eef"
+ integrity sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==
dependencies:
duplexer "^0.1.1"
flatmap-stream "^0.1.0"
eventemitter2@~0.4.13:
version "0.4.14"
resolved "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab"
+ integrity sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=
execa@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50"
+ integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==
dependencies:
cross-spawn "^6.0.0"
get-stream "^3.0.0"
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
dependencies:
cross-spawn "^5.0.1"
get-stream "^3.0.0"
execa@^0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01"
+ integrity sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==
dependencies:
cross-spawn "^5.0.1"
get-stream "^3.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"
+ integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=
exit@0.1.2, exit@0.1.x, exit@~0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
dependencies:
debug "^2.3.3"
define-property "^0.2.5"
expand-template@^1.0.2:
version "1.1.1"
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd"
+ integrity sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==
expect-ct@0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.1.1.tgz#de84476a2dbcb85000d5903737e9bc8a5ba7b897"
+ integrity sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==
express-oauth-server@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/express-oauth-server/-/express-oauth-server-2.0.0.tgz#57b08665c1201532f52c4c02f19709238b99a48d"
+ integrity sha1-V7CGZcEgFTL1LEwC8ZcJI4uZpI0=
dependencies:
bluebird "^3.0.5"
express "^4.13.3"
express-rate-limit@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-3.2.0.tgz#92368aab15a6b17c68399d4d4b4289850f13c4fe"
+ integrity sha512-oJpdtmt+mJivUCS9TVnlDAh/otWno4AaKz2cZkhbfpBna4CXB/pQjyUfWv2G7/09T3HqOIvB/93kU+eSmbeeTw==
dependencies:
defaults "^1.0.3"
express-validator@^5.0.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/express-validator/-/express-validator-5.3.0.tgz#18a4e4a6e6410e3b9d492fb4ffcb4556fec51806"
+ integrity sha512-HYVtPt21zp2bHS4+xwxYNF63dlq/23kh+ZRVfyo7SBObhOpRyZ0vWolm/v9KPUfCyLqX8j7ZP42dbB0MWjCCcA==
dependencies:
lodash "^4.17.10"
validator "^10.4.0"
express@4.13.4:
version "4.13.4"
resolved "http://registry.npmjs.org/express/-/express-4.13.4.tgz#3c0b76f3c77590c8345739061ec0bd3ba067ec24"
+ integrity sha1-PAt288d1kMg0VzkGHsC9O6Bn7CQ=
dependencies:
accepts "~1.2.12"
array-flatten "1.1.1"
express@^4.12.4, express@^4.13.3:
version "4.16.3"
resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
+ integrity sha1-avilAjUNsyRuzEvs9rWjTSL37VM=
dependencies:
accepts "~1.3.5"
array-flatten "1.1.1"
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
dependencies:
is-extendable "^0.1.0"
extend-shallow@^3.0.0, extend-shallow@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
dependencies:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
extend@^3.0.0, extend@~3.0.0, extend@~3.0.1, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
extglob@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
dependencies:
array-unique "^0.3.2"
define-property "^1.0.0"
extract-zip@^1.6.5:
version "1.6.7"
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
+ integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=
dependencies:
concat-stream "1.6.2"
debug "2.6.9"
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
eyes@0.1.x:
version "0.1.8"
resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
+ integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=
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"
+ integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
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"
+ integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fast-safe-stringify@^2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz#04b26106cc56681f51a044cfc0d76cf0008ac2c2"
+ integrity sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==
faye-websocket@~0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
+ integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
dependencies:
websocket-driver ">=0.5.1"
fd-slicer@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
+ integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=
dependencies:
pend "~1.2.0"
fecha@^2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd"
+ integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==
figgy-pudding@^3.0.0, figgy-pudding@^3.1.0, figgy-pudding@^3.4.1, figgy-pudding@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
+ integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
figures@^1.0.1, figures@^1.3.5, figures@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
dependencies:
escape-string-regexp "^1.0.5"
object-assign "^4.1.0"
file-entry-cache@^1.1.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8"
+ integrity sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=
dependencies:
flat-cache "^1.2.1"
object-assign "^4.0.1"
file-sync-cmp@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz#a5e7a8ffbfa493b43b923bbd4ca89a53b63b612b"
+ integrity sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=
filestream@^4.0.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/filestream/-/filestream-4.1.3.tgz#948fcaade8221f715f5ecaddc54862faaacc9325"
+ integrity sha1-lI/KregiH3FfXsrdxUhi+qrMkyU=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
dependencies:
extend-shallow "^2.0.1"
is-number "^3.0.0"
finalhandler@0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.1.tgz#85a17c6c59a94717d262d61230d4b0ebe3d4a14d"
+ integrity sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=
dependencies:
debug "~2.2.0"
escape-html "~1.0.3"
finalhandler@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
+ integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=
dependencies:
debug "2.6.9"
encodeurl "~1.0.1"
finalhandler@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
+ integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
find-npm-prefix@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf"
+ integrity sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==
find-parent-dir@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
+ integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
dependencies:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
dependencies:
locate-path "^2.0.0"
find-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
dependencies:
locate-path "^3.0.0"
findup-sync@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
+ integrity sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=
dependencies:
glob "~5.0.0"
flat-cache@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
+ integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=
dependencies:
circular-json "^0.3.1"
del "^2.0.2"
flat@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2"
+ integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==
dependencies:
is-buffer "~2.0.3"
flatmap-stream@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/flatmap-stream/-/flatmap-stream-0.1.0.tgz#ed54e01422cd29281800914fcb968d58b685d5f1"
+ integrity sha512-Nlic4ZRYxikqnK5rj3YoxDVKGGtUjcNDUtvQ7XsdGLZmMwdUYnXf10o1zcXtzEZTBgc6GxeRpQxV/Wu3WPIIHA==
flatten@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
+ integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=
flexbuffer@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/flexbuffer/-/flexbuffer-0.0.6.tgz#039fdf23f8823e440c38f3277e6fef1174215b30"
+ integrity sha1-A5/fI/iCPkQMOPMnfm/vEXQhWzA=
fluent-ffmpeg@^2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz#c952de2240f812ebda0aa8006d7776ee2acf7d74"
+ integrity sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=
dependencies:
async ">=0.2.9"
which "^1.1.1"
flush-write-stream@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd"
+ integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.4"
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
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"
+ integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=
dependencies:
asynckit "^0.4.0"
combined-stream "1.0.6"
formidable@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659"
+ integrity sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==
forwarded@~0.1.0, forwarded@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+ integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
foundation-sites@^6.4.1:
version "6.4.3"
resolved "https://registry.yarnpkg.com/foundation-sites/-/foundation-sites-6.4.3.tgz#ea89eb599badf6f03dd526c51f00bdb942a844f6"
+ integrity sha1-6onrWZut9vA91SbFHwC9uUKoRPY=
dependencies:
jquery ">=3.0.0"
what-input "^4.1.3"
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
dependencies:
map-cache "^0.2.2"
frameguard@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-3.0.0.tgz#7bcad469ee7b96e91d12ceb3959c78235a9272e9"
+ integrity sha1-e8rUae57lukdEs6zlZx4I1qScuk=
fresh@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f"
+ integrity sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=
fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
from2@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd"
+ integrity sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=
dependencies:
inherits "~2.0.1"
readable-stream "~1.1.10"
from2@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.0"
from@^0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+ integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
front-matter@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz#f75983b9f2f413be658c93dfd7bd8ce4078f5cdb"
+ integrity sha1-91mDufL0E75ljJPf172M5AePXNs=
dependencies:
js-yaml "^3.4.6"
fs-chunk-store@^1.6.2:
version "1.7.0"
resolved "https://registry.yarnpkg.com/fs-chunk-store/-/fs-chunk-store-1.7.0.tgz#1c4bcbe93c99af10aa04b65348f2bb27377a4010"
+ integrity sha512-KhjJmZAs2eqfhCb6PdPx4RcZtheGTz86tpTC5JTvqBn/xda+Nb+0C7dCyjOSN7T76H6a56LvH0SVXQMchLXDRw==
dependencies:
mkdirp "^0.5.1"
random-access-file "^2.0.1"
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+ integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
fs-copy-file-sync@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz#11bf32c096c10d126e5f6b36d06eece776062918"
+ integrity sha512-2QY5eeqVv4m2PfyMiEuy9adxNP+ajf+8AR05cEi+OAzPcOj90hvFImeZhTmKLBgSd9EvG33jsD7ZRxsx9dThkQ==
fs-extra@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
+ integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=
dependencies:
graceful-fs "^4.1.2"
jsonfile "^2.1.0"
fs-extra@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
+ integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=
dependencies:
graceful-fs "^4.1.2"
jsonfile "^3.0.0"
fs-extra@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6"
+ integrity sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==
dependencies:
graceful-fs "^4.1.2"
jsonfile "^4.0.0"
fs-minipass@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
+ integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==
dependencies:
minipass "^2.2.1"
fs-vacuum@^1.2.10, fs-vacuum@~1.2.10:
version "1.2.10"
resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36"
+ integrity sha1-t2Kb7AekAxolSP35n17PHMizHjY=
dependencies:
graceful-fs "^4.1.2"
path-is-inside "^1.0.1"
fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
dependencies:
graceful-fs "^4.1.2"
iferr "^0.1.5"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.2.2:
version "1.2.4"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
+ integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==
dependencies:
nan "^2.9.2"
node-pre-gyp "^0.10.0"
fstream@^1.0.0, fstream@^1.0.2:
version "1.0.11"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
+ integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=
dependencies:
graceful-fs "^4.1.2"
inherits "~2.0.0"
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
dependencies:
aproba "^1.0.3"
console-control-strings "^1.0.0"
gaze@^1.0.0, gaze@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
+ integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==
dependencies:
globule "^1.0.0"
generate-function@^2.0.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
+ integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==
dependencies:
is-property "^1.0.2"
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"
+ integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=
dependencies:
is-property "^1.0.0"
generic-pool@^3.4.0:
version "3.4.2"
resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.4.2.tgz#92ff7196520d670839a67308092a12aadf2f6a59"
+ integrity sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag==
genfun@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1"
+ integrity sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=
gentle-fs@^2.0.0, gentle-fs@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz#585cfd612bfc5cd52471fdb42537f016a5ce3687"
+ integrity sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==
dependencies:
aproba "^1.1.2"
fs-vacuum "^1.2.10"
get-browser-rtc@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.0.2.tgz#bbcd40c8451a7ed4ef5c373b8169a409dd1d11d9"
+ integrity sha1-u81AyEUaftTvXDc7gWmkCd0dEdk=
get-caller-file@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
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"
+ integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
get-own-enumerable-property-symbols@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b"
+ integrity sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==
get-port@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc"
+ integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+ integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
get-stdin@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
+ integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+ integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
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"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
getobject@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
+ integrity sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
dependencies:
assert-plus "^1.0.0"
github-from-package@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
+ integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
dependencies:
is-glob "^3.1.0"
path-dirname "^1.0.0"
glob@7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
glob@^4.0.2:
version "4.5.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f"
+ integrity sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=
dependencies:
inflight "^1.0.4"
inherits "2"
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2:
version "7.1.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+ integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
glob@~5.0.0:
version "5.0.15"
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
+ integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=
dependencies:
inflight "^1.0.4"
inherits "2"
glob@~7.0.0:
version "7.0.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
+ integrity sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
global-dirs@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
+ integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=
dependencies:
ini "^1.3.4"
globals@^9.2.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+ integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
globby@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-0.1.1.tgz#cbec63df724b4bea458b79a16cc0e3b1f2ca8620"
+ integrity sha1-y+xj33JLS+pFi3mhbMDjsfLKhiA=
dependencies:
array-differ "^0.1.0"
array-union "^0.1.0"
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
+ integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=
dependencies:
array-union "^1.0.1"
arrify "^1.0.0"
globule@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
+ integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==
dependencies:
glob "~7.1.1"
lodash "~4.17.10"
gonzales-pe-sl@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz#6a868bc380645f141feeb042c6f97fcc71b59fe6"
+ integrity sha1-aoaLw4BkXxQf7rBCxvl/zHG1n+Y=
dependencies:
minimist "1.1.x"
got@^6.7.1:
version "6.7.1"
resolved "http://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
+ integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=
dependencies:
create-error-class "^3.0.0"
duplexer3 "^0.1.4"
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:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+ integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
graceful-fs@~2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0"
+ integrity sha1-fNLNsiiko/Nule+mzBQt59GhNtA=
"graceful-readlink@>= 1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
+ integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
graphlib@^2.1.1:
version "2.1.5"
resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.5.tgz#6afe1afcc5148555ec799e499056795bd6938c87"
+ integrity sha512-XvtbqCcw+EM5SqQrIetIKKD+uZVNQtDPD1goIg7K73RuRZtVI5rYMdcCVSHm/AS1sCBZ7vt0p5WgXouucHQaOA==
dependencies:
lodash "^4.11.1"
growl@1.10.5:
version "1.10.5"
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
+ integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
grunt-cli@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.2.0.tgz#562b119ebb069ddb464ace2845501be97b35b6a8"
+ integrity sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=
dependencies:
findup-sync "~0.3.0"
grunt-known-options "~1.1.0"
grunt-compile-handlebars@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/grunt-compile-handlebars/-/grunt-compile-handlebars-2.0.2.tgz#b9f60263771f7dd7f17bcc05e6e1e329e2772cc3"
+ integrity sha1-ufYCY3cffdfxe8wF5uHjKeJ3LMM=
dependencies:
alce "^1.0.0"
handlebars ">= 1"
grunt-contrib-clean@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz#564abf2d0378a983a15b9e3f30ee75b738c40638"
+ integrity sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=
dependencies:
async "^1.5.2"
rimraf "^2.5.1"
grunt-contrib-concat@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz#61509863084e871d7e86de48c015259ed97745bd"
+ integrity sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=
dependencies:
chalk "^1.0.0"
source-map "^0.5.3"
grunt-contrib-connect@^1.0.2:
version "1.0.2"
resolved "http://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-1.0.2.tgz#5cf933b91a67386044273c0b2444603cd98879ba"
+ integrity sha1-XPkzuRpnOGBEJzwLJERgPNmIebo=
dependencies:
async "^1.5.2"
connect "^3.4.0"
grunt-contrib-copy@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz#7060c6581e904b8ab0d00f076e0a8f6e3e7c3573"
+ integrity sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=
dependencies:
chalk "^1.1.1"
file-sync-cmp "^0.1.0"
grunt-contrib-cssmin@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.1.tgz#64cbebe60134bc1270ca4154514ec4007cc16f7f"
+ integrity sha512-IXNomhQ5ekVZbDbj/ik5YccoD9khU6LT2fDXqO1+/Txjq8cp0tQKjVS8i8EAbHOrSDkL7/UD6A7b+xj98gqh9w==
dependencies:
chalk "^1.0.0"
clean-css "~4.1.1"
grunt-contrib-handlebars@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/grunt-contrib-handlebars/-/grunt-contrib-handlebars-1.0.0.tgz#a683cdda9dbd5cfdf5291c7581add85125717a3d"
+ integrity sha1-poPN2p29XP31KRx1ga3YUSVxej0=
dependencies:
chalk "^1.0.0"
handlebars "~4.0.0"
grunt-contrib-jshint@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz#369d909b2593c40e8be79940b21340850c7939ac"
+ integrity sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=
dependencies:
chalk "^1.1.1"
hooker "^0.2.3"
grunt-contrib-uglify@^3.3.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz#8a51ab330be05ef62b11b2833abd3e955e85af03"
+ integrity sha512-UXsTpeP0pytpTYlmll3RDndsRXfdwmrf1tI/AtD/PrArQAzGmKMvj83aVt3D8egWlE6KqPjsJBLCCvfC52LI/A==
dependencies:
chalk "^1.0.0"
maxmin "^2.1.0"
grunt-contrib-watch@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz#c143ca5b824b288a024b856639a5345aedb78ed4"
+ integrity sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==
dependencies:
async "^2.6.0"
gaze "^1.1.0"
grunt-embed@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/grunt-embed/-/grunt-embed-0.2.1.tgz#ea96e929e9b12f5aaf9479bf1a84f373c716b02e"
+ integrity sha1-6pbpKemxL1qvlHm/GoTzc8cWsC4=
dependencies:
resource-embedder "~0.2.1"
grunt-known-options@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.1.tgz#6cc088107bd0219dc5d3e57d91923f469059804d"
+ integrity sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==
grunt-legacy-log-utils@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz#d2f442c7c0150065d9004b08fd7410d37519194e"
+ integrity sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==
dependencies:
chalk "~2.4.1"
lodash "~4.17.10"
grunt-legacy-log@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz#c8cd2c6c81a4465b9bbf2d874d963fef7a59ffb9"
+ integrity sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==
dependencies:
colors "~1.1.2"
grunt-legacy-log-utils "~2.0.0"
grunt-legacy-util@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz#e10624e7c86034e5b870c8a8616743f0a0845e42"
+ integrity sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==
dependencies:
async "~1.5.2"
exit "~0.1.1"
grunt-prettify@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/grunt-prettify/-/grunt-prettify-0.4.0.tgz#fc853db4245d4908ab6e35afb5277213eddc194b"
+ integrity sha1-/IU9tCRdSQirbjWvtSdyE+3cGUs=
dependencies:
async "~0.9.0"
globby "^0.1.1"
grunt-sass@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/grunt-sass/-/grunt-sass-3.0.1.tgz#2760207d7b78db84429d9fa77d22289a6fc903a0"
+ integrity sha512-eKmtsPmtO+cjE1wT0EkvgavsQCzT2x+2J1tS4SuoBu3j0CDpI6o3cJUJ5CxrbjaWULpLlsu0GFiOa6nYetnaqQ==
grunt@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.0.3.tgz#b3c99260c51d1b42835766e796527b60f7bba374"
+ integrity sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==
dependencies:
coffeescript "~1.10.0"
dateformat "~1.0.12"
gzip-size@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520"
+ integrity sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=
dependencies:
duplexer "^0.1.1"
"handlebars@>= 1", handlebars@^4.0.5, handlebars@~4.0.0:
version "4.0.12"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5"
+ integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==
dependencies:
async "^2.5.0"
optimist "^0.6.1"
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
har-validator@~5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=
dependencies:
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"
+ integrity sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==
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"
+ integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
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"
+ integrity sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=
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"
+ integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
has-flag@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+ integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
has-unicode@^2.0.0, has-unicode@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
dependencies:
get-value "^2.0.3"
has-values "^0.1.4"
has-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
dependencies:
get-value "^2.0.6"
has-values "^1.0.0"
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
has-values@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
dependencies:
is-number "^3.0.0"
kind-of "^4.0.0"
hash.js@^1.0.0:
version "1.1.5"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"
+ integrity sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==
dependencies:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
hasha@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
+ integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=
dependencies:
is-stream "^1.0.1"
pinkie-promise "^2.0.0"
hashish@~0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/hashish/-/hashish-0.0.4.tgz#6d60bc6ffaf711b6afd60e426d077988014e6554"
+ integrity sha1-bWC8b/r3Ebav1g5CbQd5iAFOZVQ=
dependencies:
traverse ">=0.2.4"
he@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+ integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
helmet-crossdomain@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz#707e2df930f13ad61f76ed08e1bb51ab2b2e85fa"
+ integrity sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==
helmet-csp@2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.7.1.tgz#e8e0b5186ffd4db625cfcce523758adbfadb9dca"
+ integrity sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ==
dependencies:
camelize "1.0.0"
content-security-policy-builder "2.0.0"
helmet@^3.12.1:
version "3.13.0"
resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.13.0.tgz#d6d46763538f77b437be77f06d0af42078b2c656"
+ integrity sha512-rCYnlbOBkeP6fCo4sXZNu91vIAWlbVgolwnUANtnzPANRf2kJZ2a6yjRnCqG23Tyl2/ExvJ8bDg4xUdNCIWnrw==
dependencies:
dns-prefetch-control "0.1.0"
dont-sniff-mimetype "1.0.0"
hh-mm-ss@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/hh-mm-ss/-/hh-mm-ss-1.2.0.tgz#6d0f0b8280824a634cb1d1f20e0bc7bc8b689948"
+ integrity sha512-f4I9Hz1dLpX/3mrEs7yq30+FiuO3tt5NWAqAGeBTaoeoBfB8vhcQ3BphuDc5DjZb/K809agqrAaFlP0jhEU/8w==
dependencies:
zero-fill "^2.2.3"
hide-powered-by@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.0.0.tgz#4a85ad65881f62857fc70af7174a1184dccce32b"
+ integrity sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=
highlight.js@^9.1.0:
version "9.12.0"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e"
+ integrity sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=
hooker@^0.2.3, hooker@~0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959"
+ integrity sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=
hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
+ integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
hpkp@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672"
+ integrity sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=
hsts@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.1.0.tgz#cbd6c918a2385fee1dd5680bfb2b3a194c0121cc"
+ integrity sha512-zXhh/DqgrTXJ7erTN6Fh5k/xjMhDGXCqdYN3wvxUvGUQvnxcFfUd8E+6vLg/nk3ss1TYMb+DhRl25fYABioTvA==
htmlparser2@3.8.x, htmlparser2@~3.8.1:
version "3.8.3"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
+ integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg=
dependencies:
domelementtype "1"
domhandler "2.3"
htmlparser2@~3.5.0:
version "3.5.1"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.5.1.tgz#6f42f7657dd19c13f7d65de9118417394a0be6d0"
+ integrity sha1-b0L3ZX3RnBP31l3pEYQXOUoL5tA=
dependencies:
domelementtype "1"
domhandler "2.2"
http-basic@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-2.5.1.tgz#8ce447bdb5b6c577f8a63e3fa78056ec4bb4dbfb"
+ integrity sha1-jORHvbW2xXf4pj4/p4BW7Eu02/s=
dependencies:
caseless "~0.11.0"
concat-stream "^1.4.6"
http-cache-semantics@^3.8.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
+ integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==
http-errors@1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
+ integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=
dependencies:
depd "1.1.1"
inherits "2.0.3"
http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
version "1.6.3"
resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
dependencies:
depd "~1.1.2"
inherits "2.0.3"
http-errors@~1.3.1:
version "1.3.1"
resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942"
+ integrity sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=
dependencies:
inherits "~2.0.1"
statuses "1"
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"
+ integrity sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=
http-proxy-agent@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
+ integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
dependencies:
agent-base "4"
debug "3.1.0"
http-response-object@^1.0.0, http-response-object@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-1.1.0.tgz#a7c4e75aae82f3bb4904e4f43f615673b4d518c3"
+ integrity sha1-p8TnWq6C87tJBOT0P2FWc7TVGMM=
http-signature@^1.2.0, http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
dependencies:
assert-plus "^1.0.0"
jsprim "^1.2.2"
http2@^3.3.4:
version "3.3.7"
resolved "https://registry.yarnpkg.com/http2/-/http2-3.3.7.tgz#78396eb1e0bcd1db1f4b138d997c682e23414fbc"
+ integrity sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ==
https-proxy-agent@^2.2.0, https-proxy-agent@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
+ integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
dependencies:
agent-base "^4.1.0"
debug "^3.1.0"
humanize-ms@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
+ integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=
dependencies:
ms "^2.0.0"
husky@^1.0.0-rc.4:
version "1.0.0-rc.14"
resolved "https://registry.yarnpkg.com/husky/-/husky-1.0.0-rc.14.tgz#e1380575fe4cf17e1ca98791395c1baafa8064c7"
+ integrity sha512-lxdl0+FrKhRXvhOW978oCHCiaXQAtwoR0hdaPY1CwKd+dgbtktepEvk/3DXwQ7L1YriuG/9HDc4AHlzQ0T6cNw==
dependencies:
cosmiconfig "^5.0.6"
execa "^0.9.0"
i@0.3.x:
version "0.3.6"
resolved "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz#d96c92732076f072711b6b10fd7d4f65ad8ee23d"
+ integrity sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=
iconv-lite@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+ integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
iconv-lite@0.4.23:
version "0.4.23"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
+ integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
iconv-lite@^0.4.4, iconv-lite@~0.4.13:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
ienoopen@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.0.0.tgz#346a428f474aac8f50cf3784ea2d0f16f62bda6b"
+ integrity sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=
iferr@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+ integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
iferr@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz#e9fde49a9da06dc4a4194c6c9ed6d08305037a6d"
+ integrity sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg==
ignore-by-default@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
+ integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk=
ignore-walk@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
+ integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
dependencies:
minimatch "^3.0.4"
ignore@^3.1.2:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+ integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
immediate-chunk-store@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/immediate-chunk-store/-/immediate-chunk-store-2.0.0.tgz#f313fd0cc71396d8911ad031179e1cccfda3da18"
+ integrity sha512-5s6NiCGbtWc+OQA60jrre54w12U7tynIyUNjO5LJjNA5lWwvCv6640roq8Wk/wIuaqnd4Pgtp453OyJ7hbONkQ==
import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
+ integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
in-publish@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
+ integrity sha1-4g/146KvwmkDILbcVSaCqcf631E=
indent-string@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
dependencies:
repeating "^2.0.0"
indent-string@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+ integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+ integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
inflection@1.12.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416"
+ integrity sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=
inflight@^1.0.4, inflight@~1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
inherits@=2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+ integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+ integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
init-package-json@^1.10.3:
version "1.10.3"
resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe"
+ integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==
dependencies:
glob "^7.1.1"
npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0"
inquirer@^0.12.0:
version "0.12.0"
resolved "http://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
+ integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=
dependencies:
ansi-escapes "^1.1.0"
ansi-regex "^2.0.0"
invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
invert-kv@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
+ integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
ioredis@^3.1.4:
version "3.2.2"
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-3.2.2.tgz#b7d5ff3afd77bb9718bb2821329b894b9a44c00b"
+ integrity sha512-g+ShTQYLsCcOUkNOK6CCEZbj3aRDVPw3WOwXk+LxlUKvuS9ujEqP2MppBHyRVYrNNFW/vcPaTBUZ2ctGNSiOCA==
dependencies:
bluebird "^3.3.4"
cluster-key-slot "^1.0.6"
ip-anonymize@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/ip-anonymize/-/ip-anonymize-0.0.6.tgz#d2c513e448e874e8cc380d03404691b94b018e68"
+ integrity sha1-0sUT5EjodOjMOA0DQEaRuUsBjmg=
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
+ integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
ip-set@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ip-set/-/ip-set-1.0.1.tgz#633b66d0bd6c8d0de968d053263c9120d3b6727e"
+ integrity sha1-Yztm0L1sjQ3paNBTJjyRINO2cn4=
dependencies:
ip "^1.1.3"
ip@^1.0.1, ip@^1.1.3, ip@^1.1.4, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
ipaddr.js@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.0.5.tgz#5fa78cf301b825c78abc3042d812723049ea23c7"
+ integrity sha1-X6eM8wG4JceKvDBC2BJyMEnqI8c=
ipaddr.js@1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
+ integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4=
ipaddr.js@1.8.1, "ipaddr.js@>= 0.1.5", ipaddr.js@^1.0.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427"
+ integrity sha1-+kt5+kf9Pe9eOxWYJRYcClGclCc=
ipv6-normalize@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ipv6-normalize/-/ipv6-normalize-1.0.1.tgz#1b3258290d365fa83239e89907dde4592e7620a8"
+ integrity sha1-GzJYKQ02X6gyOeiZB93kWS52IKg=
is-accessor-descriptor@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
dependencies:
kind-of "^3.0.2"
is-accessor-descriptor@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
dependencies:
kind-of "^6.0.0"
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-arrayish@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
is-ascii@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-ascii/-/is-ascii-1.0.0.tgz#f02ad0259a0921cd199ff21ce1b09e0f6b4e3929"
+ integrity sha1-8CrQJZoJIc0Zn/Ic4bCeD2tOOSk=
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"
+ integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
dependencies:
binary-extensions "^1.0.0"
is-bluebird@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz#096439060f4aa411abee19143a84d6a55346d6e2"
+ integrity sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI=
is-buffer@^1.1.5, is-buffer@~1.1.1:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
is-buffer@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
+ integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
is-builtin-module@^1.0.0:
version "1.0.0"
resolved "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
dependencies:
builtin-modules "^1.0.0"
is-ci@^1.0.10, is-ci@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
+ integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
dependencies:
ci-info "^1.5.0"
is-cidr@^2.0.5, is-cidr@^2.0.6:
version "2.0.7"
resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-2.0.7.tgz#0fd4b863c26b2eb2d157ed21060c4f3f8dd356ce"
+ integrity sha512-YfOm5liUO1RoYfFh+lhiGNYtbLzem7IXzFqvfjXh+zLCEuAiznTBlQ2QcMWxsgYeOFmjzljOxJfmZID4/cRBAQ==
dependencies:
cidr-regex "^2.0.10"
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"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
dependencies:
kind-of "^3.0.2"
is-data-descriptor@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
dependencies:
kind-of "^6.0.0"
is-descriptor@^0.1.0:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
dependencies:
is-accessor-descriptor "^0.1.6"
is-data-descriptor "^0.1.4"
is-descriptor@^1.0.0, is-descriptor@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
dependencies:
is-accessor-descriptor "^1.0.0"
is-data-descriptor "^1.0.0"
is-directory@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
dependencies:
is-plain-object "^2.0.4"
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
is-file@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-file/-/is-file-1.0.0.tgz#28a44cfbd9d3db193045f22b65fce8edf9620596"
+ integrity sha1-KKRM+9nT2xkwRfIrZfzo7fliBZY=
is-finite@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
dependencies:
number-is-nan "^1.0.0"
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
dependencies:
number-is-nan "^1.0.0"
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
is-generator@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz#c14c21057ed36e328db80347966c693f886389f3"
+ integrity sha1-wUwhBX7TbjKNuANHlmxpP4hjifM=
is-glob@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
dependencies:
is-extglob "^2.1.0"
is-glob@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
+ integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
dependencies:
is-extglob "^2.1.1"
is-installed-globally@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
+ integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=
dependencies:
global-dirs "^0.1.0"
is-path-inside "^1.0.0"
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"
+ integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==
is-my-json-valid@^2.10.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz#8fd6e40363cd06b963fa877d444bfb5eddc62175"
+ integrity sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==
dependencies:
generate-function "^2.0.0"
generate-object-property "^1.1.0"
is-nan@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz#9faf65b6fb6db24b7f5c0628475ea71f988401e2"
+ integrity sha1-n69ltvttskt/XAYoR16nH5iEAeI=
dependencies:
define-properties "^1.1.1"
is-npm@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
+ integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ=
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
dependencies:
kind-of "^3.0.2"
is-obj@^1.0.0, is-obj@^1.0.1:
version "1.0.1"
resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+ integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
is-observable@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
+ integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
dependencies:
symbol-observable "^1.1.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"
+ integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
is-path-in-cwd@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
+ integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
dependencies:
is-path-inside "^1.0.0"
is-path-inside@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+ integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
dependencies:
path-is-inside "^1.0.1"
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"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
is-promise@^2.1, is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+ integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
is-property@^1.0.0, is-property@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+ integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=
is-redirect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
+ integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
is-regexp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
+ integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
is-resolvable@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+ integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
is-retry-allowed@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
+ integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=
is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+ integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
isarray@0.0.1, isarray@~0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
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"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
iso-639-3@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz#83722daf55490a707c318ae18a33ba3bab06c843"
+ integrity sha512-l3BAnxNpyRIZA4mEzI2md/YVrxQ3hI8hiQe7TFyQknjyOh8vCzobZuAXTFHELco0FBkYRx4FkAlIqkKrHhnzgw==
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
dependencies:
isarray "1.0.0"
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
isstream@0.1.x, isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
jest-get-type@^22.1.0:
version "22.4.3"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
+ integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==
jest-validate@^23.5.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474"
+ integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==
dependencies:
chalk "^2.0.1"
jest-get-type "^22.1.0"
jquery@>=3.0.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
+ integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==
js-base64@^2.1.8:
version "2.4.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03"
+ integrity sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==
js-beautify@~1.5.4:
version "1.5.10"
resolved "http://registry.npmjs.org/js-beautify/-/js-beautify-1.5.10.tgz#4d95371702699344a516ca26bf59f0a27bb75719"
+ integrity sha1-TZU3FwJpk0SlFsomv1nwonu3Vxk=
dependencies:
config-chain "~1.1.5"
mkdirp "~0.5.0"
js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+ integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4, js-yaml@^3.7.0, js-yaml@^3.8.2, js-yaml@^3.8.3, js-yaml@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
+ integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
js-yaml@~3.5.2:
version "3.5.5"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.5.5.tgz#0377c38017cabc7322b0d1fbcd25a491641f2fbe"
+ integrity sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=
dependencies:
argparse "^1.0.2"
esprima "^2.6.0"
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
jshint@~2.9.4:
version "2.9.6"
resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.6.tgz#19b34e578095a34928fe006135a6cb70137b9c08"
+ integrity sha512-KO9SIAKTlJQOM4lE64GQUtGBRpTOuvbrRrSZw3AhUxMNG266nX9hK2cKA4SBhXOj0irJGyNyGSLT62HGOVDEOA==
dependencies:
cli "~1.0.0"
console-browserify "1.1.x"
json-parse-better-errors@^1.0.0, 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"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
json-refs@^2.1.6:
version "2.1.7"
resolved "https://registry.yarnpkg.com/json-refs/-/json-refs-2.1.7.tgz#b9eb01fe29f5ea3e92878f15aea10ad38b5acf89"
+ integrity sha1-uesB/in16j6Sh48VrqEK04taz4k=
dependencies:
commander "^2.9.0"
graphlib "^2.1.1"
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"
+ integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+ integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
dependencies:
jsonify "~0.0.0"
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"
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
json3@3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
+ integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
json5@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
dependencies:
minimist "^1.2.0"
jsonfile@^2.1.0:
version "2.4.0"
resolved "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
+ integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
optionalDependencies:
graceful-fs "^4.1.6"
jsonfile@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
+ integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=
optionalDependencies:
graceful-fs "^4.1.6"
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
optionalDependencies:
graceful-fs "^4.1.6"
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
"jsonld-signatures@https://github.com/Chocobozzz/jsonld-signatures#rsa2017":
version "1.2.2-2"
jsonld@^0.5.12:
version "0.5.21"
resolved "http://registry.npmjs.org/jsonld/-/jsonld-0.5.21.tgz#4d5b78d717eb92bcd1ac9d88e34efad95370c0bf"
+ integrity sha512-1dQhaw1Eb3p7Cz5ECE2DNPwLvTmK+f6D45hACBdonJaFKP1bN9zlKLZWbPZQeZtduAc/LNv10J4ML0IiTBVahw==
dependencies:
rdf-canonize "^0.2.1"
request "^2.83.0"
jsonld@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/jsonld/-/jsonld-1.1.0.tgz#afcb168c44557a7bddead4d4513c3cbcae3bc5b9"
+ integrity sha512-tx87xNtu2hGabr7mhSyXTI8q+Fz3pl+50B/JislFPwAz8ud0KTTQpNjU74tJIegFAHve9UFYzzj4YVTIrac0Hw==
dependencies:
rdf-canonize "^0.2.1"
request "^2.83.0"
jsonparse@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
+ integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
jsonpointer.js@0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/jsonpointer.js/-/jsonpointer.js-0.4.0.tgz#002cb123f767aafdeb0196132ce5c4f9941ccaba"
+ integrity sha1-ACyxI/dnqv3rAZYTLOXE+ZQcyro=
jsonpointer@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+ integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk=
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
dependencies:
assert-plus "1.0.0"
extsprintf "1.3.0"
junk@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/junk/-/junk-2.1.0.tgz#f431b4b7f072dc500a5f10ce7f4ec71930e70134"
+ integrity sha1-9DG0t/By3FAKXxDOf07HGTDnATQ=
jwa@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6"
+ integrity sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==
dependencies:
buffer-equal-constant-time "1.0.1"
ecdsa-sig-formatter "1.0.10"
jws@^3.1.4:
version "3.1.5"
resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f"
+ integrity sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==
dependencies:
jwa "^1.1.5"
safe-buffer "^5.0.1"
k-bucket@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-4.0.1.tgz#3fc2e5693f0b7bff90d7b6b476edd6087955d542"
+ integrity sha512-YvDpmY3waI999h1zZoW1rJ04fZrgZ+5PAlVmvwDHT6YO/Q1AOhdel07xsKy9eAvJjQ9xZV1wz3rXKqEfaWvlcQ==
dependencies:
inherits "^2.0.1"
randombytes "^2.0.3"
k-bucket@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.0.0.tgz#ef7a401fcd4c37cd31dceaa6ae4440ca91055e01"
+ integrity sha512-r/q+wV/Kde62/tk+rqyttEJn6h0jR7x+incdMVSYTqK73zVxVrzJa70kJL49cIKen8XjIgUZKSvk8ktnrQbK4w==
dependencies:
randombytes "^2.0.3"
k-rpc-socket@^1.7.2:
version "1.8.0"
resolved "https://registry.yarnpkg.com/k-rpc-socket/-/k-rpc-socket-1.8.0.tgz#9a4dd6a4f3795ed847ffa156579cc389990bd1f2"
+ integrity sha512-f/9TynsO8YYjZ6JjNNtSSH7CJcIHcio1buy3zqByGxb/GX8AWLdL6FZEWTrN8V3/J7W4/E0ZTQQ+Jt2rVq7ELg==
dependencies:
bencode "^2.0.0"
buffer-equals "^1.0.4"
k-rpc@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/k-rpc/-/k-rpc-5.0.0.tgz#a72651860c96db440579e4c9f38dce8a42b481a8"
+ integrity sha512-vCH2rQdfMOS+MlUuTSuar1pS2EMrltURf9LmAR9xR6Jik0XPlMX3vEixgqMn17wKmFVCublJqSJ4hJIP7oKZ3Q==
dependencies:
buffer-equals "^1.0.3"
k-bucket "^4.0.0"
kew@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
+ integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
dependencies:
is-buffer "^1.1.5"
kind-of@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
dependencies:
is-buffer "^1.1.5"
kind-of@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
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"
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
klaw@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
+ integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
optionalDependencies:
graceful-fs "^4.1.9"
known-css-properties@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz#a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4"
+ integrity sha512-QMQcnKAiQccfQTqtBh/qwquGZ2XK/DXND1jrcN9M8gMMy99Gwla7GQjndVUsEqIaRyP6bsFRuhwRj5poafBGJQ==
kuler@1.0.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.0.tgz#904ad31c373b781695854d32be33818bf1d60250"
+ integrity sha512-oyy6pu/yWRjiVfCoJebNUKFL061sNtrs9ejKTbirIwY3oiHmENVCSkHhxDV85Dkm7JYR/czMCBeoM87WilTdSg==
dependencies:
colornames "^1.1.1"
last-one-wins@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/last-one-wins/-/last-one-wins-1.0.4.tgz#c1bfd0cbcb46790ec9156b8d1aee8fcb86cda22a"
+ integrity sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio=
latest-version@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
+ integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=
dependencies:
package-json "^4.0.0"
lazy-property@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147"
+ integrity sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
dependencies:
invert-kv "^1.0.0"
lcid@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
+ integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
dependencies:
invert-kv "^2.0.0"
leven@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+ integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
libcipm@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-2.0.2.tgz#4f38c2b37acf2ec156936cef1cbf74636568fc7b"
+ integrity sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==
dependencies:
bin-links "^1.1.2"
bluebird "^3.5.1"
libnpmhook@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-4.0.1.tgz#63641654de772cbeb96a88527a7fd5456ec3c2d7"
+ integrity sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==
dependencies:
figgy-pudding "^3.1.0"
npm-registry-fetch "^3.0.0"
libnpx@^10.2.0:
version "10.2.0"
resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102"
+ integrity sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==
dependencies:
dotenv "^5.0.1"
npm-package-arg "^6.0.0"
libxmljs@0.19.3:
version "0.19.3"
resolved "https://registry.yarnpkg.com/libxmljs/-/libxmljs-0.19.3.tgz#3f7232a4123952b338f5334e55ea1396fa0d9cd2"
+ integrity sha512-0fpvneF7qpOe6PLbwFXZx+deZ/U2nethmnVLUZ9aH0Pz9Nfha9S+rlIGIS4ixtmUjwtA0VSE4LvIjVCEvboPpw==
dependencies:
bindings "~1.3.0"
nan "~2.10.0"
lint-staged@^7.1.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.3.0.tgz#90ff33e5ca61ed3dbac35b6f6502dbefdc0db58d"
+ integrity sha512-AXk40M9DAiPi7f4tdJggwuKIViUplYtVj1os1MVEteW7qOkU50EOehayCfO9TsoGK24o/EsWb41yrEgfJDDjCw==
dependencies:
chalk "^2.3.1"
commander "^2.14.1"
listr-silent-renderer@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
+ integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
listr-update-renderer@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7"
+ integrity sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=
dependencies:
chalk "^1.1.3"
cli-truncate "^0.2.1"
listr-verbose-renderer@^0.4.0:
version "0.4.1"
resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35"
+ integrity sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=
dependencies:
chalk "^1.1.3"
cli-cursor "^1.0.2"
listr@^0.14.1:
version "0.14.2"
resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.2.tgz#cbe44b021100a15376addfc2d79349ee430bfe14"
+ integrity sha512-vmaNJ1KlGuGWShHI35X/F8r9xxS0VTHh9GejVXwSN20fG5xpq3Jh4bJbnumoT6q5EDM/8/YP1z3YMtQbFmhuXw==
dependencies:
"@samverschueren/stream-to-observable" "^0.3.0"
is-observable "^1.1.0"
livereload-js@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.3.0.tgz#c3ab22e8aaf5bf3505d80d098cbad67726548c9a"
+ integrity sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==
load-ip-set@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/load-ip-set/-/load-ip-set-2.1.0.tgz#2d50b737cae41de4e413d213991d4083a3e1784b"
+ integrity sha512-taz7U6B+F7Zq90dfIKwqsB1CrFKelSEmMGC68OUqem8Cgd1QZygQBYb2Fk9i6muBSfH4xwF/Pjt4KKlAdOyWZw==
dependencies:
ip-set "^1.0.0"
netmask "^1.0.6"
load-json-file@^1.0.0:
version "1.1.0"
resolved "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
dependencies:
p-locate "^2.0.0"
path-exists "^3.0.0"
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
dependencies:
p-locate "^3.0.0"
path-exists "^3.0.0"
lock-verify@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.0.2.tgz#148e4f85974915c9e3c34d694b7de9ecb18ee7a8"
+ integrity sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==
dependencies:
npm-package-arg "^5.1.2 || 6"
semver "^5.4.1"
lockfile@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609"
+ integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==
dependencies:
signal-exit "^3.0.2"
lodash._arraycopy@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1"
+ integrity sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE=
lodash._arrayeach@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e"
+ integrity sha1-urFWsqkNPxu9XGU0AzSeXlkz754=
lodash._basecopy@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
+ integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=
lodash._basefor@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2"
+ integrity sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=
lodash._baseuniq@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
+ integrity sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=
dependencies:
lodash._createset "~4.0.0"
lodash._root "~3.0.0"
lodash._basevalues@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
+ integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=
lodash._bindcallback@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
+ integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
lodash._createassigner@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11"
+ integrity sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=
dependencies:
lodash._bindcallback "^3.0.0"
lodash._isiterateecall "^3.0.0"
lodash._createset@~4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
+ integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=
lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+ integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
lodash._isiterateecall@^3.0.0:
version "3.0.9"
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
+ integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=
lodash._root@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
+ integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=
lodash.assign@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
+ integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
lodash.bind@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
+ integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=
lodash.capitalize@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9"
+ integrity sha1-+CbJtOKoUR2E46yinbBeGk87cqk=
lodash.clone@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6"
+ integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=
lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+ integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
lodash.defaults@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
+ integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
lodash.difference@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
+ integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=
lodash.flatten@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
+ integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
lodash.foreach@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+ integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
lodash.isarguments@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
+ integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
lodash.isarray@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
+ integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
lodash.isempty@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
+ integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=
lodash.isplainobject@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5"
+ integrity sha1-moI4rhayAEMpYM1zRlEtASP79MU=
dependencies:
lodash._basefor "^3.0.0"
lodash.isarguments "^3.0.0"
lodash.istypedarray@^3.0.0:
version "3.0.6"
resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
+ integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=
lodash.kebabcase@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
+ integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY=
lodash.keys@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
+ integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
dependencies:
lodash._getnative "^3.0.0"
lodash.isarguments "^3.0.0"
lodash.keys@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205"
+ integrity sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU=
lodash.keysin@^3.0.0:
version "3.0.8"
resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f"
+ integrity sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=
dependencies:
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
lodash.merge@^3.0.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994"
+ integrity sha1-DZDZPtY3sYeEN7s+IWASYNev6ZQ=
dependencies:
lodash._arraycopy "^3.0.0"
lodash._arrayeach "^3.0.0"
lodash.mergewith@^4.6.0:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
+ integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==
lodash.noop@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c"
+ integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=
lodash.partial@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/lodash.partial/-/lodash.partial-4.2.1.tgz#49f3d8cfdaa3bff8b3a91d127e923245418961d4"
+ integrity sha1-SfPYz9qjv/izqR0SfpIyRUGJYdQ=
lodash.pick@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
+ integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
lodash.restparam@^3.0.0:
version "3.6.1"
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
+ integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
lodash.sample@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz#5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d"
+ integrity sha1-XkKRsMdT+hq+sKq4+ynfG2bwf20=
lodash.shuffle@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b"
+ integrity sha1-FFtQU8+HX29cKjP0i26ZSMbse0s=
lodash.toarray@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-3.0.2.tgz#2b204f0fa4f51c285c6f00c81d1cea5a23041179"
+ integrity sha1-KyBPD6T1HChcbwDIHRzqWiMEEXk=
dependencies:
lodash._arraycopy "^3.0.0"
lodash._basevalues "^3.0.0"
lodash.toplainobject@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d"
+ integrity sha1-KHkK2ULSk9eKpmOgfs9/UsoEGY0=
dependencies:
lodash._basecopy "^3.0.0"
lodash.keysin "^3.0.0"
lodash.union@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
+ integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
lodash.uniq@~4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+ integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash.values@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347"
+ integrity sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=
lodash.without@~4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
+ integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=
lodash@4.17.4:
version "4.17.4"
resolved "http://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+ integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=
lodash@=3.10.1, lodash@^3.2.0:
version "3.10.1"
resolved "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
+ integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
lodash@^4.0.0, lodash@^4.11.1, lodash@^4.17.1, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.2, lodash@~4.17.10, lodash@~4.17.5:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+ integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
lodash@~2.4.1:
version "2.4.2"
resolved "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e"
+ integrity sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
+ integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
dependencies:
chalk "^1.0.0"
log-symbols@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+ integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
dependencies:
chalk "^2.0.1"
log-update@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1"
+ integrity sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=
dependencies:
ansi-escapes "^1.0.0"
cli-cursor "^1.0.2"
logform@^1.9.1:
version "1.10.0"
resolved "https://registry.yarnpkg.com/logform/-/logform-1.10.0.tgz#c9d5598714c92b546e23f4e78147c40f1e02012e"
+ integrity sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==
dependencies:
colors "^1.2.1"
fast-safe-stringify "^2.0.4"
loud-rejection@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
+ integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
dependencies:
currently-unhandled "^0.4.1"
signal-exit "^3.0.0"
lowercase-keys@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
+ integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
lru-cache@4.1.x, lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
+ integrity sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==
dependencies:
pseudomap "^1.0.2"
yallist "^2.1.2"
lru-queue@0.1:
version "0.1.0"
resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
+ integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=
dependencies:
es5-ext "~0.10.2"
lru@^3.0.0, lru@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz#ea7fb8546d83733396a13091d76cfeb4c06837d5"
+ integrity sha1-6n+4VG2DczOWoTCR12z+tMBoN9U=
dependencies:
inherits "^2.0.1"
magnet-uri@^5.1.3, magnet-uri@^5.1.4:
version "5.2.4"
resolved "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.2.4.tgz#7afe5b736af04445aff744c93a890a3710077688"
+ integrity sha512-VYaJMxhr8B9BrCiNINUsuhaEe40YnG+AQBwcqUKO66lSVaI9I3A1iH/6EmEwRI8OYUg5Gt+4lLE7achg676lrg==
dependencies:
thirty-two "^1.0.1"
uniq "^1.0.1"
maildev@^1.0.0-rc3:
version "1.0.0-rc3"
resolved "https://registry.yarnpkg.com/maildev/-/maildev-1.0.0-rc3.tgz#89429d47b07633e3269a74e484991eecdf3a3857"
+ integrity sha512-5Ve6V3GlS8QOAwUtwsWzR1S0P7Kzw+p5syfgpGyUZXGOuGbfV+qDpZ9grg/FJqm49iqWeWjvYj1Va8XMNcLrxg==
dependencies:
async "1.5.1"
commander "2.9.0"
mailparser@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-0.6.2.tgz#03c486039bdf4df6cd3b6adcaaac4107dfdbc068"
+ integrity sha1-A8SGA5vfTfbNO2rcqqxBB9/bwGg=
dependencies:
encoding "^0.1.12"
mime "^1.3.4"
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+ integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
dependencies:
pify "^3.0.0"
make-error@^1.1.1:
version "1.3.5"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
+ integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
"make-fetch-happen@^2.5.0 || 3 || 4", make-fetch-happen@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083"
+ integrity sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==
dependencies:
agentkeepalive "^3.4.1"
cacache "^11.0.1"
make-fetch-happen@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz#7b661d2372fc4710ab5cc8e1fa3c290eea69a961"
+ integrity sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==
dependencies:
agentkeepalive "^3.4.1"
cacache "^10.0.4"
map-age-cleaner@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74"
+ integrity sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==
dependencies:
p-defer "^1.0.0"
map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+ integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
map-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8"
+ integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=
map-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
dependencies:
object-visit "^1.0.0"
-marked@^0.3.5:
+marked-man@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/marked-man/-/marked-man-0.2.1.tgz#f259271481de3b507263489f5221b7c5acfd2383"
+ integrity sha1-8lknFIHeO1ByY0ifUiG3xaz9I4M=
+ dependencies:
+ marked "^0.3.2"
+
+marked@^0.3.2, marked@^0.3.5:
version "0.3.19"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790"
+ integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==
maxmin@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-2.1.0.tgz#4d3b220903d95eee7eb7ac7fa864e72dc09a3166"
+ integrity sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=
dependencies:
chalk "^1.0.0"
figures "^1.0.1"
md5@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
+ integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
dependencies:
charenc "~0.0.1"
crypt "~0.0.1"
meant@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d"
+ integrity sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
mediasource@^2.0.0, mediasource@^2.1.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/mediasource/-/mediasource-2.2.2.tgz#2fe826f14e51da97fa4bf87be7b808a0b11d3a4c"
+ integrity sha512-yIyAJMcu1mudTkxZ0jDAKnZJJba4eWPCxxtZRMpoaA4/AI7m7nqbRjmdxmi+x3hKTohb5vC9Yd3IBF/SUzp1vQ==
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
mem@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
dependencies:
mimic-fn "^1.0.0"
mem@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf"
+ integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==
dependencies:
map-age-cleaner "^0.1.1"
mimic-fn "^1.0.0"
memoizee@^0.4.14:
version "0.4.14"
resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57"
+ integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==
dependencies:
d "1"
es5-ext "^0.10.45"
memory-chunk-store@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/memory-chunk-store/-/memory-chunk-store-1.3.0.tgz#ae99e7e3b58b52db43d49d94722930d39459d0c4"
+ integrity sha512-6LsOpHKKhxYrLhHmOJdBCUtSO7op5rUs1pag0fhjHo0QiXRyna0bwYf4EmQuL7InUeF2J7dUMPr6VMogRyf9NA==
meow@^3.3.0, meow@^3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+ integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
dependencies:
camelcase-keys "^2.0.0"
decamelize "^1.1.2"
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
merge@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
+ integrity sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=
methods@^1.1.1, methods@^1.1.2, methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
mime-db@~1.36.0:
version "1.36.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397"
+ integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==
mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19, mime-types@~2.1.6:
version "2.1.20"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19"
+ integrity sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==
dependencies:
mime-db "~1.36.0"
mime@1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
+ integrity sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=
mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
+ integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
mime@^1.3.4, mime@^1.4.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
mime@^2.2.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369"
+ integrity sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==
mimelib@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/mimelib/-/mimelib-0.3.1.tgz#787add2415d827acb3af6ec4bca1ea9596418853"
+ integrity sha1-eHrdJBXYJ6yzr27EvKHqlZZBiFM=
dependencies:
addressparser "~1.0.1"
encoding "~0.1.12"
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
mimic-response@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+ integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
minimalistic-assert@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
"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"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
minimatch@^2.0.1:
version "2.0.10"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
+ integrity sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=
dependencies:
brace-expansion "^1.0.0"
minimist@0.0.8:
version "0.0.8"
resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@1.1.x:
version "1.1.3"
resolved "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8"
+ integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=
minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
minimist@~0.0.1:
version "0.0.10"
resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minipass@^2.2.1, minipass@^2.3.3:
version "2.3.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957"
+ integrity sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==
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"
+ integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==
dependencies:
minipass "^2.2.1"
mississippi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
+ integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
dependencies:
concat-stream "^1.5.0"
duplexify "^3.4.2"
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
+ integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
dependencies:
concat-stream "^1.5.0"
duplexify "^3.4.2"
mixin-deep@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+ integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
mkdirp@0.5.1, mkdirp@0.x.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 "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
mkdirp@~0.3.5:
version "0.3.5"
resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7"
+ integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=
mocha@^5.0.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6"
+ integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==
dependencies:
browser-stdout "1.3.1"
commander "2.15.1"
moment-timezone@^0.5.0, moment-timezone@^0.5.14:
version "0.5.21"
resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.21.tgz#3cba247d84492174dbf71de2a9848fa13207b845"
+ integrity sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==
dependencies:
moment ">= 2.9.0"
"moment@>= 2.9.0", moment@^2.20.0:
version "2.22.2"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
+ integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=
morgan@^1.5.3, morgan@^1.6.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
+ integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==
dependencies:
basic-auth "~2.0.0"
debug "2.6.9"
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
dependencies:
aproba "^1.1.1"
copy-concurrently "^1.0.0"
mp4-box-encoding@^1.1.0, mp4-box-encoding@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/mp4-box-encoding/-/mp4-box-encoding-1.3.0.tgz#2a6f750947ff68c3a498fd76cd6424c53d995d48"
+ integrity sha512-U4pMLpjT/UzB8d36dxj6Mf1bG9xypEvgbuRIa1fztRXNKKTCAtRxsnFZhNOd7YDFOKtjBgssYGvo4H/Q3ZY1MA==
dependencies:
buffer-alloc "^1.2.0"
buffer-from "^1.1.0"
mp4-stream@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/mp4-stream/-/mp4-stream-2.0.3.tgz#30acee07709d323f8dcd87a07b3ce9c3c4bfb364"
+ integrity sha512-5NzgI0+bGakoZEwnIYINXqB3mnewkt3Y7jcvkXsTubnCNUSdM8cpP0Vemxf6FLg0qUN8fydTgNMVAc3QU8B92g==
dependencies:
buffer-alloc "^1.1.0"
inherits "^2.0.1"
ms@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
+ integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=
ms@0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
+ integrity sha1-riXPJRKziFodldfwN4aNhDESR2U=
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
ms@^2.0.0, ms@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
multer@^1.1.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/multer/-/multer-1.3.1.tgz#c3fb3b35f50c7eefe873532f90d3dde02ce6e040"
+ integrity sha512-JHdEoxkA/5NgZRo91RNn4UT+HdcJV9XUo01DTkKC7vo1erNIngtuaw9Y0WI8RdTlyi+wMIbunflhghzVLuGJyw==
dependencies:
append-field "^0.1.0"
busboy "^0.2.11"
multistream@^2.0.2, multistream@^2.0.5:
version "2.1.1"
resolved "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz#629d3a29bd76623489980d04519a2c365948148c"
+ integrity sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
mute-stream@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
+ integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=
mute-stream@~0.0.4:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
nan@2.10.0, nan@~2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
+ integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==
nan@^2.0.7, nan@^2.10.0, nan@^2.11.0, nan@^2.9.2:
version "2.11.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099"
+ integrity sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
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"
+ integrity sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=
ncp@1.0.x:
version "1.0.1"
resolved "http://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246"
+ integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=
needle@^2.2.0, needle@^2.2.1:
version "2.2.3"
resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.3.tgz#c1b04da378cd634d8befe2de965dc2cfb0fd65ca"
+ integrity sha512-GPL22d/U9cai87FcCPO6e+MT3vyHS2j+zwotakDc7kE2DtUAqFKMXLJCTtRp+5S75vXIwQPvIxkvlctxf9q4gQ==
dependencies:
debug "^2.1.2"
iconv-lite "^0.4.4"
negotiator@0.5.3:
version "0.5.3"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz#269d5c476810ec92edbe7b6c2f28316384f9a7e8"
+ integrity sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=
negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+ integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
netmask@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
+ integrity sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=
netrc-parser@^3.1.6:
version "3.1.6"
resolved "https://registry.yarnpkg.com/netrc-parser/-/netrc-parser-3.1.6.tgz#7243c9ec850b8e805b9bdc7eae7b1450d4a96e72"
+ integrity sha512-lY+fmkqSwntAAjfP63jB4z5p5WbuZwyMCD3pInT7dpHU/Gc6Vv90SAC6A0aNiqaRGHiuZFBtiwu+pu8W/Eyotw==
dependencies:
debug "^3.1.0"
execa "^0.10.0"
next-event@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-event/-/next-event-1.0.0.tgz#e7778acde2e55802e0ad1879c39cf6f75eda61d8"
+ integrity sha1-53eKzeLlWALgrRh5w5z2917aYdg=
next-tick@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
+ integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
nocache@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.0.0.tgz#202b48021a0c4cbde2df80de15a17443c8b43980"
+ integrity sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=
node-abi@^2.2.0:
version "2.4.4"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.4.tgz#410d8968809fe616dc078a181c44a370912f12fd"
+ integrity sha512-DQ9Mo2mf/XectC+s6+grPPRQ1Z9gI3ZbrGv6nyXRkjwT3HrE0xvtvrfnH7YHYBLgC/KLadg+h3XHnhZw1sv88A==
dependencies:
semver "^5.4.1"
node-fetch-npm@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7"
+ integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==
dependencies:
encoding "^0.1.11"
json-parse-better-errors "^1.0.0"
node-forge@^0.7.1:
version "0.7.6"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac"
+ integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==
node-gyp-build@~3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.4.0.tgz#f8f62507e65f152488b28aac25d04b9d79748cf7"
+ integrity sha512-YoviGBJYGrPdLOKDIQB0sKxuKy/EEsxzooNkOZak4vSTKT/qH0Pa6dj3t1MJjEQGsefih61IyHDmO1WW7xOFfw==
node-gyp@^3.8.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
+ integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
dependencies:
fstream "^1.0.0"
glob "^7.0.3"
node-pre-gyp@0.9.1:
version "0.9.1"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0"
+ integrity sha1-8RwHUW3ZL4cZnbx+GDjqt81WyeA=
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
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"
+ integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
node-pre-gyp@~0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054"
+ integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
node-sass@^4.9.0:
version "4.9.3"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224"
+ integrity sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==
dependencies:
async-foreach "^0.1.3"
chalk "^1.1.1"
nodemailer-fetch@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.3.0.tgz#9f37f6a5b80c1cb5d697ca2bfbde41a6582a50b0"
+ integrity sha1-nzf2pbgMHLXWl8or+95BplgqULA=
nodemailer-fetch@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4"
+ integrity sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=
nodemailer-shared@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.0.4.tgz#8b5c5c35bfb29a47dda7d38303f3a4fb47ba38ae"
+ integrity sha1-i1xcNb+ymkfdp9ODA/Ok+0e6OK4=
dependencies:
nodemailer-fetch "1.3.0"
nodemailer-shared@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0"
+ integrity sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=
dependencies:
nodemailer-fetch "1.6.0"
nodemailer@^4.4.2:
version "4.6.8"
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-4.6.8.tgz#f82fb407828bf2e76d92acc34b823d83e774f89c"
+ integrity sha512-A3s7EM/426OBIZbLHXq2KkgvmKbn2Xga4m4G+ZUA4IaZvG8PcZXrFh+2E4VaS2o+emhuUVRnzKN2YmpkXQ9qwA==
nodemon@^1.11.0:
version "1.18.4"
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.4.tgz#873f65fdb53220eb166180cf106b1354ac5d714d"
+ integrity sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==
dependencies:
chokidar "^2.0.2"
debug "^3.1.0"
noop-logger@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
+ integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
"nopt@2 || 3", nopt@~3.0.1, nopt@~3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
dependencies:
abbrev "1"
nopt@^4.0.1, nopt@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
+ integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
dependencies:
abbrev "1"
osenv "^0.1.4"
nopt@~1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
+ integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
dependencies:
abbrev "1"
normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, "normalize-package-data@~1.0.1 || ^2.0.0", normalize-package-data@~2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
dependencies:
hosted-git-info "^2.1.4"
is-builtin-module "^1.0.0"
normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
dependencies:
remove-trailing-separator "^1.0.1"
npm-audit-report@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.1.tgz#e79ea1fcb5ffaf3031102b389d5222c2b0459632"
+ integrity sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==
dependencies:
cli-table3 "^0.5.0"
console-control-strings "^1.1.0"
npm-bundled@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
+ integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==
npm-cache-filename@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11"
+ integrity sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=
npm-install-checks@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7"
+ integrity sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=
dependencies:
semver "^2.3.0 || 3.x || 4 || 5"
npm-lifecycle@^2.0.3, npm-lifecycle@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz#1eda2eedb82db929e3a0c50341ab0aad140ed569"
+ integrity sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==
dependencies:
byline "^5.0.0"
graceful-fs "^4.1.11"
npm-logical-tree@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88"
+ integrity sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==
"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", "npm-package-arg@^5.1.2 || 6", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1"
+ integrity sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==
dependencies:
hosted-git-info "^2.6.0"
osenv "^0.1.5"
npm-packlist@^1.1.10, npm-packlist@^1.1.11, npm-packlist@^1.1.6:
version "1.1.11"
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de"
+ integrity sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==
dependencies:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
npm-path@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64"
+ integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==
dependencies:
which "^1.2.10"
npm-pick-manifest@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz#dc381bdd670c35d81655e1d5a94aa3dd4d87fce5"
+ integrity sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==
dependencies:
npm-package-arg "^6.0.0"
semver "^5.4.1"
npm-profile@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-3.0.2.tgz#58d568f1b56ef769602fd0aed8c43fa0e0de0f57"
+ integrity sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==
dependencies:
aproba "^1.1.2 || 2"
make-fetch-happen "^2.5.0 || 3 || 4"
npm-registry-client@^8.6.0:
version "8.6.0"
resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4"
+ integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==
dependencies:
concat-stream "^1.5.2"
graceful-fs "^4.1.6"
npm-registry-fetch@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-1.1.1.tgz#710bc5947d9ee2c549375072dab6d5d17baf2eb2"
+ integrity sha512-ev+zxOXsgAqRsR8Rk+ErjgWOlbrXcqGdme94/VNdjDo1q8TSy10Pp8xgDv/ZmMk2jG/KvGtXUNG4GS3+l6xbDw==
dependencies:
bluebird "^3.5.1"
figgy-pudding "^3.0.0"
npm-registry-fetch@^3.0.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.8.0.tgz#aa7d9a7c92aff94f48dba0984bdef4bd131c88cc"
+ integrity sha512-hrw8UMD+Nob3Kl3h8Z/YjmKamb1gf7D1ZZch2otrIXM3uFLB5vjEY6DhMlq80z/zZet6eETLbOXcuQudCB3Zpw==
dependencies:
JSONStream "^1.3.4"
bluebird "^3.5.1"
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
dependencies:
path-key "^2.0.0"
npm-user-validate@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951"
+ integrity sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=
npm-which@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
+ integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=
dependencies:
commander "^2.9.0"
npm-path "^2.0.2"
npm@^6.4.1:
version "6.4.1"
resolved "https://registry.yarnpkg.com/npm/-/npm-6.4.1.tgz#4f39f9337b557a28faed4a771d5c8802d6b4288b"
+ integrity sha512-mXJL1NTVU136PtuopXCUQaNWuHlXCTp4McwlSW8S9/Aj8OEPAlSBgo8og7kJ01MjCDrkmqFQTvN5tTEhBMhXQg==
dependencies:
JSONStream "^1.3.4"
abbrev "~1.1.1"
"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
dependencies:
are-we-there-yet "~1.1.2"
console-control-strings "~1.1.0"
nsdeclare@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/nsdeclare/-/nsdeclare-0.1.0.tgz#10daa153642382d3cf2c01a916f4eb20a128b19f"
+ integrity sha1-ENqhU2QjgtPPLAGpFvTrIKEosZ8=
nth-check@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
+ integrity sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=
dependencies:
boolbase "~1.0.0"
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"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+ integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
oauth2-server@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/oauth2-server/-/oauth2-server-3.0.0.tgz#c46276b74c3d28634d59ee981f76b58a6459cc28"
+ integrity sha1-xGJ2t0w9KGNNWe6YH3a1imRZzCg=
dependencies:
basic-auth "1.1.0"
bluebird "3.5.0"
object-assign@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
+ integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A=
object-assign@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
+ integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=
object-assign@^4, 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"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
object-component@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
+ integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=
object-copy@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
dependencies:
copy-descriptor "^0.1.0"
define-property "^0.2.5"
object-keys@^1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
+ integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
dependencies:
isobject "^3.0.0"
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
dependencies:
isobject "^3.0.1"
on-finished@^2.3.0, on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
dependencies:
ee-first "1.1.1"
on-headers@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
+ integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=
once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0, once@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
one-time@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e"
+ integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=
onetime@^1.0.0:
version "1.1.0"
resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+ integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=
open@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
+ integrity sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=
opener@^1.5.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
+ integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==
opn@^4.0.0:
version "4.0.2"
resolved "http://registry.npmjs.org/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
+ integrity sha1-erwi5kTf9jsKltWrfyeQwPAavJU=
dependencies:
object-assign "^4.0.1"
pinkie-promise "^2.0.0"
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
optionator@^0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
dependencies:
deep-is "~0.1.3"
fast-levenshtein "~2.0.4"
options@>=0.0.5:
version "0.0.6"
resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
+ integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
os-homedir@^1.0.0, os-homedir@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+ integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
os-locale@^1.4.0:
version "1.4.0"
resolved "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
+ integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
dependencies:
lcid "^1.0.0"
os-locale@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
dependencies:
execa "^0.7.0"
lcid "^1.0.0"
os-locale@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620"
+ integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==
dependencies:
execa "^0.10.0"
lcid "^2.0.0"
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
osenv@0, osenv@^0.1.4, osenv@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+ integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
dependencies:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
+ integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
p-is-promise@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
+ integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
dependencies:
p-try "^1.0.0"
p-limit@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec"
+ integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==
dependencies:
p-try "^2.0.0"
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
dependencies:
p-limit "^1.1.0"
p-locate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
dependencies:
p-limit "^2.0.0"
p-map@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
+ integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
p-try@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
+ integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==
package-json-versionify@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/package-json-versionify/-/package-json-versionify-1.0.4.tgz#5860587a944873a6b7e6d26e8e51ffb22315bf17"
+ integrity sha1-WGBYepRIc6a35tJujlH/siMVvxc=
dependencies:
browserify-package-json "^1.0.0"
package-json@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
+ integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=
dependencies:
got "^6.7.1"
registry-auth-token "^3.0.1"
packet-reader@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-0.3.1.tgz#cd62e60af8d7fea8a705ec4ff990871c46871f27"
+ integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc=
pacote@^8.1.6:
version "8.1.6"
resolved "https://registry.yarnpkg.com/pacote/-/pacote-8.1.6.tgz#8e647564d38156367e7a9dc47a79ca1ab278d46e"
+ integrity sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==
dependencies:
bluebird "^3.5.1"
cacache "^11.0.2"
parallel-transform@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
+ integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=
dependencies:
cyclist "~0.2.2"
inherits "^2.0.3"
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
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"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
dependencies:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
parse-numeric-range@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4"
+ integrity sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=
parse-torrent@^6.0.0, parse-torrent@^6.1.2:
version "6.1.2"
resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-6.1.2.tgz#99da5bdd23435a1cb7e8e7a63847c4efb21b1956"
+ integrity sha512-Z/vig84sHwtrTEbOzisT4xnYTFlOgAaLQccPruMPgRahZUppVE/BUXzAos3jZM7c64o0lfukQdQ4ozWa5lN39w==
dependencies:
bencode "^2.0.0"
blob-to-buffer "^1.2.6"
parsejson@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
+ integrity sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=
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"
+ integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=
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"
+ integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=
dependencies:
better-assert "~1.0.0"
parseurl@~1.3.1, parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+ integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
password-generator@^2.0.2:
version "2.2.0"
resolved "https://registry.yarnpkg.com/password-generator/-/password-generator-2.2.0.tgz#fc75cff795110923e054a5a71623433240bf5e49"
+ integrity sha1-/HXP95URCSPgVKWnFiNDMkC/Xkk=
dependencies:
yargs-parser "^8.0.0"
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+ integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
path-exists@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
dependencies:
pinkie-promise "^2.0.0"
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
path-is-absolute@^1.0.0, 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"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-is-inside@^1.0.1, path-is-inside@^1.0.2, 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"
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
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"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-loader@^1.0.2:
version "1.0.9"
resolved "https://registry.yarnpkg.com/path-loader/-/path-loader-1.0.9.tgz#4f204ada1a477db2a572fce382029c3f24dc5237"
+ integrity sha512-pD37gArtr+/72Tst9oJoDB9k7gB9A09Efj7yyBi5HDUqaxqULXBWW8Rnw2TfNF+3sN7QZv0ZNdW1Qx2pFGW5Jg==
dependencies:
native-promise-only "^0.8.1"
superagent "^3.8.3"
path-parse@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
dependencies:
graceful-fs "^4.1.2"
pify "^2.0.0"
pathval@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
+ integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA=
pause-stream@^0.0.11:
version "0.0.11"
resolved "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
+ integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=
dependencies:
through "~2.3"
peek-stream@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67"
+ integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==
dependencies:
buffer-from "^1.0.0"
duplexify "^3.5.0"
pem@^1.12.3:
version "1.13.1"
resolved "https://registry.yarnpkg.com/pem/-/pem-1.13.1.tgz#57dd3e0c044fbcf709db026a737e1aad7dc8330f"
+ integrity sha512-gA/kl8/MWWBaVRRv8M4iRkaJXEbp0L9NyG5ggZlbvQxylZAq5K5wGesAZifs89kwL/m4EGdekXtBMOzXM9rv7w==
dependencies:
es6-promisify "^6.0.0"
md5 "^2.2.1"
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+ integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
pfeed@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/pfeed/-/pfeed-1.1.6.tgz#0de2a1c40b116fa236227237fa264c7956c185e8"
+ integrity sha512-C3WYILHWOXXlBNqsUhaYdg8ZCHfcEJj7VDbfEXZAru06jI5C9IeRFhSGTl3eRaC8jE8My1mM0xdIGfaEkGaHzA==
dependencies:
xml "^1.0.1"
pg-connection-string@0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7"
+ integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=
pg-hstore@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/pg-hstore/-/pg-hstore-2.3.2.tgz#f7ef053e7b9b892ae986af2f7cbe86432dfcf24f"
+ integrity sha1-9+8FPnubiSrphq8vfL6GQy388k8=
dependencies:
underscore "^1.7.0"
pg-pool@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.3.tgz#c022032c8949f312a4f91fb6409ce04076be3257"
+ integrity sha1-wCIDLIlJ8xKk+R+2QJzgQHa+Mlc=
pg-types@~1.12.1:
version "1.12.1"
resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-1.12.1.tgz#d64087e3903b58ffaad279e7595c52208a14c3d2"
+ integrity sha1-1kCH45A7WP+q0nnnWVxSIIoUw9I=
dependencies:
postgres-array "~1.0.0"
postgres-bytea "~1.0.0"
pg@^7.4.1:
version "7.4.3"
resolved "https://registry.yarnpkg.com/pg/-/pg-7.4.3.tgz#f7b6f93f5340ecc2596afbb94a13e3d6b609834b"
+ integrity sha1-97b5P1NA7MJZavu5ShPj1rYJg0s=
dependencies:
buffer-writer "1.0.1"
packet-reader "0.3.1"
pgpass@1.x:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306"
+ integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=
dependencies:
split "^1.0.0"
phantom@~4.0.1:
version "4.0.12"
resolved "https://registry.yarnpkg.com/phantom/-/phantom-4.0.12.tgz#78d18cf3f2a76fea4909f6160fcabf2742d7dbf0"
+ integrity sha512-Tz82XhtPmwCk1FFPmecy7yRGZG2btpzY2KI9fcoPT7zT9det0CcMyfBFPp1S8DqzsnQnm8ZYEfdy528mwVtksA==
dependencies:
phantomjs-prebuilt "^2.1.16"
split "^1.0.1"
phantomjs-prebuilt@^2.1.16, phantomjs-prebuilt@~2.1.7:
version "2.1.16"
resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
+ integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=
dependencies:
es6-promise "^4.0.3"
extract-zip "^1.6.5"
piece-length@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/piece-length/-/piece-length-1.0.0.tgz#4db7167157fd69fef14caf7262cd39f189b24508"
+ integrity sha1-TbcWcVf9af7xTK9yYs058YmyRQg=
dependencies:
closest-to "~2.0.0"
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
dependencies:
pinkie "^2.0.0"
pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
pkg-dir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
dependencies:
find-up "^3.0.0"
pkginfo@0.3.x:
version "0.3.1"
resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21"
+ integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=
pkginfo@0.x.x:
version "0.4.1"
resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff"
+ integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=
platform@1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444"
+ integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==
please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
+ integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==
dependencies:
semver-compare "^1.0.0"
pluralize@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+ integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=
portscanner@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-1.2.0.tgz#b14bbda257d14c310fa9cc09682af02d40961802"
+ integrity sha1-sUu9olfRTDEPqcwJaCrwLUCWGAI=
dependencies:
async "1.5.2"
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"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
postcss@~0.3.2:
version "0.3.5"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-0.3.5.tgz#5073a3d062ef3ce592ac4a5fe6b8c2862ab83ceb"
+ integrity sha1-UHOj0GLvPOWSrEpf5rjChiq4POs=
dependencies:
base64-js "~0.0.6"
source-map "~0.1.33"
postgres-array@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5"
+ integrity sha512-5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ==
postgres-bytea@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
+ integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
postgres-date@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz#e2d89702efdb258ff9d9cee0fe91bd06975257a8"
+ integrity sha1-4tiXAu/bJY/52c7g/pG9BpdSV6g=
postgres-interval@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz#bf71ff902635f21cb241a013fc421d81d1db15a9"
+ integrity sha512-fC3xNHeTskCxL1dC8KOtxXt7YeFmlbTYtn7ul8MkVERuTmf7pI4DrkAxcw3kh1fQ9uz4wQmd03a1mRiXUZChfQ==
dependencies:
xtend "^4.0.0"
prebuild-install@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-4.0.0.tgz#206ce8106ce5efa4b6cf062fc8a0a7d93c17f3a8"
+ integrity sha512-7tayxeYboJX0RbVzdnKyGl2vhQRWr6qfClEXDhOkXjuaOKCw2q8aiuFhONRYVsG/czia7KhpykIlI2S2VaPunA==
dependencies:
detect-libc "^1.0.3"
expand-template "^1.0.2"
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
prepend-http@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+ integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
pretty-bytes@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf"
+ integrity sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=
dependencies:
number-is-nan "^1.0.0"
pretty-format@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
+ integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==
dependencies:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"
process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+ integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
progress@^1.1.8:
version "1.1.8"
resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+ integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
promise-inflight@^1.0.1, promise-inflight@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
promise-retry@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d"
+ integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=
dependencies:
err-code "^1.0.0"
retry "^0.10.0"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
dependencies:
asap "~2.0.3"
promisify-any@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/promisify-any/-/promisify-any-2.0.1.tgz#403e00a8813f175242ab50fe33a69f8eece47305"
+ integrity sha1-QD4AqIE/F1JCq1D+M6afjuzkcwU=
dependencies:
bluebird "^2.10.0"
co-bluebird "^1.1.0"
prompt@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prompt/-/prompt-1.0.0.tgz#8e57123c396ab988897fb327fd3aedc3e735e4fe"
+ integrity sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=
dependencies:
colors "^1.1.2"
pkginfo "0.x.x"
promzard@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
+ integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=
dependencies:
read "1"
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+ integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
protoduck@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.0.tgz#752145e6be0ad834cb25716f670a713c860dce70"
+ integrity sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==
dependencies:
genfun "^4.0.1"
proxy-addr@~1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.0.10.tgz#0d40a82f801fc355567d2ecb65efe3f077f121c5"
+ integrity sha1-DUCoL4Afw1VWfS7LZe/j8HfxIcU=
dependencies:
forwarded "~0.1.0"
ipaddr.js "1.0.5"
proxy-addr@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
+ integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==
dependencies:
forwarded "~0.1.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"
+ integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
ps-tree@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
+ integrity sha1-tCGyQUDWID8e08dplrRCewjowBQ=
dependencies:
event-stream "~3.3.0"
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
psl@^1.1.24:
version "1.1.29"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
+ integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==
pstree.remy@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.0.tgz#f2af27265bd3e5b32bbfcc10e80bac55ba78688b"
+ integrity sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==
dependencies:
ps-tree "^1.1.0"
pump@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954"
+ integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
pump@^2.0.0, pump@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
pumpify@^1.3.3:
version "1.5.1"
resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
dependencies:
duplexify "^3.6.0"
inherits "^2.0.3"
punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
qrcode-terminal@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819"
+ integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==
qs@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607"
+ integrity sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=
qs@6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+ integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
qs@6.5.2, qs@^6.1.0, qs@^6.4.0, qs@^6.5.1, qs@~6.5.1, qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
query-string@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.1.0.tgz#01e7d69f6a0940dac67a937d6c6325647aa4532a"
+ integrity sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==
dependencies:
decode-uri-component "^0.2.0"
strict-uri-encode "^2.0.0"
qw@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4"
+ integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=
random-access-file@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-2.0.1.tgz#dc22de79270e9a84cb36a2419b759725930dcaeb"
+ integrity sha512-nb4fClpzoUY+v1SHrro+9yykN90eMA1rc+xM39tnZ5R3BgFY+J/NxPZ0KuUpishEsvnwou9Fvm2wa3cjeuG7vg==
dependencies:
mkdirp "^0.5.1"
random-access-storage "^1.1.1"
random-access-storage@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/random-access-storage/-/random-access-storage-1.3.0.tgz#d27e4d897b79dc4358afc2bbe553044e5c8cfe35"
+ integrity sha512-pdS9Mcb9TB7oICypPRALlheaSuszuAKmLVEPKJMuYor7R/zDuHh5ALuQoS+ox31XRwQUL+tDwWH2GPdyspwelA==
dependencies:
inherits "^2.0.3"
random-iterate@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/random-iterate/-/random-iterate-1.0.1.tgz#f7d97d92dee6665ec5f6da08c7f963cad4b2ac99"
+ integrity sha1-99l9kt7mZl7F9toIx/ljytSyrJk=
randombytes@^2.0.3, randombytes@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80"
+ integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==
dependencies:
safe-buffer "^5.1.0"
range-parser@^1.2.0, range-parser@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+ integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
range-parser@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175"
+ integrity sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=
range-slice-stream@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/range-slice-stream/-/range-slice-stream-1.2.0.tgz#01ba954276052b783900e63d6118d8fcf3875d7f"
+ integrity sha1-AbqVQnYFK3g5AOY9YRjY/POHXX8=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
raw-body@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
+ integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=
dependencies:
bytes "3.0.0"
http-errors "1.6.2"
raw-body@2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
+ integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==
dependencies:
bytes "3.0.0"
http-errors "1.6.3"
raw-body@~1.1.0:
version "1.1.7"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425"
+ integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=
dependencies:
bytes "1"
string_decoder "0.10"
rc@^1.0.1, rc@^1.1.6, rc@^1.1.7, rc@^1.2.7:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
dependencies:
deep-extend "^0.6.0"
ini "~1.3.0"
rdf-canonize@^0.2.1:
version "0.2.4"
resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-0.2.4.tgz#1b46eb01500b6800348ac5fe0953c1be226b1446"
+ integrity sha512-xwAEHJt8FTe4hP9CjFgwQPFdszu4iwEintk31+9eh0rljC28vm9EhoaIlC1rQx5LaCB5oHom4+yoei4+DTdRjQ==
dependencies:
bindings "^1.3.0"
nan "^2.10.0"
read-cmd-shim@^1.0.1, read-cmd-shim@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b"
+ integrity sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=
dependencies:
graceful-fs "^4.1.2"
read-installed@~4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067"
+ integrity sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=
dependencies:
debuglog "^1.0.1"
read-package-json "^2.0.0"
"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13:
version "2.0.13"
resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a"
+ integrity sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==
dependencies:
glob "^7.1.1"
json-parse-better-errors "^1.0.1"
read-package-tree@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.1.tgz#6218b187d6fac82289ce4387bbbaf8eef536ad63"
+ integrity sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==
dependencies:
debuglog "^1.0.1"
dezalgo "^1.0.0"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
dependencies:
find-up "^1.0.0"
read-pkg "^1.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"
+ integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
dependencies:
load-json-file "^1.0.0"
normalize-package-data "^2.3.2"
read-pkg@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237"
+ integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc=
dependencies:
normalize-package-data "^2.3.2"
parse-json "^4.0.0"
read@1, read@1.0.x, read@~1.0.1, read@~1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
+ integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=
dependencies:
mute-stream "~0.0.4"
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.2, readable-stream@^2.3.4, readable-stream@^2.3.5, readable-stream@^2.3.6:
version "2.3.6"
resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
readable-stream@1.1:
version "1.1.13"
resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
+ integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
readable-stream@1.1.x, "readable-stream@>=1.1.13-1 <1.2.0-0", readable-stream@^1.1.13-1, readable-stream@~1.1.10:
version "1.1.14"
resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
+ integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
"readable-stream@>=1.0.33-1 <1.1.0-0":
version "1.0.34"
resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
readable-stream@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.3.tgz#a4db8813e3e0b87abdc01d5d5dbae828e59744b5"
+ integrity sha512-CzN1eAu5Pmh4EaDlJp1g5E37LIHR24b82XlMWRQlPFjhvOYKa4HhClRsQO21zhdDWUpdWfiKt9/L/ZL2+vwxCw==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
readable-wrap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/readable-wrap/-/readable-wrap-1.0.0.tgz#3b5a211c631e12303a54991c806c17e7ae206bff"
+ integrity sha1-O1ohHGMeEjA6VJkcgGwX564ga/8=
dependencies:
readable-stream "^1.1.13-1"
readdir-scoped-modules@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
+ integrity sha1-n6+jfShr5dksuuve4DDcm19AZ0c=
dependencies:
debuglog "^1.0.1"
dezalgo "^1.0.0"
readdirp@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
dependencies:
graceful-fs "^4.1.11"
micromatch "^3.1.10"
readline2@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
+ integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=
dependencies:
code-point-at "^1.0.0"
is-fullwidth-code-point "^1.0.0"
record-cache@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/record-cache/-/record-cache-1.1.0.tgz#f8a467a691a469584b26e88d36b18afdb3932037"
+ integrity sha512-u8rbtLEJV7HRacl/ZYwSBFD8NFyB3PfTTfGLP37IW3hftQCwu6z4Q2RLyxo1YJUNRTEzJfpLpGwVuEYdaIkG9Q==
redent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+ integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
dependencies:
indent-string "^2.1.0"
strip-indent "^1.0.1"
redis-commands@^1.2.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2"
+ integrity sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==
redis-parser@^2.4.0, redis-parser@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b"
+ integrity sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=
redis@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02"
+ integrity sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==
dependencies:
double-ended-queue "^2.1.0-0"
redis-commands "^1.2.0"
referrer-policy@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.1.0.tgz#35774eb735bf50fb6c078e83334b472350207d79"
+ integrity sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk=
reflect-metadata@^0.1.10:
version "0.1.12"
resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2"
+ integrity sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
dependencies:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
registry-auth-token@^3.0.1:
version "3.3.2"
resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20"
+ integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==
dependencies:
rc "^1.1.6"
safe-buffer "^5.0.1"
registry-url@^3.0.3:
version "3.1.0"
resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
+ integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI=
dependencies:
rc "^1.0.1"
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
render-media@^3.0.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/render-media/-/render-media-3.1.3.tgz#aa8c8cd3f720049370067180709b551d3c566254"
+ integrity sha512-K7ziKKlIcgYpAovRsABDiSaNn7TzDDyyuFGpRwM52cloNcajInB6sCxFPUEzOuTJUeyvKCqT/k5INOjpKLCjhQ==
dependencies:
debug "^3.1.0"
is-ascii "^1.0.0"
reorient-css@~0.2.1:
version "0.2.2"
resolved "https://registry.yarnpkg.com/reorient-css/-/reorient-css-0.2.2.tgz#6f66fc49f6a214400e0221d14c965d1abd21ac96"
+ integrity sha1-b2b8SfaiFEAOAiHRTJZdGr0hrJY=
dependencies:
postcss "~0.3.2"
repeat-element@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
repeating@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
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"
+ integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=
dependencies:
throttleit "^1.0.0"
request@2.87.0:
version "2.87.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e"
+ integrity sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.6.0"
request@^2.74.0, request@^2.81.0, request@^2.83.0, request@^2.87.0, request@^2.88.0:
version "2.88.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
+ integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
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"
+ integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
require-uncached@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+ integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=
dependencies:
caller-path "^0.1.0"
resolve-from "^1.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"
+ integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.3.2:
version "1.8.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
+ integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
dependencies:
path-parse "^1.0.5"
resolve@~1.1.0:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+ integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
resource-embedder@~0.2.1:
version "0.2.2"
resolved "https://registry.yarnpkg.com/resource-embedder/-/resource-embedder-0.2.2.tgz#20688fb5143737ec33a23b372c9144cb48196426"
+ integrity sha1-IGiPtRQ3N+wzojs3LJFEy0gZZCY=
dependencies:
coffee-script "~1.7.1"
graceful-fs "~2.0.2"
restore-cursor@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+ integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=
dependencies:
exit-hook "^1.0.0"
onetime "^1.0.0"
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
retry-as-promised@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-2.3.2.tgz#cd974ee4fd9b5fe03cbf31871ee48221c07737b7"
+ integrity sha1-zZdO5P2bX+A8vzGHHuSCIcB3N7c=
dependencies:
bluebird "^3.4.6"
debug "^2.6.9"
retry@^0.10.0:
version "0.10.1"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
+ integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=
retry@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
revalidator@0.1.x:
version "0.1.8"
resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b"
+ integrity sha1-/s5hv6DBtSoga9axgZgYS91SOjs=
rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.4.2, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
dependencies:
glob "^7.0.5"
run-async@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+ integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=
dependencies:
once "^1.3.0"
run-node@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
+ integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==
run-parallel-limit@^1.0.3:
version "1.0.5"
resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.5.tgz#c29a4fd17b4df358cb52a8a697811a63c984f1b7"
+ integrity sha512-NsY+oDngvrvMxKB3G8ijBzIema6aYbQMD2bHOamvN52BysbIGTnEY2xsNyfrcr9GhY995/t/0nQN3R3oZvaDlg==
run-parallel@^1.0.0, run-parallel@^1.1.2, run-parallel@^1.1.6:
version "1.1.9"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
+ integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
dependencies:
aproba "^1.1.1"
run-series@^1.0.2:
version "1.1.8"
resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.8.tgz#2c4558f49221e01cd6371ff4e0a1e203e460fc36"
+ integrity sha512-+GztYEPRpIsQoCSraWHDBs9WVy4eVME16zhOtDB4H9J4xN0XRhknnmLOl+4gRgZtu8dpp9N/utSPjKH/xmDzXg==
rusha@^0.8.1:
version "0.8.13"
resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz#9a084e7b860b17bff3015b92c67a6a336191513a"
+ integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo=
rx-lite@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
+ integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=
rxjs@6.2.2:
version "6.2.2"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.2.tgz#eb75fa3c186ff5289907d06483a77884586e1cf9"
+ integrity sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==
dependencies:
tslib "^1.9.0"
rxjs@^6.1.0:
version "6.3.2"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f"
+ integrity sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==
dependencies:
tslib "^1.9.0"
safe-buffer@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+ integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
safe-buffer@5.1.2, safe-buffer@^5.0.0, 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"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-json-parse@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57"
+ integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
dependencies:
ret "~0.1.10"
"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"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass-graph@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
+ integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=
dependencies:
glob "^7.0.0"
lodash "^4.0.0"
sass-lint@^1.12.1:
version "1.12.1"
resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.12.1.tgz#630f69c216aa206b8232fb2aa907bdf3336b6d83"
+ integrity sha1-Yw9pwhaqIGuCMvsqqQe98zNrbYM=
dependencies:
commander "^2.8.1"
eslint "^2.7.0"
sax@>=0.6.0, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
scripty@^1.5.0:
version "1.7.2"
resolved "https://registry.yarnpkg.com/scripty/-/scripty-1.7.2.tgz#92367b724cb77b086729691f7b01aa57f3ddd356"
+ integrity sha1-kjZ7cky3ewhnKWkfewGqV/Pd01Y=
dependencies:
async "^1.5.2"
glob "^7.0.3"
scss-tokenizer@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
+ integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE=
dependencies:
js-base64 "^2.1.8"
source-map "^0.4.2"
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
+ integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
+ integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=
dependencies:
semver "^5.0.3"
"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1:
version "5.5.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
+ integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==
semver@4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
+ integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
semver@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+ integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
send@0.13.1:
version "0.13.1"
resolved "https://registry.yarnpkg.com/send/-/send-0.13.1.tgz#a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7"
+ integrity sha1-ow1fTILIqbrprQCh2bG9vm8Zntc=
dependencies:
debug "~2.2.0"
depd "~1.1.0"
send@0.13.2:
version "0.13.2"
resolved "https://registry.yarnpkg.com/send/-/send-0.13.2.tgz#765e7607c8055452bba6f0b052595350986036de"
+ integrity sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=
dependencies:
debug "~2.2.0"
depd "~1.1.0"
send@0.16.2:
version "0.16.2"
resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
+ integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==
dependencies:
debug "2.6.9"
depd "~1.1.2"
sequelize-typescript@0.6.6:
version "0.6.6"
resolved "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-0.6.6.tgz#926037b542dae9f4eff20609d095cc5e3a3640f3"
+ integrity sha512-WGJTaNuHyYwUM8itxZvMVLeNEb7xSjisbVN1Q5rxLaIf2w67Xaf1GX6Jb+9840bjcNPvMsKgC2aR88zmw7UlcQ==
dependencies:
"@types/bluebird" "3.5.18"
"@types/node" "6.0.41"
sequelize@4.38.0:
version "4.38.0"
resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.38.0.tgz#330c1aa445d4e46b80a97d895603c01666cdc357"
+ integrity sha512-ZCcV2HuzU+03xunWgVeyXnPa/RYY5D2U/WUNpq+xF8VmDTLnSDsHl+pEwmiWrpZD7KdBqDczCeTgjToYyVzYQg==
dependencies:
bluebird "^3.5.0"
cls-bluebird "^2.1.0"
serve-index@^1.7.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+ integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
dependencies:
accepts "~1.3.4"
batch "0.6.1"
serve-static@1.13.2, serve-static@^1.10.0:
version "1.13.2"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
+ integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
serve-static@~1.10.2:
version "1.10.3"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.10.3.tgz#ce5a6ecd3101fed5ec09827dac22a9c29bfb0535"
+ integrity sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=
dependencies:
escape-html "~1.0.3"
parseurl "~1.3.1"
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
set-value@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
+ integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
dependencies:
extend-shallow "^2.0.1"
is-extendable "^0.1.1"
set-value@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+ integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
dependencies:
extend-shallow "^2.0.1"
is-extendable "^0.1.1"
setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
+ integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=
setprototypeof@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+ integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
sha@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae"
+ integrity sha1-YDCCL70smCOUn49y7WQR7lzyWq4=
dependencies:
graceful-fs "^4.1.2"
readable-stream "^2.0.2"
sharp@^0.20.0:
version "0.20.8"
resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.20.8.tgz#e853f10b53b730824f0c3c5e453c79fa0812a48b"
+ integrity sha512-A8NaPGWRDKpmHTi8sl2xzozYXhTQWBb/GaJ8ZPU7L/vKW8wVvd4Yq+isJ0c7p9sX5gnjPQcM3eOfHuvvnZ2fOQ==
dependencies:
color "^3.0.0"
detect-libc "^1.0.3"
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
dependencies:
shebang-regex "^1.0.0"
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
shelljs@0.3.x:
version "0.3.0"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
+ integrity sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=
shelljs@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8"
+ integrity sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=
shimmer@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.0.tgz#f966f7555789763e74d8841193685a5e78736665"
+ integrity sha512-xTCx2vohXC2EWWDqY/zb4+5Mu28D+HYNSOuFzsyRDRvI/e1ICb69afwaUwfjr+25ZXldbOLyp+iDUZHq8UnTag==
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"
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
simple-concat@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
+ integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
simple-get@^2.7.0, simple-get@^2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d"
+ integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==
dependencies:
decompress-response "^3.3.0"
once "^1.3.1"
simple-get@^3.0.0, simple-get@^3.0.1:
version "3.0.3"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.0.3.tgz#924528ac3f9d7718ce5e9ec1b1a69c0be4d62efa"
+ integrity sha512-Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==
dependencies:
decompress-response "^3.3.0"
once "^1.3.1"
simple-peer@^9.0.0:
version "9.1.2"
resolved "https://registry.yarnpkg.com/simple-peer/-/simple-peer-9.1.2.tgz#f8afa5eb83f8a17d66e437e5ac54c1221eca4b39"
+ integrity sha512-MUWWno5o5cvISKOH4pYQ18PQJLpDaNWoKUbrPPKuspCLCkkh+zhtuQyTE8h2U2Ags+/OUN5wnUe92+9B8/Sm2Q==
dependencies:
debug "^3.1.0"
get-browser-rtc "^1.0.0"
simple-sha1@^2.0.0, simple-sha1@^2.0.8, simple-sha1@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/simple-sha1/-/simple-sha1-2.1.1.tgz#93f3b7f2e8dfdc056c32793e5d47b58d311b140d"
+ integrity sha512-pFMPd+I/lQkpf4wFUeS/sED5IqdIG1lUlrQviBMV4u4mz8BRAcB5fvUx5Ckfg3kBigEglAjHg7E9k/yy2KlCqA==
dependencies:
rusha "^0.8.1"
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
dependencies:
is-arrayish "^0.3.1"
simple-websocket@^7.0.1:
version "7.2.0"
resolved "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-7.2.0.tgz#c3190555d74399372b96b51435f2d8c4b04611df"
+ integrity sha512-wdxFg1fHw1yqFKWDcw+yNb4VIYqtl+vknZMlpLhvZSlR6l7/iVuwozqo+Qtl73mB1IH5QnXzonD1S+hAaLNTvQ==
dependencies:
debug "^3.1.0"
inherits "^2.0.1"
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+ integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
slash@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
slice-ansi@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+ integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
slide@^1.1.3, slide@^1.1.6, slide@~1.1.3, slide@~1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+ integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
smart-buffer@^1.0.13:
version "1.1.15"
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16"
+ integrity sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=
smart-buffer@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3"
+ integrity sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==
smtp-connection@2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.3.1.tgz#d169c8f1c9a73854134cdabe6fb818237dfc4fba"
+ integrity sha1-0WnI8cmnOFQTTNq+b7gYI338T7o=
dependencies:
nodemailer-shared "1.0.4"
smtp-server@1.16.1:
version "1.16.1"
resolved "https://registry.yarnpkg.com/smtp-server/-/smtp-server-1.16.1.tgz#91d2dbd5e8bb9ed395b1a1774e8b60dd7b24e453"
+ integrity sha1-kdLb1ei7ntOVsaF3Totg3Xsk5FM=
dependencies:
ipv6-normalize "^1.0.1"
nodemailer-shared "^1.1.0"
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
dependencies:
define-property "^1.0.0"
isobject "^3.0.0"
snapdragon-util@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
dependencies:
kind-of "^3.2.0"
snapdragon@^0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
dependencies:
base "^0.11.1"
debug "^2.2.0"
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"
+ integrity sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=
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"
+ integrity sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=
dependencies:
backo2 "1.0.2"
component-bind "1.0.0"
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"
+ integrity sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=
dependencies:
component-emitter "1.1.2"
debug "2.2.0"
socket.io@1.7.3:
version "1.7.3"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b"
+ integrity sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=
dependencies:
debug "2.3.3"
engine.io "1.8.3"
socks-proxy-agent@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659"
+ integrity sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==
dependencies:
agent-base "^4.1.0"
socks "^1.1.10"
socks-proxy-agent@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz#5936bf8b707a993079c6f37db2091821bffa6473"
+ integrity sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==
dependencies:
agent-base "~4.2.0"
socks "~2.2.0"
socks@^1.1.10:
version "1.1.10"
resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a"
+ integrity sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=
dependencies:
ip "^1.1.4"
smart-buffer "^1.0.13"
socks@~2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/socks/-/socks-2.2.1.tgz#68ad678b3642fbc5d99c64c165bc561eab0215f9"
+ integrity sha512-0GabKw7n9mI46vcNrVfs0o6XzWzjVa3h6GaSo2UPxtWAROXUWavfJWh1M4PR5tnE0dcnQXZIDFP4yrAysLze/w==
dependencies:
ip "^1.1.5"
smart-buffer "^4.0.1"
sorted-object@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc"
+ integrity sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=
sorted-union-stream@~2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7"
+ integrity sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=
dependencies:
from2 "^1.3.0"
stream-iterate "^1.1.0"
source-map-resolve@^0.5.0:
version "0.5.2"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
+ integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
dependencies:
atob "^2.1.1"
decode-uri-component "^0.2.0"
source-map-support@^0.5.0, source-map-support@^0.5.6:
version "0.5.9"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f"
+ integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==
dependencies:
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"
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
source-map@^0.4.2:
version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
dependencies:
amdefine ">=0.0.4"
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@~0.1.33:
version "0.1.43"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
+ integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=
dependencies:
amdefine ">=0.0.4"
spawn-command@^0.0.2-1:
version "0.0.2-1"
resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0"
+ integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=
spdx-correct@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
+ integrity sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==
dependencies:
spdx-expression-parse "^3.0.0"
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+ integrity sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==
spdx-expression-parse@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
dependencies:
spdx-exceptions "^2.1.0"
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz#e2a303236cac54b04031fa7a5a79c7e701df852f"
+ integrity sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==
spectacle-docs@^1.0.2:
version "1.0.6"
resolved "https://registry.yarnpkg.com/spectacle-docs/-/spectacle-docs-1.0.6.tgz#ab59e5ac4ed7474039ae7e2bc492e78cd9031ca4"
+ integrity sha512-mVkOAzgBtwVWhiZy58KoigNGuKMbqb4tWza6uFNXlOl2GZohXDRdgcdKFAmV0Vz0Pn+iKzAhn15mt2FUN9TvyA==
dependencies:
bluebird "^3.4.7"
cheerio "^0.19.0"
speedometer@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-1.1.0.tgz#a30b13abda45687a1a76977012c060f2ac8a7934"
+ integrity sha512-z/wAiTESw2XVPssY2XRcme4niTc4S5FkkJ4gknudtVoc33Zil8TdTxHy5torRcgqMqksJV2Yz8HQcvtbsnw0mQ==
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"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
dependencies:
extend-shallow "^3.0.0"
split2@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz#02ddac9adc03ec0bb78c1282ec079ca6e85ae900"
+ integrity sha1-At2smtwD7Au3jBKC7Aecpuha6QA=
dependencies:
through2 "~0.6.1"
split@^1.0.0, split@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
+ integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
dependencies:
through "2"
sprintf-js@^1.0.3:
version "1.1.1"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c"
+ integrity sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
srt-to-vtt@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/srt-to-vtt/-/srt-to-vtt-1.1.3.tgz#a9bc16cde5412e000e59ffda469f3e9befed5dde"
+ integrity sha512-QHy2syDTGUzQiDtKwqSunVdh0H5dhtVt9bh/Z+yTcminD69UKk3RFVhUtBjoCh/W5OYX36Igwv5qy2JZPISwgQ==
dependencies:
duplexify "^3.2.0"
minimist "^1.1.0"
sshpk@^1.7.0:
version "1.14.2"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
+ integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg=
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
ssri@^5.2.4:
version "5.3.0"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
+ integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
dependencies:
safe-buffer "^5.1.1"
ssri@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
+ integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
dependencies:
figgy-pudding "^3.5.1"
stack-chain@1.3.x, stack-chain@~1.3.1:
version "1.3.7"
resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285"
+ integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=
stack-trace@0.0.x:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+ integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
staged-git-files@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b"
+ integrity sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
dependencies:
define-property "^0.2.5"
object-copy "^0.1.0"
statuses@1, "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
statuses@1.3.1, statuses@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
+ integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=
statuses@~1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz#dded45cc18256d51ed40aec142489d5c61026d28"
+ integrity sha1-3e1FzBglbVHtQK7BQkidXGECbSg=
statuses@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+ integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
stdout-stream@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de"
+ integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==
dependencies:
readable-stream "^2.0.1"
stream-combiner@^0.2.2:
version "0.2.2"
resolved "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858"
+ integrity sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=
dependencies:
duplexer "~0.1.1"
through "~2.3.4"
stream-each@^1.1.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+ integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
dependencies:
end-of-stream "^1.1.0"
stream-shift "^1.0.0"
stream-iterate@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1"
+ integrity sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=
dependencies:
readable-stream "^2.1.5"
stream-shift "^1.0.0"
stream-shift@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
+ integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
stream-splicer@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-1.3.2.tgz#3c0441be15b9bf4e226275e6dc83964745546661"
+ integrity sha1-PARBvhW5v04iYnXm3IOWR0VUZmE=
dependencies:
indexof "0.0.1"
inherits "^2.0.1"
stream-to-blob-url@^2.0.0, stream-to-blob-url@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/stream-to-blob-url/-/stream-to-blob-url-2.1.1.tgz#e1ac97f86ca8e9f512329a48e7830ce9a50beef2"
+ integrity sha512-DKJPEmCmIZoBfGVle9IhSfERiWaN5cuOtmfPxP2dZbLDRZxkBWZ4QbYxEJOSALk1Kf+WjBgedAMO6qkkf7Lmrg==
dependencies:
stream-to-blob "^1.0.0"
stream-to-blob@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/stream-to-blob/-/stream-to-blob-1.0.1.tgz#2dc1e09b71677a234d00445f8eb7ff70c4fe9948"
+ integrity sha512-aRy4neA4rf+qMtLT9fCRLPGWdrsIKtCx4kUdNTIPgPQ2hkHkdxbViVAvABMx9oRM6yCWfngHx6pwXfbYkVuPuw==
dependencies:
once "^1.3.3"
stream-with-known-length-to-buffer@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.2.tgz#b8ea5a92086a1ed5d27fc4c529636682118c945b"
+ integrity sha512-UxSISjxmguvfYzZdq6d4XAjc3gAocqTIOS1CjgwkDkkGT/LMTsIYiV8agIw42IHFFHf8k4lPOoroCCf4W9oqzg==
dependencies:
once "^1.3.3"
streamify@^0.2.9:
version "0.2.9"
resolved "https://registry.yarnpkg.com/streamify/-/streamify-0.2.9.tgz#8938b14db491e2b6be4f8d99cc4133c9f0384f0b"
+ integrity sha512-8pUxeLEef9UO1FxtTt5iikAiyzGI4SZRnGuJ3sz8axZ5Xk+/7ezEV5kuJQsMEFxw7AKYw3xp0Ow+20mmSaJbQQ==
dependencies:
hashish "~0.0.4"
streamsearch@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a"
+ integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=
strict-uri-encode@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
+ integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
string-argv@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736"
+ integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY=
string-template@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add"
+ integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=
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"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
dependencies:
code-point-at "^1.0.0"
is-fullwidth-code-point "^1.0.0"
"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string2compact@^1.1.1, string2compact@^1.2.5:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string2compact/-/string2compact-1.3.0.tgz#22d946127b082d1203c51316af60117a337423c3"
+ integrity sha512-004ulKKANDuQilQsNxy2lisrpMG0qUJxBU+2YCEF7KziRyNR0Nredm2qk0f1V82nva59H3y9GWeHXE63HzGRFw==
dependencies:
addr-to-ip-port "^1.0.1"
ipaddr.js "^1.0.1"
string_decoder@0.10, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
string_decoder@^1.1.1, string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
stringify-object@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd"
+ integrity sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg==
dependencies:
get-own-enumerable-property-symbols "^2.0.1"
is-obj "^1.0.1"
stringify-package@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz#e02828089333d7d45cd8c287c30aa9a13375081b"
+ integrity sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g==
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"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
dependencies:
ansi-regex "^2.0.0"
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
dependencies:
ansi-regex "^3.0.0"
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
dependencies:
is-utf8 "^0.2.0"
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+ integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
dependencies:
get-stdin "^4.0.1"
strip-json-comments@1.0.x, strip-json-comments@~1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
+ integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=
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"
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
summon-install@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/summon-install/-/summon-install-0.4.3.tgz#fa98fca67c57c9cf214ac7c48f33b9a49a6f5d97"
+ integrity sha512-YlcD+qgWa2oRbIM3M/RJvkJpQtXpgk2e0YFl5bmJy1oAd3fmXwNpXdwcfqlGhzFpmVdHnIyBuA6RgAamZshXtA==
dependencies:
descrevit "^0.1.1"
dot-json "^1.0.3"
superagent@^3.8.3:
version "3.8.3"
resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128"
+ integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==
dependencies:
component-emitter "^1.2.0"
cookiejar "^2.1.0"
supertest@^3.0.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/supertest/-/supertest-3.3.0.tgz#79b27bd7d34392974ab33a31fa51a3e23385987e"
+ integrity sha512-dMQSzYdaZRSANH5LL8kX3UpgK9G1LRh/jnggs/TI0W2Sz7rkMx9Y48uia3K9NgcaWEV28tYkBnXE4tiFC77ygQ==
dependencies:
methods "^1.1.2"
superagent "^3.8.3"
supports-color@5.4.0:
version "5.4.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
+ integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==
dependencies:
has-flag "^3.0.0"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
supports-color@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
+ integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=
dependencies:
has-flag "^2.0.0"
supports-color@^5.2.0, supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
symbol-observable@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+ integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
sync-request@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-4.1.0.tgz#324b4e506fb994d2afd2a0021a455f800725f07a"
+ integrity sha512-iFbOBWYaznBNbheIKaMkj+3EabpEsXbuwcTVuYkRjoav+Om5L8VXXLIXms0cHxkouXMRCQaSfhfau9/HyIbM2Q==
dependencies:
command-exists "^1.2.2"
concat-stream "^1.6.0"
table@^3.7.8:
version "3.8.3"
resolved "http://registry.npmjs.org/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
+ integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=
dependencies:
ajv "^4.7.0"
ajv-keywords "^1.0.0"
tar-fs@^1.13.0:
version "1.16.3"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509"
+ integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==
dependencies:
chownr "^1.0.1"
mkdirp "^0.5.1"
tar-stream@^1.1.2:
version "1.6.1"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
+ integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==
dependencies:
bl "^1.0.0"
buffer-alloc "^1.1.0"
tar@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
+ integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=
dependencies:
block-stream "*"
fstream "^1.0.2"
tar@^4, tar@^4.4.3, tar@^4.4.6:
version "4.4.6"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b"
+ integrity sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==
dependencies:
chownr "^1.0.1"
fs-minipass "^1.2.5"
term-size@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
+ integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=
dependencies:
execa "^0.7.0"
terraformer-wkt-parser@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/terraformer-wkt-parser/-/terraformer-wkt-parser-1.2.0.tgz#c9d6ac3dff25f4c0bd344e961f42694961834c34"
+ integrity sha512-QU3iA54St5lF8Za1jg1oj4NYc8sn5tCZ08aNSWDeGzrsaV48eZk1iAVWasxhNspYBoCqdHuoot1pUTUrE1AJ4w==
dependencies:
"@types/geojson" "^1.0.0"
terraformer "~1.0.5"
terraformer@~1.0.5:
version "1.0.9"
resolved "https://registry.yarnpkg.com/terraformer/-/terraformer-1.0.9.tgz#77851fef4a49c90b345dc53cf26809fdf29dcda6"
+ integrity sha512-YlmQ1fsMWTkKGDGibCRWgmLzrpDRUr63Q025LJ/taYQ6j1Yb8q9McKF7NBi6ACAyUXO6F/bl9w6v4MY307y5Ag==
optionalDependencies:
"@types/geojson" "^1.0.0"
text-hex@1.0.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
+ integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
then-request@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/then-request/-/then-request-2.2.0.tgz#6678b32fa0ca218fe569981bbd8871b594060d81"
+ integrity sha1-ZnizL6DKIY/laZgbvYhxtZQGDYE=
dependencies:
caseless "~0.11.0"
concat-stream "^1.4.7"
thirty-two@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a"
+ integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno=
throttleit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
+ integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
through2@^0.6.3, through2@~0.6.1:
version "0.6.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
+ integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=
dependencies:
readable-stream ">=1.0.33-1 <1.1.0-0"
xtend ">=4.0.0 <4.1.0-0"
through2@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/through2/-/through2-1.1.1.tgz#0847cbc4449f3405574dbdccd9bb841b83ac3545"
+ integrity sha1-CEfLxESfNAVXTb3M2buEG4OsNUU=
dependencies:
readable-stream ">=1.1.13-1 <1.2.0-0"
xtend ">=4.0.0 <4.1.0-0"
through2@^2.0.0, through2@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
+ integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=
dependencies:
readable-stream "^2.1.5"
xtend "~4.0.1"
through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.4:
version "2.3.8"
resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
thunky@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371"
+ integrity sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=
timed-out@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
+ integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
timers-ext@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.5.tgz#77147dd4e76b660c2abb8785db96574cbbd12922"
+ integrity sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==
dependencies:
es5-ext "~0.10.14"
next-tick "1"
tiny-lr@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab"
+ integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==
dependencies:
body "^5.1.0"
debug "^3.1.0"
tiny-relative-date@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07"
+ integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==
tmp@0.0.31:
version "0.0.31"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
+ integrity sha1-jzirlDjhcxXl29izZX6L+yd65Kc=
dependencies:
os-tmpdir "~1.0.1"
tmp@0.0.x:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
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"
+ integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA=
to-arraybuffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+ integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
to-buffer@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
+ integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
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"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
dependencies:
kind-of "^3.0.2"
to-regex-range@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
dependencies:
is-number "^3.0.0"
repeat-string "^1.6.1"
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
dependencies:
define-property "^2.0.2"
extend-shallow "^3.0.2"
to-utf-8@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/to-utf-8/-/to-utf-8-1.3.0.tgz#b2af7be9e003f4c3817cc116d3baed2a054993c9"
+ integrity sha1-sq976eAD9MOBfMEW07rtKgVJk8k=
dependencies:
charset-detector "0.0.2"
iconv-lite "^0.4.4"
toposort-class@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
+ integrity sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=
torrent-discovery@^9.1.1:
version "9.1.1"
resolved "https://registry.yarnpkg.com/torrent-discovery/-/torrent-discovery-9.1.1.tgz#56704e6747b24fe00dbb75b442d202051f78d37d"
+ integrity sha512-3mHf+bxVCVLrlkPJdAoMbPMY1hpTZVeWw5hNc2pPFm+HCc2DS0HgVFTBTSWtB8vQPWA1hSEZpqJ+3QfdXxDE1g==
dependencies:
bittorrent-dht "^9.0.0"
bittorrent-tracker "^9.0.0"
torrent-piece@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/torrent-piece/-/torrent-piece-2.0.0.tgz#6598ae67d93699e887f178db267ba16d89d7ec9b"
+ integrity sha512-H/Z/yCuvZJj1vl1IQHI8dvF2QrUuXRJoptT5DW5967/dsLpXlCg+uyhFR5lfNj5mNaYePUbKtnL+qKWZGXv4Nw==
touch@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
+ integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
dependencies:
nopt "~1.0.10"
tough-cookie@~2.3.3:
version "2.3.4"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
+ integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==
dependencies:
punycode "^1.4.1"
tough-cookie@~2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
+ integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
dependencies:
psl "^1.1.24"
punycode "^1.4.1"
trace@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/trace/-/trace-1.2.0.tgz#fc294988fe9b37bf66e41f5f5cd69413fd28159f"
+ integrity sha1-/ClJiP6bN79m5B9fXNaUE/0oFZ8=
dependencies:
stack-chain "~1.3.1"
traverse@>=0.2.4:
version "0.6.6"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
+ integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
tree-kill@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36"
+ integrity sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==
trim-newlines@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+ integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
triple-beam@^1.2.0, triple-beam@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
+ integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
"true-case-path@^1.0.2":
version "1.0.3"
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d"
+ integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==
dependencies:
glob "^7.1.2"
ts-node@7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf"
+ integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==
dependencies:
arrify "^1.0.0"
buffer-from "^1.1.0"
tslib@1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+ integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==
tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
+ integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
tslint-config-standard@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-8.0.1.tgz#e4dd3128e84b0e34b51990b68715a641f2b417e4"
+ integrity sha512-OWG+NblgjQlVuUS/Dmq3ax2v5QDZwRx4L0kEuDi7qFY9UI6RJhhNfoCV1qI4el8Fw1c5a5BTrjQJP0/jhGXY/Q==
dependencies:
tslint-eslint-rules "^5.3.1"
tslint-eslint-rules@^5.3.1:
version "5.4.0"
resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5"
+ integrity sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==
dependencies:
doctrine "0.7.2"
tslib "1.9.0"
tslint@^5.7.0:
version "5.11.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed"
+ integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0=
dependencies:
babel-code-frame "^6.22.0"
builtin-modules "^1.1.1"
tsutils@^2.27.2:
version "2.29.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
+ integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
dependencies:
tslib "^1.8.1"
tsutils@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.0.0.tgz#0c5070a17a0503e056da038c48b5a1870a50a9ad"
+ integrity sha512-LjHBWR0vWAUHWdIAoTjoqi56Kz+FDKBgVEuL+gVPG/Pv7QW5IdaDDeK9Txlr6U0Cmckp5EgCIq1T25qe3J6hyw==
dependencies:
tslib "^1.8.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
dependencies:
safe-buffer "^5.0.1"
tv4@~1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/tv4/-/tv4-1.2.7.tgz#bd29389afc73ade49ae5f48142b5d544bf68d120"
+ integrity sha1-vSk4mvxzreSa5fSBQrXVRL9o0SA=
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
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"
+ integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI=
type-detect@^4.0.0:
version "4.0.8"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
type-is@1.6.15:
version "1.6.15"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410"
+ integrity sha1-yrEPtJCeRByChC6v4a1kbIGARBA=
dependencies:
media-typer "0.3.0"
mime-types "~2.1.15"
type-is@^1.6.4, type-is@~1.6.15, type-is@~1.6.16, type-is@~1.6.6:
version "1.6.16"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
+ integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==
dependencies:
media-typer "0.3.0"
mime-types "~2.1.18"
typedarray-to-buffer@^3.0.0:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
dependencies:
is-typedarray "^1.0.0"
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@^2.5.2:
version "2.9.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
+ integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==
uglify-js@^3.1.4, uglify-js@~3.4.0:
version "3.4.9"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
+ integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
dependencies:
commander "~2.17.1"
source-map "~0.6.1"
uid-number@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
+ integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=
uint64be@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz#ef4a179752fe8f9ddaa29544ecfc13490031e8e5"
+ integrity sha512-9QqdvpGQTXgxthP+lY4e/gIBy+RuqcBaC6JVwT5I3bDLgT/btL6twZMR0pI3/Fgah9G/pdwzIprE5gL6v9UvyQ==
dependencies:
buffer-alloc "^1.1.0"
ultron@1.0.x:
version "1.0.2"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
+ integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
umask@^1.1.0, umask@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d"
+ integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=
undefsafe@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76"
+ integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=
dependencies:
debug "^2.2.0"
underscore-keypath@~0.0.22:
version "0.0.22"
resolved "https://registry.yarnpkg.com/underscore-keypath/-/underscore-keypath-0.0.22.tgz#48a528392bb6efc424be1caa56da4b5faccf264d"
+ integrity sha1-SKUoOSu278QkvhyqVtpLX6zPJk0=
dependencies:
underscore "*"
underscore.string@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d"
+ integrity sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=
underscore.string@~3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db"
+ integrity sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=
dependencies:
sprintf-js "^1.0.3"
util-deprecate "^1.0.2"
underscore@*, underscore@^1.7.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
+ integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
unicode-5.2.0@^0.7.5:
version "0.7.5"
resolved "https://registry.yarnpkg.com/unicode-5.2.0/-/unicode-5.2.0-0.7.5.tgz#e0df129431a28a95263d8c480fb5e9ab2b0973f0"
+ integrity sha512-KVGLW1Bri30x00yv4HNM8kBxoqFXr0Sbo55735nvrlsx4PYBZol3UtoWgO492fSwmsetzPEZzy73rbU8OGXJcA==
union-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
+ integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
dependencies:
arr-union "^3.1.0"
get-value "^2.0.6"
uniq@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
unique-filename@^1.1.0, unique-filename@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
+ integrity sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=
dependencies:
unique-slug "^2.0.0"
unique-slug@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
+ integrity sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=
dependencies:
imurmurhash "^0.1.4"
unique-string@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
+ integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
dependencies:
crypto-random-string "^1.0.0"
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
unordered-array-remove@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz#c546e8f88e317a0cf2644c97ecb57dba66d250ef"
+ integrity sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
dependencies:
has-value "^0.3.1"
isobject "^3.0.0"
unzip-response@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
+ integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
upath@^1.0.5:
version "1.1.0"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
+ integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==
update-notifier@^2.3.0, update-notifier@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
+ integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==
dependencies:
boxen "^1.2.1"
chalk "^2.0.1"
uri-js@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa"
+ integrity sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=
dependencies:
punycode "^2.1.0"
uri-path@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32"
+ integrity sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=
urix@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
url-parse-lax@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
+ integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
dependencies:
prepend-http "^1.0.1"
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
user-home@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
+ integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8=
dependencies:
os-homedir "^1.0.0"
useragent@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972"
+ integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==
dependencies:
lru-cache "4.1.x"
tmp "0.0.x"
ut_metadata@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/ut_metadata/-/ut_metadata-3.3.0.tgz#a0e0e861ebc39ed96e506601d1463ade3b548a7e"
+ integrity sha512-IK+ke9yL6a4oPLz/3oSW9TW7m9Wr4RG+5kW5aS2YulzEU1QDGAtago/NnOlno91fo3fSO7mnsqzn3NXNXdv8nA==
dependencies:
bencode "^2.0.0"
bitfield "^2.0.0"
ut_pex@^1.1.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ut_pex/-/ut_pex-1.2.1.tgz#472ed0ea5e9bbc9148b833339d56d7b17cf3dad0"
+ integrity sha512-ZrxMCbffYtxQDqvREN9kBXK2CB9tPnd5PylHoqQX9ai+3HV9/S39FnA5JnhLOC82dxIQQg0nTN2wmhtAdGNtOA==
dependencies:
bencode "^2.0.0"
compact2string "^1.2.0"
utf-8-validate@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.1.tgz#cef1f9011ba4b216f4d7c6ddf5189d750599ff8b"
+ integrity sha512-Qef1AuiWWxQeZ1Oa4DTV3ArRafpZvsK+CLrlB8khLfsV+9mwhj58hNSGmel0ns5jYP+3yEwav6vxxW7Gz85bVw==
dependencies:
node-gyp-build "~3.4.0"
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
util-extend@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f"
+ integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=
util@^0.10.3:
version "0.10.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
+ integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
dependencies:
inherits "2.0.3"
utile@0.3.x:
version "0.3.0"
resolved "https://registry.yarnpkg.com/utile/-/utile-0.3.0.tgz#1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a"
+ integrity sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=
dependencies:
async "~0.9.0"
deep-equal "~0.2.1"
utils-merge@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
+ integrity sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=
utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
uue@^3.1.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/uue/-/uue-3.1.2.tgz#e99368414e87200012eb37de4dbaebaa1c742ad2"
+ integrity sha512-axKLXVqwtdI/czrjG0X8hyV1KLgeWx8F4KvSbvVCnS+RUvsQMGRjx0kfuZDXXqj0LYvVJmx3B9kWlKtEdRrJLg==
dependencies:
escape-string-regexp "~1.0.5"
extend "~3.0.0"
uuid@^3.1.0, uuid@^3.2.1, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
+ integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
dependencies:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
+ integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34=
dependencies:
builtins "^1.0.3"
validator@^10.2.0, validator@^10.4.0:
version "10.7.1"
resolved "https://registry.yarnpkg.com/validator/-/validator-10.7.1.tgz#dd4cc750c2134ce4a15a2acfc7b233669d659c5b"
+ integrity sha512-tbB5JrTczfeHKLw3PnFRzGFlF1xUAwSgXEDb66EuX1ffCirspYpDEZo3Vc9j38gPdL4JKrDc5UPFfgYiw1IWRQ==
vary@^1, vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
vary@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10"
+ integrity sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
videostream@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.5.1.tgz#993a8f3efe277e5c8d26a7814ba0c68f79b20688"
+ integrity sha512-S3f34WE6NB1d/YUAa/EYcTURTkGaxsUqcDmsGWV1jQpQQJxeagc79/XA7ygNjzBf3DoQQ1MKTD+SocPsWSniAg==
dependencies:
binary-search "^1.3.4"
inherits "^2.0.1"
wcwidth@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+ integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
dependencies:
defaults "^1.0.3"
webfinger.js@^2.6.6:
version "2.6.6"
resolved "https://registry.yarnpkg.com/webfinger.js/-/webfinger.js-2.6.6.tgz#52ebdc85da8c8fb6beb690e8e32594c99d2ff4ae"
+ integrity sha512-dQpuL01XtluQ9Ndgu62o3pEmIe/ssDoIE0CQsOyavGl04xyHal+Ge4gFerw5V0BFoLTQpD8ZZqaDzb43hG9atw==
dependencies:
xhr2 "^0.1.4"
websocket-driver@>=0.5.1:
version "0.7.0"
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
+ integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=
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"
+ integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
webtorrent@^0.102.1:
version "0.102.4"
resolved "https://registry.yarnpkg.com/webtorrent/-/webtorrent-0.102.4.tgz#0902f5dddb244c4ca8137d5d678546b733adeb2f"
+ integrity sha512-Oa7NatbPlESqf5ETwgVUOXAbUjiZr7XNFbHhd88BRm+4vN9u3JgeIbF9Gnuxb5s26cHxPYpGJRVTtBsc6Z6w9Q==
dependencies:
addr-to-ip-port "^1.4.2"
bitfield "^2.0.0"
what-input@^4.1.3:
version "4.3.1"
resolved "https://registry.yarnpkg.com/what-input/-/what-input-4.3.1.tgz#b8ea7554ba1d9171887c4c6addf28185fec3d31d"
+ integrity sha512-7KD71RWNRWI9M08shZ8+n/2UjO5amwsG9PMSXWz0iIlH8H2DVbHE8Z2tW1RqQa0kIwdeqdUIffFz7crDfkcbAw==
which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+ integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which-pm-runs@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
+ integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
which@1, which@^1.1.1, which@^1.2.10, which@^1.2.9, which@^1.3.0, which@^1.3.1, which@~1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
dependencies:
isexe "^2.0.0"
wide-align@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
dependencies:
string-width "^1.0.2 || 2"
widest-line@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273"
+ integrity sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=
dependencies:
string-width "^2.1.1"
wildstring@1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/wildstring/-/wildstring-1.0.8.tgz#80b5f85b7f8aa98bc19cc230e60ac7f5e0dd226d"
+ integrity sha1-gLX4W3+KqYvBnMIw5grH9eDdIm0=
winston-transport@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.2.0.tgz#a20be89edf2ea2ca39ba25f3e50344d73e6520e5"
+ integrity sha512-0R1bvFqxSlK/ZKTH86nymOuKv/cT1PQBMuDdA7k7f0S9fM44dNH6bXnuxwXPrN8lefJgtZq08BKdyZ0DZIy/rg==
dependencies:
readable-stream "^2.3.6"
triple-beam "^1.2.0"
winston@2.1.x:
version "2.1.1"
resolved "http://registry.npmjs.org/winston/-/winston-2.1.1.tgz#3c9349d196207fd1bdff9d4bc43ef72510e3a12e"
+ integrity sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=
dependencies:
async "~1.0.0"
colors "1.0.x"
winston@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz#80724376aef164e024f316100d5b178d78ac5331"
+ integrity sha512-FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg==
dependencies:
async "^2.6.0"
diagnostics "^1.1.1"
winston@^2.4.0:
version "2.4.4"
resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.4.tgz#a01e4d1d0a103cf4eada6fc1f886b3110d71c34b"
+ integrity sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==
dependencies:
async "~1.0.0"
colors "1.0.x"
wkx@^0.4.1:
version "0.4.5"
resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.4.5.tgz#a85e15a6e69d1bfaec2f3c523be3dfa40ab861d0"
+ integrity sha512-01dloEcJZAJabLO5XdcRgqdKpmnxS0zIT02LhkdWOZX2Zs2tPM6hlZ4XG9tWaWur1Qd1OO4kJxUbe2+5BofvnA==
dependencies:
"@types/node" "*"
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
worker-farm@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
+ integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==
dependencies:
errno "~0.1.7"
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
dependencies:
string-width "^1.0.1"
strip-ansi "^3.0.1"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
write-file-atomic@^2.0.0, write-file-atomic@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
+ integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
write@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+ integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=
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"
+ integrity sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=
dependencies:
options ">=0.0.5"
ultron "1.0.x"
ws@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.0.0.tgz#eaa494aded00ac4289d455bac8d84c7c651cef35"
+ integrity sha512-c2UlYcAZp1VS8AORtpq6y4RJIkJ9dQz18W32SpR/qXGfLDZ2jU4y4wKvvZwqbi7U6gxFQTeE+urMbXU/tsDy4w==
dependencies:
async-limiter "~1.0.0"
wtf-8@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
+ integrity sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=
x-xss-protection@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.1.0.tgz#4f1898c332deb1e7f2be1280efb3e2c53d69c1a7"
+ integrity sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==
xdg-basedir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
+ integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
xhr2@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f"
+ integrity sha1-f4dliEdxbbUCYyOBL4GMras4el8=
xliff@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/xliff/-/xliff-4.1.0.tgz#32ea268a6442c122e132e6abf874539b1fc9c6b3"
+ integrity sha512-BlqCVTd16GLNx4TAll1Ebs1Gswh6g/Mx/9z6cXmbNTVqy7iqXAAwZjmhE2G1fX+++xoXy0IufPp+DOv8tJC/pA==
dependencies:
xml-js "1.6.7"
xml-js@1.6.7:
version "1.6.7"
resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.7.tgz#a99b40c18a16d3e06537b3ae026a27bd60ffe8ab"
+ integrity sha512-1hn0xwwfMcWywnJxqiOXiv+pZaOJyf/YWcUeqJICF0BFb+IOkRFSkKyeA0V62WqTHXNdBxNuCFHhS/w2DtYpoA==
dependencies:
sax "^1.2.4"
xml2js@^0.4.4:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
+ integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==
dependencies:
sax ">=0.6.0"
xmlbuilder "~9.0.1"
xml@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
+ integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
xmlbuilder@~9.0.1:
version "9.0.7"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
+ integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
xmldom@0.1.19:
version "0.1.19"
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.19.tgz#631fc07776efd84118bf25171b37ed4d075a0abc"
+ integrity sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=
xmlhttprequest-ssl@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
+ integrity sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=
xregexp@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
+ integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+ integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+ integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^3.0.0, yallist@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
+ integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=
yargs-parser@^10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
+ integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
dependencies:
camelcase "^4.1.0"
yargs-parser@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
+ integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
dependencies:
camelcase "^3.0.0"
yargs-parser@^8.0.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==
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"
+ integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=
dependencies:
camelcase "^4.1.0"
yargs@^11.0.0:
version "11.1.0"
resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
+ integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==
dependencies:
cliui "^4.0.0"
decamelize "^1.1.1"
yargs@^12.0.1:
version "12.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
+ integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==
dependencies:
cliui "^4.0.0"
decamelize "^2.0.0"
yargs@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
+ integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=
dependencies:
camelcase "^3.0.0"
cliui "^3.2.0"
yauzl@2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
+ integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
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"
+ integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
yn@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
+ integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=
youtube-dl@^1.12.2:
version "1.12.2"
resolved "https://registry.yarnpkg.com/youtube-dl/-/youtube-dl-1.12.2.tgz#11985268564c92b229f62b43d97374f86a605d1d"
+ integrity sha512-TDGmUxzEsQCp1Ux3IEkEhJ2LfRlUjBo5AaaGmW5Hqm8uX8jd2sB+Rq37S9vy505qnFhpy05uUSQsBtpvBuQBYA==
dependencies:
hh-mm-ss "^1.2.0"
mkdirp "^0.5.1"
zero-fill@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/zero-fill/-/zero-fill-2.2.3.tgz#a3def06ba5e39ae644850bb4ca2ad4112b4855e9"
+ integrity sha1-o97wa6XjmuZEhQu0yirUEStIVek=