diff --git a/.gitignore b/.gitignore index 276db58..ff8383b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ node_modules/ .idea/ .vscode/ yarn-error.log + +static/schedule/schedule*.pdf diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7810fb7..afd8760 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,14 +7,14 @@ before_script: - hugo version - echo node `node --version` - echo yarn `yarn --version` - - pushd themes/devfest-theme-hugo - yarn - - popd sandbox: script: + - hugo --quiet + - node tools/pdf.js - hugo -F - - node themes/devfest-theme-hugo/minify.js + - node tools/minify.js - firebase use default - firebase deploy --token "$FIREBASE_SANDBOX_TOKEN" artifacts: @@ -27,8 +27,10 @@ prod: variables: HUGO_ENV: production script: + - hugo --quiet + - node tools/pdf.js - hugo --baseURL https://2019.devfesttoulouse.fr/ - - node themes/devfest-theme-hugo/minify.js + - node tools/minify.js - firebase use prod - firebase deploy --token "$FIREBASE_PROD_TOKEN" artifacts: diff --git a/content/schedule/_index.fr.md b/content/schedule/_index.fr.md index f260569..4f2be92 100644 --- a/content/schedule/_index.fr.md +++ b/content/schedule/_index.fr.md @@ -5,7 +5,6 @@ menu: weight: 10 horizontal: false - draft: true --- @@ -17,7 +16,7 @@ draft: true - ICal + PDF diff --git a/content/schedule/_index.md b/content/schedule/_index.md index fd22076..fa4270c 100644 --- a/content/schedule/_index.md +++ b/content/schedule/_index.md @@ -5,7 +5,6 @@ menu: weight: 10 horizontal: false - draft: true --- @@ -15,5 +14,9 @@ draft: true ICal + + PDF + + {{% /hero %}} diff --git a/content/sessions/a_kotlin_multiplatform_evolution.md b/content/sessions/a_kotlin_multiplatform_evolution.md index db8ec29..412040b 100644 --- a/content/sessions/a_kotlin_multiplatform_evolution.md +++ b/content/sessions/a_kotlin_multiplatform_evolution.md @@ -1,6 +1,7 @@ --- key: a_kotlin_multiplatform_evolution title: A Kotlin multiplatform evolution +language: English format: conference tags: - languages diff --git a/content/sessions/keynote_close_overflow.md b/content/sessions/keynote_close_overflow.md new file mode 100644 index 0000000..4cdc9d9 --- /dev/null +++ b/content/sessions/keynote_close_overflow.md @@ -0,0 +1,10 @@ +--- +key: keynote_close_overflow +title: Keynote de fermeture (overflow) +format: keynote +tags: + - keynote +speakers: [] +draft: false +--- +Surprise! \ No newline at end of file diff --git a/content/sessions/keynote_open_overflow.md b/content/sessions/keynote_open_overflow.md new file mode 100644 index 0000000..740872e --- /dev/null +++ b/content/sessions/keynote_open_overflow.md @@ -0,0 +1,10 @@ +--- +key: keynote_open_overflow +title: Keynote d'ouverture (overflow) +format: keynote +tags: + - keynote +speakers: [] +draft: false +--- +Surprise! \ No newline at end of file diff --git a/content/sessions/le_burn_out_agile.md b/content/sessions/le_burn_out_agile.md index ef500bd..aa99a43 100644 --- a/content/sessions/le_burn_out_agile.md +++ b/content/sessions/le_burn_out_agile.md @@ -8,7 +8,7 @@ tags: - method___tools level: intermediate speakers: - - kfnue96dm9g1zobctf4gvzdolrp2 + - cedric_moulard videoId: null presentation: null draft: false diff --git a/content/sessions/le_design_de_l_erreur.md b/content/sessions/le_design_de_l_erreur.md index 8a4e48d..4c1ce9c 100644 --- a/content/sessions/le_design_de_l_erreur.md +++ b/content/sessions/le_design_de_l_erreur.md @@ -8,7 +8,6 @@ tags: - method___tools level: beginner speakers: - - estelle_landry_ - francois_teychene videoId: null presentation: null diff --git a/content/sessions/le_jaillissement_de_l_esprit.md b/content/sessions/le_jaillissement_de_l_esprit.md index 5db879c..bada800 100644 --- a/content/sessions/le_jaillissement_de_l_esprit.md +++ b/content/sessions/le_jaillissement_de_l_esprit.md @@ -1,7 +1,6 @@ --- key: le_jaillissement_de_l_esprit title: Le jaillissement de l'esprit -language: fr format: conference tags: - method___tools diff --git a/content/sessions/modern_forms_in_react.md b/content/sessions/modern_forms_in_react.md index 5cc972a..0443426 100644 --- a/content/sessions/modern_forms_in_react.md +++ b/content/sessions/modern_forms_in_react.md @@ -2,6 +2,7 @@ key: modern_forms_in_react title: Modern Forms in React id: McfMVcKDdZv68NSo2JIJ +language: English format: conference tags: - web diff --git a/content/sessions/rust__webassembly__and_the_future_of_serverless.md b/content/sessions/rust__webassembly__and_the_future_of_serverless.md index c9dfe8a..47da78d 100644 --- a/content/sessions/rust__webassembly__and_the_future_of_serverless.md +++ b/content/sessions/rust__webassembly__and_the_future_of_serverless.md @@ -2,7 +2,7 @@ key: rust__webassembly__and_the_future_of_serverless title: 'Rust, WebAssembly, and the future of Serverless' id: 2S9XtGGq3ouHnkivEDKC -language: United States +language: English format: conference tags: - cloud___infra diff --git a/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md b/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md index abb193b..5995c77 100644 --- a/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md +++ b/content/sessions/webgpu__next_generation_3d_graphics_on_the_web.md @@ -2,6 +2,7 @@ key: webgpu__next_generation_3d_graphics_on_the_web title: 'WebGPU: Next-generation 3D Graphics on the Web' id: 5qTyscBWtXLRb04TXEdB +language: English format: conference tags: - web diff --git a/content/speakers/cedric_moulard.md b/content/speakers/cedric_moulard.md new file mode 100644 index 0000000..96bb8b2 --- /dev/null +++ b/content/speakers/cedric_moulard.md @@ -0,0 +1,24 @@ +--- +key: cedric_moulard +name: Cédric Moulard +id: KFNUe96DM9g1zobCtf4GVzdoLRp2 +feature: false +photoURL: /images/speakers/cedric_moulard.jpg +socials: + - icon: twitter + link: 'https://twitter.com/cedric_moulard' + name: cedric_moulard + - icon: github + link: 'https://github.com/cedricmoulard' + name: cedricmoulard +--- +Diplômé de Arts & Métiers ParisTech et pas vraiment destiné à faire de l'informatique. +Développeur autodidacte. + +20 ans d'expérience, dont : +- Architecte Java +- Développeur Angular +- Chef de projet +- ScrumMaster +- Evaluateur CMMi +- Responsable Méthodes & Outils \ No newline at end of file diff --git a/content/speakers/estelle_landry_.md b/content/speakers/estelle_landry_.md deleted file mode 100644 index b3e477f..0000000 --- a/content/speakers/estelle_landry_.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -key: estelle_landry_ -name: Estelle Landry ☀️ -id: JkWN4X6967cvBrV2x8vKf1QrHS93 -feature: false -company: Elium -city: 'Montpellier, France' -photoURL: /images/speakers/estelle_landry_.jpg -socials: - - icon: twitter - link: 'https://twitter.com/estelandry' - name: estelandry ---- -Passionée par mon métier de Product Owner, par l'UX (User eXpérience) et le GameStorming, j'aime participer à l'élaboration d'un produit en étant le lien entre les utilisateurs et les développeurs. - -Speakeuse en conférence tech, membre des Duchess France, de SunnyTech et du MeetUp UX Flupa Montpellier, je continue à me perfectionner et à discuter de nouvelles méthodes ou technologies de l'IT. \ No newline at end of file diff --git a/data/info.yml b/data/info.yml index 3a082d3..7e5c299 100644 --- a/data/info.yml +++ b/data/info.yml @@ -1,16 +1,16 @@ id: HJRThubF4uYPkb7jSUxi name: DevFest Toulouse 2019 address: - latLng: - lng: 1.4345827 - lat: 43.6115538 formattedAddress: '11 Espl. Compans Caffarelli, 31000 Toulouse, France' locality: short_name: Toulouse long_name: Toulouse country: - long_name: France short_name: FR + long_name: France + latLng: + lat: 43.6115538 + lng: 1.4345827 dates: - end: '2019-10-03T10:00:00.000Z' start: '2019-10-03T10:00:00.000Z' + end: '2019-10-03T10:00:00.000Z' diff --git a/data/rooms.yml b/data/rooms.yml index d25640c..6e542af 100644 --- a/data/rooms.yml +++ b/data/rooms.yml @@ -7,10 +7,10 @@ - key: office-hours label: Office-hours - key: room1 - label: Grand amphi. + label: '#1' - key: room2 - label: Grande salle + label: '#2' - key: room3 - label: Salle du haut + label: '#3' - key: room4 - label: Petite salle + label: '#4' diff --git a/data/schedule.yml b/data/schedule.yml index 0affa44..8c0497f 100644 --- a/data/schedule.yml +++ b/data/schedule.yml @@ -10,141 +10,145 @@ - slot: pause-1 talk: __pause - slot: slot-1 - talk: >- - _numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_ + talk: the_rise_of_the_web - slot: pause-2 talk: __pause - slot: slot-2 - talk: _votre_api_web_passe_t_elle_le_controle_technique__ + talk: l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus - slot: pause-3 talk: __pause - slot: slot-3 - talk: a_la_decouverte_de_la_realite_augmentee_avec_arcore + talk: webgpu__next_generation_3d_graphics_on_the_web - slot: slot-lt-1 talk: 3_techniques_faciles_de_manipulation - slot: lunch talk: __lunch - slot: slot-lt-2 - talk: 10_est_une_puissance_de_2 + talk: _47_ans___ils_nont_toujours_pas_remarque__ - slot: slot-4 - talk: >- - allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_ + talk: rust__webassembly__and_the_future_of_serverless - slot: pause-4 talk: __pause - slot: slot-5 - talk: authentication_authorization_starters_battle + talk: le_design_de_l_erreur - slot: pause-5 talk: __pause - slot: slot-6 - talk: brace_yourself__vanilla_is_coming__back__ + talk: monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques - slot: pause-6 talk: __pause - slot: slot-7 - talk: >- - comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch + talk: _votre_api_web_passe_t_elle_le_controle_technique__ - slot: keynote-close talk: keynote_close - slot: party talk: __party - room: room2 slots: + - slot: keynote-open + talk: keynote_open_overflow - slot: slot-1 - talk: de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne + talk: a_kotlin_multiplatform_evolution - slot: pause-2 talk: __pause - slot: slot-2 - talk: devops_at_scale + talk: le_burn_out_agile - slot: pause-3 talk: __pause - slot: slot-3 - talk: four_diseases - - slot: pause-4 - talk: __pause - - slot: slot-4 - talk: introduction_a_la_programmation_par_contraintes + talk: >- + _numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_ - slot: slot-lt-1 - talk: _47_ans___ils_nont_toujours_pas_remarque__ + talk: machine_learning_avec_des_allumettes_et_des_cotillons - slot: lunch talk: __lunch - slot: slot-lt-2 - talk: un_distributeur_automatique_d_argent_de_poche_pour_les_enfants + talk: applications_de_brainfuck__langage_minimaliste_mais_turing_complet + - slot: slot-4 + talk: >- + live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__ + - slot: pause-4 + talk: __pause - slot: slot-5 - talk: l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus + talk: the_freedom_of_static_typing - slot: pause-5 talk: __pause - slot: slot-6 - talk: le_burn_out_agile + talk: authentication_authorization_starters_battle - slot: pause-6 talk: __pause - slot: slot-7 - talk: le_design_de_l_erreur + talk: >- + mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur + - slot: keynote-close + talk: keynote_close_overflow - room: room3 slots: - slot: slot-1 - talk: >- - live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__ + talk: quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux - slot: pause-2 talk: __pause - slot: slot-2 - talk: modern_forms_in_react + talk: rust_as_a_high_level_langage - slot: pause-3 talk: __pause - slot: slot-3 talk: >- - mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur - - slot: pause-4 - talk: __pause - - slot: slot-4 - talk: monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques + allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_ - slot: slot-lt-1 - talk: applications_de_brainfuck__langage_minimaliste_mais_turing_complet + talk: >- + le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard - slot: lunch talk: __lunch - slot: slot-lt-2 - talk: developpeurs_en_reconversion__developpeurs_quand_meme__ + talk: un_distributeur_automatique_d_argent_de_poche_pour_les_enfants + - slot: slot-4 + talk: le_jaillissement_de_l_esprit + - slot: pause-4 + talk: __pause - slot: slot-5 - talk: premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core + talk: >- + comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch - slot: pause-5 talk: __pause - slot: slot-6 - talk: quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux + talk: devops_at_scale - slot: pause-6 talk: __pause - slot: slot-7 - talk: rockin_in_the_angular_world + talk: modern_forms_in_react - room: room4 slots: - slot: slot-1 - talk: rust__webassembly__and_the_future_of_serverless + talk: a_la_decouverte_de_la_realite_augmentee_avec_arcore - slot: pause-2 talk: __pause - slot: slot-2 - talk: rust_as_a_high_level_langage + talk: rockin_in_the_angular_world - slot: pause-3 talk: __pause - slot: slot-3 - talk: the_freedom_of_static_typing - - slot: pause-4 - talk: __pause - - slot: slot-4 - talk: the_rise_of_the_web + talk: premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core - slot: slot-lt-1 - talk: >- - le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard + talk: developpeurs_en_reconversion__developpeurs_quand_meme__ - slot: lunch talk: __lunch - slot: slot-lt-2 - talk: machine_learning_avec_des_allumettes_et_des_cotillons + talk: 10_est_une_puissance_de_2 + - slot: slot-4 + talk: de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne + - slot: pause-4 + talk: __pause - slot: slot-5 - talk: a_kotlin_multiplatform_evolution + talk: brace_yourself__vanilla_is_coming__back__ - slot: pause-5 talk: __pause - slot: slot-6 - talk: webgpu__next_generation_3d_graphics_on_the_web + talk: four_diseases - slot: pause-6 talk: __pause - slot: slot-7 - talk: le_jaillissement_de_l_esprit + talk: introduction_a_la_programmation_par_contraintes - room: office-hours slots: - slot: office-hours-1 diff --git a/package.json b/package.json index 2f7908a..3f4e7c1 100644 --- a/package.json +++ b/package.json @@ -5,16 +5,18 @@ "author": "Igor Laborie ", "license": "Apache-2.0", "scripts": { - "generate:pdf": "node tools/pdf.js", "prebuild": "hugo", "build:minify": "node tools/minify.js", - "build": "run-p build:*" + "build:pdf": "node tools/pdf.js", + "build": "run-s build:*" }, "devDependencies": { + "firebase-tools": "^7.2.4", "glob": "^7.1.4", "html-minifier": "^4.0.0", "npm-run-all": "^4.1.5", - "plop-logger": "^2.3.0", - "puppeteer": "^1.19.0" + "plop-logger": "^2.6.0", + "puppeteer": "^1.19.0", + "serve-handler": "^6.1.1" } } diff --git a/static/api/site.json b/static/api/site.json index c16f7cf..3eda106 100644 --- a/static/api/site.json +++ b/static/api/site.json @@ -3,23 +3,23 @@ "id": "HJRThubF4uYPkb7jSUxi", "name": "DevFest Toulouse 2019", "address": { - "latLng": { - "lng": 1.4345827, - "lat": 43.6115538 - }, "formattedAddress": "11 Espl. Compans Caffarelli, 31000 Toulouse, France", "locality": { "short_name": "Toulouse", "long_name": "Toulouse" }, "country": { - "long_name": "France", - "short_name": "FR" + "short_name": "FR", + "long_name": "France" + }, + "latLng": { + "lat": 43.6115538, + "lng": 1.4345827 } }, "dates": { - "end": "2019-10-03T10:00:00.000Z", - "start": "2019-10-03T10:00:00.000Z" + "start": "2019-10-03T10:00:00.000Z", + "end": "2019-10-03T10:00:00.000Z" } }, "sessions": [ @@ -157,6 +157,7 @@ { "key": "a_kotlin_multiplatform_evolution", "title": "A Kotlin multiplatform evolution", + "language": "English", "format": "conference", "tags": [ "languages" @@ -376,6 +377,17 @@ "draft": false, "description": "Surprise!" }, + { + "key": "keynote_close_overflow", + "title": "Keynote de fermeture (overflow)", + "format": "keynote", + "tags": [ + "keynote" + ], + "speakers": [], + "draft": false, + "description": "Surprise!" + }, { "key": "keynote_open", "title": "Keynote d'ouverture", @@ -387,6 +399,17 @@ "draft": false, "description": "Surprise!" }, + { + "key": "keynote_open_overflow", + "title": "Keynote d'ouverture (overflow)", + "format": "keynote", + "tags": [ + "keynote" + ], + "speakers": [], + "draft": false, + "description": "Surprise!" + }, { "key": "l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus", "title": "L'histoire de la découverte d'une backdoor signé Oneplus", @@ -415,7 +438,7 @@ ], "level": "intermediate", "speakers": [ - "kfnue96dm9g1zobctf4gvzdolrp2" + "cedric_moulard" ], "videoId": null, "presentation": null, @@ -433,7 +456,6 @@ ], "level": "beginner", "speakers": [ - "estelle_landry_", "francois_teychene" ], "videoId": null, @@ -444,7 +466,6 @@ { "key": "le_jaillissement_de_l_esprit", "title": "Le jaillissement de l'esprit", - "language": "fr", "format": "conference", "tags": [ "method___tools" @@ -515,6 +536,7 @@ "key": "modern_forms_in_react", "title": "Modern Forms in React", "id": "McfMVcKDdZv68NSo2JIJ", + "language": "English", "format": "conference", "tags": [ "web" @@ -708,7 +730,7 @@ "key": "rust__webassembly__and_the_future_of_serverless", "title": "Rust, WebAssembly, and the future of Serverless", "id": "2S9XtGGq3ouHnkivEDKC", - "language": "United States", + "language": "English", "format": "conference", "tags": [ "cloud___infra" @@ -797,6 +819,7 @@ "key": "webgpu__next_generation_3d_graphics_on_the_web", "title": "WebGPU: Next-generation 3D Graphics on the Web", "id": "5qTyscBWtXLRb04TXEdB", + "language": "English", "format": "conference", "tags": [ "web" @@ -894,6 +917,26 @@ ], "description": "Professional Rails developer with an excessive amount of Vimscript in his Github profile. Teaches a Rust course in Sofia University." }, + { + "key": "cedric_moulard", + "name": "Cédric Moulard", + "id": "KFNUe96DM9g1zobCtf4GVzdoLRp2", + "feature": false, + "photoURL": "/images/speakers/cedric_moulard.jpg", + "socials": [ + { + "icon": "twitter", + "link": "https://twitter.com/cedric_moulard", + "name": "cedric_moulard" + }, + { + "icon": "github", + "link": "https://github.com/cedricmoulard", + "name": "cedricmoulard" + } + ], + "description": "Diplômé de Arts & Métiers ParisTech et pas vraiment destiné à faire de l'informatique. \nDéveloppeur autodidacte. \n\n20 ans d'expérience, dont :\n- Architecte Java\n- Développeur Angular\n- Chef de projet\n- ScrumMaster\n- Evaluateur CMMi\n- Responsable Méthodes & Outils" + }, { "key": "christophe_jollivet", "name": "Christophe Jollivet", @@ -1003,23 +1046,6 @@ ], "description": "American expat living in Spain, making awesome Javascript open source." }, - { - "key": "estelle_landry_", - "name": "Estelle Landry ☀️", - "id": "JkWN4X6967cvBrV2x8vKf1QrHS93", - "feature": false, - "company": "Elium", - "city": "Montpellier, France", - "photoURL": "/images/speakers/estelle_landry_.jpg", - "socials": [ - { - "icon": "twitter", - "link": "https://twitter.com/estelandry", - "name": "estelandry" - } - ], - "description": "Passionée par mon métier de Product Owner, par l'UX (User eXpérience) et le GameStorming, j'aime participer à l'élaboration d'un produit en étant le lien entre les utilisateurs et les développeurs.\n\nSpeakeuse en conférence tech, membre des Duchess France, de SunnyTech et du MeetUp UX Flupa Montpellier, je continue à me perfectionner et à discuter de nouvelles méthodes ou technologies de l'IT." - }, { "key": "francois_guillaume_ribreau", "name": "Francois-Guillaume Ribreau", @@ -1234,28 +1260,6 @@ ], "description": "Développeuse Web depuis presque 3 ans, je pratique Vue.js et Koa.js au quotidien chez SchoolMouv à Toulouse. \nCela fait maintenant trois conférences que je coprésente aux DevFest de Toulouse, de Brest puis à MiXiT 2019. Et je m'épanouis totalement dans cette nouvelle activité !" }, - { - "key": "kfnue96dm9g1zobctf4gvzdolrp2", - "name": "Cédric Moulard", - "id": "KFNUe96DM9g1zobCtf4GVzdoLRp2", - "feature": false, - "company": "Open", - "city": "Aix-en-Provence, France", - "photoURL": "/images/speakers/kfnue96dm9g1zobctf4gvzdolrp2.jpg", - "socials": [ - { - "icon": "twitter", - "link": "https://twitter.com/cedric_moulard", - "name": "cedric_moulard" - }, - { - "icon": "github", - "link": "https://github.com/cedricmoulard", - "name": "cedricmoulard" - } - ], - "description": "Diplômé de Arts & Métiers ParisTech et pas vraiment destiné à faire de l'informatique. \nDéveloppeur autodidacte. \n\n20 ans d'expérience, dont :\n- Architecte Java\n- Développeur Angular\n- Chef de projet\n- ScrumMaster\n- Evaluateur CMMi\n- Responsable Méthodes & Outils" - }, { "key": "liliia_abdulina", "name": "Liliia Abdulina", @@ -1788,19 +1792,19 @@ }, { "key": "room1", - "label": "Grand amphi." + "label": "#1" }, { "key": "room2", - "label": "Grande salle" + "label": "#2" }, { "key": "room3", - "label": "Salle du haut" + "label": "#3" }, { "key": "room4", - "label": "Petite salle" + "label": "#4" } ], "slots": [ @@ -2088,7 +2092,7 @@ }, { "slot": "slot-1", - "talk": "_numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_" + "talk": "the_rise_of_the_web" }, { "slot": "pause-2", @@ -2096,7 +2100,7 @@ }, { "slot": "slot-2", - "talk": "_votre_api_web_passe_t_elle_le_controle_technique__" + "talk": "l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus" }, { "slot": "pause-3", @@ -2104,7 +2108,7 @@ }, { "slot": "slot-3", - "talk": "a_la_decouverte_de_la_realite_augmentee_avec_arcore" + "talk": "webgpu__next_generation_3d_graphics_on_the_web" }, { "slot": "slot-lt-1", @@ -2116,11 +2120,11 @@ }, { "slot": "slot-lt-2", - "talk": "10_est_une_puissance_de_2" + "talk": "_47_ans___ils_nont_toujours_pas_remarque__" }, { "slot": "slot-4", - "talk": "allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_" + "talk": "rust__webassembly__and_the_future_of_serverless" }, { "slot": "pause-4", @@ -2128,7 +2132,7 @@ }, { "slot": "slot-5", - "talk": "authentication_authorization_starters_battle" + "talk": "le_design_de_l_erreur" }, { "slot": "pause-5", @@ -2136,7 +2140,7 @@ }, { "slot": "slot-6", - "talk": "brace_yourself__vanilla_is_coming__back__" + "talk": "monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques" }, { "slot": "pause-6", @@ -2144,7 +2148,7 @@ }, { "slot": "slot-7", - "talk": "comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch" + "talk": "_votre_api_web_passe_t_elle_le_controle_technique__" }, { "slot": "keynote-close", @@ -2159,9 +2163,13 @@ { "room": "room2", "slots": [ + { + "slot": "keynote-open", + "talk": "keynote_open_overflow" + }, { "slot": "slot-1", - "talk": "de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne" + "talk": "a_kotlin_multiplatform_evolution" }, { "slot": "pause-2", @@ -2169,7 +2177,7 @@ }, { "slot": "slot-2", - "talk": "devops_at_scale" + "talk": "le_burn_out_agile" }, { "slot": "pause-3", @@ -2177,19 +2185,11 @@ }, { "slot": "slot-3", - "talk": "four_diseases" - }, - { - "slot": "pause-4", - "talk": "__pause" - }, - { - "slot": "slot-4", - "talk": "introduction_a_la_programmation_par_contraintes" + "talk": "_numerique_et_environnement__ou__on_aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_" }, { "slot": "slot-lt-1", - "talk": "_47_ans___ils_nont_toujours_pas_remarque__" + "talk": "machine_learning_avec_des_allumettes_et_des_cotillons" }, { "slot": "lunch", @@ -2197,11 +2197,19 @@ }, { "slot": "slot-lt-2", - "talk": "un_distributeur_automatique_d_argent_de_poche_pour_les_enfants" + "talk": "applications_de_brainfuck__langage_minimaliste_mais_turing_complet" + }, + { + "slot": "slot-4", + "talk": "live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__" + }, + { + "slot": "pause-4", + "talk": "__pause" }, { "slot": "slot-5", - "talk": "l_histoire_de_la_decouverte_d_une_backdoor_signe_oneplus" + "talk": "the_freedom_of_static_typing" }, { "slot": "pause-5", @@ -2209,7 +2217,7 @@ }, { "slot": "slot-6", - "talk": "le_burn_out_agile" + "talk": "authentication_authorization_starters_battle" }, { "slot": "pause-6", @@ -2217,7 +2225,11 @@ }, { "slot": "slot-7", - "talk": "le_design_de_l_erreur" + "talk": "mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur" + }, + { + "slot": "keynote-close", + "talk": "keynote_close_overflow" } ] }, @@ -2226,7 +2238,7 @@ "slots": [ { "slot": "slot-1", - "talk": "live_coding_musical___vous_savez_coder___devenez_compositeur_avec_webaudio_et_webmidi__" + "talk": "quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux" }, { "slot": "pause-2", @@ -2234,7 +2246,7 @@ }, { "slot": "slot-2", - "talk": "modern_forms_in_react" + "talk": "rust_as_a_high_level_langage" }, { "slot": "pause-3", @@ -2242,19 +2254,11 @@ }, { "slot": "slot-3", - "talk": "mon_p____de_voyant_moteur_est_encore_allume___comment_debugger_mon_moteur___plongeon_dans_les_entrailles_des_calculateurs_moteur" - }, - { - "slot": "pause-4", - "talk": "__pause" - }, - { - "slot": "slot-4", - "talk": "monitoring_ovh__300k_serveurs__27_dcs_une_plateforme_de_metriques" + "talk": "allo_paris__ici_san_francisco__et_si_on_codait_ensemble_avec_vs_code_" }, { "slot": "slot-lt-1", - "talk": "applications_de_brainfuck__langage_minimaliste_mais_turing_complet" + "talk": "le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard" }, { "slot": "lunch", @@ -2262,11 +2266,19 @@ }, { "slot": "slot-lt-2", - "talk": "developpeurs_en_reconversion__developpeurs_quand_meme__" + "talk": "un_distributeur_automatique_d_argent_de_poche_pour_les_enfants" + }, + { + "slot": "slot-4", + "talk": "le_jaillissement_de_l_esprit" + }, + { + "slot": "pause-4", + "talk": "__pause" }, { "slot": "slot-5", - "talk": "premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core" + "talk": "comprendre_le_role_du_noyau_d_un_systeme_d_exploitation_en_creant_un_from_scratch" }, { "slot": "pause-5", @@ -2274,7 +2286,7 @@ }, { "slot": "slot-6", - "talk": "quand_les_rates_des_ias_nous_renvoient_a_nos_propres_biais_societaux" + "talk": "devops_at_scale" }, { "slot": "pause-6", @@ -2282,7 +2294,7 @@ }, { "slot": "slot-7", - "talk": "rockin_in_the_angular_world" + "talk": "modern_forms_in_react" } ] }, @@ -2291,7 +2303,7 @@ "slots": [ { "slot": "slot-1", - "talk": "rust__webassembly__and_the_future_of_serverless" + "talk": "a_la_decouverte_de_la_realite_augmentee_avec_arcore" }, { "slot": "pause-2", @@ -2299,7 +2311,7 @@ }, { "slot": "slot-2", - "talk": "rust_as_a_high_level_langage" + "talk": "rockin_in_the_angular_world" }, { "slot": "pause-3", @@ -2307,19 +2319,11 @@ }, { "slot": "slot-3", - "talk": "the_freedom_of_static_typing" - }, - { - "slot": "pause-4", - "talk": "__pause" - }, - { - "slot": "slot-4", - "talk": "the_rise_of_the_web" + "talk": "premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core" }, { "slot": "slot-lt-1", - "talk": "le_troll_dans_ta_machine_____une_courte_introduction_a_la_pensee_de_jean_yves_girard" + "talk": "developpeurs_en_reconversion__developpeurs_quand_meme__" }, { "slot": "lunch", @@ -2327,11 +2331,19 @@ }, { "slot": "slot-lt-2", - "talk": "machine_learning_avec_des_allumettes_et_des_cotillons" + "talk": "10_est_une_puissance_de_2" + }, + { + "slot": "slot-4", + "talk": "de_java_a_un_executable_natif___graalvm_et_quarkus_changent_la_donne" + }, + { + "slot": "pause-4", + "talk": "__pause" }, { "slot": "slot-5", - "talk": "a_kotlin_multiplatform_evolution" + "talk": "brace_yourself__vanilla_is_coming__back__" }, { "slot": "pause-5", @@ -2339,7 +2351,7 @@ }, { "slot": "slot-6", - "talk": "webgpu__next_generation_3d_graphics_on_the_web" + "talk": "four_diseases" }, { "slot": "pause-6", @@ -2347,7 +2359,7 @@ }, { "slot": "slot-7", - "talk": "le_jaillissement_de_l_esprit" + "talk": "introduction_a_la_programmation_par_contraintes" } ] }, diff --git a/static/images/speakers/cedric_moulard.jpg b/static/images/speakers/cedric_moulard.jpg new file mode 100644 index 0000000..fcef9b1 Binary files /dev/null and b/static/images/speakers/cedric_moulard.jpg differ diff --git a/static/schedule/schedule.ics b/static/schedule/schedule.ics index 023eb41..0affeff 100644 --- a/static/schedule/schedule.ics +++ b/static/schedule/schedule.ics @@ -5,76 +5,64 @@ X-WR-CALDESC:DevFest Toulouse 2019 X-WR-CALNAME:DevFest Toulouse 2019 X-WR-TIMEZONE:Europe/Paris BEGIN:VEVENT -DESCRIPTION:Le numérique fait-il partie du problème ou de la solution quand - on parle de réchauffement climatique ?\n\n5 milliards de smartphones en ci - rculation en 2020\, ça représente quoi en consommation énergétique\, en gaz - à effet de serre\, en pollution chimique ?\n\nLe streaming illimité à 10 e - uros par mois c'est le pied mais aujourd'hui Netflix a à peu près l'emprein - te carbone du plus gros cimentier mondial\, qui va payer la facture environ - nementale ?\n\nTous les mails de votre vie (que vous ne lirez plus jamais) - disponibles sur Gmail\, très utile\, mais après 2020 on ne saura peut-être - plus produire industriellement les équipements nécessaires à leur stockage. - \n\nOn arrive dans "l'âge des limites"\, pour le numérique comme pour le re - ste. Quels sont les leviers pour basculer vers un numérique durable ?\n\nEt - si malgré tout on décidait de s'en foutre ? 2 degrés en plus\, c'est juste - un pull en moins non ? Non. Par contre c'est 30% en moins sur les rendemen - ts agricoles pour ... 30 % de population en plus en 2050. En 1970\, Dennis - Meadows modélisait sur les ordinateurs du MIT un crash du système planétair - e pour les décennies 2020-2030. Pour l'instant\, c'est cette trajectoire qu - e notre monde suit. +DESCRIPTION:Il y a 20 ans\, personne de **sobre** n’aurait utilisé Javascri + pt pour autre chose que des étoiles filantes qui sortent de ta souris. Non\ + , à l'époque\, on préférait les serveurs d'application en Java! \nAujourd’ + hui\, non seulement on a des frameworks front\, mais il y a même des hipste + rs qui font du backend avec... Et depuis\, on fait des APIs. \n**Comment e + n est-on arrivé là?** \nC’est ça inspecteur. C’est ça la bonne question.\n + \nSi tu ne les as pas vécus\, viens découvrir l'arrivée du Web\, l'histoire + de Netscape\, la browser-war\, la naissance du serveur d'application\, les + débuts du web dynamique et la prise d'assaut du JS.\n\nSit back\, relax\, + and Enjoy! DTSTART:20191003T100000 DURATION:PT40M -LOCATION:Grand amphi. -SUMMARY:"Numérique et environnement" ou "On aurait pu sauver les abeilles\, - on a préféré sortir un nouvel iPhone" -UID:zDbtrtvdLPG1okj07wyI -URL:https://devfesttoulouse.fr/sessions/_numerique_et_environnement__ou__on - _aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_ +LOCATION:#1 +SUMMARY:The rise of the web +UID:0MXH99V8NY9xyeurYCmA +URL:https://devfesttoulouse.fr/sessions/the_rise_of_the_web TRANSP:TRANSPARENT -CATEGORIES:wtf +CATEGORIES:web END:VEVENT BEGIN:VEVENT -DESCRIPTION:Nous savons tous développer une API mais avons-nous tous bien i - ntégré les problématiques d'environnements et de cycles logiciels multiples - ? L'opérabilité\, la gouvernance\, le versioning\, la traçabilité\, la séc - urité — et bien plus encore — de ces API web une fois en production ?\n\nDu - rant ce talk\, c'est plusieurs dizaines de points d'attentions rarement évo - qué que je vous propose d'aborder\, à la lumière de retours d'expériences p - rovenant de chez Uber\, Stripe\, Facebook\, ... +DESCRIPTION:## Résumé\nEn Novembre 2017\, j'ai découvert "une backdoor" dan + s tout les téléphones de la marque Oneplus. A l'aide d'une simple ligne de + commande\, un attaquant ayant un accès physique au téléphone\, pouvait deve + nir root et ainsi obtenir un contrôle total du téléphone de la victime.\n\n + ## Détails\nDans ce talk\, j'expliquerai le processus qui m'a permit de fai + re cette découverte:\n1. Extraction du build\n2. Récupération des applicati + ons dites "systèmes"\n3. Détection de la vulnérabilité dans l'application A + ndroid "EngineeringMode"\n4. Exploitation de la vulnérabilité\n\n## Sujet a + bordés\nLors de la détection et l'analyse de cette faille nous aborderons l + a philosophie du **hacking**\, comment faire du **reverse engineering** sur + des applications **Android** et une **librairie native**. Nous analyserons + du **Java** ainsi que du **C** \n\n## Categorie\nNative mobile apps\n\n## + Format\nUne conférence de 40 min DTSTART:20191003T110000 DURATION:PT40M -LOCATION:Grand amphi. -SUMMARY:⛳️ Votre API web passe-t-elle le contrôle technique ? -UID:Gxr3XZR1HEu14tbneJLb -URL:https://devfesttoulouse.fr/sessions/_votre_api_web_passe_t_elle_le_cont - role_technique__ +LOCATION:#1 +SUMMARY:L'histoire de la découverte d'une backdoor signé Oneplus +UID:Kwery1cbJrx3ZFj6x1JU +URL:https://devfesttoulouse.fr/sessions/l_histoire_de_la_decouverte_d_une_b + ackdoor_signe_oneplus TRANSP:TRANSPARENT -CATEGORIES:method___tools +CATEGORIES:native_mobile_apps END:VEVENT BEGIN:VEVENT -DESCRIPTION:Avec les annonces de l'arrivée de la réalité augmentée (ou RA) - dans Google Maps et Google Search sur Android lors de Google IO 2019\, nou - s constatons que la RA va prendre une place de plus en plus importante dans - notre quotidien. La sortie d'ARCore en mars 2018 sur Android a simplifié l - e développement d’application en RA sur Android.\n\nAu cours de cette sessi - on\, nous vous proposons de découvrir ARCore\, via l’utilisation dans un na - vigateur\, des applications natives ou des moteurs 3D comme Unity ainsi que - les CloudAnchors qui permettent la persistance et le partage de positions - d’objets dans les scènes de réalité augmentée\, y compris avec des utilisat - eurs d’iOS.\n\nAprès une initiations aux concepts liés à la RA (meshes\, 6 - DoF\,...)\, nous présenterons les différentes fonctionnalités d’ARCore. Nou - s discuterons aussi des différentes approches d’utilisation\, de leurs limi - tations et avantages au travers d'une application de cartographie 3D en réa - lité augmentée. +DESCRIPTION:This talk will give an overview of the WebGPU API that will pro + vide modern features such as “GPU compute” on the Web as well as lower over + head access to GPU hardware and better\, more predictable performance. This + will allow for much more graphically intensive games on the Web and boost + performance of frameworks like Tensorflow.js up to 10x. DTSTART:20191003T120000 DURATION:PT40M -LOCATION:Grand amphi. -SUMMARY:A la découverte de la réalité augmentée avec ARCore -UID:qXAvodXoMK3db8ZLcVwb -URL:https://devfesttoulouse.fr/sessions/a_la_decouverte_de_la_realite_augme - ntee_avec_arcore +LOCATION:#1 +SUMMARY:WebGPU: Next-generation 3D Graphics on the Web +UID:5qTyscBWtXLRb04TXEdB +URL:https://devfesttoulouse.fr/sessions/webgpu__next_generation_3d_graphics + _on_the_web TRANSP:TRANSPARENT -CATEGORIES:native_mobile_apps +CATEGORIES:web END:VEVENT BEGIN:VEVENT DESCRIPTION:Qui ne s’est jamais fait manipulé ? Évidemment\, on est tous al @@ -87,7 +75,7 @@ DESCRIPTION:Qui ne s’est jamais fait manipulé ? Évidemment\, on est tous al (voir même manipuler les autres). DTSTART:20191003T125000 DURATION:PT15M -LOCATION:Grand amphi. +LOCATION:#1 SUMMARY:3 techniques faciles de manipulation UID:zVUXQkHQtSiGJeIwVd05 URL:https://devfesttoulouse.fr/sessions/3_techniques_faciles_de_manipulatio @@ -96,254 +84,134 @@ TRANSP:TRANSPARENT CATEGORIES:wtf END:VEVENT BEGIN:VEVENT -DESCRIPTION:Le code barre est une invention qui a radicalement modifié nos - sociétés. Sans elle\, pas d'inventaire efficace\, de supermarchés ou de ven - te en ligne.\n\nMais comment coder les chiffres de façon fiable avec des pe - tites barres noires et blanches ? Quand les contraintes matérielles empêche - nt d'utiliser le binaire\, l'ingéniosité et un peu de chance ont permis de - créer ce produit\, maintenant présent partout.\n\n\nNous découvrirons les d - étails de ce codage\, et comment il pourrait même contenir davantage d'info - rmations. +DESCRIPTION:L’âgisme dans les fonctions IT\, et en particulier dans le Déve + loppement Soft\, est incontournable.\n\nLes « vieux » n’ont décidément pas + la cote\, le marché de l'emploi des softeux cinquantenaires en est la preuv + e !\nPourtant\, codage et sénioritude semblent loin d'être incompatibles.\n + \n- Alors quels préjugés peuvent en être la cause ?\n- L’avance rapide de l + a technologie numérique est-elle incompatible avec le ralentissement biolog + ique ?\n- Les cheveux gris sont-ils un Handicap pour la Sécurité de l’Info + ?\n- Le Cloud doit-il être « Arthrose-free » ?\n\nEt surtout\, comment se f + ait-il qu’à 47 ans je vienne d’intégrer l’équipe Devops & Tools de Continen + tal Digital Services et que personne ne m’ait encore rien dit ? DTSTART:20191003T140500 DURATION:PT15M -LOCATION:Grand amphi. -SUMMARY:10 est une puissance de 2 -UID:jABRUDzqext8Rx8CmA4j -URL:https://devfesttoulouse.fr/sessions/10_est_une_puissance_de_2 +LOCATION:#1 +SUMMARY:« 47 ans : ils n’ont toujours pas remarqué … » +UID:pY6MCQBMfIYlIKfHdhL4 +URL:https://devfesttoulouse.fr/sessions/_47_ans___ils_nont_toujours_pas_rem + arque__ TRANSP:TRANSPARENT CATEGORIES:wtf END:VEVENT BEGIN:VEVENT -DESCRIPTION:Vous aimez VS Code car il est simple\, intuitif et qu'il fait c - e que vous lui demandez. \nMais saviez-vous que vous pouviez coder à plus - ieurs dans VS Code? et même permettre à une personne tierce de jouer avec v - otre débugger depuis l'autre bout du monde? Saviez-vous que vous pouviez av - oir un client slack dans VS Code\, et même un chat audio? \nEt avez-vous e - xploré toutes les possibilités que VS Code offre quand vous utilisez github - ? \nNous verrons dans ce talk tout ce qui fait de VS Code l'éditeur de cod - e parfait pour faire du code collaboratif. +DESCRIPTION:A lot of things have been said about WebAssembly inside of the\ + nbrowser\; after all\, that's why it was originally created. But a new\ncas + e is emerging as well\, and that's WebAssembly on the server. More\nspecifi + cally\, we're seeing a rise of support for WebAssembly in\nserverless appli + cation platforms\, combining two brand-new technologies\ntogether. We're al + so seeing a lot of growth of the Rust programming\nlanguage\, and its close + alignment with WebAssembly. In this talk\,\nSteve will talk about Rust\, W + ebAssembly\, serverless technologies\, and\nhow it all fits together. DTSTART:20191003T143000 DURATION:PT40M -LOCATION:Grand amphi. -SUMMARY:Allo Paris\, ici San Francisco. Et si on codait ensemble avec VS Co - de? -UID:Cej88MtlRVZrJRK0FJ2p -URL:https://devfesttoulouse.fr/sessions/allo_paris__ici_san_francisco__et_s - i_on_codait_ensemble_avec_vs_code_ +LOCATION:#1 +SUMMARY:Rust\, WebAssembly\, and the future of Serverless +UID:2S9XtGGq3ouHnkivEDKC +URL:https://devfesttoulouse.fr/sessions/rust__webassembly__and_the_future_o + f_serverless TRANSP:TRANSPARENT -CATEGORIES:method___tools +CATEGORIES:cloud___infra END:VEVENT BEGIN:VEVENT -DESCRIPTION:When you start a brand new app or service\, you need to think a - bout how you will manage authentication and permissions. But if you are lik - e everyone else\, you genuinely do not want to actually think about this. I - f someone else could do that for you\, life would be great. And this has ac - tually happened\, you have the choice between several boilerplate projects - or authentication/authorization libraries. In fact\, you have a lot of opti - ons. Which one to choose? Let's have a closer look to them!\n\nAt the end o - f this talk\, you will have a good overview of the common existing solution - s and their benefits. +DESCRIPTION:Nos systèmes sont designés de manière optimiste\, de la gestion + technique des erreurs à la modélisation de nos interfaces. \nQue ce soit + les codes d'erreurs\, les exceptions ou les modélisations plus avancées\, e + lles servent pour arrêter un traitement et _potentiellement_ afficher un me + ssage d'information à un utilisateur.\n\nMais avec les architectures micros + ervices\, la distribution des traitements ou une simple volonté de résilien + ce\, la gestion des erreurs est devenue un enjeu important de tous les syst + èmes afin qu’ils restent accessibles de tous\, tout le temps tout en mainte + nant le système dans un état cohérent.\n\nQue fait-on lorsqu’une erreur int + ervient ? Peut-on compenser voire gérer l’erreur depuis le système pour l’u + tilisateur ?\n\nLa réponse a ces questions se trouvent autant dans la défin + ition du produit que dans le choix technique.\nUn outil bien conçu est un o + util intelligent qui peut faire les bons choix au bon moment pour l'utilisa + teur. Et si on apprenait ensemble à concevoir nos erreurs ? DTSTART:20191003T153000 DURATION:PT40M -LOCATION:Grand amphi. -SUMMARY:Authentication/Authorization Starters Battle -UID:6E03tbU6L5w0IyjMi7yF -URL:https://devfesttoulouse.fr/sessions/authentication_authorization_starte - rs_battle +LOCATION:#1 +SUMMARY:Le design de l'erreur +UID:pAMZmFT2wrfqPr9IdeXv +URL:https://devfesttoulouse.fr/sessions/le_design_de_l_erreur TRANSP:TRANSPARENT CATEGORIES:method___tools END:VEVENT BEGIN:VEVENT -DESCRIPTION:Dans un monde de saveurs complexes et sofistiquées\, la guerre - du toping fait rage chez les crèmes glacées du Web ! Face au champs de bata - il\, les pronostiques vont bon train pour savoir qui l’emportera entre le c - runchy Angulaire\, le fondant Reactifs et le décoratif Vue.\n\nDurant ce te - mps\, loin de ces vicissitudes\, la petite saveur basique vanille fait son - bonhomme de chemin. S’agirait-il du héro de la légende\, succeptible de ren - verser le destin de ce monde sans heurts ?\n\nSache\, voyageur\, qu’elle es - t déjà passée par nos contrées. Laisse moi te raconter comment elle nous a - permis de renverser notre vieux roi\, et tu saura enfin ce qui se prépare p - our ton royaume. +DESCRIPTION:Comment faire quand on doit faire le suivi de toute l'infrastru + cture du plus grand fournisseur de cloud Européen ? Comment choisir un out + il quand les plus populaires ne tient pas la marée à cette échèle ? Commen + t construire une plateforme Metrics pour unifier\, concilier et remplacer d + es années de legacy fragmenté et des solutions partielles ?\n\nDans ce talk + nous racontons notre expérience sur la construction et la maintenance d'OV + H Metrics\, la plateforme utilisée pour monitorer toute l'infrastructure OV + H. Nous avions besoin d'aller à des endroits ou la plupart de solutions de + monitoring ne sont jamais allées\, opérer à l'échelle du plus grand fournis + seur Européen de cloud et hosting : 27 data centers\, plus de 300k serveurs + (physiques !) et des centaines de produits pour accomplir notre mission av + ec nos 1\,3 millions de clients.\n\nVenez pour entendre cette histoire de s + éries temporelles\, de solutions open-sources poussées à l'extreme\, de clu + sters HBase opérés en limite de capacité\, et de comment une petite équipe + s'est appuyé sur une poignée de solutions open-source et une bonne dose d + e code maison pour construire une des solutions de monitoring les plus perf + ormantes au monde. DTSTART:20191003T163000 DURATION:PT40M -LOCATION:Grand amphi. -SUMMARY:Brace yourself\, 🍦Vanilla is coming … back 🕶! -UID:rJDTMZMYX57DCKYhW09c -URL:https://devfesttoulouse.fr/sessions/brace_yourself__vanilla_is_coming__ - back__ +LOCATION:#1 +SUMMARY:Monitoring OVH: 300k serveurs\, 27 DCs une plateforme de métriques +UID:xwAvvIJJfDdBD7N4oGa5 +URL:https://devfesttoulouse.fr/sessions/monitoring_ovh__300k_serveurs__27_d + cs_une_plateforme_de_metriques TRANSP:TRANSPARENT -CATEGORIES:web +CATEGORIES:big_data___ml___ai END:VEVENT BEGIN:VEVENT -DESCRIPTION:Programmer le noyau d'un système d'exploitation est un très bon - moyen pour en comprendre le fonctionnement et le scope de son travail (IO\ - , gestion de la mémoire\, etc).\nCette présentation a pour but de présenter - et de développer les composants élémentaires d'un micro noyau UNIX.\n\nDan - s ce talk je présenterai:\n- L'émulateur QEMU\n- La réalisation d'un secteu - r de boot avec une micro console\n- Comment gérer les interruptions hardwar - e (clavier) et software\n- La gestion des appels systèmes\n- Un système mul - ti-process simple qui va permettre de découvrir le surcoût des changements - de contexte liés à la programmation concurrentielle +DESCRIPTION:Nous savons tous développer une API mais avons-nous tous bien i + ntégré les problématiques d'environnements et de cycles logiciels multiples + ? L'opérabilité\, la gouvernance\, le versioning\, la traçabilité\, la séc + urité — et bien plus encore — de ces API web une fois en production ?\n\nDu + rant ce talk\, c'est plusieurs dizaines de points d'attentions rarement évo + qué que je vous propose d'aborder\, à la lumière de retours d'expériences p + rovenant de chez Uber\, Stripe\, Facebook\, ... DTSTART:20191003T173000 DURATION:PT40M -LOCATION:Grand amphi. -SUMMARY:Comprendre le rôle du noyau d'un système d'exploitation en créant u - n from scratch -UID:tOexEcqeKEztPbNmR4JT -URL:https://devfesttoulouse.fr/sessions/comprendre_le_role_du_noyau_d_un_sy - steme_d_exploitation_en_creant_un_from_scratch +LOCATION:#1 +SUMMARY:⛳️ Votre API web passe-t-elle le contrôle technique ? +UID:Gxr3XZR1HEu14tbneJLb +URL:https://devfesttoulouse.fr/sessions/_votre_api_web_passe_t_elle_le_cont + role_technique__ TRANSP:TRANSPARENT -CATEGORIES:cloud___infra +CATEGORIES:method___tools END:VEVENT BEGIN:VEVENT -DESCRIPTION:Les microservices\, la scalabilité instantanée et les plates-fo - rmes à haute densité comme Kubernetes nécessitent des applications à faible - empreinte mémoire et démarrage rapide. Java n'était pas bien positionné ca - r il favorise les temps de traitement aux dépens du CPU et de la RAM.\n\nPl - us maintenant.\n\nEntre en scène Quarkus\, une stack Java orientée microser - vices qui supporte vos composants favoris (Hibernate\, Vert.x\, Camel\, RES - TEasy ...) sur GraalVM et HotSpot avec une faible empreinte mémoire et un d - émarrage rapide. Tout ce qu'il faut pour tirer pleinement parti des contain - ers.\n\nLa gestion de la donnée est souvent l'aspect le plus complexe : déc - ouvrons comment Quarkus gère la persistance avec Hibernate ORM. Venez explo - rer le live reload\, notre vision de la persistance avec Hibernate Panache\ - , l'indexation full text avec Hibernate Search\, l'environnement de test\, - la compilation native GraalVM et bien plus. Quarkus se vit plus qu'il ne se - verbalise\, attendez-vous à une démo détaillée. +DESCRIPTION:Have you heard of the code-sharing feature in Kotlin\, accompan + ied with "Write once\, run everywhere" slogan? Among its users not only lib + raries and frameworks authors\; there are some projects which have already + adopted multiplatform for production. Their applications\, written in Kotli + n for *both* iOS and Android\, are published in stores. \nWith this talk\, + you'll get a brief overview of the evolution of multiplatform technology in + Kotlin\, concerning the tasks it's evolved to solve. How it was and how it + is expected to be\; what has changed and which tasks can be already solved + with it. What are the facilities right now and which real projects already + use multiplatform? DTSTART:20191003T100000 DURATION:PT40M -LOCATION:Grande salle -SUMMARY:De Java à un exécutable natif : GraalVM et Quarkus changent la donn - e -UID:Qy836EfpA0wC4M6jYcTk -URL:https://devfesttoulouse.fr/sessions/de_java_a_un_executable_natif___gra - alvm_et_quarkus_changent_la_donne -TRANSP:TRANSPARENT -CATEGORIES:method___tools -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:DevOps is everywhere\, and every new or existing project is at - least considering to follow its principles. While implementing DevOps for s - ingle projects become more and more straightforward\, it's still a challeng - e to have a coherent DevOps approach at Enterprise level.\n\nLet's dig in w - hat it takes to achieve DevOps in large companies\, with Airbus as an examp - le. -DTSTART:20191003T110000 -DURATION:PT40M -LOCATION:Grande salle -SUMMARY:DevOps at scale -UID:aOHds477R7FiM3cnWAXp -URL:https://devfesttoulouse.fr/sessions/devops_at_scale -TRANSP:TRANSPARENT -CATEGORIES:method___tools -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:How a developer can tell if the system is sick just by taking a - look at the input and the output? If you'd like to know that (plus you lik - e standup comedy)\, come an see! The treatment is safe \;-)\n\nOne approach - to get familiar with a system is a long and intense reading the manual (an - d to run an eye over the source code sometimes). Another approach is to tak - e a deep dive into the data model (often in the DB) and to surf the user in - terface. Both are natural ends of the system\, the legendary Input and Outp - ut. By examining these ends one can check if there's good digestion or if g - uts are rotten. Careful examination can confirm "common DDDosis"\, "maligna - nt stringosis"\, "regex diarrhoea" or "not-made-here syndrome".\nUnfortunat - ely\, sometimes developers get infected in their prenatal life (meaning: at - their university). Let me invite you to treatment. A laxative one. (That i - s: a sequel of "Passwords. Do you keep them safe?") -DTSTART:20191003T120000 -DURATION:PT40M -LOCATION:Grande salle -SUMMARY:Four Diseases -UID:PmoMEVHO3imfUIMXsPai -URL:https://devfesttoulouse.fr/sessions/four_diseases -TRANSP:TRANSPARENT -CATEGORIES:wtf -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:Quel est le point commun entre un jeu de sudoku\, la planificat - ion d'une conférence et les déplacements d'un commercial ?\n\nQuand on souh - aite les traiter automatiquement\, tous ces problèmes peuvent être résolus - par un solveur de contraintes. Dans ce talk\, je vais essayer de vous faire - une introduction pratique à la programmation par contraintes\, en présenta - nt les concepts de base\, puis en les mettant en application avec plusieurs - exemples de problèmes connus de tout le monde (ou presque)\, pour finir pa - r un cas plus complexe sur lequel je travaille actuellement. -DTSTART:20191003T143000 -DURATION:PT40M -LOCATION:Grande salle -SUMMARY:Introduction à la programmation par contraintes -UID:iU4EzEThVDvpaHDsGjOO -URL:https://devfesttoulouse.fr/sessions/introduction_a_la_programmation_par - _contraintes -TRANSP:TRANSPARENT -CATEGORIES:big_data___ml___ai -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:L’âgisme dans les fonctions IT\, et en particulier dans le Déve - loppement Soft\, est incontournable.\n\nLes « vieux » n’ont décidément pas - la cote\, le marché de l'emploi des softeux cinquantenaires en est la preuv - e !\nPourtant\, codage et sénioritude semblent loin d'être incompatibles.\n - \n- Alors quels préjugés peuvent en être la cause ?\n- L’avance rapide de l - a technologie numérique est-elle incompatible avec le ralentissement biolog - ique ?\n- Les cheveux gris sont-ils un Handicap pour la Sécurité de l’Info - ?\n- Le Cloud doit-il être « Arthrose-free » ?\n\nEt surtout\, comment se f - ait-il qu’à 47 ans je vienne d’intégrer l’équipe Devops & Tools de Continen - tal Digital Services et que personne ne m’ait encore rien dit ? -DTSTART:20191003T125000 -DURATION:PT15M -LOCATION:Grande salle -SUMMARY:« 47 ans : ils n’ont toujours pas remarqué … » -UID:pY6MCQBMfIYlIKfHdhL4 -URL:https://devfesttoulouse.fr/sessions/_47_ans___ils_nont_toujours_pas_rem - arque__ -TRANSP:TRANSPARENT -CATEGORIES:wtf -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:Avec mon épouse nous avons commencer à donner de l'argent de po - che à nos enfants.\n\n![Calvin et l'argent de poche](https://i.pinimg.com/o - riginals/ad/47/94/ad47940ca35ce4bd5122a916abf9f589.png)\n\nPour qu'ils puis - sent faire comme les grands (et parce que c'est fun aussi :D) j'ai conçu un - DAAP (**D**istributeur **A**utomatique d'**A**rgent de **P**oche) qui leur - permet\, le jour de la distribution de l'argent de poche\, d'insérer leur - "carte bleue"\, saisir leur code et de voir la machine s'ébranler pour dis - tribuer les pièces.\n\nDans ce talk on parlera d'Arduino\, d'impression 3D\ - , de carte à puce\, d'électronique et des problèmes que j'ai rencontré et c - omment j'ai pu les résoudre. -DTSTART:20191003T140500 -DURATION:PT15M -LOCATION:Grande salle -SUMMARY:Un distributeur automatique d'argent de poche pour les enfants -UID:ZmSIPnuidcxjKLVfEKM8 -URL:https://devfesttoulouse.fr/sessions/un_distributeur_automatique_d_argen - t_de_poche_pour_les_enfants -TRANSP:TRANSPARENT -CATEGORIES:wtf -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:## Résumé\nEn Novembre 2017\, j'ai découvert "une backdoor" dan - s tout les téléphones de la marque Oneplus. A l'aide d'une simple ligne de - commande\, un attaquant ayant un accès physique au téléphone\, pouvait deve - nir root et ainsi obtenir un contrôle total du téléphone de la victime.\n\n - ## Détails\nDans ce talk\, j'expliquerai le processus qui m'a permit de fai - re cette découverte:\n1. Extraction du build\n2. Récupération des applicati - ons dites "systèmes"\n3. Détection de la vulnérabilité dans l'application A - ndroid "EngineeringMode"\n4. Exploitation de la vulnérabilité\n\n## Sujet a - bordés\nLors de la détection et l'analyse de cette faille nous aborderons l - a philosophie du **hacking**\, comment faire du **reverse engineering** sur - des applications **Android** et une **librairie native**. Nous analyserons - du **Java** ainsi que du **C** \n\n## Categorie\nNative mobile apps\n\n## - Format\nUne conférence de 40 min -DTSTART:20191003T153000 -DURATION:PT40M -LOCATION:Grande salle -SUMMARY:L'histoire de la découverte d'une backdoor signé Oneplus -UID:Kwery1cbJrx3ZFj6x1JU -URL:https://devfesttoulouse.fr/sessions/l_histoire_de_la_decouverte_d_une_b - ackdoor_signe_oneplus +LOCATION:#2 +SUMMARY:A Kotlin multiplatform evolution +UID:a_kotlin_multiplatform_evolution +URL:https://devfesttoulouse.fr/sessions/a_kotlin_multiplatform_evolution TRANSP:TRANSPARENT -CATEGORIES:native_mobile_apps +CATEGORIES:languages END:VEVENT BEGIN:VEVENT DESCRIPTION:En 2019 le monde de l’informatique n’a que l’agilité à la bouch @@ -363,9 +231,9 @@ DESCRIPTION:En 2019 le monde de l’informatique n’a que l’agilité à la bo historique : l’évolution des pratiques sur les 20 dernières années \n- Pour quoi ce bordel agile ? \n- Finalement l’agilité c’est quoi ? \n- Est-ce qu’ il faut revenir au cycle en V ? -DTSTART:20191003T163000 +DTSTART:20191003T110000 DURATION:PT40M -LOCATION:Grande salle +LOCATION:#2 SUMMARY:Le burn-out agile UID:KAH9Lyx0b2TKNSQVZNw2 URL:https://devfesttoulouse.fr/sessions/le_burn_out_agile @@ -373,28 +241,68 @@ TRANSP:TRANSPARENT CATEGORIES:method___tools END:VEVENT BEGIN:VEVENT -DESCRIPTION:Nos systèmes sont designés de manière optimiste\, de la gestion - technique des erreurs à la modélisation de nos interfaces. \nQue ce soit - les codes d'erreurs\, les exceptions ou les modélisations plus avancées\, e - lles servent pour arrêter un traitement et _potentiellement_ afficher un me - ssage d'information à un utilisateur.\n\nMais avec les architectures micros - ervices\, la distribution des traitements ou une simple volonté de résilien - ce\, la gestion des erreurs est devenue un enjeu important de tous les syst - èmes afin qu’ils restent accessibles de tous\, tout le temps tout en mainte - nant le système dans un état cohérent.\n\nQue fait-on lorsqu’une erreur int - ervient ? Peut-on compenser voire gérer l’erreur depuis le système pour l’u - tilisateur ?\n\nLa réponse a ces questions se trouvent autant dans la défin - ition du produit que dans le choix technique.\nUn outil bien conçu est un o - util intelligent qui peut faire les bons choix au bon moment pour l'utilisa - teur. Et si on apprenait ensemble à concevoir nos erreurs ? -DTSTART:20191003T173000 +DESCRIPTION:Le numérique fait-il partie du problème ou de la solution quand + on parle de réchauffement climatique ?\n\n5 milliards de smartphones en ci + rculation en 2020\, ça représente quoi en consommation énergétique\, en gaz + à effet de serre\, en pollution chimique ?\n\nLe streaming illimité à 10 e + uros par mois c'est le pied mais aujourd'hui Netflix a à peu près l'emprein + te carbone du plus gros cimentier mondial\, qui va payer la facture environ + nementale ?\n\nTous les mails de votre vie (que vous ne lirez plus jamais) + disponibles sur Gmail\, très utile\, mais après 2020 on ne saura peut-être + plus produire industriellement les équipements nécessaires à leur stockage. + \n\nOn arrive dans "l'âge des limites"\, pour le numérique comme pour le re + ste. Quels sont les leviers pour basculer vers un numérique durable ?\n\nEt + si malgré tout on décidait de s'en foutre ? 2 degrés en plus\, c'est juste + un pull en moins non ? Non. Par contre c'est 30% en moins sur les rendemen + ts agricoles pour ... 30 % de population en plus en 2050. En 1970\, Dennis + Meadows modélisait sur les ordinateurs du MIT un crash du système planétair + e pour les décennies 2020-2030. Pour l'instant\, c'est cette trajectoire qu + e notre monde suit. +DTSTART:20191003T120000 DURATION:PT40M -LOCATION:Grande salle -SUMMARY:Le design de l'erreur -UID:pAMZmFT2wrfqPr9IdeXv -URL:https://devfesttoulouse.fr/sessions/le_design_de_l_erreur +LOCATION:#2 +SUMMARY:"Numérique et environnement" ou "On aurait pu sauver les abeilles\, + on a préféré sortir un nouvel iPhone" +UID:zDbtrtvdLPG1okj07wyI +URL:https://devfesttoulouse.fr/sessions/_numerique_et_environnement__ou__on + _aurait_pu_sauver_les_abeilles__on_a_prefere_sortir_un_nouvel_iphone_ TRANSP:TRANSPARENT -CATEGORIES:method___tools +CATEGORIES:wtf +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Dans ce talk je vous montrerai comment expliquer simplement le + fonctionnement de l'apprentissage par renforcement. Pour cela pas besoin d' + ordinateur : quelques allumettes\, des sacs de cotillons et un peu de pédag + ogie sont suffisant pour mettre en évidence les mécanismes intrinsèques de + cette technique et pour aborder les enjeux et les limites des algorithmes d + '"intelligence artificielle" basés sur l'apprentissage. +DTSTART:20191003T125000 +DURATION:PT15M +LOCATION:#2 +SUMMARY:Machine learning avec des allumettes et des cotillons +UID:cnRUAtQNZybQsQa03lAx +URL:https://devfesttoulouse.fr/sessions/machine_learning_avec_des_allumette + s_et_des_cotillons +TRANSP:TRANSPARENT +CATEGORIES:big_data___ml___ai +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Brainfuck est probablement le plus connu des langages de progra + mmation ésotériques. Ses 8 instructions en font un langage Turing-complet a + vec lequel il est théoriquement possible d’écrire n’importe quel programme. + \n\nEt en pratique ? Après une explication du langage (avec 8 instructions + c’est rapide !) on verra comment j’ai utilisé Brainfuck pour les qualificat + ions au concours d’informatique Prologin\, sur un problème de parcours de g + raphes ! +DTSTART:20191003T140500 +DURATION:PT15M +LOCATION:#2 +SUMMARY:Applications de Brainfuck\, langage minimaliste mais Turing-complet +UID:oiZTE4THbAJeaNVlLc03 +URL:https://devfesttoulouse.fr/sessions/applications_de_brainfuck__langage_ + minimaliste_mais_turing_complet +TRANSP:TRANSPARENT +CATEGORIES:wtf END:VEVENT BEGIN:VEVENT DESCRIPTION:Sans nécessiter de formation musicale pointue\, tout développeu @@ -408,9 +316,9 @@ DESCRIPTION:Sans nécessiter de formation musicale pointue\, tout développeu isque la musique c'est aussi des maths\, on parlera de musique générative a vec des chaînes de Markov et des L-Systems.\n\nDavid Guetta n'a qu'à bien s e tenir ! -DTSTART:20191003T100000 +DTSTART:20191003T143000 DURATION:PT40M -LOCATION:Salle du haut +LOCATION:#2 SUMMARY:Live coding musical : vous savez coder ? Devenez compositeur avec W ebAudio et WebMIDI ! UID:WwHpapkCgEg5IMW5vTId @@ -420,34 +328,67 @@ TRANSP:TRANSPARENT CATEGORIES:web END:VEVENT BEGIN:VEVENT -DESCRIPTION:If the new React Context API and Suspense killed Redux (they di - dn't)\, surely Hooks kill the need for a form library\, right? Well\, not e - xactly. Managing form state is more than just holding your current values i - n state\; it's about sync and async validition errors\, and much more! But - that doesn't mean that Hooks are irrelevant to the situation. Hooks make bu - ilding forms in React easier than ever before. -DTSTART:20191003T110000 +DESCRIPTION:It's a common idea: Dynamic typing gives you freedom to do what + ever you want\, but then you suffer mistakes and runtime errors. Static typ + ing limits your freedom\, but it leads to fewer bugs\, even if it's harder + to actually write code.\n\nThis isn't entirely false. Yes\, it can be quite + hard to write a Rust or Haskell program that compiles\, enough that it's a + running gag in their communities. "But once you get it to compile\, it's p + robably correct!"\, the joke goes. On the other hand\, when writing Ruby or + Javascript\, you're free to call functions with all sorts of things\, and + then runtime errors can easily slip into production. That said\, it's not a + s simple as a sliding scale between "freedom" and "safety". Neither of thes + e terms is one-dimensional -- a language feature that restricts your freedo + m in one way can actually free you in different ways.\n\nI'd like to demons + trate some interesting language features in Rust that make it easier to wri + te code and to express concepts compared to dynamic languages. Features tha + t don't just protect you from shooting your foot\, but give you power that' + s only available within the rules and "limitations" of a statically typed l + anguage. Even if you're not familiar with Rust\, I hope to focus the exampl + es on the features themselves rather than on the specifics of the language\ + , so come by and let's talk about being (type-safely) free. +DTSTART:20191003T153000 DURATION:PT40M -LOCATION:Salle du haut -SUMMARY:Modern Forms in React -UID:McfMVcKDdZv68NSo2JIJ -URL:https://devfesttoulouse.fr/sessions/modern_forms_in_react +LOCATION:#2 +SUMMARY:The Freedom of Static Typing +UID:RhWn82dKmICiQulwcVJF +URL:https://devfesttoulouse.fr/sessions/the_freedom_of_static_typing TRANSP:TRANSPARENT -CATEGORIES:web +CATEGORIES:languages END:VEVENT BEGIN:VEVENT -DESCRIPTION:Depuis les années 70 tous les constructeurs autos intégrent des - calculateurs électroniques.\nLes moteurs des voitures modernes sont des sy - stèmes informatiques complexes qui s'appuient sur des dizaines de capteurs. +DESCRIPTION:When you start a brand new app or service\, you need to think a + bout how you will manage authentication and permissions. But if you are lik + e everyone else\, you genuinely do not want to actually think about this. I + f someone else could do that for you\, life would be great. And this has ac + tually happened\, you have the choice between several boilerplate projects + or authentication/authorization libraries. In fact\, you have a lot of opti + ons. Which one to choose? Let's have a closer look to them!\n\nAt the end o + f this talk\, you will have a good overview of the common existing solution + s and their benefits. +DTSTART:20191003T163000 +DURATION:PT40M +LOCATION:#2 +SUMMARY:Authentication/Authorization Starters Battle +UID:6E03tbU6L5w0IyjMi7yF +URL:https://devfesttoulouse.fr/sessions/authentication_authorization_starte + rs_battle +TRANSP:TRANSPARENT +CATEGORIES:method___tools +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Depuis les années 70 tous les constructeurs autos intégrent des + calculateurs électroniques.\nLes moteurs des voitures modernes sont des sy + stèmes informatiques complexes qui s'appuient sur des dizaines de capteurs. .. et du code. \nComment ça fonctionne ? A quoi ressemble ce code et que fa it-il ?\nQu'est-ce qu'il se passe lorsqu'on fait une "reprog" ? \nQu'est-ce que signifie le voyant moteur allumé ? Comment débugger tout ça ?\nSoulevo ns le capot (électronique)\, analysons le matériel mis en oeuvre mais surto ut le logiciel grâce aux sources des calculateurs "Megasquirt" et allons ex plorer la face cachée numérique de nos voitures. -DTSTART:20191003T120000 +DTSTART:20191003T173000 DURATION:PT40M -LOCATION:Salle du haut +LOCATION:#2 SUMMARY:Mon p*** de voyant moteur est encore allumé ! Comment debugger mon moteur ? Plongeon dans les entrailles des calculateurs moteur UID:fW4yvmVxjXb57vQJhIXu @@ -458,96 +399,6 @@ TRANSP:TRANSPARENT CATEGORIES:wtf END:VEVENT BEGIN:VEVENT -DESCRIPTION:Comment faire quand on doit faire le suivi de toute l'infrastru - cture du plus grand fournisseur de cloud Européen ? Comment choisir un out - il quand les plus populaires ne tient pas la marée à cette échèle ? Commen - t construire une plateforme Metrics pour unifier\, concilier et remplacer d - es années de legacy fragmenté et des solutions partielles ?\n\nDans ce talk - nous racontons notre expérience sur la construction et la maintenance d'OV - H Metrics\, la plateforme utilisée pour monitorer toute l'infrastructure OV - H. Nous avions besoin d'aller à des endroits ou la plupart de solutions de - monitoring ne sont jamais allées\, opérer à l'échelle du plus grand fournis - seur Européen de cloud et hosting : 27 data centers\, plus de 300k serveurs - (physiques !) et des centaines de produits pour accomplir notre mission av - ec nos 1\,3 millions de clients.\n\nVenez pour entendre cette histoire de s - éries temporelles\, de solutions open-sources poussées à l'extreme\, de clu - sters HBase opérés en limite de capacité\, et de comment une petite équipe - s'est appuyé sur une poignée de solutions open-source et une bonne dose d - e code maison pour construire une des solutions de monitoring les plus perf - ormantes au monde. -DTSTART:20191003T143000 -DURATION:PT40M -LOCATION:Salle du haut -SUMMARY:Monitoring OVH: 300k serveurs\, 27 DCs une plateforme de métriques -UID:xwAvvIJJfDdBD7N4oGa5 -URL:https://devfesttoulouse.fr/sessions/monitoring_ovh__300k_serveurs__27_d - cs_une_plateforme_de_metriques -TRANSP:TRANSPARENT -CATEGORIES:big_data___ml___ai -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:Brainfuck est probablement le plus connu des langages de progra - mmation ésotériques. Ses 8 instructions en font un langage Turing-complet a - vec lequel il est théoriquement possible d’écrire n’importe quel programme. - \n\nEt en pratique ? Après une explication du langage (avec 8 instructions - c’est rapide !) on verra comment j’ai utilisé Brainfuck pour les qualificat - ions au concours d’informatique Prologin\, sur un problème de parcours de g - raphes ! -DTSTART:20191003T125000 -DURATION:PT15M -LOCATION:Salle du haut -SUMMARY:Applications de Brainfuck\, langage minimaliste mais Turing-complet -UID:oiZTE4THbAJeaNVlLc03 -URL:https://devfesttoulouse.fr/sessions/applications_de_brainfuck__langage_ - minimaliste_mais_turing_complet -TRANSP:TRANSPARENT -CATEGORIES:wtf -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:Ces dernières années\, les "fabriques de dev" et autres formati - ons courtes explosent. C'est un fait\, tout dev a été ou sera amené à trava - iller avec l'un de ces jeunes développeurs.euses. Mais qui sont-ils ? Pourq - uoi une reconversion dans ce genre de d'organisation ? Qu'ont-ils appris lo - rs de leurs formation express ? C'est fiable ce genre de dev ? Comment puis - -je les intégrer au mieux dans ma structure ?\n\nAutant de questions que vo - us vous êtes sans doute déjà posées. Pendant ces 15 minutes\, je vous prése - nterai mon retour d'expérience en tant que développeuse provenant de l'une - de ces écoles de dev et maintenant développeuse Javascript depuis 2 ans au - sein d'une startup Toulousaine. -DTSTART:20191003T140500 -DURATION:PT15M -LOCATION:Salle du haut -SUMMARY:Développeurs en reconversion\, développeurs quand même ! -UID:adcMAUSbsAK27dQJA4Iw -URL:https://devfesttoulouse.fr/sessions/developpeurs_en_reconversion__devel - oppeurs_quand_meme__ -TRANSP:TRANSPARENT -CATEGORIES:wtf -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:De nombreux services en ligne existent pour gérer en toute sécu - rité des appareils IoT à grande échelle : "Azure IoT" de Microsoft et "AWS - IoT" d'Amazon sont parmi les plus connus.\n\nGoogle propose également sa so - lution : "Cloud IoT" basée sur la plate-forme Google Cloud (GCP).\nDans ce - talk\, nous partirons d'un microcontrôleur neuf ultra connu et abordable\, - et notre but sera tout d'abord de découvrir comment écrire du code pour ce - composant nous permettant de récupérer des informations sur notre environne - ment.\nEnsuite\, nous ferons en sorte que ce composant envoie ses données v - ers un service Cloud\, pour enfin découvrir ce que permettent ces solutions - en ligne dédiées à l'IoT.\n\nPour l'exemple\, et parce qu'il faut bien cho - isir une solution\, nous utiliserons Google Cloud IoT Core\, les concepts r - estant similaires sur les autres plate-formes. -DTSTART:20191003T153000 -DURATION:PT40M -LOCATION:Salle du haut -SUMMARY:Premiers pas avec un microcontrôleur et Google Cloud IoT Core -UID:R9O1S7M9oRMmwd0cNBaz -URL:https://devfesttoulouse.fr/sessions/premiers_pas_avec_un_microcontroleu - r_et_google_cloud_iot_core -TRANSP:TRANSPARENT -CATEGORIES:iot -END:VEVENT -BEGIN:VEVENT DESCRIPTION:Un chatbot créé par Microsoft qui dérive avec des propos antisé mites\, Amazon qui scanne des CVs et finit par ne recruter que des hommes b lancs\, des algorithmes de reconnaissance faciale qui ont du mal avec les p @@ -570,9 +421,9 @@ DESCRIPTION:Un chatbot créé par Microsoft qui dérive avec des propos antisé pour expliquer la prise de décision d’un modèle boîte noire (principalement des algorithmes de deep learning) et mettons en garde contre une mauvaise interprétation de ces explications. -DTSTART:20191003T163000 +DTSTART:20191003T100000 DURATION:PT40M -LOCATION:Salle du haut +LOCATION:#3 SUMMARY:Quand les ratés des IAs nous renvoient à nos propres biais sociétau x UID:ZsAGxn6UZi1hfzz2bwR7 @@ -582,46 +433,6 @@ TRANSP:TRANSPARENT CATEGORIES:big_data___ml___ai END:VEVENT BEGIN:VEVENT -DESCRIPTION:_« Make it work\, make it right\, make it fast »_ - Kent Beck\n - \nNous connaissons tous cette citation. Pourtant nous sommes dès fois trop - souvent restés bloqué à l’étape 1 par manque de temps ou de priorisation.\n - \nL’accueil d’un nouveau développeur·euse dans une équipe est un des meille - urs moments pour vérifier qu’une base de code est « saine et scalable ».\n\ - nNous vous proposons dans ce talk un retour d’expérience sur quelques année - s de consulting sur des projets Angular au travers de cas concrets :\n- que - lles sont les mauvaises pratiques à éviter ?\n- quels sont les choix orient - és et assumés d’Angular pour vous éviter tout ça ?\n- quelque soit la taill - e de votre équipe\, l’expérience de vos collègues\, quels sont les princip - es d’architecture à adopter pour améliorer tout ça ? -DTSTART:20191003T173000 -DURATION:PT40M -LOCATION:Salle du haut -SUMMARY:Rockin’ in the Angular World -UID:niiUNFAFhYnPBiOrcDVf -URL:https://devfesttoulouse.fr/sessions/rockin_in_the_angular_world -TRANSP:TRANSPARENT -CATEGORIES:web -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:A lot of things have been said about WebAssembly inside of the\ - nbrowser\; after all\, that's why it was originally created. But a new\ncas - e is emerging as well\, and that's WebAssembly on the server. More\nspecifi - cally\, we're seeing a rise of support for WebAssembly in\nserverless appli - cation platforms\, combining two brand-new technologies\ntogether. We're al - so seeing a lot of growth of the Rust programming\nlanguage\, and its close - alignment with WebAssembly. In this talk\,\nSteve will talk about Rust\, W - ebAssembly\, serverless technologies\, and\nhow it all fits together. -DTSTART:20191003T100000 -DURATION:PT40M -LOCATION:Petite salle -SUMMARY:Rust\, WebAssembly\, and the future of Serverless -UID:2S9XtGGq3ouHnkivEDKC -URL:https://devfesttoulouse.fr/sessions/rust__webassembly__and_the_future_o - f_serverless -TRANSP:TRANSPARENT -CATEGORIES:cloud___infra -END:VEVENT -BEGIN:VEVENT DESCRIPTION:The singe most important feature of Rust is memory safety. Writ ing code with performance of C++\, at a typical development cost\, and with guaranteed absence of certain classes of memory safety related vulnerabili @@ -641,7 +452,7 @@ DESCRIPTION:The singe most important feature of Rust is memory safety. Writ control of error conditions DTSTART:20191003T110000 DURATION:PT40M -LOCATION:Petite salle +LOCATION:#3 SUMMARY:Rust as a High-Level Langage UID:PjQDGsFIQoo1By4Ogv3q URL:https://devfesttoulouse.fr/sessions/rust_as_a_high_level_langage @@ -649,53 +460,24 @@ TRANSP:TRANSPARENT CATEGORIES:languages END:VEVENT BEGIN:VEVENT -DESCRIPTION:It's a common idea: Dynamic typing gives you freedom to do what - ever you want\, but then you suffer mistakes and runtime errors. Static typ - ing limits your freedom\, but it leads to fewer bugs\, even if it's harder - to actually write code.\n\nThis isn't entirely false. Yes\, it can be quite - hard to write a Rust or Haskell program that compiles\, enough that it's a - running gag in their communities. "But once you get it to compile\, it's p - robably correct!"\, the joke goes. On the other hand\, when writing Ruby or - Javascript\, you're free to call functions with all sorts of things\, and - then runtime errors can easily slip into production. That said\, it's not a - s simple as a sliding scale between "freedom" and "safety". Neither of thes - e terms is one-dimensional -- a language feature that restricts your freedo - m in one way can actually free you in different ways.\n\nI'd like to demons - trate some interesting language features in Rust that make it easier to wri - te code and to express concepts compared to dynamic languages. Features tha - t don't just protect you from shooting your foot\, but give you power that' - s only available within the rules and "limitations" of a statically typed l - anguage. Even if you're not familiar with Rust\, I hope to focus the exampl - es on the features themselves rather than on the specifics of the language\ - , so come by and let's talk about being (type-safely) free. +DESCRIPTION:Vous aimez VS Code car il est simple\, intuitif et qu'il fait c + e que vous lui demandez. \nMais saviez-vous que vous pouviez coder à plus + ieurs dans VS Code? et même permettre à une personne tierce de jouer avec v + otre débugger depuis l'autre bout du monde? Saviez-vous que vous pouviez av + oir un client slack dans VS Code\, et même un chat audio? \nEt avez-vous e + xploré toutes les possibilités que VS Code offre quand vous utilisez github + ? \nNous verrons dans ce talk tout ce qui fait de VS Code l'éditeur de cod + e parfait pour faire du code collaboratif. DTSTART:20191003T120000 DURATION:PT40M -LOCATION:Petite salle -SUMMARY:The Freedom of Static Typing -UID:RhWn82dKmICiQulwcVJF -URL:https://devfesttoulouse.fr/sessions/the_freedom_of_static_typing -TRANSP:TRANSPARENT -CATEGORIES:languages -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:Il y a 20 ans\, personne de **sobre** n’aurait utilisé Javascri - pt pour autre chose que des étoiles filantes qui sortent de ta souris. Non\ - , à l'époque\, on préférait les serveurs d'application en Java! \nAujourd’ - hui\, non seulement on a des frameworks front\, mais il y a même des hipste - rs qui font du backend avec... Et depuis\, on fait des APIs. \n**Comment e - n est-on arrivé là?** \nC’est ça inspecteur. C’est ça la bonne question.\n - \nSi tu ne les as pas vécus\, viens découvrir l'arrivée du Web\, l'histoire - de Netscape\, la browser-war\, la naissance du serveur d'application\, les - débuts du web dynamique et la prise d'assaut du JS.\n\nSit back\, relax\, - and Enjoy! -DTSTART:20191003T143000 -DURATION:PT40M -LOCATION:Petite salle -SUMMARY:The rise of the web -UID:0MXH99V8NY9xyeurYCmA -URL:https://devfesttoulouse.fr/sessions/the_rise_of_the_web +LOCATION:#3 +SUMMARY:Allo Paris\, ici San Francisco. Et si on codait ensemble avec VS Co + de? +UID:Cej88MtlRVZrJRK0FJ2p +URL:https://devfesttoulouse.fr/sessions/allo_paris__ici_san_francisco__et_s + i_on_codait_ensemble_avec_vs_code_ TRANSP:TRANSPARENT -CATEGORIES:web +CATEGORIES:method___tools END:VEVENT BEGIN:VEVENT DESCRIPTION:Jean-Yves Girard\, le génial inventeur des indispensables [mont @@ -727,7 +509,7 @@ DESCRIPTION:Jean-Yves Girard\, le génial inventeur des indispensables [mont s\, géométrique de l'intéraction\, etc.). DTSTART:20191003T125000 DURATION:PT15M -LOCATION:Petite salle +LOCATION:#3 SUMMARY:Le troll dans ta machine --- Une courte introduction à la pensée de Jean-Yves Girard UID:hoiS7Cs5sWwXb632pLh2 @@ -737,57 +519,25 @@ TRANSP:TRANSPARENT CATEGORIES:wtf END:VEVENT BEGIN:VEVENT -DESCRIPTION:Dans ce talk je vous montrerai comment expliquer simplement le - fonctionnement de l'apprentissage par renforcement. Pour cela pas besoin d' - ordinateur : quelques allumettes\, des sacs de cotillons et un peu de pédag - ogie sont suffisant pour mettre en évidence les mécanismes intrinsèques de - cette technique et pour aborder les enjeux et les limites des algorithmes d - '"intelligence artificielle" basés sur l'apprentissage. +DESCRIPTION:Avec mon épouse nous avons commencer à donner de l'argent de po + che à nos enfants.\n\n![Calvin et l'argent de poche](https://i.pinimg.com/o + riginals/ad/47/94/ad47940ca35ce4bd5122a916abf9f589.png)\n\nPour qu'ils puis + sent faire comme les grands (et parce que c'est fun aussi :D) j'ai conçu un + DAAP (**D**istributeur **A**utomatique d'**A**rgent de **P**oche) qui leur + permet\, le jour de la distribution de l'argent de poche\, d'insérer leur + "carte bleue"\, saisir leur code et de voir la machine s'ébranler pour dis + tribuer les pièces.\n\nDans ce talk on parlera d'Arduino\, d'impression 3D\ + , de carte à puce\, d'électronique et des problèmes que j'ai rencontré et c + omment j'ai pu les résoudre. DTSTART:20191003T140500 DURATION:PT15M -LOCATION:Petite salle -SUMMARY:Machine learning avec des allumettes et des cotillons -UID:cnRUAtQNZybQsQa03lAx -URL:https://devfesttoulouse.fr/sessions/machine_learning_avec_des_allumette - s_et_des_cotillons -TRANSP:TRANSPARENT -CATEGORIES:big_data___ml___ai -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:Have you heard of the code-sharing feature in Kotlin\, accompan - ied with "Write once\, run everywhere" slogan? Among its users not only lib - raries and frameworks authors\; there are some projects which have already - adopted multiplatform for production. Their applications\, written in Kotli - n for *both* iOS and Android\, are published in stores. \nWith this talk\, - you'll get a brief overview of the evolution of multiplatform technology in - Kotlin\, concerning the tasks it's evolved to solve. How it was and how it - is expected to be\; what has changed and which tasks can be already solved - with it. What are the facilities right now and which real projects already - use multiplatform? -DTSTART:20191003T153000 -DURATION:PT40M -LOCATION:Petite salle -SUMMARY:A Kotlin multiplatform evolution -UID:a_kotlin_multiplatform_evolution -URL:https://devfesttoulouse.fr/sessions/a_kotlin_multiplatform_evolution -TRANSP:TRANSPARENT -CATEGORIES:languages -END:VEVENT -BEGIN:VEVENT -DESCRIPTION:This talk will give an overview of the WebGPU API that will pro - vide modern features such as “GPU compute” on the Web as well as lower over - head access to GPU hardware and better\, more predictable performance. This - will allow for much more graphically intensive games on the Web and boost - performance of frameworks like Tensorflow.js up to 10x. -DTSTART:20191003T163000 -DURATION:PT40M -LOCATION:Petite salle -SUMMARY:WebGPU: Next-generation 3D Graphics on the Web -UID:5qTyscBWtXLRb04TXEdB -URL:https://devfesttoulouse.fr/sessions/webgpu__next_generation_3d_graphics - _on_the_web +LOCATION:#3 +SUMMARY:Un distributeur automatique d'argent de poche pour les enfants +UID:ZmSIPnuidcxjKLVfEKM8 +URL:https://devfesttoulouse.fr/sessions/un_distributeur_automatique_d_argen + t_de_poche_pour_les_enfants TRANSP:TRANSPARENT -CATEGORIES:web +CATEGORIES:wtf END:VEVENT BEGIN:VEVENT DESCRIPTION:Les enfants sont eux-mêmes les bâtisseurs actifs de leurs propr @@ -799,13 +549,263 @@ DESCRIPTION:Les enfants sont eux-mêmes les bâtisseurs actifs de leurs propr rtant ?\nAvec Saskia\, Loïs et leur père nous voyagerons à travers le temps \, en partant de la tortue sur ce bon vieux M05 en passant par Scratch\, le Logo hipster de nos jour\, jusqu’à Groovy et Python. \n -DTSTART:20191003T173000 +DTSTART:20191003T143000 DURATION:PT40M -LOCATION:Petite salle +LOCATION:#3 SUMMARY:Le jaillissement de l'esprit UID:le_jaillissement_de_l_esprit URL:https://devfesttoulouse.fr/sessions/le_jaillissement_de_l_esprit TRANSP:TRANSPARENT CATEGORIES:method___tools END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Programmer le noyau d'un système d'exploitation est un très bon + moyen pour en comprendre le fonctionnement et le scope de son travail (IO\ + , gestion de la mémoire\, etc).\nCette présentation a pour but de présenter + et de développer les composants élémentaires d'un micro noyau UNIX.\n\nDan + s ce talk je présenterai:\n- L'émulateur QEMU\n- La réalisation d'un secteu + r de boot avec une micro console\n- Comment gérer les interruptions hardwar + e (clavier) et software\n- La gestion des appels systèmes\n- Un système mul + ti-process simple qui va permettre de découvrir le surcoût des changements + de contexte liés à la programmation concurrentielle +DTSTART:20191003T153000 +DURATION:PT40M +LOCATION:#3 +SUMMARY:Comprendre le rôle du noyau d'un système d'exploitation en créant u + n from scratch +UID:tOexEcqeKEztPbNmR4JT +URL:https://devfesttoulouse.fr/sessions/comprendre_le_role_du_noyau_d_un_sy + steme_d_exploitation_en_creant_un_from_scratch +TRANSP:TRANSPARENT +CATEGORIES:cloud___infra +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:DevOps is everywhere\, and every new or existing project is at + least considering to follow its principles. While implementing DevOps for s + ingle projects become more and more straightforward\, it's still a challeng + e to have a coherent DevOps approach at Enterprise level.\n\nLet's dig in w + hat it takes to achieve DevOps in large companies\, with Airbus as an examp + le. +DTSTART:20191003T163000 +DURATION:PT40M +LOCATION:#3 +SUMMARY:DevOps at scale +UID:aOHds477R7FiM3cnWAXp +URL:https://devfesttoulouse.fr/sessions/devops_at_scale +TRANSP:TRANSPARENT +CATEGORIES:method___tools +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:If the new React Context API and Suspense killed Redux (they di + dn't)\, surely Hooks kill the need for a form library\, right? Well\, not e + xactly. Managing form state is more than just holding your current values i + n state\; it's about sync and async validition errors\, and much more! But + that doesn't mean that Hooks are irrelevant to the situation. Hooks make bu + ilding forms in React easier than ever before. +DTSTART:20191003T173000 +DURATION:PT40M +LOCATION:#3 +SUMMARY:Modern Forms in React +UID:McfMVcKDdZv68NSo2JIJ +URL:https://devfesttoulouse.fr/sessions/modern_forms_in_react +TRANSP:TRANSPARENT +CATEGORIES:web +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Avec les annonces de l'arrivée de la réalité augmentée (ou RA) + dans Google Maps et Google Search sur Android lors de Google IO 2019\, nou + s constatons que la RA va prendre une place de plus en plus importante dans + notre quotidien. La sortie d'ARCore en mars 2018 sur Android a simplifié l + e développement d’application en RA sur Android.\n\nAu cours de cette sessi + on\, nous vous proposons de découvrir ARCore\, via l’utilisation dans un na + vigateur\, des applications natives ou des moteurs 3D comme Unity ainsi que + les CloudAnchors qui permettent la persistance et le partage de positions + d’objets dans les scènes de réalité augmentée\, y compris avec des utilisat + eurs d’iOS.\n\nAprès une initiations aux concepts liés à la RA (meshes\, 6 + DoF\,...)\, nous présenterons les différentes fonctionnalités d’ARCore. Nou + s discuterons aussi des différentes approches d’utilisation\, de leurs limi + tations et avantages au travers d'une application de cartographie 3D en réa + lité augmentée. +DTSTART:20191003T100000 +DURATION:PT40M +LOCATION:#4 +SUMMARY:A la découverte de la réalité augmentée avec ARCore +UID:qXAvodXoMK3db8ZLcVwb +URL:https://devfesttoulouse.fr/sessions/a_la_decouverte_de_la_realite_augme + ntee_avec_arcore +TRANSP:TRANSPARENT +CATEGORIES:native_mobile_apps +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:_« Make it work\, make it right\, make it fast »_ - Kent Beck\n + \nNous connaissons tous cette citation. Pourtant nous sommes dès fois trop + souvent restés bloqué à l’étape 1 par manque de temps ou de priorisation.\n + \nL’accueil d’un nouveau développeur·euse dans une équipe est un des meille + urs moments pour vérifier qu’une base de code est « saine et scalable ».\n\ + nNous vous proposons dans ce talk un retour d’expérience sur quelques année + s de consulting sur des projets Angular au travers de cas concrets :\n- que + lles sont les mauvaises pratiques à éviter ?\n- quels sont les choix orient + és et assumés d’Angular pour vous éviter tout ça ?\n- quelque soit la taill + e de votre équipe\, l’expérience de vos collègues\, quels sont les princip + es d’architecture à adopter pour améliorer tout ça ? +DTSTART:20191003T110000 +DURATION:PT40M +LOCATION:#4 +SUMMARY:Rockin’ in the Angular World +UID:niiUNFAFhYnPBiOrcDVf +URL:https://devfesttoulouse.fr/sessions/rockin_in_the_angular_world +TRANSP:TRANSPARENT +CATEGORIES:web +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:De nombreux services en ligne existent pour gérer en toute sécu + rité des appareils IoT à grande échelle : "Azure IoT" de Microsoft et "AWS + IoT" d'Amazon sont parmi les plus connus.\n\nGoogle propose également sa so + lution : "Cloud IoT" basée sur la plate-forme Google Cloud (GCP).\nDans ce + talk\, nous partirons d'un microcontrôleur neuf ultra connu et abordable\, + et notre but sera tout d'abord de découvrir comment écrire du code pour ce + composant nous permettant de récupérer des informations sur notre environne + ment.\nEnsuite\, nous ferons en sorte que ce composant envoie ses données v + ers un service Cloud\, pour enfin découvrir ce que permettent ces solutions + en ligne dédiées à l'IoT.\n\nPour l'exemple\, et parce qu'il faut bien cho + isir une solution\, nous utiliserons Google Cloud IoT Core\, les concepts r + estant similaires sur les autres plate-formes. +DTSTART:20191003T120000 +DURATION:PT40M +LOCATION:#4 +SUMMARY:Premiers pas avec un microcontrôleur et Google Cloud IoT Core +UID:R9O1S7M9oRMmwd0cNBaz +URL:https://devfesttoulouse.fr/sessions/premiers_pas_avec_un_microcontroleu + r_et_google_cloud_iot_core +TRANSP:TRANSPARENT +CATEGORIES:iot +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Ces dernières années\, les "fabriques de dev" et autres formati + ons courtes explosent. C'est un fait\, tout dev a été ou sera amené à trava + iller avec l'un de ces jeunes développeurs.euses. Mais qui sont-ils ? Pourq + uoi une reconversion dans ce genre de d'organisation ? Qu'ont-ils appris lo + rs de leurs formation express ? C'est fiable ce genre de dev ? Comment puis + -je les intégrer au mieux dans ma structure ?\n\nAutant de questions que vo + us vous êtes sans doute déjà posées. Pendant ces 15 minutes\, je vous prése + nterai mon retour d'expérience en tant que développeuse provenant de l'une + de ces écoles de dev et maintenant développeuse Javascript depuis 2 ans au + sein d'une startup Toulousaine. +DTSTART:20191003T125000 +DURATION:PT15M +LOCATION:#4 +SUMMARY:Développeurs en reconversion\, développeurs quand même ! +UID:adcMAUSbsAK27dQJA4Iw +URL:https://devfesttoulouse.fr/sessions/developpeurs_en_reconversion__devel + oppeurs_quand_meme__ +TRANSP:TRANSPARENT +CATEGORIES:wtf +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Le code barre est une invention qui a radicalement modifié nos + sociétés. Sans elle\, pas d'inventaire efficace\, de supermarchés ou de ven + te en ligne.\n\nMais comment coder les chiffres de façon fiable avec des pe + tites barres noires et blanches ? Quand les contraintes matérielles empêche + nt d'utiliser le binaire\, l'ingéniosité et un peu de chance ont permis de + créer ce produit\, maintenant présent partout.\n\n\nNous découvrirons les d + étails de ce codage\, et comment il pourrait même contenir davantage d'info + rmations. +DTSTART:20191003T140500 +DURATION:PT15M +LOCATION:#4 +SUMMARY:10 est une puissance de 2 +UID:jABRUDzqext8Rx8CmA4j +URL:https://devfesttoulouse.fr/sessions/10_est_une_puissance_de_2 +TRANSP:TRANSPARENT +CATEGORIES:wtf +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Les microservices\, la scalabilité instantanée et les plates-fo + rmes à haute densité comme Kubernetes nécessitent des applications à faible + empreinte mémoire et démarrage rapide. Java n'était pas bien positionné ca + r il favorise les temps de traitement aux dépens du CPU et de la RAM.\n\nPl + us maintenant.\n\nEntre en scène Quarkus\, une stack Java orientée microser + vices qui supporte vos composants favoris (Hibernate\, Vert.x\, Camel\, RES + TEasy ...) sur GraalVM et HotSpot avec une faible empreinte mémoire et un d + émarrage rapide. Tout ce qu'il faut pour tirer pleinement parti des contain + ers.\n\nLa gestion de la donnée est souvent l'aspect le plus complexe : déc + ouvrons comment Quarkus gère la persistance avec Hibernate ORM. Venez explo + rer le live reload\, notre vision de la persistance avec Hibernate Panache\ + , l'indexation full text avec Hibernate Search\, l'environnement de test\, + la compilation native GraalVM et bien plus. Quarkus se vit plus qu'il ne se + verbalise\, attendez-vous à une démo détaillée. +DTSTART:20191003T143000 +DURATION:PT40M +LOCATION:#4 +SUMMARY:De Java à un exécutable natif : GraalVM et Quarkus changent la donn + e +UID:Qy836EfpA0wC4M6jYcTk +URL:https://devfesttoulouse.fr/sessions/de_java_a_un_executable_natif___gra + alvm_et_quarkus_changent_la_donne +TRANSP:TRANSPARENT +CATEGORIES:method___tools +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Dans un monde de saveurs complexes et sofistiquées\, la guerre + du toping fait rage chez les crèmes glacées du Web ! Face au champs de bata + il\, les pronostiques vont bon train pour savoir qui l’emportera entre le c + runchy Angulaire\, le fondant Reactifs et le décoratif Vue.\n\nDurant ce te + mps\, loin de ces vicissitudes\, la petite saveur basique vanille fait son + bonhomme de chemin. S’agirait-il du héro de la légende\, succeptible de ren + verser le destin de ce monde sans heurts ?\n\nSache\, voyageur\, qu’elle es + t déjà passée par nos contrées. Laisse moi te raconter comment elle nous a + permis de renverser notre vieux roi\, et tu saura enfin ce qui se prépare p + our ton royaume. +DTSTART:20191003T153000 +DURATION:PT40M +LOCATION:#4 +SUMMARY:Brace yourself\, 🍦Vanilla is coming … back 🕶! +UID:rJDTMZMYX57DCKYhW09c +URL:https://devfesttoulouse.fr/sessions/brace_yourself__vanilla_is_coming__ + back__ +TRANSP:TRANSPARENT +CATEGORIES:web +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:How a developer can tell if the system is sick just by taking a + look at the input and the output? If you'd like to know that (plus you lik + e standup comedy)\, come an see! The treatment is safe \;-)\n\nOne approach + to get familiar with a system is a long and intense reading the manual (an + d to run an eye over the source code sometimes). Another approach is to tak + e a deep dive into the data model (often in the DB) and to surf the user in + terface. Both are natural ends of the system\, the legendary Input and Outp + ut. By examining these ends one can check if there's good digestion or if g + uts are rotten. Careful examination can confirm "common DDDosis"\, "maligna + nt stringosis"\, "regex diarrhoea" or "not-made-here syndrome".\nUnfortunat + ely\, sometimes developers get infected in their prenatal life (meaning: at + their university). Let me invite you to treatment. A laxative one. (That i + s: a sequel of "Passwords. Do you keep them safe?") +DTSTART:20191003T163000 +DURATION:PT40M +LOCATION:#4 +SUMMARY:Four Diseases +UID:PmoMEVHO3imfUIMXsPai +URL:https://devfesttoulouse.fr/sessions/four_diseases +TRANSP:TRANSPARENT +CATEGORIES:wtf +END:VEVENT +BEGIN:VEVENT +DESCRIPTION:Quel est le point commun entre un jeu de sudoku\, la planificat + ion d'une conférence et les déplacements d'un commercial ?\n\nQuand on souh + aite les traiter automatiquement\, tous ces problèmes peuvent être résolus + par un solveur de contraintes. Dans ce talk\, je vais essayer de vous faire + une introduction pratique à la programmation par contraintes\, en présenta + nt les concepts de base\, puis en les mettant en application avec plusieurs + exemples de problèmes connus de tout le monde (ou presque)\, pour finir pa + r un cas plus complexe sur lequel je travaille actuellement. +DTSTART:20191003T173000 +DURATION:PT40M +LOCATION:#4 +SUMMARY:Introduction à la programmation par contraintes +UID:iU4EzEThVDvpaHDsGjOO +URL:https://devfesttoulouse.fr/sessions/introduction_a_la_programmation_par + _contraintes +TRANSP:TRANSPARENT +CATEGORIES:big_data___ml___ai +END:VEVENT END:VCALENDAR \ No newline at end of file diff --git a/static/schedule/schedule.pdf b/static/schedule/schedule.pdf deleted file mode 100644 index f11f424..0000000 Binary files a/static/schedule/schedule.pdf and /dev/null differ diff --git a/themes/devfest-theme-hugo b/themes/devfest-theme-hugo index 1c1c7ba..6a8d7c8 160000 --- a/themes/devfest-theme-hugo +++ b/themes/devfest-theme-hugo @@ -1 +1 @@ -Subproject commit 1c1c7bac824e50d7fa3fd3de2e5f9ce09a285c36 +Subproject commit 6a8d7c8af563c5fa71e36e31fe6425ce85702f36 diff --git a/tools/minify.js b/tools/minify.js index 7201299..3268bfe 100644 --- a/tools/minify.js +++ b/tools/minify.js @@ -1,20 +1,27 @@ const {readFileSync, writeFileSync} = require('fs'); const {sync: glob} = require('glob'); const {minify} = require('html-minifier'); -const {Logger} = require('plop-logger'); +const {Logger, LogLevel} = require('plop-logger'); const {colorEmojiConfig} = require('plop-logger/lib/extra/colorEmojiConfig'); Logger.config = colorEmojiConfig; const logger = Logger.getLogger('minifier'); +logger.level = LogLevel.All; -glob(`public/**/*.html`) - .forEach(file => { - const html = readFileSync(file, 'utf8'); - const minified = minify(html, {}); - const gain = html.length - minified.length; - if (gain > 0) { - const percent = (gain / html.length) * 100; - logger.info(file, () => ['gain', percent.toFixed(2), '%'].join(" ")); - writeFileSync(file, minified, {flag: 'w'}); - } - }); +const htmlFiles = `public/**/*.html`; +logger.info('Compress HTML files', htmlFiles); + +const totalGain = glob(htmlFiles) + .map(file => { + const html = readFileSync(file, 'utf8'); + const minified = minify(html, {}); + const gain = html.length - minified.length; + if (gain > 0) { + const percent = (gain / html.length) * 100; + logger.debug(file, () => ['gain', percent.toFixed(2), '%'].join(" ")); + writeFileSync(file, minified, {flag: 'w'}); + } + return gain; + }).reduce((acc, elt) => acc + elt, 0); + +logger.info('Total gain', '' + totalGain); diff --git a/tools/pdf.js b/tools/pdf.js index 73b5fc4..cfd1ae9 100644 --- a/tools/pdf.js +++ b/tools/pdf.js @@ -1,50 +1,104 @@ const puppeteer = require('puppeteer'); const {Logger, LogLevel} = require('plop-logger'); const {colorEmojiConfig} = require('plop-logger/lib/extra/colorEmojiConfig'); +const handler = require('serve-handler'); +const http = require('http'); Logger.config = colorEmojiConfig; Logger.config.defaultLevel = LogLevel.Debug; const logger = Logger.getLogger('pdf'); +// Configuration +const output = 'static/schedule/schedule.pdf'; +const serverConf = { + port: 8765, + options: { + "public": "./public" + } +}; +const browserConf = { + headless: true, + args: ['--no-sandbox', '--disable-setuid-sandbox'], + defaultViewport: {width: 1280, height: 1700}, + margin: { + top: "0cm", + right: "0cm", + bottom: "0cm", + left: "0cm" + }, + devtools: false +}; + +async function startServer({port, options}) { + return new Promise((resolve, reject) => { + const server = http.createServer((request, response) => + handler(request, response, options)); + + server.listen(port, err => { + if (err) { + logger.error('Fail to start server', err); + reject(err); + } else { + logger.info('Server started', () => `http://localhost:${port}`); + resolve(server); + } + }); + }); +} + +async function stopServer(server) { + return new Promise((resolve, reject) => { + logger.info('Stopping server...'); + server.close(err => { + if (err) { + logger.error('Fail to stop server', err); + reject(err); + } else { + logger.info('Server stopped'); + resolve(); + } + }); + }); +} + +async function cleanupBeforePrint(page) { + const toHide = [ + 'body > header', + 'body > footer', + 'main .hero', + ]; + + await page.$$eval(toHide.join(','), elts => + elts.forEach(elt => + elt.parentNode.removeChild(elt))); + + await page.addStyleTag({ + content: '@page { size: auto; }', + }); +} + (async () => { + const server = await startServer(serverConf); + logger.info("launch puppeteer browser"); - const defaultViewport = {width: 1280, height: 1700}; - const devtools = false; - const browser = await puppeteer.launch({devtools, defaultViewport}); + const browser = await puppeteer.launch(browserConf); try { logger.info("open new page"); const page = await browser.newPage(); logger.debug("opened new page"); - const file = 'schedule/index.html'; - const url = `http://localhost:1313/${file}`; + const file = 'fr/schedule/index.html'; + const url = `http://localhost:${serverConf.port}/${file}`; logger.info("go to", url); const pageResponse = await page.goto(url, {waitUntil: 'networkidle2'}); - logger.debug("gone", pageResponse.statusText()); - - const toHide = [ - 'body>header', - 'body>footer', - 'main .hero', - ]; - await page.$$eval(toHide.join(','), function (elts) { - // debugger; - elts.forEach(elt => { - elt.parentNode.removeChild(elt); - // elt.style.display = 'none'; - }); - }); - - await page.addStyleTag({ - content: '@page { size: auto; }', - }); + logger.debug("done", pageResponse.statusText()); - logger.info('export pdf'); - const path = 'static/schedule/schedule.pdf'; + await cleanupBeforePrint(page); + logger.info('export pdf', output); const format = 'A3'; const scale = .4; const printBackground = true; - await page.pdf({path, format, scale, printBackground}); + await page.pdf({path:output, format, scale, printBackground}); logger.debug("pdf done"); } catch (e) { @@ -53,5 +107,6 @@ const logger = Logger.getLogger('pdf'); } finally { logger.info('close puppeteer browser'); await browser.close(); + await stopServer(server); } })(); diff --git a/yarn.lock b/yarn.lock index 0b2baf3..b8f5525 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,22 @@ # yarn lockfile v1 +JSONStream@^1.2.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -9,11 +25,53 @@ agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +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-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-regex@^2.0.0, ansi-regex@^2.1.1: + 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-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +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.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -21,16 +79,191 @@ ansi-styles@^3.2.1: 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= + +anymatch@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz#2fb624fe0e84bccab00afee3d0006ed310f22f09" + integrity sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz#9db7819d4daf60aec10fe86b16cb9258ced66ea0" + integrity sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg== + dependencies: + archiver-utils "^2.1.0" + async "^2.6.3" + buffer-crc32 "^0.2.1" + glob "^7.1.4" + readable-stream "^3.4.0" + tar-stream "^2.1.0" + zip-stream "^2.1.2" + +array-flatten@1.1.1, array-flatten@^1.0.0: + 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.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + integrity sha1-Qmu52oQJDBg42BLIFQryCoMx4pY= + +as-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/as-array/-/as-array-1.0.0.tgz#28a6eeeaa5729f1f4eca2047df5e9de1abda0ed1" + integrity sha1-KKbu6qVynx9OyiBH316d4avaDtE= + dependencies: + lodash.isarguments "2.4.x" + lodash.isobject "^2.4.1" + lodash.values "^2.4.1" + +as-array@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/as-array/-/as-array-2.0.0.tgz#4f04805d87f8fce8e511bc2108f8e5e3a287d547" + integrity sha1-TwSAXYf4/OjlEbwhCPjl46KH1Uc= + +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= + async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async@^1.3.0, 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.3.0, async@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +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= + +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.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + 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-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +basic-auth-connect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz#fdb0b43962ca7b40456a7c2bb48fe173da2d2122" + integrity sha1-/bC0OWLKe0BFanwrtI/hc9otISI= + +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" + +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" + +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + +bl@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz#3611ec00579fd18561754360b21e9f784500ff88" + integrity sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A== + dependencies: + readable-stream "^3.0.1" + +body-parser@1.19.0, body-parser@^1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +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" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.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" @@ -39,11 +272,46 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +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-from@^1.0.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@^5.1.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.0.tgz#33294f5c1f26e08461e528b69fa06de3c45cbd8c" + integrity sha512-Xpgy0IwHK2N01ncykXTy6FpCWuM+CJSHoPVBLyNqyrWxsedpLvwsYUhf0ME3WRFNUhos0dMamz9cOS/xRDtU5g== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + camel-case@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" @@ -52,7 +320,41 @@ camel-case@^3.0.0: no-case "^2.2.0" upper-case "^1.1.1" -chalk@^2.4.1: +camelcase@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +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== + +cardinal@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + integrity sha1-fMEFXYItISlU0HsIXeolHMe8VQU= + dependencies: + ansicolors "~0.3.2" + redeyed "~2.1.0" + +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.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -61,6 +363,48 @@ chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +char-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/char-spinner/-/char-spinner-1.0.1.tgz#e6ea67bd247e107112983b7ab0479ed362800081" + integrity sha1-5upnvSR+EHESmDt6sEee02KAAIE= + +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== + +chokidar@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz#0d1cd6d04eb2df0327446188cd13736a3367d681" + integrity sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA== + dependencies: + anymatch "^3.0.1" + braces "^3.0.2" + glob-parent "^5.0.0" + is-binary-path "^2.1.0" + is-glob "^4.0.1" + normalize-path "^3.0.0" + readdirp "^3.1.1" + optionalDependencies: + fsevents "^2.0.6" + +chownr@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" + integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + +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== + +cjson@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.3.tgz#a92d9c786e5bf9b930806329ee05d5d3261b4afa" + integrity sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo= + dependencies: + json-parse-helpfulerror "^1.0.3" + clean-css@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" @@ -68,6 +412,52 @@ clean-css@^4.2.1: dependencies: source-map "~0.6.0" +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-color@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" + integrity sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w== + dependencies: + ansi-regex "^2.1.1" + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + memoizee "^0.4.14" + timers-ext "^0.1.5" + +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-spinners@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" + integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== + +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-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= + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -80,11 +470,60 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -commander@^2.19.0, commander@~2.20.0: +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= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0, commander@^2.8.1, commander@~2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +compare-semver@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/compare-semver/-/compare-semver-1.1.0.tgz#7c0a79a27bb80b6c6994445f82958259d3d02153" + integrity sha1-fAp5onu4C2xplERfgpWCWdPQIVM= + dependencies: + semver "^5.0.1" + +compress-commons@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz#9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610" + integrity sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^3.0.1" + normalize-path "^3.0.0" + readable-stream "^2.3.6" + +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@^1.7.0: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -100,11 +539,128 @@ concat-stream@1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -core-util-is@~1.0.0: +configstore@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" + integrity sha1-w1eB0FAdJowlxUuLF/YkDopPsCE= + dependencies: + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + osenv "^0.1.0" + uuid "^2.0.1" + write-file-atomic "^1.1.2" + xdg-basedir "^2.0.0" + +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" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +connect-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/connect-query/-/connect-query-1.0.0.tgz#de44f577209da2404d1fc04692d1a4118e582119" + integrity sha1-3kT1dyCdokBNH8BGktGkEY5YIRk= + dependencies: + qs "~6.4.0" + +connect@^3.6.2: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +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-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +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== + +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.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +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= +crc32-stream@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85" + integrity sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w== + dependencies: + crc "^3.4.4" + readable-stream "^3.4.0" + +crc@^3.4.4: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.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" + +cross-env@^5.1.3: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" + integrity sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg== + dependencies: + cross-spawn "^6.0.5" + is-windows "^1.0.0" + +cross-spawn@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + 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" + which "^1.2.9" + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -116,14 +672,46 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -debug@2.6.9: +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= + +csv-streamify@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/csv-streamify/-/csv-streamify-3.0.4.tgz#4cb614c57e3f299cca17b63fdcb4ad167777f47a" + integrity sha1-TLYUxX4/KZzKF7Y/3LStFnd39Ho= + dependencies: + through2 "2.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= + +d@1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +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" + +debug@2.6.9, debug@^2.2.0: 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.0.0, debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -137,6 +725,18 @@ debug@^4.1.0: dependencies: ms "^2.1.1" +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== + +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.2: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -144,6 +744,75 @@ define-properties@^1.1.2: dependencies: object-keys "^1.0.12" +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= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@^1.0.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= + +didyoumean@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff" + integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8= + +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@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +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.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +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= + +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.4.1: + 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" + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -172,6 +841,24 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.50" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" + integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "^1.0.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -184,11 +871,120 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -escape-string-regexp@^1.0.5: +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.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + 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= +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== + +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: + 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" + +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" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit-code@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/exit-code/-/exit-code-1.0.2.tgz#ce165811c9f117af6a5f882940b96ae7f9aecc34" + integrity sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ= + +express@^4.16.4: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@^3.0.0, 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.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extract-zip@^1.6.6: version "1.6.7" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" @@ -199,6 +995,38 @@ extract-zip@^1.6.6: mkdirp "0.5.1" yauzl "2.4.1" +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@^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.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-url-parser@1.1.3, fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= + dependencies: + punycode "^1.3.2" + fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" @@ -206,17 +1034,208 @@ fd-slicer@~1.0.1: dependencies: pend "~1.2.0" +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" + +filesize@^3.1.3: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2, finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +firebase-tools@^7.2.4: + version "7.2.4" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-7.2.4.tgz#5473a294d63cb4d8c4f00f74161ad4240fc5a378" + integrity sha512-w+iKe3TyLZHkzhLakIle6Z6fRfvl3kqlICcihjriYkRuUmUodXqHlBe4wu/1Oa8oQuGdWotdL+evrmDgsaw3eA== + dependencies: + JSONStream "^1.2.1" + archiver "^3.0.0" + body-parser "^1.19.0" + chokidar "^3.0.2" + cjson "^0.3.1" + cli-color "^1.2.0" + cli-table "^0.3.1" + commander "^2.8.1" + configstore "^1.2.0" + cross-env "^5.1.3" + cross-spawn "^4.0.0" + csv-streamify "^3.0.4" + didyoumean "^1.2.1" + dotenv "^6.1.0" + exit-code "^1.0.2" + express "^4.16.4" + filesize "^3.1.3" + fs-extra "^0.23.1" + glob "^7.1.2" + google-auto-auth "^0.7.2" + inquirer "~6.3.1" + jsonschema "^1.0.2" + jsonwebtoken "^8.2.1" + lodash "^4.17.14" + marked "^0.7.0" + marked-terminal "^3.3.0" + minimatch "^3.0.4" + open "^6.3.0" + ora "^3.4.0" + portfinder "^1.0.23" + progress "^2.0.3" + request "^2.87.0" + semver "^5.0.3" + superstatic "^6.0.1" + tar "^4.3.0" + tmp "0.0.33" + universal-analytics "^0.4.16" + update-notifier "^2.5.0" + uuid "^3.0.0" + winston "^1.0.1" + +flat-arguments@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flat-arguments/-/flat-arguments-1.0.2.tgz#9baa780adf0501f282d726c9c6a038dba44ea76f" + integrity sha1-m6p4Ct8FAfKC1ybJxqA426ROp28= + dependencies: + array-flatten "^1.0.0" + as-array "^1.0.0" + lodash.isarguments "^3.0.0" + lodash.isobject "^3.0.0" + +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.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +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-extra@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.23.1.tgz#6611dba6adf2ab8dc9c69fab37cddf8818157e3d" + integrity sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-minipass@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" + integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + dependencies: + minipass "^2.2.1" + 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@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" + integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== + function-bind@^1.0.2, 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== -glob@^7.1.3, glob@^7.1.4: +gcp-metadata@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-0.3.1.tgz#313814456e7c3d0eeb8f8b084b33579e886f829a" + integrity sha512-5kJPX/RXuqoLmHiOOgkSDk/LI0QaXpEvZ3pvQP4ifjGGDKZKVSOjL/GcDjXA5kLxppFCOjmmsu0Uoop9d1upaQ== + dependencies: + extend "^3.0.0" + retry-request "^3.0.0" + +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= + +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-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== + dependencies: + is-glob "^4.0.1" + +glob-slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glob-slash/-/glob-slash-1.0.0.tgz#fe52efa433233f74a2fe64c7abb9bc848202ab95" + integrity sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U= + +glob-slasher@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/glob-slasher/-/glob-slasher-1.0.1.tgz#747a0e5bb222642ee10d3e05443e109493cb0f8e" + integrity sha1-dHoOW7IiZC7hDT4FRD4QlJPLD44= + dependencies: + glob-slash "^1.0.0" + lodash.isobject "^2.4.1" + toxic "^1.0.0" + +glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -228,11 +1247,97 @@ glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -graceful-fs@^4.1.2: +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" + +google-auth-library@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e" + integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24= + dependencies: + gtoken "^1.2.1" + jws "^3.1.4" + lodash.noop "^3.0.1" + request "^2.74.0" + +google-auto-auth@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/google-auto-auth/-/google-auto-auth-0.7.2.tgz#bf9352d5c4a0897bf31fd9c491028b765fbea71e" + integrity sha512-ux2n2AE2g3+vcLXwL4dP/M12SFMRX5dzCzBfhAEkTeAB7dpyGdOIEj7nmUx0BHKaCcUQrRWg9kT63X/Mmtk1+A== + dependencies: + async "^2.3.0" + gcp-metadata "^0.3.0" + google-auth-library "^0.10.0" + request "^2.79.0" + +google-p12-pem@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177" + integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc= + dependencies: + node-forge "^0.7.1" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== +gtoken@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8" + integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w== + dependencies: + google-p12-pem "^0.1.0" + jws "^3.0.0" + mime "^1.4.1" + request "^2.72.0" + +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.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + 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-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" @@ -255,6 +1360,11 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +home-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/home-dir/-/home-dir-1.0.0.tgz#2917eb44bdc9072ceda942579543847e3017fe4e" + integrity sha1-KRfrRL3JByztqUJXlUOEfjAX/k4= + hosted-git-info@^2.1.4: version "2.8.4" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" @@ -273,6 +1383,37 @@ html-minifier@^4.0.0: relateurl "^0.2.7" uglify-js "^3.5.1" +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "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" + sshpk "^1.7.0" + https-proxy-agent@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" @@ -281,6 +1422,28 @@ https-proxy-agent@^2.2.1: agent-base "^4.3.0" debug "^3.1.0" +iconv-lite@0.4.24, iconv-lite@^0.4.24: + 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" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +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= + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -289,26 +1452,131 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +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.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + 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-binary-path@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-callable@^1.1.4: 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-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-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-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-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + 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-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@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +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-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-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-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -316,6 +1584,16 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +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.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.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" @@ -323,6 +1601,31 @@ is-symbol@^1.0.2: dependencies: has-symbols "^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-url@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-windows@^1.0.0: + 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: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -333,11 +1636,138 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +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= + +jju@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= + +join-path@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/join-path/-/join-path-1.1.1.tgz#10535a126d24cbd65f7ffcdf15ef2e631076b505" + integrity sha1-EFNaEm0ky9Zff/zfFe8uYxB2tQU= + dependencies: + as-array "^2.0.0" + url-join "0.0.1" + valid-url "^1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + json-parse-better-errors@^1.0.1: 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-parse-helpfulerror@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" + integrity sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w= + dependencies: + jju "^1.1.0" + +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-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= + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsonschema@^1.0.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.4.tgz#a46bac5d3506a254465bc548876e267c6d0d6464" + integrity sha512-lz1nOH69GbsVHeVgEdvyavc/33oymY1AZwtePMiMj4HZPMbP5OIKK3zT9INMWjwua/V4Z4yq7wSlBbSG+g4AEw== + +jsonwebtoken@^8.2.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +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" + json-schema "0.2.3" + verror "1.10.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.0.0, jws@^3.1.4, jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +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" + +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" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -348,22 +1778,261 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^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= +lodash._isnative@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" + integrity sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw= + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" + integrity sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE= + +lodash._shimkeys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" + integrity sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM= + dependencies: + lodash._objecttypes "~2.4.1" + +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.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isarguments@2.4.x: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz#4931a9c08253adf091ae7ca192258a973876ecca" + integrity sha1-STGpwIJTrfCRrnyhkiWKlzh27Mo= + +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.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isobject@^2.4.1, lodash.isobject@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" + integrity sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU= + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.isobject@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= + +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.keys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" + integrity sha1-SN6kbfj/djKxDXBrissmWR4rNyc= + dependencies: + lodash._isnative "~2.4.1" + lodash._shimkeys "~2.4.1" + lodash.isobject "~2.4.1" + +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.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + +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.values@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.4.1.tgz#abf514436b3cb705001627978cbcf30b1280eea4" + integrity sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ= + dependencies: + lodash.keys "~2.4.1" + +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +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" + +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= + +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.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + 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" + +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" + +marked-terminal@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.3.0.tgz#25ce0c0299285998c7636beaefc87055341ba1bd" + integrity sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A== + dependencies: + ansi-escapes "^3.1.0" + cardinal "^2.1.1" + chalk "^2.4.1" + cli-table "^0.3.1" + node-emoji "^1.4.1" + supports-hyperlinks "^1.0.1" + +marked@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" + integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== + +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= + +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" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.5" memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= +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= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.6.0, 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: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== -minimatch@^3.0.4: +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== + +minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -375,23 +2044,84 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -mkdirp@0.5.1: +minimist@^1.1.0, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minipass@^2.2.1, minipass@^2.3.5: + version "2.4.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.4.0.tgz#38f0af94f42fb6f34d3d7d82a90e2c99cd3ff485" + integrity sha512-6PmOuSP4NnZXzs2z6rbwzLJu/c5gdzYg1mRI/WIYdx45iiX7T+a4esOzavD6V/KmBzAaopFSTZPZcUx73bqKWA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" +morgan@^1.8.2: + 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" + depd "~1.1.2" + on-finished "~2.3.0" + on-headers "~1.0.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== + ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +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= + +nash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/nash/-/nash-3.0.0.tgz#bced3a0cb8434c2ad30d1a0d567cfc0c37128eea" + integrity sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w== + dependencies: + async "^1.3.0" + flat-arguments "^1.0.0" + lodash "^4.17.5" + minimist "^1.1.0" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +next-tick@1, next-tick@^1.0.0: + 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" @@ -404,6 +2134,18 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-emoji@^1.4.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + dependencies: + lodash.toarray "^4.4.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== + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -414,6 +2156,11 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + npm-run-all@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" @@ -429,18 +2176,106 @@ npm-run-all@^4.1.5: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" +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" + +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: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + object-keys@^1.0.12: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -once@^1.3.0: +on-finished@^2.2.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.0, on-headers@~1.0.1, on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.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" +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" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.0: + 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-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= + +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" + registry-url "^3.0.3" + semver "^5.1.0" + param-case@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" @@ -456,12 +2291,22 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + 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-key@^2.0.1: +path-is-inside@1.0.2, 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= @@ -471,6 +2316,23 @@ path-parse@^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-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= + dependencies: + isarray "0.0.1" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -483,6 +2345,16 @@ pend@~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= + +picomatch@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + pidtree@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b" @@ -493,29 +2365,81 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -plop-logger@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/plop-logger/-/plop-logger-2.5.0.tgz#3a80cf4edb98cc6c91a83cc39ba6eff9343308cd" - integrity sha512-sudMgIddrxQYw/UpLWjK//CcA4kCCTr87OWTPlf8gLCoBni2vodp5BbhCH6lMXXINUD//5yPmA9jAMwT3tUSCA== +pkginfo@0.3.x: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" + integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= + +plop-logger@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/plop-logger/-/plop-logger-2.6.0.tgz#34bba0f7bdb0af80f991f1901c380bfa343645a7" + integrity sha512-N1KJ/YxJlLK4flh9tjfiDoYLs1vR/Bssr0k8a9BNJAMq1BYnn1dAqQLI2XSKm9Pc35CjfGHazKxdh4AkAWCprQ== dependencies: ansi-colors "^4.1.1" tslib "^1.10.0" +portfinder@^1.0.23: + version "1.0.23" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.23.tgz#894db4bcc5daf02b6614517ce89cd21a38226b82" + integrity sha512-B729mL/uLklxtxuiJKfQ84WPxNw5a7Yhx3geQZdcA4GjNjZSTSSMMWyoennMVnTWSmAR0lMdzWYN0JLnHrg1KQ== + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +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= + +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.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.1: +progress@^2.0.1, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + proxy-from-env@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= +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.3.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" + integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== + +punycode@^1.3.2, 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== + puppeteer@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.19.0.tgz#e3b7b448c2c97933517078d7a2c53687361bebea" @@ -530,6 +2454,51 @@ puppeteer@^1.19.0: rimraf "^2.6.1" ws "^6.1.0" +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM= + +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== + +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.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6: + 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" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -539,7 +2508,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.2.2: +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -552,11 +2521,87 @@ readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdirp@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.2.tgz#fa85d2d14d4289920e4671dead96431add2ee78a" + integrity sha512-8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw== + dependencies: + picomatch "^2.0.4" + +redeyed@~2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + integrity sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs= + dependencies: + esprima "~4.0.0" + +registry-auth-token@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== + 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" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +request@^2.72.0, request@^2.74.0, request@^2.79.0, request@^2.81.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" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + resolve@^1.10.0: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" @@ -564,23 +2609,141 @@ resolve@^1.10.0: dependencies: path-parse "^1.0.6" -rimraf@^2.6.1: +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" + +retry-request@^3.0.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-3.3.2.tgz#fd8e0079e7b0dfc7056e500b6f089437db0da4df" + integrity sha512-WIiGp37XXDC6e7ku3LFoi7LCL/Gs9luGeeqvbPRb+Zl6OQMw4RCRfSaW+aLfE6lhz1R941UavE6Svl3Dm5xGIQ== + dependencies: + request "^2.81.0" + through2 "^2.0.0" + +rimraf@^2.2.8, rimraf@^2.6.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +router@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/router/-/router-1.3.3.tgz#c142f6b5ea4d6b3359022ca95b6580bd217f89cf" + integrity sha1-wUL2tepNazNZAiypW2WAvSF/ic8= + dependencies: + array-flatten "2.1.1" + debug "2.6.9" + methods "~1.1.2" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + setprototypeof "1.1.0" + utils-merge "1.0.1" + +rsvp@^3.6.2: + 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" + +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + dependencies: + tslib "^1.9.0" + +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== -"semver@2 || 3 || 4 || 5", semver@^5.5.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +"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== + +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 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-handler@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.1.tgz#e4470ba9f4294c970012f5b5428c6582225106f6" + integrity sha512-LQPvxGia2TYqyMkHKH4jW9jx6jlQUMcWz6gJavZ3+4vsnB+SaWbYTncb9YsK5YBR6SlvyumREZJAzLw8VaFAUQ== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.0.4" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +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== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -598,6 +2761,16 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.1.tgz#3161d969886fb14f9140c65245a5dd19b6f0b06b" integrity sha512-2kUqeAGnMAu6YrTPX4E3LfxacH9gKljzVjlkUeSqY0soGwK4KLl7TURXCem712tkhBCeeaFP9QK4dKn88s3Icg== +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= + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + 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" @@ -629,6 +2802,46 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +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= + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +string-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" + integrity sha1-VpcPscOFWOnnC3KL894mmsRa36w= + dependencies: + strip-ansi "^3.0.0" + +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" + string.prototype.padend@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" @@ -638,6 +2851,18 @@ string.prototype.padend@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.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= + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -645,23 +2870,232 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +strip-ansi@^3.0.0: + 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-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.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= -supports-color@^5.3.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-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= + +superstatic@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/superstatic/-/superstatic-6.0.4.tgz#5c38fe05e2e9513b68d5ba2798925e4839c151dd" + integrity sha512-Nfli9mSPa9fJloKuDeUOdqC1lcw4c4SnxiWPB8s7Yn1iYo7Ja3pj7qc8AXMqHVqn/Kf7QsxBjAeOJTpuJ0mcrQ== + dependencies: + as-array "^2.0.0" + async "^1.5.2" + basic-auth-connect "^1.0.0" + chalk "^1.1.3" + char-spinner "^1.0.1" + compare-semver "^1.0.0" + compression "^1.7.0" + connect "^3.6.2" + connect-query "^1.0.0" + destroy "^1.0.4" + fast-url-parser "^1.1.3" + fs-extra "^0.30.0" + glob "^7.1.2" + glob-slasher "^1.0.1" + home-dir "^1.0.0" + is-url "^1.2.2" + join-path "^1.1.1" + lodash "^4.17.4" + mime-types "^2.1.16" + minimatch "^3.0.4" + morgan "^1.8.2" + nash "^3.0.0" + on-finished "^2.2.0" + on-headers "^1.0.0" + path-to-regexp "^1.7.0" + router "^1.3.1" + rsvp "^3.6.2" + string-length "^1.0.0" + try-require "^1.0.0" + update-notifier "^2.5.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@^5.0.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" -tslib@^1.10.0: +supports-hyperlinks@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" + integrity sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw== + dependencies: + has-flag "^2.0.0" + supports-color "^5.0.0" + +tar-stream@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz#d1aaa3661f05b38b5acc9b7020efdca5179a2cc3" + integrity sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw== + dependencies: + bl "^3.0.0" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^4.3.0: + version "4.4.10" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" + integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.5" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +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" + +through2@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" + integrity sha1-OE51MU1J8y3hLuu4E2uOtrXVnak= + dependencies: + readable-stream "~2.0.0" + xtend "~4.0.0" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +"through@>=2.2.7 <3", through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +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.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tmp@0.0.33, 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" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +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" + +toxic@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toxic/-/toxic-1.0.1.tgz#8c2e2528da591100adc3883f2c0e56acfb1c7288" + integrity sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg== + dependencies: + lodash "^4.17.10" + +try-require@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/try-require/-/try-require-1.2.1.tgz#34489a2cac0c09c1cc10ed91ba011594d4333be2" + integrity sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I= + +tslib@^1.10.0, tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +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-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179" + integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg== + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -675,16 +3109,97 @@ uglify-js@^3.5.1: commander "~2.20.0" source-map "~0.6.1" +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" + +universal-analytics@^0.4.16: + version "0.4.20" + resolved "https://registry.yarnpkg.com/universal-analytics/-/universal-analytics-0.4.20.tgz#d6b64e5312bf74f7c368e3024a922135dbf24b03" + integrity sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw== + dependencies: + debug "^3.0.0" + request "^2.88.0" + uuid "^3.0.0" + +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= + +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= + +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" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + 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= -util-deprecate@~1.0.1: +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" + +url-join@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8" + integrity sha1-HbSK1CLTQCRpqH99l73r/k+x48g= + +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" + +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= +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@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= + +uuid@^3.0.0, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +valid-url@^1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= + 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" @@ -693,6 +3208,27 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +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" + extsprintf "^1.2.0" + +wcwidth@^1.0.1: + 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" + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -700,11 +3236,49 @@ which@^1.2.9: dependencies: isexe "^2.0.0" +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +winston@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/winston/-/winston-1.1.2.tgz#68edd769ff79d4f9528cf0e5d80021aade67480c" + integrity sha1-aO3Xaf951PlSjPDl2AAhqt5nSAw= + dependencies: + async "~1.0.0" + colors "1.0.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + pkginfo "0.3.x" + stack-trace "0.0.x" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^1.1.2: + version "1.3.4" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-file-atomic@^2.0.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + ws@^6.1.0: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" @@ -712,9 +3286,45 @@ ws@^6.1.0: dependencies: async-limiter "~1.0.0" +xdg-basedir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" + integrity sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I= + dependencies: + os-homedir "^1.0.0" + +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= + +xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +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.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + 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" + +zip-stream@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.2.tgz#841efd23214b602ff49c497cba1a85d8b5fbc39c" + integrity sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^2.1.1" + readable-stream "^3.4.0"