From d85bf4c5532ccafb86d8021d3cd28e67eab928ee Mon Sep 17 00:00:00 2001 From: EtcGonza Date: Mon, 5 Nov 2018 09:56:44 -0300 Subject: [PATCH 1/2] Todos los ejercicios resueltos del topic 0 y 1 --- 00-HTML-CSS-basics/.empty | 0 .../Topic0-exc1.2/expenses_table.css | 16 + .../Topic0-exc1.2/expenses_table.html | 73 ++++ .../Topic0-exc1.2/hellow_world.html | 16 + .../Topic0-exc1.2/multimedia.css | 10 + .../Topic0-exc1.2/multimedia.html | 31 ++ .../Topic0-exc1.2/my_todo_list.html | 23 + 00-HTML-CSS-basics/Topic0-exc1.2/sign_up.css | 36 ++ 00-HTML-CSS-basics/Topic0-exc1.2/sign_up.html | 58 +++ .../Topic0-exc1.2/worms_estornudo.mp3 | Bin 0 -> 8776 bytes .../Topic0-exc2.1-2.2-2.3/index.css | 82 ++++ .../Topic0-exc2.1-2.2-2.3/index.html | 63 +++ .../Topic0-exc2.1-2.2-2.3/normalize.css | 396 ++++++++++++++++++ .../topic0-exc1.0/expenses_table.css | 16 + .../topic0-exc1.0/expenses_table.html | 71 ++++ .../topic0-exc1.0/hellow_world.html | 13 + .../topic0-exc1.0/multimedia.css | 10 + .../topic0-exc1.0/multimedia.html | 29 ++ .../topic0-exc1.0/my_todo_list.html | 23 + 00-HTML-CSS-basics/topic0-exc1.0/sign_up.css | 36 ++ 00-HTML-CSS-basics/topic0-exc1.0/sign_up.html | 55 +++ 00-HTML-CSS-basics/topic0-exc1.0/sound.mp3 | Bin 0 -> 8776 bytes .../topic0-exc2.5-2.6/cuarta.jpg | Bin 0 -> 1360 bytes .../topic0-exc2.5-2.6/index.css | 119 ++++++ .../topic0-exc2.5-2.6/index.html | 76 ++++ .../topic0-exc2.5-2.6/normalize.css | 396 ++++++++++++++++++ .../topic0-exc2.5-2.6/primera.jpg | Bin 0 -> 1359 bytes .../topic0-exc2.5-2.6/quinta.jpg | Bin 0 -> 1359 bytes .../topic0-exc2.5-2.6/segunda.jpg | Bin 0 -> 1773 bytes .../topic0-exc2.5-2.6/sexta.jpg | Bin 0 -> 81112 bytes .../topic0-exc2.5-2.6/tercera.jpg | Bin 0 -> 1360 bytes 01-JS-DOM-APIs/Exc1-2/index.css | 17 + 01-JS-DOM-APIs/Exc1-2/index.html | 51 +++ 01-JS-DOM-APIs/Exc1-2/index.js | 12 + 01-JS-DOM-APIs/Exc1-2/normalize.css | 396 ++++++++++++++++++ 01-JS-DOM-APIs/Exc3/index.html | 26 ++ 01-JS-DOM-APIs/Exc3/normalize.css | 396 ++++++++++++++++++ 01-JS-DOM-APIs/Exc3/script.js | 61 +++ 01-JS-DOM-APIs/Exc3/style.css | 31 ++ 01-JS-DOM-APIs/Exc4/debug.log | 1 + 01-JS-DOM-APIs/Exc4/index.html | 30 ++ 01-JS-DOM-APIs/Exc4/normalize.css | 396 ++++++++++++++++++ 01-JS-DOM-APIs/Exc4/script.js | 20 + 01-JS-DOM-APIs/Exc4/style.css | 21 + 01-JS-DOM-APIs/Exc6/index.css | 35 ++ 01-JS-DOM-APIs/Exc6/index.html | 25 ++ 01-JS-DOM-APIs/Exc6/index.js | 86 ++++ 01-JS-DOM-APIs/Exc6/normalize.css | 396 ++++++++++++++++++ 48 files changed, 3648 insertions(+) delete mode 100644 00-HTML-CSS-basics/.empty create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.css create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.html create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/hellow_world.html create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/multimedia.css create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/multimedia.html create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/my_todo_list.html create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/sign_up.css create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/sign_up.html create mode 100644 00-HTML-CSS-basics/Topic0-exc1.2/worms_estornudo.mp3 create mode 100644 00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.css create mode 100644 00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.html create mode 100644 00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/normalize.css create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/expenses_table.css create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/expenses_table.html create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/hellow_world.html create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/multimedia.css create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/multimedia.html create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/my_todo_list.html create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/sign_up.css create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/sign_up.html create mode 100644 00-HTML-CSS-basics/topic0-exc1.0/sound.mp3 create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/cuarta.jpg create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/index.css create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/index.html create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/normalize.css create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/primera.jpg create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/quinta.jpg create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/segunda.jpg create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/sexta.jpg create mode 100644 00-HTML-CSS-basics/topic0-exc2.5-2.6/tercera.jpg create mode 100644 01-JS-DOM-APIs/Exc1-2/index.css create mode 100644 01-JS-DOM-APIs/Exc1-2/index.html create mode 100644 01-JS-DOM-APIs/Exc1-2/index.js create mode 100644 01-JS-DOM-APIs/Exc1-2/normalize.css create mode 100644 01-JS-DOM-APIs/Exc3/index.html create mode 100644 01-JS-DOM-APIs/Exc3/normalize.css create mode 100644 01-JS-DOM-APIs/Exc3/script.js create mode 100644 01-JS-DOM-APIs/Exc3/style.css create mode 100644 01-JS-DOM-APIs/Exc4/debug.log create mode 100644 01-JS-DOM-APIs/Exc4/index.html create mode 100644 01-JS-DOM-APIs/Exc4/normalize.css create mode 100644 01-JS-DOM-APIs/Exc4/script.js create mode 100644 01-JS-DOM-APIs/Exc4/style.css create mode 100644 01-JS-DOM-APIs/Exc6/index.css create mode 100644 01-JS-DOM-APIs/Exc6/index.html create mode 100644 01-JS-DOM-APIs/Exc6/index.js create mode 100644 01-JS-DOM-APIs/Exc6/normalize.css diff --git a/00-HTML-CSS-basics/.empty b/00-HTML-CSS-basics/.empty deleted file mode 100644 index e69de29bb..000000000 diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.css b/00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.css new file mode 100644 index 000000000..25973fbe2 --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.css @@ -0,0 +1,16 @@ +header{ + margin: auto; + width: 400px; +} + +table { + /* Centro la tabla y quito espacios entre las filas y columnas*/ + margin: 0 auto; + width: 350px; + border-collapse: collapse; +} + +td, th { + /* Agrego bordes a las filas y columnas */ + border: 1px solid black; +} diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.html b/00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.html new file mode 100644 index 000000000..5a7af634b --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/expenses_table.html @@ -0,0 +1,73 @@ + + + + + + + + + Expenses Table + + + +
Expenses Table
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MonthJulyAugustSeptember
Medicines$300$600$450
Transport$750$620$700
Food$200$350$150
Clothing$210$685$100
Otros$200$150$50
Total$1660$2405$1450
+ + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/hellow_world.html b/00-HTML-CSS-basics/Topic0-exc1.2/hellow_world.html new file mode 100644 index 000000000..497f8235c --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/hellow_world.html @@ -0,0 +1,16 @@ + + + + + + + + + Topic-0 + + + +
Hello World!
+ + + diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/multimedia.css b/00-HTML-CSS-basics/Topic0-exc1.2/multimedia.css new file mode 100644 index 000000000..6bd431bfb --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/multimedia.css @@ -0,0 +1,10 @@ +img{ + /* Redimensiono la imagen */ + width:85px; + height:85px; + } + +div { + /* Centro todas las etiquetas div */ + text-align: center; +} diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/multimedia.html b/00-HTML-CSS-basics/Topic0-exc1.2/multimedia.html new file mode 100644 index 000000000..dc63a4c02 --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/multimedia.html @@ -0,0 +1,31 @@ + + + + + + + + + Topic-0 + + + + +
+ + +
+ +
+ + Worms +
+ +
+ + +
+ + + + diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/my_todo_list.html b/00-HTML-CSS-basics/Topic0-exc1.2/my_todo_list.html new file mode 100644 index 000000000..e603ce13a --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/my_todo_list.html @@ -0,0 +1,23 @@ + + + + + + + + + Topic-0 + + + +
My todo list
+ + + + diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/sign_up.css b/00-HTML-CSS-basics/Topic0-exc1.2/sign_up.css new file mode 100644 index 000000000..0e374ffa9 --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/sign_up.css @@ -0,0 +1,36 @@ +header { + margin: 0 auto; + width: 400px; +} + +form { + /* Centro el formulario */ + margin: 0 auto; + width: 400px; + /* Agrego un borde al formulario */ + padding: 1em; + border: 1px solid black; + border-radius: 1em; +} + +form div+div { + /* Agrego un espacio entre cada caja. */ + margin-top: 1em; +} + +label { + /* Alineo las etiquetas label */ + display: inline-block; + width: 80px; + text-align: right; +} + +textarea { + vertical-align: top; +} + +.button { + /* Posiciono los botones */ + padding-left: 80px; + /* Misma posicion que los elementos label para que esten alineados */ +} \ No newline at end of file diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/sign_up.html b/00-HTML-CSS-basics/Topic0-exc1.2/sign_up.html new file mode 100644 index 000000000..1b79be051 --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc1.2/sign_up.html @@ -0,0 +1,58 @@ + + + + + + + + + + Sign Up + + + +
Sign Up
+
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/Topic0-exc1.2/worms_estornudo.mp3 b/00-HTML-CSS-basics/Topic0-exc1.2/worms_estornudo.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3de5764ab6e8ea73486388eec346e873bed751a2 GIT binary patch literal 8776 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 literal 0 HcmV?d00001 diff --git a/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.css b/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.css new file mode 100644 index 000000000..bd959f278 --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.css @@ -0,0 +1,82 @@ +.column { + text-align: center; +} + +.column.header, +h1 { + margin: 5px 10px 5px 10px; + /* line-height: 80px; */ +} + +.column.navigation { + background: coral; + margin: 0px 10px 0px 10px; + float: left; + width: 14%; + line-height: 86px; +} + +.column.sidebar { + margin: 0px 10px 0px 10px; + float: right; + width: 14%; + line-height: 26px; +} + +.column.content { + margin: auto; + width: 70%; + line-height: 75px; +} + +.column.footer { + margin: 10px 10px 10px 10px; +} + +.header, +.footer, +.sidebar { + background: magenta; +} + + +/* FONT-SIZE */ + +.header { + font-size: 46px; +} + +.footer { + font-size: 10px; +} + +.content { + font-size: 14px; +} + +.navigation { + font-size: 12px; +} + +.sidebar { + font-size: 10px; +} + + +/* SPECIFICITY */ + +.sidebar li:nth-child(2) { + border: 5px solid yellow; +} + +.sidebar ul+li { + border: 5px solid brown; +} + +.sidebar #items .lista_items { + background: green; +} + +.content h1:first-of-type { + background: yellowgreen; +} \ No newline at end of file diff --git a/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.html b/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.html new file mode 100644 index 000000000..6edb0a632 --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/index.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + +
+

Header

+
+ +
+ +
+ + +
+
+

Header of the article

+
+
+

paragraph of the article

+
+
Foot of the section
+
+ + + + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/normalize.css b/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/normalize.css new file mode 100644 index 000000000..a9c6f52f0 --- /dev/null +++ b/00-HTML-CSS-basics/Topic0-exc2.1-2.2-2.3/normalize.css @@ -0,0 +1,396 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/00-HTML-CSS-basics/topic0-exc1.0/expenses_table.css b/00-HTML-CSS-basics/topic0-exc1.0/expenses_table.css new file mode 100644 index 000000000..25973fbe2 --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/expenses_table.css @@ -0,0 +1,16 @@ +header{ + margin: auto; + width: 400px; +} + +table { + /* Centro la tabla y quito espacios entre las filas y columnas*/ + margin: 0 auto; + width: 350px; + border-collapse: collapse; +} + +td, th { + /* Agrego bordes a las filas y columnas */ + border: 1px solid black; +} diff --git a/00-HTML-CSS-basics/topic0-exc1.0/expenses_table.html b/00-HTML-CSS-basics/topic0-exc1.0/expenses_table.html new file mode 100644 index 000000000..16a6915db --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/expenses_table.html @@ -0,0 +1,71 @@ + + + + + + + Expenses Table + + + +
Expenses Table
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MonthJulyAugustSeptember
Medicines$300$600$450
Transport$750$620$700
Food$200$350$150
Clothing$210$685$100
Otros$200$150$50
Total$1660$2405$1450
+ + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc1.0/hellow_world.html b/00-HTML-CSS-basics/topic0-exc1.0/hellow_world.html new file mode 100644 index 000000000..c9e0c7565 --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/hellow_world.html @@ -0,0 +1,13 @@ + + + + + + Topic-0 + + + +
Hello World!
+ + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc1.0/multimedia.css b/00-HTML-CSS-basics/topic0-exc1.0/multimedia.css new file mode 100644 index 000000000..6bd431bfb --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/multimedia.css @@ -0,0 +1,10 @@ +img{ + /* Redimensiono la imagen */ + width:85px; + height:85px; + } + +div { + /* Centro todas las etiquetas div */ + text-align: center; +} diff --git a/00-HTML-CSS-basics/topic0-exc1.0/multimedia.html b/00-HTML-CSS-basics/topic0-exc1.0/multimedia.html new file mode 100644 index 000000000..231f9ee8b --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/multimedia.html @@ -0,0 +1,29 @@ + + + + + + + Topic-0 + + + + +
+ + +
+ +
+ + Worms +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc1.0/my_todo_list.html b/00-HTML-CSS-basics/topic0-exc1.0/my_todo_list.html new file mode 100644 index 000000000..7d3fa362d --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/my_todo_list.html @@ -0,0 +1,23 @@ + + + + + + + + + Topic-0 + + + +
My todo list
+
    +
  • Study.
  • +
  • Go to supermarket.
  • +
  • Make dinner.
  • +
  • Go to work.
  • +
  • Go to sleep.
  • +
+ + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc1.0/sign_up.css b/00-HTML-CSS-basics/topic0-exc1.0/sign_up.css new file mode 100644 index 000000000..0e374ffa9 --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/sign_up.css @@ -0,0 +1,36 @@ +header { + margin: 0 auto; + width: 400px; +} + +form { + /* Centro el formulario */ + margin: 0 auto; + width: 400px; + /* Agrego un borde al formulario */ + padding: 1em; + border: 1px solid black; + border-radius: 1em; +} + +form div+div { + /* Agrego un espacio entre cada caja. */ + margin-top: 1em; +} + +label { + /* Alineo las etiquetas label */ + display: inline-block; + width: 80px; + text-align: right; +} + +textarea { + vertical-align: top; +} + +.button { + /* Posiciono los botones */ + padding-left: 80px; + /* Misma posicion que los elementos label para que esten alineados */ +} \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc1.0/sign_up.html b/00-HTML-CSS-basics/topic0-exc1.0/sign_up.html new file mode 100644 index 000000000..a567c5f29 --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc1.0/sign_up.html @@ -0,0 +1,55 @@ + + + + + + + Sign Up + + + +
Sign Up
+
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc1.0/sound.mp3 b/00-HTML-CSS-basics/topic0-exc1.0/sound.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3de5764ab6e8ea73486388eec346e873bed751a2 GIT binary patch literal 8776 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 literal 0 HcmV?d00001 diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/cuarta.jpg b/00-HTML-CSS-basics/topic0-exc2.5-2.6/cuarta.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ef7b43d48bc1005799bfdc9486cd5250723cee2a GIT binary patch literal 1360 zcmeH_&rSj{5XNV=wB2op&W5$%Dgh*DS0&*AO!h!RfS2J_cnBZBXCU0Y`sd=&yAM!i z4JNV)YrJt_+Dj+DcBb=v{>6U)%_p-7ARgVi zR;!s`@GFQzyu+2i zD+po~G5R%}ajUQ!lGBzyP|8c?-=HoK0uls(kG;>`d&kouO+c`U36(U2C)O}zWl;ut zQ4n#NSbh@%F~`V51rq#1_SRAPw$5Gx^B#AybruL7A$>hR9QUD4Ag{1Q;TrneH9ts& JCx|`qx&f0eWf%Ye literal 0 HcmV?d00001 diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/index.css b/00-HTML-CSS-basics/topic0-exc2.5-2.6/index.css new file mode 100644 index 000000000..90f2bb31e --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc2.5-2.6/index.css @@ -0,0 +1,119 @@ +*, +*:before, +*:after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +@media (max-width: 360px) { + header { + font-family: 'Times New Roman', Times, serif; + font-size: 100%; + float: left; + color: orangered; + margin-left: 15px; + } + .gallery-grid { + width: 100%; + left: 20%; + } +} + +.clearfix:before, +.clearfix:after { + display: table; +} + +.clearfix:after { + clear: both; +} + +header { + margin-bottom: 10px; + /* font-size: 70%; */ + /* color: black; */ + text-align: center; +} + +.gallery-grid { + width: 100%; + padding: 8px; + margin: auto; + display: block; + position: absolute; + top: 10%; + left: auto; +} + +.gallery-grid.columns { + margin-right: 0; +} + +.one-third { + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.3); + margin: 8px; + height: auto; + position: relative; + float: left; +} + +.one-third:last-of-type { + margin-right: 0; +} + +.gallery-grid img { + max-width: 48rem; + width: 100%; + height: auto; + position: relative; + float: left; + margin: 0 auto; +} + +.screen { + background-color: rgba(0, 0, 0, 0.5); + left: 0; + top: 0; + border-radius: 0; + height: 100%; + width: 100%; + position: absolute; + opacity: 0; + z-index: 1000; + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; +} + +.screen:hover { + opacity: 1 +} + +.title { + color: white; + font-family: arial, helvetica, sans-serif; + font-weight: bold; + text-align: center; + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; + margin-left: -30px; +} + +.screen:hover .title { + margin-left: 0; +} + +p { + font-size: 2em; + padding: 5%; +} + +.screen.fade-in .title { + margin-left: 0; +} \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/index.html b/00-HTML-CSS-basics/topic0-exc2.5-2.6/index.html new file mode 100644 index 000000000..93a9641de --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc2.5-2.6/index.html @@ -0,0 +1,76 @@ + + + + + + + + . + + +
+

Colors

+
+ + + + + + + \ No newline at end of file diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/normalize.css b/00-HTML-CSS-basics/topic0-exc2.5-2.6/normalize.css new file mode 100644 index 000000000..a9c6f52f0 --- /dev/null +++ b/00-HTML-CSS-basics/topic0-exc2.5-2.6/normalize.css @@ -0,0 +1,396 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/primera.jpg b/00-HTML-CSS-basics/topic0-exc2.5-2.6/primera.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2bba5b33589c19e71ade67921bd4ee96b90b0aff GIT binary patch literal 1359 zcmex=^lOiET&UP@Y7ModgWM?qOlT~kX_QeM|USHnP6LsJ7}2qQZ?I~NC+Fc+7w zhLo6;2Fc+6AqGJXMs3DJ%#2D5OoEKef{g!9kX= zv)e&8yYAm;-FxcwhogL)Uv($N#1sRQ8=nNFlqys$rCKJ_nK?S_0+J9Pal!B&f&^KD z_6sgut56N@ul)zAf%Y3>h7b@V0DOO_KA%sgG=ZkmFr{4yKb(Z26Bcu?5Ebm+=8)E@;Bc!adZRoIV{*f9}kTb>V5B+r7 A;{X5v literal 0 HcmV?d00001 diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/segunda.jpg b/00-HTML-CSS-basics/topic0-exc2.5-2.6/segunda.jpg new file mode 100644 index 0000000000000000000000000000000000000000..866495962c555199908fc81b6fd10606c11250bf GIT binary patch literal 1773 zcmeHGOK!q25S@vMomi-yh+t@11T6v_J`y*`0tvOfOpnkjblFwUz!^{v0qv$YaVHg( z8YF_~ibZBtwx9gQ@AiFWaPOZ4z zZpFqVok2Ib?%x>GoA&y{Q94eqy0iJr&IdNN`6Z~7(t&Ph-LQ#C?8)WU5Cu5FwZJ>@ zA`}t2cWCmcP%N2m=MN~Ba34??2p$Onz&G<+Jg-*gq`)(q7}LIoEA}v8XVLf6Q;vxC z5idUoftX?FpakOmfgI$K*^cKR0<&A5WcRZ`u!O|4RaXjB3j9Zb@=Vk5O#ebk5=)%e F?KeM|?wtSt literal 0 HcmV?d00001 diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/sexta.jpg b/00-HTML-CSS-basics/topic0-exc2.5-2.6/sexta.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec25362d1a8df839fd71ac0c44562d61d59d7f19 GIT binary patch literal 81112 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 literal 0 HcmV?d00001 diff --git a/00-HTML-CSS-basics/topic0-exc2.5-2.6/tercera.jpg b/00-HTML-CSS-basics/topic0-exc2.5-2.6/tercera.jpg new file mode 100644 index 0000000000000000000000000000000000000000..56078d3b325a048f1a2aff58395b82360286feb3 GIT binary patch literal 1360 zcmex=^lOiET&UP@Y7ModgWM?qOlT~kX_QeM|USHnP6LsJ7}2qQZ?I~NC+Fc+7w zhLo6;2Fc+6AqGJXMs3DJ%#2D5OoEKef{g!jEwe- zoc|f{C}BcUg3}&0d#F7)RWRBs0$l=4Sq#j;AQbp~-ewdH))27AlO#Z?Mu2dtfhob0 KCIo + + + + + + + + + + + + + + + +

Hello World
+ +
+ Hello World +
+ +
+ +
+ + +
+
+

Article

+
+
footer
+
+ + + + + + \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc1-2/index.js b/01-JS-DOM-APIs/Exc1-2/index.js new file mode 100644 index 000000000..c398061e5 --- /dev/null +++ b/01-JS-DOM-APIs/Exc1-2/index.js @@ -0,0 +1,12 @@ +$(window).on('load', function() { + setTimeout(function() { + $(".loader-page").css({ + visibility: "hidden", + opacity: "0" + }) + }, 2000); +}); + +function myFunction() { + alert("Alert Message!"); +} \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc1-2/normalize.css b/01-JS-DOM-APIs/Exc1-2/normalize.css new file mode 100644 index 000000000..a9c6f52f0 --- /dev/null +++ b/01-JS-DOM-APIs/Exc1-2/normalize.css @@ -0,0 +1,396 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/01-JS-DOM-APIs/Exc3/index.html b/01-JS-DOM-APIs/Exc3/index.html new file mode 100644 index 000000000..189ad5f18 --- /dev/null +++ b/01-JS-DOM-APIs/Exc3/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + +
Chuck Norris Joke
+ +
+

+
+ + + + + + + \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc3/normalize.css b/01-JS-DOM-APIs/Exc3/normalize.css new file mode 100644 index 000000000..a9c6f52f0 --- /dev/null +++ b/01-JS-DOM-APIs/Exc3/normalize.css @@ -0,0 +1,396 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/01-JS-DOM-APIs/Exc3/script.js b/01-JS-DOM-APIs/Exc3/script.js new file mode 100644 index 000000000..098b53f04 --- /dev/null +++ b/01-JS-DOM-APIs/Exc3/script.js @@ -0,0 +1,61 @@ +var promise = functionRequest("GET", "http://api.icndb.com/jokes/random", true); // I create a variable, I assign a function and I pass the parameters to it. + +function functionRequest(method, url, async) { + var myPromise = new Promise(function(resolve, reject) { // I create my promise. + + var request = new XMLHttpRequest(); + + request.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + var valor = JSON.parse(this.responseText); + document.getElementById("joke").innerHTML = valor.value.joke; + resolve("Everything is fine"); // Notice by console that everything went well. + } else { + document.getElementById('box').style.backgroundColor = 'Red'; + reject(Error("Something went wrong")); // Notice by console that something went wrong. + } + }; + request.open(method, url, async); // I use the arguments of my function to make the request to the API that I want. + request.send(); + }); + return myPromise; +} + +promise.then(function(response) { + console.log(response); +}, function(error) { + console.log(error); +}); + + + +// TODO ESTO ANDA // + +// var promise = functionRequest("GET", "http://api.icndb.com/jokes/random", true); // Creo una variable y le asigno una funcion. + +// function functionRequest(method, url, async) { +// var myPromise = new Promise(function(resolve, reject) { // Creo mi promesa. + +// var request = new XMLHttpRequest(); + +// request.onreadystatechange = function() { +// if (this.readyState == 4 && this.status == 200) { +// var valor = JSON.parse(this.responseText); +// document.getElementById("joke").innerHTML = valor.value.joke; +// resolve("Todo salio bien!"); +// } else { +// reject(Error("Algo salio mal...")); +// } + +// }; +// request.open("GET", "http://api.icndb.com/jokes/random", true); +// request.send(); +// }); +// return myPromise; +// } + +// promise.then(function(response) { +// console.log(response); +// }, function(error) { +// console.log(error); +// }); \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc3/style.css b/01-JS-DOM-APIs/Exc3/style.css new file mode 100644 index 000000000..60057f0fa --- /dev/null +++ b/01-JS-DOM-APIs/Exc3/style.css @@ -0,0 +1,31 @@ +header { + text-align: center; + margin: 5% 11px 12px 13px; + font-family: sans-serif; + font-size: 42px; +} + +button { + margin: auto auto auto 670px; + border-radius: 30px 0px 30px 0px; + -moz-border-radius: 30px 0px 30px 0px; + -webkit-border-radius: 30px 0px 30px 0px; + border: 1px solid; + /* display: inline-block; */ +} + +#box { + border-radius: 35px 0px 35px 0px; + -moz-border-radius: 35px 0px 35px 0px; + -webkit-border-radius: 35px 0px 35px 0px; + border: 2px solid #5878ca; + font-family: sans-serif; + font-size: 37px; + font-weight: 400; + color: #ffffff; + background: #889ccf; + margin: 0 13% 25px 13%; + overflow: hidden; + padding: 20px; + text-align: center; +} \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc4/debug.log b/01-JS-DOM-APIs/Exc4/debug.log new file mode 100644 index 000000000..931310a59 --- /dev/null +++ b/01-JS-DOM-APIs/Exc4/debug.log @@ -0,0 +1 @@ +[1103/185731.276:ERROR:process_info.cc(359)] UncheckedAllocate diff --git a/01-JS-DOM-APIs/Exc4/index.html b/01-JS-DOM-APIs/Exc4/index.html new file mode 100644 index 000000000..55e655ed2 --- /dev/null +++ b/01-JS-DOM-APIs/Exc4/index.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + +
+ Search the repositories of a GitHub user +
+ + + +
+ +
+ + + + \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc4/normalize.css b/01-JS-DOM-APIs/Exc4/normalize.css new file mode 100644 index 000000000..a9c6f52f0 --- /dev/null +++ b/01-JS-DOM-APIs/Exc4/normalize.css @@ -0,0 +1,396 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/01-JS-DOM-APIs/Exc4/script.js b/01-JS-DOM-APIs/Exc4/script.js new file mode 100644 index 000000000..27151669c --- /dev/null +++ b/01-JS-DOM-APIs/Exc4/script.js @@ -0,0 +1,20 @@ +function getRepositorie() { + var request = new XMLHttpRequest(); + var search = document.getElementById("user").value; + request.open("GET", "https://api.github.com/search/repositories?q=" + search, true); + request.onload = () => get_list(JSON.parse(request.responseText)); + request.send(); +} + +function get_list(user) { + var userList = document.getElementsByClassName("repositories")[0]; + var Ul = document.createElement("ul"); + // document.getElementById('.user-list').style.visibility = 'visible'; + for (var count = 0; count < user.items.length; count++) { + var Li = document.createElement("li"); + var user_Repo = document.createTextNode(user.items[count].name); + Li.appendChild(user_Repo); + Ul.appendChild(Li); + } + userList.appendChild(Ul); +} \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc4/style.css b/01-JS-DOM-APIs/Exc4/style.css new file mode 100644 index 000000000..5af67786e --- /dev/null +++ b/01-JS-DOM-APIs/Exc4/style.css @@ -0,0 +1,21 @@ +* { + font-family: sans-serif; + text-align: center; +} + +header { + margin: 5% 11px 12px 13px; + font-size: 42px; +} + +div { + margin: 13px 250px 13px 250px; + box-align: center; + padding: 2%; +} + +.repositories { + font-size: 18px; + border-style: double; + /* visibility: hidden; */ +} \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc6/index.css b/01-JS-DOM-APIs/Exc6/index.css new file mode 100644 index 000000000..4dc1bf6a1 --- /dev/null +++ b/01-JS-DOM-APIs/Exc6/index.css @@ -0,0 +1,35 @@ +* { + font-family: sans-serif; + text-align: center; +} + +header { + margin: 5% 11px 12px 13px; + font-size: 42px; +} + +div { + margin: 13px 250px 13px 250px; + box-align: center; + padding: 2%; +} + +.repositories { + font-size: 18px; + border-style: double; + /* visibility: hidden; */ +} + +table { + /* Centro la tabla y quito espacios entre las filas y columnas*/ + margin: 0 auto; + width: 350px; + border-collapse: collapse; + margin-bottom: 3%; +} + +td, +th { + /* Agrego bordes a las filas y columnas */ + border: 1px solid black; +} \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc6/index.html b/01-JS-DOM-APIs/Exc6/index.html new file mode 100644 index 000000000..2194c51a1 --- /dev/null +++ b/01-JS-DOM-APIs/Exc6/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + +
+ Create Table! +
+ +
+ + +
+ + + \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc6/index.js b/01-JS-DOM-APIs/Exc6/index.js new file mode 100644 index 000000000..ff971adc0 --- /dev/null +++ b/01-JS-DOM-APIs/Exc6/index.js @@ -0,0 +1,86 @@ +// Funcion para crear la tabla +function create_table() { + // Take the reference of the element body. + var body = document.getElementsByTagName("body")[0]; + // Create the elements and . + var table = document.createElement("table"); + var tbody = document.createElement("tbody"); + // Variables + var row; + var cells; + var textCells; + var counter; + var counter_2; + + // Create cells titles + row = document.createElement("tr"); + for (counter_2 = 0; counter_2 < 3; counter_2++) { + cells = document.createElement("th"); + if (counter_2 === 0) { + textCells = document.createTextNode("Name"); + } + if (counter_2 === 1) { + textCells = document.createTextNode("LastName"); + } + if (counter_2 === 2) { + textCells = document.createTextNode("Age"); + } + cells.appendChild(textCells); + row.appendChild(cells); + } + tbody.appendChild(row); + + // Create cells content + for (counter = 0; counter < getRandomArbitrary(100); counter++) { + row = document.createElement("tr"); + + for (counter_2 = 0; counter_2 < 3; counter_2++) { + cells = document.createElement("td"); + if (counter_2 === 0) { + textCells = document.createTextNode(names[getRandomArbitrary(names.length - 1)]); + } + if (counter_2 === 1) { + textCells = document.createTextNode(lastname[getRandomArbitrary(lastname.length - 1)]); + } + if (counter_2 === 2) { + textCells = document.createTextNode(getRandomArbitrary(100)); + } + + cells.appendChild(textCells); + row.appendChild(cells); + } + tbody.appendChild(row); + } + table.appendChild(tbody); + body.appendChild(table); +} + + +// Function to create a random number. +function getRandomArbitrary(max) { + return Math.round(Math.random() * max); +} +// Array list of names. +var names = ['Abie', 'Aaron', + 'Adele', 'Abadie', + 'AdelineE', 'Abel', + 'Adriana', 'Abigail', + 'Aeryn', 'Abraham', + 'Agnes', 'Achille', + 'Ailann', 'Adam', + 'Alanis', 'Adolf', + 'Alberta', 'Adrian', + 'Alberte', 'Adrien', + 'Alessia', 'Aki' +]; +// Array list of lastnames. +var lastname = ['Roberts', + 'Thomas', 'Evans', + 'Wilson', 'Davies', + 'Taylor', 'Brown', + 'Williams', 'Jones', + 'Smith', 'Smith', + 'Johnson', 'Williams', + 'Brown', 'Jones', + 'Miller', 'Garcia' +]; \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc6/normalize.css b/01-JS-DOM-APIs/Exc6/normalize.css new file mode 100644 index 000000000..a9c6f52f0 --- /dev/null +++ b/01-JS-DOM-APIs/Exc6/normalize.css @@ -0,0 +1,396 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9. + * 2. Remove excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} From cfb7eee947a53e3feaf102337039fdbd29e22e23 Mon Sep 17 00:00:00 2001 From: EtcGonza Date: Fri, 9 Nov 2018 18:33:09 -0300 Subject: [PATCH 2/2] All Topic02 --- .vscode/settings.json | 3091 +++++++++++++++++++++++ 01-JS-DOM-APIs/Exc3/index.html | 3 +- 01-JS-DOM-APIs/Exc3/script.js | 68 +- 01-JS-DOM-APIs/Exc4/script.js | 1 - 02-oop-inheritance/Exc1/movie.js | 47 + 02-oop-inheritance/Exc2/All.js | 115 + 02-oop-inheritance/Exc2/actor.js | 6 + 02-oop-inheritance/Exc2/eventEmitter.js | 31 + 02-oop-inheritance/Exc2/index.js | 29 + 02-oop-inheritance/Exc2/logger.js | 8 + 02-oop-inheritance/Exc2/movie.js | 34 + 02-oop-inheritance/Exc2/social.js | 8 + 03-MVC-AngularJS/.empty | 0 13 files changed, 3388 insertions(+), 53 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 02-oop-inheritance/Exc1/movie.js create mode 100644 02-oop-inheritance/Exc2/All.js create mode 100644 02-oop-inheritance/Exc2/actor.js create mode 100644 02-oop-inheritance/Exc2/eventEmitter.js create mode 100644 02-oop-inheritance/Exc2/index.js create mode 100644 02-oop-inheritance/Exc2/logger.js create mode 100644 02-oop-inheritance/Exc2/movie.js create mode 100644 02-oop-inheritance/Exc2/social.js delete mode 100644 03-MVC-AngularJS/.empty diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..c697de00a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3091 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@babel/cli": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.1.5.tgz", + "integrity": "sha512-zbO/DtTnaDappBflIU3zYEgATLToRDmW5uN/EGH1GXaes7ydfjqmAoK++xmJIA+8HfDw7UyPZNdM8fhGhfmMhw==", + "dev": true, + "requires": { + "chokidar": "^2.0.3", + "commander": "^2.8.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.10", + "mkdirp": "^0.5.1", + "output-file-sync": "^2.0.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.5.tgz", + "integrity": "sha512-vOyH020C56tQvte++i+rX2yokZcRfbv/kKcw+/BCRw/cK6dvsr47aCzm8oC1XHwMSEWbqrZKzZRLzLnq6SFMsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.5", + "@babel/helpers": "^7.1.5", + "@babel/parser": "^7.1.5", + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.1.5", + "convert-source-map": "^1.1.0", + "debug": "^3.1.0", + "json5": "^0.5.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.5.tgz", + "integrity": "sha512-IO31r62xfMI+wBJVmgx0JR9ZOHty8HkoYpQAjRWUGG9vykBTlGHdArZ8zoFtpUu2gs17K7qTl/TtPpiSi6t+MA==", + "requires": { + "@babel/types": "^7.1.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helpers": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.5.tgz", + "integrity": "sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg==", + "requires": { + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.1.5" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.5.tgz", + "integrity": "sha512-WXKf5K5HT6X0kKiCOezJZFljsfxKV1FpU8Tf1A7ZpGvyd/Q4hlrJm2EwoH2onaUq3O4tLDp+4gk0hHPsMyxmOg==" + }, + "@babel/template": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", + "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.2", + "@babel/types": "^7.1.2" + } + }, + "@babel/traverse": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.5.tgz", + "integrity": "sha512-eU6XokWypl0MVJo+MTSPUtlfPePkrqsF26O+l1qFGlCKWwmiYAYy2Sy44Qw8m2u/LbPCsxYt90rghmqhYMGpPA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.5", + "@babel/types": "^7.1.5", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", + "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "@babel/types": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.5.tgz", + "integrity": "sha512-sJeqa/d9eM/bax8Ivg+fXF7FpN3E/ZmTrWbkk6r+g7biVYfALMnLin4dKijsaqEhpd2xvOGfQTkQkD31YCVV4A==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-preset-es2018": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-es2018/-/babel-preset-es2018-1.0.0.tgz", + "integrity": "sha1-3wg+ySTFw8hTErnldcuRrFdVkjY=" + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "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" + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "requires": { + "exit": "0.1.2", + "glob": "^7.1.1" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "^0.1.4" + } + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" + }, + "daemonize2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/daemonize2/-/daemonize2-0.4.2.tgz", + "integrity": "sha1-xuR0B4vs+n16gUACUUxHEvZP4G8=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "requires": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" + }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "requires": { + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "jshint": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.6.tgz", + "integrity": "sha512-KO9SIAKTlJQOM4lE64GQUtGBRpTOuvbrRrSZw3AhUxMNG266nX9hK2cKA4SBhXOj0irJGyNyGSLT62HGOVDEOA==", + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "phantom": "~4.0.1", + "phantomjs-prebuilt": "~2.1.7", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x", + "unicode-5.2.0": "^0.7.5" + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "~1.36.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nan": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize.css": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.0.tgz", + "integrity": "sha512-iXcbM3NWr0XkNyfiSBsoPezi+0V92P9nj84yVV1/UZxRUrGczgX/X91KMAGM0omWLY2+2Q1gKD/XRn4gQRDB2A==" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "output-file-sync": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", + "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", + "requires": { + "graceful-fs": "^4.1.11", + "is-plain-obj": "^1.1.0", + "mkdirp": "^0.5.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "phantom": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/phantom/-/phantom-4.0.12.tgz", + "integrity": "sha512-Tz82XhtPmwCk1FFPmecy7yRGZG2btpzY2KI9fcoPT7zT9det0CcMyfBFPp1S8DqzsnQnm8ZYEfdy528mwVtksA==", + "requires": { + "phantomjs-prebuilt": "^2.1.16", + "split": "^1.0.1", + "winston": "^2.4.0" + } + }, + "phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "requires": { + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" + } + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pom": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pom/-/pom-1.0.3.tgz", + "integrity": "sha1-kpQ56C+C6FCeYFGG35UhNiEBiOM=", + "requires": { + "commander": "2.1.0", + "daemonize2": "0.4.2", + "moment": "^2.15.1", + "yamljs": "^0.2.8" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=" + }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "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" + } + }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "requires": { + "throttleit": "^1.0.0" + } + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "requires": { + "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": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=" + }, + "through": { + "version": "2.3.8", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "unicode-5.2.0": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/unicode-5.2.0/-/unicode-5.2.0-0.7.5.tgz", + "integrity": "sha512-KVGLW1Bri30x00yv4HNM8kBxoqFXr0Sbo55735nvrlsx4PYBZol3UtoWgO492fSwmsetzPEZzy73rbU8OGXJcA==" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==" + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "winston": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz", + "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==", + "requires": { + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yamljs": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz", + "integrity": "sha1-SBzHwlynOvWfWR8MluPOVsdXpA8=", + "requires": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "requires": { + "fd-slicer": "~1.0.1" + } + } + }, + "devDependencies": { + "babel-cli": "^6.26.0" + } +} diff --git a/01-JS-DOM-APIs/Exc3/index.html b/01-JS-DOM-APIs/Exc3/index.html index 189ad5f18..858cfc4a6 100644 --- a/01-JS-DOM-APIs/Exc3/index.html +++ b/01-JS-DOM-APIs/Exc3/index.html @@ -18,8 +18,7 @@

- - + diff --git a/01-JS-DOM-APIs/Exc3/script.js b/01-JS-DOM-APIs/Exc3/script.js index 098b53f04..9129a3cfe 100644 --- a/01-JS-DOM-APIs/Exc3/script.js +++ b/01-JS-DOM-APIs/Exc3/script.js @@ -1,61 +1,29 @@ -var promise = functionRequest("GET", "http://api.icndb.com/jokes/random", true); // I create a variable, I assign a function and I pass the parameters to it. +function getJoke() { + var promise = functionRequest("GET", "http://api.icndb.com/jokes/random", true); // I create a variable, I assign a function and I pass the parameters to it. + + promise.then(function(response) { + var valor = JSON.parse(response); + document.getElementById("joke").innerHTML = valor.value.joke; + }, function(error) { + document.getElementById("box").style.backgroundColor = 'Red'; + console.log(error); + }); +} function functionRequest(method, url, async) { - var myPromise = new Promise(function(resolve, reject) { // I create my promise. + var myPromise = new Promise(function(resolve, reject) { var request = new XMLHttpRequest(); request.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - var valor = JSON.parse(this.responseText); - document.getElementById("joke").innerHTML = valor.value.joke; - resolve("Everything is fine"); // Notice by console that everything went well. - } else { - document.getElementById('box').style.backgroundColor = 'Red'; - reject(Error("Something went wrong")); // Notice by console that something went wrong. + if (this.readyState == 4 && this.status < 399) { + resolve(this.responseText); // Notice by console that everything went well. + } else if (this.readyState === 4 && this.status > 399) { + reject(error("Something went wrong")); // Notice by console that something went wrong. } }; - request.open(method, url, async); // I use the arguments of my function to make the request to the API that I want. + request.open(method, url, async); request.send(); }); return myPromise; -} - -promise.then(function(response) { - console.log(response); -}, function(error) { - console.log(error); -}); - - - -// TODO ESTO ANDA // - -// var promise = functionRequest("GET", "http://api.icndb.com/jokes/random", true); // Creo una variable y le asigno una funcion. - -// function functionRequest(method, url, async) { -// var myPromise = new Promise(function(resolve, reject) { // Creo mi promesa. - -// var request = new XMLHttpRequest(); - -// request.onreadystatechange = function() { -// if (this.readyState == 4 && this.status == 200) { -// var valor = JSON.parse(this.responseText); -// document.getElementById("joke").innerHTML = valor.value.joke; -// resolve("Todo salio bien!"); -// } else { -// reject(Error("Algo salio mal...")); -// } - -// }; -// request.open("GET", "http://api.icndb.com/jokes/random", true); -// request.send(); -// }); -// return myPromise; -// } - -// promise.then(function(response) { -// console.log(response); -// }, function(error) { -// console.log(error); -// }); \ No newline at end of file +} \ No newline at end of file diff --git a/01-JS-DOM-APIs/Exc4/script.js b/01-JS-DOM-APIs/Exc4/script.js index 27151669c..a1664dda6 100644 --- a/01-JS-DOM-APIs/Exc4/script.js +++ b/01-JS-DOM-APIs/Exc4/script.js @@ -9,7 +9,6 @@ function getRepositorie() { function get_list(user) { var userList = document.getElementsByClassName("repositories")[0]; var Ul = document.createElement("ul"); - // document.getElementById('.user-list').style.visibility = 'visible'; for (var count = 0; count < user.items.length; count++) { var Li = document.createElement("li"); var user_Repo = document.createTextNode(user.items[count].name); diff --git a/02-oop-inheritance/Exc1/movie.js b/02-oop-inheritance/Exc1/movie.js new file mode 100644 index 000000000..1febae10c --- /dev/null +++ b/02-oop-inheritance/Exc1/movie.js @@ -0,0 +1,47 @@ +// MOVIE CLASS +class Movie { + constructor(title, year, duration) { + this.title = title; + this.year = year; + this.duration = duration; + } + + play() { + console.log("the movie is playing."); + } + + pause() { + console.log("the movie is paused.") + } + + resume() { + console.log("Resume of the movie.") + } +} + +// ACTOR CLASS +class Actor { + constructor(name, age) { + this.name = name; + this.age = age; + } +} + + +// EVENTEMITTER CLASS +class EventEmitter { + constructor() { + + } + + on(eventName, callback) { + + } + emit(eventName) { + + } + off(eventName, callback) { + + } + +} \ No newline at end of file diff --git a/02-oop-inheritance/Exc2/All.js b/02-oop-inheritance/Exc2/All.js new file mode 100644 index 000000000..a8a24fe14 --- /dev/null +++ b/02-oop-inheritance/Exc2/All.js @@ -0,0 +1,115 @@ +// This file contains all the classes to be compiled here and tested. +// There is also an index.js file that has the same operation as this All.js +// but that imports the classes. + +class Logger { + constructor() { + + } + log(eventName) { + console.log(`event ${eventName} is active`); + } +} + +class EventEmitter extends Logger { + constructor() { + super(); + this.events = []; + } + + on(eventName, callback) { // 'on' is used to add a callback function that’s going to be executed when the event is triggered || Eventname = play, pause, resume. + // 'EventName' is a string and 'callback' is a function + if (this.events[eventName]) { + this.events[eventName].push(callback); + } else { + this.events[eventName] = [callback]; + } + } + emit(eventName) { // emit is used to trigger an event + if (this.events[eventName]) { + this.events[eventName].forEach(cb => { + this.log(eventName); + cb(); + }); + } + } + off(eventName) { + if (this.events[eventName]) { + this.events[eventName].splice(this.events[eventName], this.events[eventName].length); + } + } +} + +class Movie extends EventEmitter { + constructor(title, year, duration) { + super(); + this.title = title; + this.year = year; + this.duration = duration; + this.cast = []; + } + + play() { + super.emit("Play"); + } + + pause() { + super.emit("Pause"); + } + + resume() { + super.emit("Resume"); + } + + addCast(actor) { + if (actor.length != undefined) { + for (var i = 0; i < actor.length; i++) { + this.cast.push(actor[i]); + } + } else { + this.cast.push(actor); + } + } +} + +var Social = { + share(friendName) { + console.log(`${friendName} is sharing with you.`); + }, + like(friendName) { + console.log(`${friendName} likes the movie.`); + } +} + +class Actor { + constructor(name, age) { + this.name = name; + this.age = age; + } +} + +var Terminator = new Movie("Terminator", 1996, 180); +var arnold = new Actor("Arnold Schwarzenegger", 50); +Object.assign(Movie.prototype, Social); // Mixing +Terminator.addCast(arnold); +var othercast = [ + new Actor('Paul Winfield', 50), + new Actor('Michael Biehn', 50), + new Actor('Linda Hamilton', 50) +]; +Terminator.addCast(othercast); + +Terminator.share("Gonzalo"); +Terminator.like("Gonzalo"); +Terminator.on("Play", function() { + console.log("Play Event"); +}); +Terminator.on("Pause", function() { + console.log("Pause Event"); +}); +Terminator.on("Resume", function() { + console.log("Resume Event"); +}); +Terminator.play(); +Terminator.pause(); +Terminator.resume(); \ No newline at end of file diff --git a/02-oop-inheritance/Exc2/actor.js b/02-oop-inheritance/Exc2/actor.js new file mode 100644 index 000000000..98514721e --- /dev/null +++ b/02-oop-inheritance/Exc2/actor.js @@ -0,0 +1,6 @@ +export class Actor { + constructor(name, age) { + this.name = name; + this.age = age; + } +} \ No newline at end of file diff --git a/02-oop-inheritance/Exc2/eventEmitter.js b/02-oop-inheritance/Exc2/eventEmitter.js new file mode 100644 index 000000000..36840ccca --- /dev/null +++ b/02-oop-inheritance/Exc2/eventEmitter.js @@ -0,0 +1,31 @@ +import { Logger } from "./logger"; + +export class EventEmitter extends Logger { + constructor() { + super(); + this.events = []; + } + + on(eventName, callback) { // 'on' is used to add a callback function that’s going to be executed when the event is triggered || Eventname = play, pause, resume. + // 'EventName' is a string and 'callback' is a function + if (this.events[eventName]) { + this.events[eventName].push(callback); + } else { + this.events[eventName] = [callback]; + } + } + emit(eventName) { // emit is used to trigger an event + if (this.events[eventName]) { + this.events[eventName].forEach(cb => { + this.log(eventName); + cb(); + }); + } + + } + off(eventName) { + if (this.events[eventName]) { + this.events[eventName].splice(this.events[eventName], this.events[eventName].length); + } + } +} \ No newline at end of file diff --git a/02-oop-inheritance/Exc2/index.js b/02-oop-inheritance/Exc2/index.js new file mode 100644 index 000000000..4ec0e0a65 --- /dev/null +++ b/02-oop-inheritance/Exc2/index.js @@ -0,0 +1,29 @@ +// This file imports the classes used to be able to work. +// There is also an All.js file that contains all the classes without importing +// and that can be executed from that same All.js file + +import { Actor } from "./actor.js"; +import { Movie } from "./movie.js"; +import { EventEmitter } from "./eventEmitter.js"; +import { Logger } from "./logger.js"; + +var Terminator = new Movie("Terminator", 1996, 180); +var arnold = new Actor("Arnold Schwarzenegger", 50); +Object.assign(Movie.prototype, Social); // Mixing +Terminator.addCast(arnold); +var othercast = [ + new Actor('Paul Winfield', 50), + new Actor('Michael Biehn', 50), + new Actor('Linda Hamilton', 50) +]; +Terminator.addCast(othercast); +// console.log(Terminator.cast); + +Terminator.share("Gonzalo"); +Terminator.like("Gonzalo"); +Terminator.on("Play", function() {}); +Terminator.on("Pause", function() {}); +Terminator.on("Resume", function() {}); +Terminator.play(); +Terminator.pause(); +Terminator.resume(); \ No newline at end of file diff --git a/02-oop-inheritance/Exc2/logger.js b/02-oop-inheritance/Exc2/logger.js new file mode 100644 index 000000000..c0bee468d --- /dev/null +++ b/02-oop-inheritance/Exc2/logger.js @@ -0,0 +1,8 @@ +export class Logger { + constructor() { + + } + log(eventName) { + console.log(`event ${eventName} is active`); + } +} \ No newline at end of file diff --git a/02-oop-inheritance/Exc2/movie.js b/02-oop-inheritance/Exc2/movie.js new file mode 100644 index 000000000..cdc229a58 --- /dev/null +++ b/02-oop-inheritance/Exc2/movie.js @@ -0,0 +1,34 @@ +import { EventEmitter } from "./eventEmitter"; + +class Movie extends EventEmitter { + constructor(title, year, duration) { + super(); + this.title = title; + this.year = year; + this.duration = duration; + this.cast = []; + } + + play() { + super.emit("Play"); + } + + pause() { + super.emit("Pause"); + } + + resume() { + super.emit("Resume"); + } + + addCast(actor) { + if (actor.length != undefined) { + for (var i = 0; i < actor.length; i++) { + this.cast.push(actor[i]); + + } + } else { + this.cast.push(actor); + } + } +} \ No newline at end of file diff --git a/02-oop-inheritance/Exc2/social.js b/02-oop-inheritance/Exc2/social.js new file mode 100644 index 000000000..a7fa20083 --- /dev/null +++ b/02-oop-inheritance/Exc2/social.js @@ -0,0 +1,8 @@ +export var Social = { + share(friendName) { + console.log(`${friendName} is sharing with you.`); + }, + like(friendName) { + console.log(`${friendName} likes the movie.`); + } +} \ No newline at end of file diff --git a/03-MVC-AngularJS/.empty b/03-MVC-AngularJS/.empty deleted file mode 100644 index e69de29bb..000000000