├── .DS_Store ├── html-css ├── baseElements.html ├── css │ ├── boxStory.html │ ├── cssBoxModel.html │ ├── flexBoxSample.html │ └── templatesample │ │ ├── reset.css │ │ ├── template1.html │ │ └── template2.html ├── cssIntro.html ├── cssSelectors.html ├── cssSelectors2.html ├── intro.html └── sassSample │ ├── techcareerTemplate │ ├── assets │ │ └── scss │ │ │ ├── abstract │ │ │ └── _variables.scss │ │ │ ├── components │ │ │ └── _button.scss │ │ │ ├── layout │ │ │ └── _navbar.scss │ │ │ ├── main.css │ │ │ ├── main.css.map │ │ │ └── main.scss │ └── index.html │ └── template2 │ ├── assets │ ├── abstracts │ │ └── _variables.scss │ ├── base │ │ └── _reset.scss │ ├── components │ │ └── _button.scss │ ├── layout │ │ └── _navbar.scss │ ├── main.css │ ├── main.css.map │ ├── main.scss │ └── pages │ │ ├── contact │ │ └── _contact.scss │ │ └── home │ │ ├── _header.scss │ │ └── _home.scss │ └── index.html ├── js ├── asyncAwait │ └── asyncSample.html ├── axios │ ├── deleteSample.html │ ├── getSample.html │ ├── postSample.html │ └── weatherApiSample.html ├── dom │ ├── domCreateElement.html │ ├── domIntro.html │ ├── domSample1.html │ ├── domSample2.html │ └── domTimingSample3.html ├── fetch │ ├── fetchGetSample.html │ └── productPage.html ├── intro │ ├── arrowFunctions.html │ ├── dataTypes.html │ ├── dataTypes2.html │ ├── functions.html │ ├── jsCallback.html │ └── typeConvension.html └── object │ ├── arrayFilterSort.html │ ├── arrayFind.html │ ├── arraySample2.html │ └── objectArraySample.html ├── kaynaklar.txt ├── node_modules ├── .bin │ └── sass ├── .package-lock.json ├── anymatch │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ └── package.json ├── binary-extensions │ ├── binary-extensions.json │ ├── binary-extensions.json.d.ts │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── braces │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── compile.js │ │ ├── constants.js │ │ ├── expand.js │ │ ├── parse.js │ │ ├── stringify.js │ │ └── utils.js │ └── package.json ├── chokidar │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── constants.js │ │ ├── fsevents-handler.js │ │ └── nodefs-handler.js │ ├── package.json │ └── types │ │ └── index.d.ts ├── fill-range │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── fsevents │ ├── LICENSE │ ├── README.md │ ├── fsevents.d.ts │ ├── fsevents.js │ ├── fsevents.node │ └── package.json ├── glob-parent │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── immutable │ ├── LICENSE │ ├── README.md │ ├── dist │ │ ├── immutable.d.ts │ │ ├── immutable.es.js │ │ ├── immutable.js │ │ ├── immutable.js.flow │ │ └── immutable.min.js │ └── package.json ├── is-binary-path │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-extglob │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── is-glob │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── is-number │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── normalize-path │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── picomatch │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ ├── constants.js │ │ ├── parse.js │ │ ├── picomatch.js │ │ ├── scan.js │ │ └── utils.js │ └── package.json ├── readdirp │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ └── package.json ├── sass │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── sass.dart.js │ ├── sass.default.cjs │ ├── sass.default.js │ ├── sass.js │ ├── sass.node.js │ ├── sass.node.mjs │ └── types │ │ ├── compile.d.ts │ │ ├── exception.d.ts │ │ ├── importer.d.ts │ │ ├── index.d.ts │ │ ├── legacy │ │ ├── exception.d.ts │ │ ├── function.d.ts │ │ ├── importer.d.ts │ │ ├── options.d.ts │ │ ├── plugin_this.d.ts │ │ └── render.d.ts │ │ ├── logger │ │ ├── index.d.ts │ │ ├── source_location.d.ts │ │ └── source_span.d.ts │ │ ├── options.d.ts │ │ ├── util │ │ └── promise_or.d.ts │ │ └── value │ │ ├── argument_list.d.ts │ │ ├── boolean.d.ts │ │ ├── calculation.d.ts │ │ ├── color.d.ts │ │ ├── function.d.ts │ │ ├── index.d.ts │ │ ├── list.d.ts │ │ ├── map.d.ts │ │ ├── number.d.ts │ │ └── string.d.ts ├── source-map-js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── array-set.js │ │ ├── base64-vlq.js │ │ ├── base64.js │ │ ├── binary-search.js │ │ ├── mapping-list.js │ │ ├── quick-sort.js │ │ ├── source-map-consumer.js │ │ ├── source-map-generator.js │ │ ├── source-node.js │ │ └── util.js │ ├── package.json │ ├── source-map.d.ts │ └── source-map.js └── to-regex-range │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── notes.txt ├── package-lock.json ├── package.json ├── unutmamali.txt └── ödevler.txt /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yakintech/techcareer-html-css-js/06944aecfa4e9c6bfc5b88b03bd138786d06575c/.DS_Store -------------------------------------------------------------------------------- /html-css/baseElements.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 | Çağatay 10 | İstanbul 11 |

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Doloremque, nihil. Rem minima amet reiciendis recusandae delectus, doloremque architecto eum cupiditate nam iusto cum doloribus sapiente veniam quibusdam exercitationem nemo error?

12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /html-css/css/boxStory.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 15 | 16 | 17 | 18 |
19 | Box - 1 20 |
21 |
22 | Box - 2 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /html-css/css/cssBoxModel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 19 | 20 | 21 | 22 | 23 |
24 | Çağatay Yıldız 25 |
26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /html-css/css/flexBoxSample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | box-1 23 |
24 |
25 | box-2 26 |
27 |
28 | box-3 29 |
30 |
31 | 32 | 33 |
34 | Çağatay 35 |
36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /html-css/css/templatesample/reset.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v2.0 | 20110126 3 | License: none (public domain) 4 | */ 5 | 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | } 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, menu, nav, section { 29 | display: block; 30 | } 31 | body { 32 | line-height: 1; 33 | } 34 | ol, ul { 35 | list-style: none; 36 | } 37 | blockquote, q { 38 | quotes: none; 39 | } 40 | blockquote:before, blockquote:after, 41 | q:before, q:after { 42 | content: ''; 43 | content: none; 44 | } 45 | table { 46 | border-collapse: collapse; 47 | border-spacing: 0; 48 | } -------------------------------------------------------------------------------- /html-css/css/templatesample/template1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 13 | 14 | 15 | 16 | 97 | 98 | 99 | 100 | 101 | 110 |
111 | 112 |

Start Bootstrap

113 |
114 |
115 | 116 |
117 |
118 |

Graphic Artist - Web Designer - Illustrator

119 |
120 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /html-css/css/templatesample/template2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 40 | 41 | 42 | 43 |
44 | 45 | 46 | 54 |
55 | 56 |
57 | 58 |
59 | 60 | -------------------------------------------------------------------------------- /html-css/cssIntro.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Eius, voluptatem. Eum facere similique praesentium repellendus animi molestiae ipsam explicabo quasi alias, doloremque maiores tempora repellat rerum voluptatem recusandae amet asperiores?

10 | 11 | Çağatay Yıldız 12 | 13 | 14 | -------------------------------------------------------------------------------- /html-css/cssSelectors.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | İzmir 34 | İstanbul 35 |
36 | Ankara 37 |
38 | 39 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi consectetur voluptas, autem et earum qui laudantium impedit pariatur numquam, sapiente officia omnis, fuga laborum maxime perspiciatis molestias vitae molestiae accusamus!,

40 | 41 |
42 | 43 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi consectetur voluptas, autem et earum qui laudantium impedit pariatur numquam, sapiente officia omnis, fuga laborum maxime perspiciatis molestias vitae molestiae accusamus!,

44 | 45 |
46 | 47 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi consectetur voluptas, autem et earum qui laudantium impedit pariatur numquam, sapiente officia omnis, fuga laborum maxime perspiciatis molestias vitae molestiae accusamus!,

48 | 49 | -------------------------------------------------------------------------------- /html-css/cssSelectors2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 15 | 16 | 17 | 18 |

Site Title

19 | 20 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique nihil error placeat doloribus provident aut sed illo? Beatae quod tempore veniam dolores! Cum quis voluptas vero illo voluptatum magnam in.

21 |
22 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique nihil error placeat doloribus provident aut sed illo? Beatae quod tempore veniam dolores! Cum quis voluptas vero illo voluptatum magnam in.

23 |
24 | 25 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique nihil error placeat doloribus provident aut sed illo? Beatae quod tempore veniam dolores! Cum quis voluptas vero illo voluptatum magnam in.

26 |
27 | 28 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique nihil error placeat doloribus provident aut sed illo? Beatae quod tempore veniam dolores! Cum quis voluptas vero illo voluptatum magnam in.

29 |
30 | 31 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique nihil error placeat doloribus provident aut sed illo? Beatae quod tempore veniam dolores! Cum quis voluptas vero illo voluptatum magnam in.

32 | 33 | 34 | -------------------------------------------------------------------------------- /html-css/intro.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Cagatay site 7 | 8 | 9 |

Bu bir paragraf elementidir

10 |

Bu bir başlık elementidir. Çağatay Yıldız

11 |

Bu da bir başlık elementidir!

12 | Go to Techcareer!! 13 | 14 | 15 | -------------------------------------------------------------------------------- /html-css/sassSample/techcareerTemplate/assets/scss/abstract/_variables.scss: -------------------------------------------------------------------------------- 1 | $baseColor: #00D076; -------------------------------------------------------------------------------- /html-css/sassSample/techcareerTemplate/assets/scss/components/_button.scss: -------------------------------------------------------------------------------- 1 | @import '../abstract/variables'; 2 | 3 | .tech-button{ 4 | background-color: $baseColor; 5 | } -------------------------------------------------------------------------------- /html-css/sassSample/techcareerTemplate/assets/scss/layout/_navbar.scss: -------------------------------------------------------------------------------- 1 | nav{ 2 | display: flex; 3 | justify-content: space-between; 4 | height: 68px; 5 | padding-left:10%; 6 | padding-right: 10%; 7 | 8 | ul{ 9 | display: flex; 10 | } 11 | a{ 12 | text-decoration: none; 13 | color: #000; 14 | font-size: 1.2rem; 15 | font-weight: 600; 16 | padding: 0 1rem; 17 | &:hover{ 18 | color: #f00; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /html-css/sassSample/techcareerTemplate/assets/scss/main.css: -------------------------------------------------------------------------------- 1 | .tech-button { 2 | background-color: #00D076; 3 | } 4 | 5 | nav { 6 | display: flex; 7 | justify-content: space-between; 8 | height: 68px; 9 | padding-left: 10%; 10 | padding-right: 10%; 11 | } 12 | nav ul { 13 | display: flex; 14 | } 15 | nav a { 16 | text-decoration: none; 17 | color: #000; 18 | font-size: 1.2rem; 19 | font-weight: 600; 20 | padding: 0 1rem; 21 | } 22 | nav a:hover { 23 | color: #f00; 24 | } 25 | 26 | /*# sourceMappingURL=main.css.map */ 27 | -------------------------------------------------------------------------------- /html-css/sassSample/techcareerTemplate/assets/scss/main.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sourceRoot":"","sources":["components/_button.scss","abstract/_variables.scss","layout/_navbar.scss"],"names":[],"mappings":"AAEA;EACI,kBCHQ;;;ACAZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AACA;EACI","file":"main.css"} -------------------------------------------------------------------------------- /html-css/sassSample/techcareerTemplate/assets/scss/main.scss: -------------------------------------------------------------------------------- 1 | @import './components/button'; 2 | @import './layout/navbar'; -------------------------------------------------------------------------------- /html-css/sassSample/techcareerTemplate/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 | 10 | 11 | 18 | 19 | -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/abstracts/_variables.scss: -------------------------------------------------------------------------------- 1 | $mainColor: #085ED6; 2 | $backColor: #F8F9FA; 3 | 4 | 5 | $black: #000; 6 | $white: #fff; -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/base/_reset.scss: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v5.0.2 | 20191019 3 | License: none (public domain) 4 | */ 5 | 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | main, menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | } 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, main, menu, nav, section { 29 | display: block; 30 | } 31 | /* HTML5 hidden-attribute fix for newer browsers */ 32 | *[hidden] { 33 | display: none; 34 | } 35 | body { 36 | line-height: 1; 37 | } 38 | menu, ol, ul { 39 | list-style: none; 40 | } 41 | blockquote, q { 42 | quotes: none; 43 | } 44 | blockquote:before, blockquote:after, 45 | q:before, q:after { 46 | content: ''; 47 | content: none; 48 | } 49 | table { 50 | border-collapse: collapse; 51 | border-spacing: 0; 52 | } -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/components/_button.scss: -------------------------------------------------------------------------------- 1 | button{ 2 | background-color: $mainColor; 3 | } -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/layout/_navbar.scss: -------------------------------------------------------------------------------- 1 | nav{ 2 | background-color: $backColor; 3 | height: 66px; 4 | padding-left: 10%; 5 | padding-right: 10%; 6 | display: flex; 7 | align-items: center; 8 | justify-content: space-between; 9 | 10 | a{ 11 | text-decoration: none; 12 | font-size: 16px; 13 | color: $black 14 | } 15 | 16 | button{ 17 | width: 87px; 18 | height: 50px; 19 | color: $white; 20 | border: none; 21 | border-radius: 10px; 22 | } 23 | } -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/main.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v5.0.2 | 20191019 3 | License: none (public domain) 4 | */ 5 | html, body, div, span, applet, object, iframe, 6 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 7 | a, abbr, acronym, address, big, cite, code, 8 | del, dfn, em, img, ins, kbd, q, s, samp, 9 | small, strike, strong, sub, sup, tt, var, 10 | b, u, i, center, 11 | dl, dt, dd, ol, ul, li, 12 | fieldset, form, label, legend, 13 | table, caption, tbody, tfoot, thead, tr, th, td, 14 | article, aside, canvas, details, embed, 15 | figure, figcaption, footer, header, hgroup, 16 | main, menu, nav, output, ruby, section, summary, 17 | time, mark, audio, video { 18 | margin: 0; 19 | padding: 0; 20 | border: 0; 21 | font-size: 100%; 22 | font: inherit; 23 | vertical-align: baseline; 24 | } 25 | 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, main, menu, nav, section { 29 | display: block; 30 | } 31 | 32 | /* HTML5 hidden-attribute fix for newer browsers */ 33 | *[hidden] { 34 | display: none; 35 | } 36 | 37 | body { 38 | line-height: 1; 39 | } 40 | 41 | menu, ol, ul { 42 | list-style: none; 43 | } 44 | 45 | blockquote, q { 46 | quotes: none; 47 | } 48 | 49 | blockquote:before, blockquote:after, 50 | q:before, q:after { 51 | content: ""; 52 | content: none; 53 | } 54 | 55 | table { 56 | border-collapse: collapse; 57 | border-spacing: 0; 58 | } 59 | 60 | nav { 61 | background-color: #F8F9FA; 62 | height: 66px; 63 | padding-left: 10%; 64 | padding-right: 10%; 65 | display: flex; 66 | align-items: center; 67 | justify-content: space-between; 68 | } 69 | nav a { 70 | text-decoration: none; 71 | font-size: 16px; 72 | color: #000; 73 | } 74 | nav button { 75 | width: 87px; 76 | height: 50px; 77 | color: #fff; 78 | border: none; 79 | border-radius: 10px; 80 | } 81 | 82 | button { 83 | background-color: #085ED6; 84 | } 85 | 86 | header { 87 | background: url("https://startbootstrap.github.io/startbootstrap-landing-page/assets/img/bg-masthead.jpg") no-repeat center center; 88 | display: flex; 89 | flex-direction: column; 90 | justify-content: center; 91 | align-items: center; 92 | height: 661px; 93 | } 94 | header p { 95 | font-size: 3rem; 96 | color: #fff; 97 | width: 50%; 98 | text-align: center; 99 | } 100 | header div { 101 | margin-top: 20px; 102 | } 103 | header input { 104 | padding: 1rem 1.25rem; 105 | font-size: 1.25rem; 106 | border-radius: 0.5rem; 107 | width: 500px; 108 | height: 64px; 109 | box-sizing: border-box; 110 | } 111 | header button { 112 | width: 103px; 113 | height: 64px; 114 | border: none; 115 | } 116 | 117 | /*# sourceMappingURL=main.css.map */ 118 | -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/main.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sourceRoot":"","sources":["base/_reset.scss","layout/_navbar.scss","abstracts/_variables.scss","components/_button.scss","pages/home/_header.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAaC;EACA;EACA;EACA;EACA;EACA;;;AAED;AACA;AAAA;EAEC;;;AAED;AACA;EACI;;;AAEJ;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;AAAA;EAEC;EACA;;;AAED;EACC;EACA;;;AClDD;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA,OCRA;;ADWJ;EACI;EACA;EACA,OCbA;EDcA;EACA;;;AEpBR;EACI,kBDDQ;;;AEAZ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA,OFLA;EEMA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA","file":"main.css"} -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/main.scss: -------------------------------------------------------------------------------- 1 | //abstracts 2 | @import './abstracts/variables'; 3 | 4 | 5 | //base 6 | @import './base/reset'; 7 | 8 | 9 | //layouts 10 | @import './layout/navbar'; 11 | 12 | //components 13 | @import './components/button'; 14 | 15 | //pages 16 | @import './pages/home/home'; 17 | @import './pages/contact/contact'; -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/pages/contact/_contact.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yakintech/techcareer-html-css-js/06944aecfa4e9c6bfc5b88b03bd138786d06575c/html-css/sassSample/template2/assets/pages/contact/_contact.scss -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/pages/home/_header.scss: -------------------------------------------------------------------------------- 1 | header { 2 | background: url('https://startbootstrap.github.io/startbootstrap-landing-page/assets/img/bg-masthead.jpg')no-repeat center center; 3 | display: flex; 4 | flex-direction: column; 5 | justify-content: center; 6 | align-items: center; 7 | height: 661px; 8 | 9 | p { 10 | font-size: 3rem; 11 | color: $white; 12 | width: 50%; 13 | text-align: center; 14 | } 15 | 16 | div { 17 | margin-top: 20px; 18 | } 19 | 20 | input { 21 | padding: 1rem 1.25rem; 22 | font-size: 1.25rem; 23 | border-radius: 0.5rem; 24 | width: 500px; 25 | height: 64px; 26 | box-sizing: border-box; 27 | 28 | } 29 | 30 | button{ 31 | width: 103px; 32 | height: 64px; 33 | border:none 34 | } 35 | } -------------------------------------------------------------------------------- /html-css/sassSample/template2/assets/pages/home/_home.scss: -------------------------------------------------------------------------------- 1 | @import './header'; -------------------------------------------------------------------------------- /html-css/sassSample/template2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 15 |
16 |

17 | Generate more leads with a 18 | professional landing page! 19 |

20 | 21 |
22 | 23 | 24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /js/asyncAwait/asyncSample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 14 | 15 | 58 | 59 | -------------------------------------------------------------------------------- /js/axios/deleteSample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /js/axios/getSample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 43 | 44 | -------------------------------------------------------------------------------- /js/axios/postSample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Document 11 | 12 | 13 | 14 | 15 |
16 |
17 | 18 | 19 |
20 |
21 | 22 | 23 |
24 |
25 | 26 |
27 |
28 | 29 | 49 | 50 | -------------------------------------------------------------------------------- /js/axios/weatherApiSample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 |
13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 |
21 |
22 | 23 |
24 |

25 |
26 | 27 | 44 | -------------------------------------------------------------------------------- /js/dom/domCreateElement.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 | 10 |
11 | 12 |
13 | 14 | 26 | -------------------------------------------------------------------------------- /js/dom/domIntro.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 |

İstanbul

10 |

İstanbul

11 |

İstanbul

12 | 13 | 14 | 15 | 16 | 17 | 29 | -------------------------------------------------------------------------------- /js/dom/domSample1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 | 10 | 11 | 12 | 25 | -------------------------------------------------------------------------------- /js/dom/domSample2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 31 | 32 | -------------------------------------------------------------------------------- /js/dom/domTimingSample3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 34 | 35 | 36 | 37 | 38 |
39 | 40 | 41 | 42 | 43 | 45 | 46 |
47 | 48 |
49 | 50 | 99 | 100 | -------------------------------------------------------------------------------- /js/fetch/fetchGetSample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 14 | 36 | 37 | -------------------------------------------------------------------------------- /js/fetch/productPage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 |
13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
IdNamePriceStockDelete
30 | 31 | 32 | 33 | 106 | 107 | -------------------------------------------------------------------------------- /js/intro/arrowFunctions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 36 | 37 | -------------------------------------------------------------------------------- /js/intro/dataTypes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /js/intro/dataTypes2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /js/intro/functions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 14 | 61 | 62 | -------------------------------------------------------------------------------- /js/intro/jsCallback.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 32 | -------------------------------------------------------------------------------- /js/intro/typeConvension.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 14 | 31 | 32 | -------------------------------------------------------------------------------- /js/object/arraySample2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 45 | 46 | -------------------------------------------------------------------------------- /js/object/objectArraySample.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 | 10 | 11 | 41 | -------------------------------------------------------------------------------- /kaynaklar.txt: -------------------------------------------------------------------------------- 1 | Temel HTML CSS JS 2 | https://www.w3schools.com/ 3 | https://developer.mozilla.org/en-US/ 4 | 5 | 6 | CSS Selectors 7 | https://webdesign.tutsplus.com/the-30-css-selectors-you-must-memorize--net-16048t 8 | 9 | 10 | 11 | Flex Hikayeleri 12 | https://www.youtube.com/watch?v=OaEtW_CSaPk 13 | -------------------------------------------------------------------------------- /node_modules/.bin/sass: -------------------------------------------------------------------------------- 1 | ../sass/sass.js -------------------------------------------------------------------------------- /node_modules/anymatch/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/anymatch/README.md: -------------------------------------------------------------------------------- 1 | anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master) 2 | ====== 3 | Javascript module to match a string against a regular expression, glob, string, 4 | or function that takes the string as an argument and returns a truthy or falsy 5 | value. The matcher can also be an array of any or all of these. Useful for 6 | allowing a very flexible user-defined config to define things like file paths. 7 | 8 | __Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__ 9 | 10 | 11 | Usage 12 | ----- 13 | ```sh 14 | npm install anymatch 15 | ``` 16 | 17 | #### anymatch(matchers, testString, [returnIndex], [options]) 18 | * __matchers__: (_Array|String|RegExp|Function_) 19 | String to be directly matched, string with glob patterns, regular expression 20 | test, function that takes the testString as an argument and returns a truthy 21 | value if it should be matched, or an array of any number and mix of these types. 22 | * __testString__: (_String|Array_) The string to test against the matchers. If 23 | passed as an array, the first element of the array will be used as the 24 | `testString` for non-function matchers, while the entire array will be applied 25 | as the arguments for function matchers. 26 | * __options__: (_Object_ [optional]_) Any of the [picomatch](https://github.com/micromatch/picomatch#options) options. 27 | * __returnIndex__: (_Boolean [optional]_) If true, return the array index of 28 | the first matcher that that testString matched, or -1 if no match, instead of a 29 | boolean result. 30 | 31 | ```js 32 | const anymatch = require('anymatch'); 33 | 34 | const matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, string => string.includes('bar') && string.length > 10 ] ; 35 | 36 | anymatch(matchers, 'path/to/file.js'); // true 37 | anymatch(matchers, 'path/anyjs/baz.js'); // true 38 | anymatch(matchers, 'path/to/foo.js'); // true 39 | anymatch(matchers, 'path/to/bar.js'); // true 40 | anymatch(matchers, 'bar.js'); // false 41 | 42 | // returnIndex = true 43 | anymatch(matchers, 'foo.js', {returnIndex: true}); // 2 44 | anymatch(matchers, 'path/anyjs/foo.js', {returnIndex: true}); // 1 45 | 46 | // any picomatc 47 | 48 | // using globs to match directories and their children 49 | anymatch('node_modules', 'node_modules'); // true 50 | anymatch('node_modules', 'node_modules/somelib/index.js'); // false 51 | anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true 52 | anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false 53 | anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true 54 | 55 | const matcher = anymatch(matchers); 56 | ['foo.js', 'bar.js'].filter(matcher); // [ 'foo.js' ] 57 | anymatch master* ❯ 58 | 59 | ``` 60 | 61 | #### anymatch(matchers) 62 | You can also pass in only your matcher(s) to get a curried function that has 63 | already been bound to the provided matching criteria. This can be used as an 64 | `Array#filter` callback. 65 | 66 | ```js 67 | var matcher = anymatch(matchers); 68 | 69 | matcher('path/to/file.js'); // true 70 | matcher('path/anyjs/baz.js', true); // 1 71 | 72 | ['foo.js', 'bar.js'].filter(matcher); // ['foo.js'] 73 | ``` 74 | 75 | Changelog 76 | ---------- 77 | [See release notes page on GitHub](https://github.com/micromatch/anymatch/releases) 78 | 79 | - **v3.0:** Removed `startIndex` and `endIndex` arguments. Node 8.x-only. 80 | - **v2.0:** [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information). 81 | - **v1.2:** anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch) 82 | for glob pattern matching. Issues with glob pattern matching should be 83 | reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues). 84 | 85 | License 86 | ------- 87 | [ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE) 88 | -------------------------------------------------------------------------------- /node_modules/anymatch/index.d.ts: -------------------------------------------------------------------------------- 1 | type AnymatchFn = (testString: string) => boolean; 2 | type AnymatchPattern = string|RegExp|AnymatchFn; 3 | type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] 4 | type AnymatchTester = { 5 | (testString: string|any[], returnIndex: true): number; 6 | (testString: string|any[]): boolean; 7 | } 8 | 9 | type PicomatchOptions = {dot: boolean}; 10 | 11 | declare const anymatch: { 12 | (matchers: AnymatchMatcher): AnymatchTester; 13 | (matchers: AnymatchMatcher, testString: null, returnIndex: true | PicomatchOptions): AnymatchTester; 14 | (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; 15 | (matchers: AnymatchMatcher, testString: string|any[]): boolean; 16 | } 17 | 18 | export {AnymatchMatcher as Matcher} 19 | export {AnymatchTester as Tester} 20 | export default anymatch 21 | -------------------------------------------------------------------------------- /node_modules/anymatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { value: true }); 4 | 5 | const picomatch = require('picomatch'); 6 | const normalizePath = require('normalize-path'); 7 | 8 | /** 9 | * @typedef {(testString: string) => boolean} AnymatchFn 10 | * @typedef {string|RegExp|AnymatchFn} AnymatchPattern 11 | * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher 12 | */ 13 | const BANG = '!'; 14 | const DEFAULT_OPTIONS = {returnIndex: false}; 15 | const arrify = (item) => Array.isArray(item) ? item : [item]; 16 | 17 | /** 18 | * @param {AnymatchPattern} matcher 19 | * @param {object} options 20 | * @returns {AnymatchFn} 21 | */ 22 | const createPattern = (matcher, options) => { 23 | if (typeof matcher === 'function') { 24 | return matcher; 25 | } 26 | if (typeof matcher === 'string') { 27 | const glob = picomatch(matcher, options); 28 | return (string) => matcher === string || glob(string); 29 | } 30 | if (matcher instanceof RegExp) { 31 | return (string) => matcher.test(string); 32 | } 33 | return (string) => false; 34 | }; 35 | 36 | /** 37 | * @param {Array} patterns 38 | * @param {Array} negPatterns 39 | * @param {String|Array} args 40 | * @param {Boolean} returnIndex 41 | * @returns {boolean|number} 42 | */ 43 | const matchPatterns = (patterns, negPatterns, args, returnIndex) => { 44 | const isList = Array.isArray(args); 45 | const _path = isList ? args[0] : args; 46 | if (!isList && typeof _path !== 'string') { 47 | throw new TypeError('anymatch: second argument must be a string: got ' + 48 | Object.prototype.toString.call(_path)) 49 | } 50 | const path = normalizePath(_path, false); 51 | 52 | for (let index = 0; index < negPatterns.length; index++) { 53 | const nglob = negPatterns[index]; 54 | if (nglob(path)) { 55 | return returnIndex ? -1 : false; 56 | } 57 | } 58 | 59 | const applied = isList && [path].concat(args.slice(1)); 60 | for (let index = 0; index < patterns.length; index++) { 61 | const pattern = patterns[index]; 62 | if (isList ? pattern(...applied) : pattern(path)) { 63 | return returnIndex ? index : true; 64 | } 65 | } 66 | 67 | return returnIndex ? -1 : false; 68 | }; 69 | 70 | /** 71 | * @param {AnymatchMatcher} matchers 72 | * @param {Array|string} testString 73 | * @param {object} options 74 | * @returns {boolean|number|Function} 75 | */ 76 | const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { 77 | if (matchers == null) { 78 | throw new TypeError('anymatch: specify first argument'); 79 | } 80 | const opts = typeof options === 'boolean' ? {returnIndex: options} : options; 81 | const returnIndex = opts.returnIndex || false; 82 | 83 | // Early cache for matchers. 84 | const mtchers = arrify(matchers); 85 | const negatedGlobs = mtchers 86 | .filter(item => typeof item === 'string' && item.charAt(0) === BANG) 87 | .map(item => item.slice(1)) 88 | .map(item => picomatch(item, opts)); 89 | const patterns = mtchers 90 | .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG)) 91 | .map(matcher => createPattern(matcher, opts)); 92 | 93 | if (testString == null) { 94 | return (testString, ri = false) => { 95 | const returnIndex = typeof ri === 'boolean' ? ri : false; 96 | return matchPatterns(patterns, negatedGlobs, testString, returnIndex); 97 | } 98 | } 99 | 100 | return matchPatterns(patterns, negatedGlobs, testString, returnIndex); 101 | }; 102 | 103 | anymatch.default = anymatch; 104 | module.exports = anymatch; 105 | -------------------------------------------------------------------------------- /node_modules/anymatch/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "anymatch", 3 | "version": "3.1.3", 4 | "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", 5 | "files": [ 6 | "index.js", 7 | "index.d.ts" 8 | ], 9 | "dependencies": { 10 | "normalize-path": "^3.0.0", 11 | "picomatch": "^2.0.4" 12 | }, 13 | "author": { 14 | "name": "Elan Shanker", 15 | "url": "https://github.com/es128" 16 | }, 17 | "license": "ISC", 18 | "homepage": "https://github.com/micromatch/anymatch", 19 | "repository": { 20 | "type": "git", 21 | "url": "https://github.com/micromatch/anymatch" 22 | }, 23 | "keywords": [ 24 | "match", 25 | "any", 26 | "string", 27 | "file", 28 | "fs", 29 | "list", 30 | "glob", 31 | "regex", 32 | "regexp", 33 | "regular", 34 | "expression", 35 | "function" 36 | ], 37 | "scripts": { 38 | "test": "nyc mocha", 39 | "mocha": "mocha" 40 | }, 41 | "devDependencies": { 42 | "mocha": "^6.1.3", 43 | "nyc": "^14.0.0" 44 | }, 45 | "engines": { 46 | "node": ">= 8" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/binary-extensions.json: -------------------------------------------------------------------------------- 1 | [ 2 | "3dm", 3 | "3ds", 4 | "3g2", 5 | "3gp", 6 | "7z", 7 | "a", 8 | "aac", 9 | "adp", 10 | "ai", 11 | "aif", 12 | "aiff", 13 | "alz", 14 | "ape", 15 | "apk", 16 | "appimage", 17 | "ar", 18 | "arj", 19 | "asf", 20 | "au", 21 | "avi", 22 | "bak", 23 | "baml", 24 | "bh", 25 | "bin", 26 | "bk", 27 | "bmp", 28 | "btif", 29 | "bz2", 30 | "bzip2", 31 | "cab", 32 | "caf", 33 | "cgm", 34 | "class", 35 | "cmx", 36 | "cpio", 37 | "cr2", 38 | "cur", 39 | "dat", 40 | "dcm", 41 | "deb", 42 | "dex", 43 | "djvu", 44 | "dll", 45 | "dmg", 46 | "dng", 47 | "doc", 48 | "docm", 49 | "docx", 50 | "dot", 51 | "dotm", 52 | "dra", 53 | "DS_Store", 54 | "dsk", 55 | "dts", 56 | "dtshd", 57 | "dvb", 58 | "dwg", 59 | "dxf", 60 | "ecelp4800", 61 | "ecelp7470", 62 | "ecelp9600", 63 | "egg", 64 | "eol", 65 | "eot", 66 | "epub", 67 | "exe", 68 | "f4v", 69 | "fbs", 70 | "fh", 71 | "fla", 72 | "flac", 73 | "flatpak", 74 | "fli", 75 | "flv", 76 | "fpx", 77 | "fst", 78 | "fvt", 79 | "g3", 80 | "gh", 81 | "gif", 82 | "graffle", 83 | "gz", 84 | "gzip", 85 | "h261", 86 | "h263", 87 | "h264", 88 | "icns", 89 | "ico", 90 | "ief", 91 | "img", 92 | "ipa", 93 | "iso", 94 | "jar", 95 | "jpeg", 96 | "jpg", 97 | "jpgv", 98 | "jpm", 99 | "jxr", 100 | "key", 101 | "ktx", 102 | "lha", 103 | "lib", 104 | "lvp", 105 | "lz", 106 | "lzh", 107 | "lzma", 108 | "lzo", 109 | "m3u", 110 | "m4a", 111 | "m4v", 112 | "mar", 113 | "mdi", 114 | "mht", 115 | "mid", 116 | "midi", 117 | "mj2", 118 | "mka", 119 | "mkv", 120 | "mmr", 121 | "mng", 122 | "mobi", 123 | "mov", 124 | "movie", 125 | "mp3", 126 | "mp4", 127 | "mp4a", 128 | "mpeg", 129 | "mpg", 130 | "mpga", 131 | "mxu", 132 | "nef", 133 | "npx", 134 | "numbers", 135 | "nupkg", 136 | "o", 137 | "odp", 138 | "ods", 139 | "odt", 140 | "oga", 141 | "ogg", 142 | "ogv", 143 | "otf", 144 | "ott", 145 | "pages", 146 | "pbm", 147 | "pcx", 148 | "pdb", 149 | "pdf", 150 | "pea", 151 | "pgm", 152 | "pic", 153 | "png", 154 | "pnm", 155 | "pot", 156 | "potm", 157 | "potx", 158 | "ppa", 159 | "ppam", 160 | "ppm", 161 | "pps", 162 | "ppsm", 163 | "ppsx", 164 | "ppt", 165 | "pptm", 166 | "pptx", 167 | "psd", 168 | "pya", 169 | "pyc", 170 | "pyo", 171 | "pyv", 172 | "qt", 173 | "rar", 174 | "ras", 175 | "raw", 176 | "resources", 177 | "rgb", 178 | "rip", 179 | "rlc", 180 | "rmf", 181 | "rmvb", 182 | "rpm", 183 | "rtf", 184 | "rz", 185 | "s3m", 186 | "s7z", 187 | "scpt", 188 | "sgi", 189 | "shar", 190 | "snap", 191 | "sil", 192 | "sketch", 193 | "slk", 194 | "smv", 195 | "snk", 196 | "so", 197 | "stl", 198 | "suo", 199 | "sub", 200 | "swf", 201 | "tar", 202 | "tbz", 203 | "tbz2", 204 | "tga", 205 | "tgz", 206 | "thmx", 207 | "tif", 208 | "tiff", 209 | "tlz", 210 | "ttc", 211 | "ttf", 212 | "txz", 213 | "udf", 214 | "uvh", 215 | "uvi", 216 | "uvm", 217 | "uvp", 218 | "uvs", 219 | "uvu", 220 | "viv", 221 | "vob", 222 | "war", 223 | "wav", 224 | "wax", 225 | "wbmp", 226 | "wdp", 227 | "weba", 228 | "webm", 229 | "webp", 230 | "whl", 231 | "wim", 232 | "wm", 233 | "wma", 234 | "wmv", 235 | "wmx", 236 | "woff", 237 | "woff2", 238 | "wrm", 239 | "wvx", 240 | "xbm", 241 | "xif", 242 | "xla", 243 | "xlam", 244 | "xls", 245 | "xlsb", 246 | "xlsm", 247 | "xlsx", 248 | "xlt", 249 | "xltm", 250 | "xltx", 251 | "xm", 252 | "xmind", 253 | "xpi", 254 | "xpm", 255 | "xwd", 256 | "xz", 257 | "z", 258 | "zip", 259 | "zipx" 260 | ] 261 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | List of binary file extensions. 3 | 4 | @example 5 | ``` 6 | import binaryExtensions = require('binary-extensions'); 7 | 8 | console.log(binaryExtensions); 9 | //=> ['3ds', '3g2', …] 10 | ``` 11 | */ 12 | declare const binaryExtensions: readonly string[]; 13 | 14 | export = binaryExtensions; 15 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "binary-extensions", 3 | "version": "2.2.0", 4 | "description": "List of binary file extensions", 5 | "license": "MIT", 6 | "repository": "sindresorhus/binary-extensions", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts", 21 | "binary-extensions.json", 22 | "binary-extensions.json.d.ts" 23 | ], 24 | "keywords": [ 25 | "binary", 26 | "extensions", 27 | "extension", 28 | "file", 29 | "json", 30 | "list", 31 | "array" 32 | ], 33 | "devDependencies": { 34 | "ava": "^1.4.1", 35 | "tsd": "^0.7.2", 36 | "xo": "^0.24.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /node_modules/binary-extensions/readme.md: -------------------------------------------------------------------------------- 1 | # binary-extensions 2 | 3 | > List of binary file extensions 4 | 5 | The list is just a [JSON file](binary-extensions.json) and can be used anywhere. 6 | 7 | 8 | ## Install 9 | 10 | ``` 11 | $ npm install binary-extensions 12 | ``` 13 | 14 | 15 | ## Usage 16 | 17 | ```js 18 | const binaryExtensions = require('binary-extensions'); 19 | 20 | console.log(binaryExtensions); 21 | //=> ['3ds', '3g2', …] 22 | ``` 23 | 24 | 25 | ## Related 26 | 27 | - [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file 28 | - [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions 29 | 30 | 31 | --- 32 | 33 |
34 | 35 | Get professional support for this package with a Tidelift subscription 36 | 37 |
38 | 39 | Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. 40 |
41 |
42 | -------------------------------------------------------------------------------- /node_modules/braces/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2018, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/braces/lib/compile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fill = require('fill-range'); 4 | const utils = require('./utils'); 5 | 6 | const compile = (ast, options = {}) => { 7 | let walk = (node, parent = {}) => { 8 | let invalidBlock = utils.isInvalidBrace(parent); 9 | let invalidNode = node.invalid === true && options.escapeInvalid === true; 10 | let invalid = invalidBlock === true || invalidNode === true; 11 | let prefix = options.escapeInvalid === true ? '\\' : ''; 12 | let output = ''; 13 | 14 | if (node.isOpen === true) { 15 | return prefix + node.value; 16 | } 17 | if (node.isClose === true) { 18 | return prefix + node.value; 19 | } 20 | 21 | if (node.type === 'open') { 22 | return invalid ? (prefix + node.value) : '('; 23 | } 24 | 25 | if (node.type === 'close') { 26 | return invalid ? (prefix + node.value) : ')'; 27 | } 28 | 29 | if (node.type === 'comma') { 30 | return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); 31 | } 32 | 33 | if (node.value) { 34 | return node.value; 35 | } 36 | 37 | if (node.nodes && node.ranges > 0) { 38 | let args = utils.reduce(node.nodes); 39 | let range = fill(...args, { ...options, wrap: false, toRegex: true }); 40 | 41 | if (range.length !== 0) { 42 | return args.length > 1 && range.length > 1 ? `(${range})` : range; 43 | } 44 | } 45 | 46 | if (node.nodes) { 47 | for (let child of node.nodes) { 48 | output += walk(child, node); 49 | } 50 | } 51 | return output; 52 | }; 53 | 54 | return walk(ast); 55 | }; 56 | 57 | module.exports = compile; 58 | -------------------------------------------------------------------------------- /node_modules/braces/lib/constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | MAX_LENGTH: 1024 * 64, 5 | 6 | // Digits 7 | CHAR_0: '0', /* 0 */ 8 | CHAR_9: '9', /* 9 */ 9 | 10 | // Alphabet chars. 11 | CHAR_UPPERCASE_A: 'A', /* A */ 12 | CHAR_LOWERCASE_A: 'a', /* a */ 13 | CHAR_UPPERCASE_Z: 'Z', /* Z */ 14 | CHAR_LOWERCASE_Z: 'z', /* z */ 15 | 16 | CHAR_LEFT_PARENTHESES: '(', /* ( */ 17 | CHAR_RIGHT_PARENTHESES: ')', /* ) */ 18 | 19 | CHAR_ASTERISK: '*', /* * */ 20 | 21 | // Non-alphabetic chars. 22 | CHAR_AMPERSAND: '&', /* & */ 23 | CHAR_AT: '@', /* @ */ 24 | CHAR_BACKSLASH: '\\', /* \ */ 25 | CHAR_BACKTICK: '`', /* ` */ 26 | CHAR_CARRIAGE_RETURN: '\r', /* \r */ 27 | CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ 28 | CHAR_COLON: ':', /* : */ 29 | CHAR_COMMA: ',', /* , */ 30 | CHAR_DOLLAR: '$', /* . */ 31 | CHAR_DOT: '.', /* . */ 32 | CHAR_DOUBLE_QUOTE: '"', /* " */ 33 | CHAR_EQUAL: '=', /* = */ 34 | CHAR_EXCLAMATION_MARK: '!', /* ! */ 35 | CHAR_FORM_FEED: '\f', /* \f */ 36 | CHAR_FORWARD_SLASH: '/', /* / */ 37 | CHAR_HASH: '#', /* # */ 38 | CHAR_HYPHEN_MINUS: '-', /* - */ 39 | CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ 40 | CHAR_LEFT_CURLY_BRACE: '{', /* { */ 41 | CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ 42 | CHAR_LINE_FEED: '\n', /* \n */ 43 | CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ 44 | CHAR_PERCENT: '%', /* % */ 45 | CHAR_PLUS: '+', /* + */ 46 | CHAR_QUESTION_MARK: '?', /* ? */ 47 | CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ 48 | CHAR_RIGHT_CURLY_BRACE: '}', /* } */ 49 | CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ 50 | CHAR_SEMICOLON: ';', /* ; */ 51 | CHAR_SINGLE_QUOTE: '\'', /* ' */ 52 | CHAR_SPACE: ' ', /* */ 53 | CHAR_TAB: '\t', /* \t */ 54 | CHAR_UNDERSCORE: '_', /* _ */ 55 | CHAR_VERTICAL_LINE: '|', /* | */ 56 | CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ 57 | }; 58 | -------------------------------------------------------------------------------- /node_modules/braces/lib/expand.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fill = require('fill-range'); 4 | const stringify = require('./stringify'); 5 | const utils = require('./utils'); 6 | 7 | const append = (queue = '', stash = '', enclose = false) => { 8 | let result = []; 9 | 10 | queue = [].concat(queue); 11 | stash = [].concat(stash); 12 | 13 | if (!stash.length) return queue; 14 | if (!queue.length) { 15 | return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; 16 | } 17 | 18 | for (let item of queue) { 19 | if (Array.isArray(item)) { 20 | for (let value of item) { 21 | result.push(append(value, stash, enclose)); 22 | } 23 | } else { 24 | for (let ele of stash) { 25 | if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; 26 | result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele)); 27 | } 28 | } 29 | } 30 | return utils.flatten(result); 31 | }; 32 | 33 | const expand = (ast, options = {}) => { 34 | let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; 35 | 36 | let walk = (node, parent = {}) => { 37 | node.queue = []; 38 | 39 | let p = parent; 40 | let q = parent.queue; 41 | 42 | while (p.type !== 'brace' && p.type !== 'root' && p.parent) { 43 | p = p.parent; 44 | q = p.queue; 45 | } 46 | 47 | if (node.invalid || node.dollar) { 48 | q.push(append(q.pop(), stringify(node, options))); 49 | return; 50 | } 51 | 52 | if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { 53 | q.push(append(q.pop(), ['{}'])); 54 | return; 55 | } 56 | 57 | if (node.nodes && node.ranges > 0) { 58 | let args = utils.reduce(node.nodes); 59 | 60 | if (utils.exceedsLimit(...args, options.step, rangeLimit)) { 61 | throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); 62 | } 63 | 64 | let range = fill(...args, options); 65 | if (range.length === 0) { 66 | range = stringify(node, options); 67 | } 68 | 69 | q.push(append(q.pop(), range)); 70 | node.nodes = []; 71 | return; 72 | } 73 | 74 | let enclose = utils.encloseBrace(node); 75 | let queue = node.queue; 76 | let block = node; 77 | 78 | while (block.type !== 'brace' && block.type !== 'root' && block.parent) { 79 | block = block.parent; 80 | queue = block.queue; 81 | } 82 | 83 | for (let i = 0; i < node.nodes.length; i++) { 84 | let child = node.nodes[i]; 85 | 86 | if (child.type === 'comma' && node.type === 'brace') { 87 | if (i === 1) queue.push(''); 88 | queue.push(''); 89 | continue; 90 | } 91 | 92 | if (child.type === 'close') { 93 | q.push(append(q.pop(), queue, enclose)); 94 | continue; 95 | } 96 | 97 | if (child.value && child.type !== 'open') { 98 | queue.push(append(queue.pop(), child.value)); 99 | continue; 100 | } 101 | 102 | if (child.nodes) { 103 | walk(child, node); 104 | } 105 | } 106 | 107 | return queue; 108 | }; 109 | 110 | return utils.flatten(walk(ast)); 111 | }; 112 | 113 | module.exports = expand; 114 | -------------------------------------------------------------------------------- /node_modules/braces/lib/stringify.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const utils = require('./utils'); 4 | 5 | module.exports = (ast, options = {}) => { 6 | let stringify = (node, parent = {}) => { 7 | let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); 8 | let invalidNode = node.invalid === true && options.escapeInvalid === true; 9 | let output = ''; 10 | 11 | if (node.value) { 12 | if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { 13 | return '\\' + node.value; 14 | } 15 | return node.value; 16 | } 17 | 18 | if (node.value) { 19 | return node.value; 20 | } 21 | 22 | if (node.nodes) { 23 | for (let child of node.nodes) { 24 | output += stringify(child); 25 | } 26 | } 27 | return output; 28 | }; 29 | 30 | return stringify(ast); 31 | }; 32 | 33 | -------------------------------------------------------------------------------- /node_modules/braces/lib/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.isInteger = num => { 4 | if (typeof num === 'number') { 5 | return Number.isInteger(num); 6 | } 7 | if (typeof num === 'string' && num.trim() !== '') { 8 | return Number.isInteger(Number(num)); 9 | } 10 | return false; 11 | }; 12 | 13 | /** 14 | * Find a node of the given type 15 | */ 16 | 17 | exports.find = (node, type) => node.nodes.find(node => node.type === type); 18 | 19 | /** 20 | * Find a node of the given type 21 | */ 22 | 23 | exports.exceedsLimit = (min, max, step = 1, limit) => { 24 | if (limit === false) return false; 25 | if (!exports.isInteger(min) || !exports.isInteger(max)) return false; 26 | return ((Number(max) - Number(min)) / Number(step)) >= limit; 27 | }; 28 | 29 | /** 30 | * Escape the given node with '\\' before node.value 31 | */ 32 | 33 | exports.escapeNode = (block, n = 0, type) => { 34 | let node = block.nodes[n]; 35 | if (!node) return; 36 | 37 | if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { 38 | if (node.escaped !== true) { 39 | node.value = '\\' + node.value; 40 | node.escaped = true; 41 | } 42 | } 43 | }; 44 | 45 | /** 46 | * Returns true if the given brace node should be enclosed in literal braces 47 | */ 48 | 49 | exports.encloseBrace = node => { 50 | if (node.type !== 'brace') return false; 51 | if ((node.commas >> 0 + node.ranges >> 0) === 0) { 52 | node.invalid = true; 53 | return true; 54 | } 55 | return false; 56 | }; 57 | 58 | /** 59 | * Returns true if a brace node is invalid. 60 | */ 61 | 62 | exports.isInvalidBrace = block => { 63 | if (block.type !== 'brace') return false; 64 | if (block.invalid === true || block.dollar) return true; 65 | if ((block.commas >> 0 + block.ranges >> 0) === 0) { 66 | block.invalid = true; 67 | return true; 68 | } 69 | if (block.open !== true || block.close !== true) { 70 | block.invalid = true; 71 | return true; 72 | } 73 | return false; 74 | }; 75 | 76 | /** 77 | * Returns true if a node is an open or close node 78 | */ 79 | 80 | exports.isOpenOrClose = node => { 81 | if (node.type === 'open' || node.type === 'close') { 82 | return true; 83 | } 84 | return node.open === true || node.close === true; 85 | }; 86 | 87 | /** 88 | * Reduce an array of text nodes. 89 | */ 90 | 91 | exports.reduce = nodes => nodes.reduce((acc, node) => { 92 | if (node.type === 'text') acc.push(node.value); 93 | if (node.type === 'range') node.type = 'text'; 94 | return acc; 95 | }, []); 96 | 97 | /** 98 | * Flatten an array 99 | */ 100 | 101 | exports.flatten = (...args) => { 102 | const result = []; 103 | const flat = arr => { 104 | for (let i = 0; i < arr.length; i++) { 105 | let ele = arr[i]; 106 | Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); 107 | } 108 | return result; 109 | }; 110 | flat(args); 111 | return result; 112 | }; 113 | -------------------------------------------------------------------------------- /node_modules/braces/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "braces", 3 | "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", 4 | "version": "3.0.2", 5 | "homepage": "https://github.com/micromatch/braces", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "contributors": [ 8 | "Brian Woodward (https://twitter.com/doowb)", 9 | "Elan Shanker (https://github.com/es128)", 10 | "Eugene Sharygin (https://github.com/eush77)", 11 | "hemanth.hm (http://h3manth.com)", 12 | "Jon Schlinkert (http://twitter.com/jonschlinkert)" 13 | ], 14 | "repository": "micromatch/braces", 15 | "bugs": { 16 | "url": "https://github.com/micromatch/braces/issues" 17 | }, 18 | "license": "MIT", 19 | "files": [ 20 | "index.js", 21 | "lib" 22 | ], 23 | "main": "index.js", 24 | "engines": { 25 | "node": ">=8" 26 | }, 27 | "scripts": { 28 | "test": "mocha", 29 | "benchmark": "node benchmark" 30 | }, 31 | "dependencies": { 32 | "fill-range": "^7.0.1" 33 | }, 34 | "devDependencies": { 35 | "ansi-colors": "^3.2.4", 36 | "bash-path": "^2.0.1", 37 | "gulp-format-md": "^2.0.0", 38 | "mocha": "^6.1.1" 39 | }, 40 | "keywords": [ 41 | "alpha", 42 | "alphabetical", 43 | "bash", 44 | "brace", 45 | "braces", 46 | "expand", 47 | "expansion", 48 | "filepath", 49 | "fill", 50 | "fs", 51 | "glob", 52 | "globbing", 53 | "letter", 54 | "match", 55 | "matches", 56 | "matching", 57 | "number", 58 | "numerical", 59 | "path", 60 | "range", 61 | "ranges", 62 | "sh" 63 | ], 64 | "verb": { 65 | "toc": false, 66 | "layout": "default", 67 | "tasks": [ 68 | "readme" 69 | ], 70 | "lint": { 71 | "reflinks": true 72 | }, 73 | "plugins": [ 74 | "gulp-format-md" 75 | ] 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /node_modules/chokidar/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the “Software”), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/chokidar/lib/constants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const {sep} = require('path'); 4 | const {platform} = process; 5 | const os = require('os'); 6 | 7 | exports.EV_ALL = 'all'; 8 | exports.EV_READY = 'ready'; 9 | exports.EV_ADD = 'add'; 10 | exports.EV_CHANGE = 'change'; 11 | exports.EV_ADD_DIR = 'addDir'; 12 | exports.EV_UNLINK = 'unlink'; 13 | exports.EV_UNLINK_DIR = 'unlinkDir'; 14 | exports.EV_RAW = 'raw'; 15 | exports.EV_ERROR = 'error'; 16 | 17 | exports.STR_DATA = 'data'; 18 | exports.STR_END = 'end'; 19 | exports.STR_CLOSE = 'close'; 20 | 21 | exports.FSEVENT_CREATED = 'created'; 22 | exports.FSEVENT_MODIFIED = 'modified'; 23 | exports.FSEVENT_DELETED = 'deleted'; 24 | exports.FSEVENT_MOVED = 'moved'; 25 | exports.FSEVENT_CLONED = 'cloned'; 26 | exports.FSEVENT_UNKNOWN = 'unknown'; 27 | exports.FSEVENT_TYPE_FILE = 'file'; 28 | exports.FSEVENT_TYPE_DIRECTORY = 'directory'; 29 | exports.FSEVENT_TYPE_SYMLINK = 'symlink'; 30 | 31 | exports.KEY_LISTENERS = 'listeners'; 32 | exports.KEY_ERR = 'errHandlers'; 33 | exports.KEY_RAW = 'rawEmitters'; 34 | exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; 35 | 36 | exports.DOT_SLASH = `.${sep}`; 37 | 38 | exports.BACK_SLASH_RE = /\\/g; 39 | exports.DOUBLE_SLASH_RE = /\/\//; 40 | exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; 41 | exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; 42 | exports.REPLACER_RE = /^\.[/\\]/; 43 | 44 | exports.SLASH = '/'; 45 | exports.SLASH_SLASH = '//'; 46 | exports.BRACE_START = '{'; 47 | exports.BANG = '!'; 48 | exports.ONE_DOT = '.'; 49 | exports.TWO_DOTS = '..'; 50 | exports.STAR = '*'; 51 | exports.GLOBSTAR = '**'; 52 | exports.ROOT_GLOBSTAR = '/**/*'; 53 | exports.SLASH_GLOBSTAR = '/**'; 54 | exports.DIR_SUFFIX = 'Dir'; 55 | exports.ANYMATCH_OPTS = {dot: true}; 56 | exports.STRING_TYPE = 'string'; 57 | exports.FUNCTION_TYPE = 'function'; 58 | exports.EMPTY_STR = ''; 59 | exports.EMPTY_FN = () => {}; 60 | exports.IDENTITY_FN = val => val; 61 | 62 | exports.isWindows = platform === 'win32'; 63 | exports.isMacos = platform === 'darwin'; 64 | exports.isLinux = platform === 'linux'; 65 | exports.isIBMi = os.type() === 'OS400'; 66 | -------------------------------------------------------------------------------- /node_modules/chokidar/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chokidar", 3 | "description": "Minimal and efficient cross-platform file watching library", 4 | "version": "3.5.3", 5 | "homepage": "https://github.com/paulmillr/chokidar", 6 | "author": "Paul Miller (https://paulmillr.com)", 7 | "contributors": [ 8 | "Paul Miller (https://paulmillr.com)", 9 | "Elan Shanker" 10 | ], 11 | "engines": { 12 | "node": ">= 8.10.0" 13 | }, 14 | "main": "index.js", 15 | "dependencies": { 16 | "anymatch": "~3.1.2", 17 | "braces": "~3.0.2", 18 | "glob-parent": "~5.1.2", 19 | "is-binary-path": "~2.1.0", 20 | "is-glob": "~4.0.1", 21 | "normalize-path": "~3.0.0", 22 | "readdirp": "~3.6.0" 23 | }, 24 | "optionalDependencies": { 25 | "fsevents": "~2.3.2" 26 | }, 27 | "devDependencies": { 28 | "@types/node": "^14", 29 | "chai": "^4.3", 30 | "dtslint": "^3.3.0", 31 | "eslint": "^7.0.0", 32 | "mocha": "^7.0.0", 33 | "nyc": "^15.0.0", 34 | "rimraf": "^3.0.0", 35 | "sinon": "^9.0.1", 36 | "sinon-chai": "^3.3.0", 37 | "typescript": "~4.4.3", 38 | "upath": "^1.2.0" 39 | }, 40 | "files": [ 41 | "index.js", 42 | "lib/*.js", 43 | "types/index.d.ts" 44 | ], 45 | "repository": { 46 | "type": "git", 47 | "url": "git+https://github.com/paulmillr/chokidar.git" 48 | }, 49 | "bugs": { 50 | "url": "https://github.com/paulmillr/chokidar/issues" 51 | }, 52 | "license": "MIT", 53 | "scripts": { 54 | "dtslint": "dtslint types", 55 | "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", 56 | "mocha": "mocha --exit --timeout 90000", 57 | "test": "npm run lint && npm run mocha" 58 | }, 59 | "keywords": [ 60 | "fs", 61 | "watch", 62 | "watchFile", 63 | "watcher", 64 | "watching", 65 | "file", 66 | "fsevents" 67 | ], 68 | "types": "./types/index.d.ts", 69 | "nyc": { 70 | "include": [ 71 | "index.js", 72 | "lib/*.js" 73 | ], 74 | "reporter": [ 75 | "html", 76 | "text" 77 | ] 78 | }, 79 | "funding": [ 80 | { 81 | "type": "individual", 82 | "url": "https://paulmillr.com/funding/" 83 | } 84 | ] 85 | } 86 | -------------------------------------------------------------------------------- /node_modules/fill-range/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/fill-range/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fill-range", 3 | "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", 4 | "version": "7.0.1", 5 | "homepage": "https://github.com/jonschlinkert/fill-range", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "contributors": [ 8 | "Edo Rivai (edo.rivai.nl)", 9 | "Jon Schlinkert (http://twitter.com/jonschlinkert)", 10 | "Paul Miller (paulmillr.com)", 11 | "Rouven Weßling (www.rouvenwessling.de)", 12 | "(https://github.com/wtgtybhertgeghgtwtg)" 13 | ], 14 | "repository": "jonschlinkert/fill-range", 15 | "bugs": { 16 | "url": "https://github.com/jonschlinkert/fill-range/issues" 17 | }, 18 | "license": "MIT", 19 | "files": [ 20 | "index.js" 21 | ], 22 | "main": "index.js", 23 | "engines": { 24 | "node": ">=8" 25 | }, 26 | "scripts": { 27 | "test": "mocha" 28 | }, 29 | "dependencies": { 30 | "to-regex-range": "^5.0.1" 31 | }, 32 | "devDependencies": { 33 | "gulp-format-md": "^2.0.0", 34 | "mocha": "^6.1.1" 35 | }, 36 | "keywords": [ 37 | "alpha", 38 | "alphabetical", 39 | "array", 40 | "bash", 41 | "brace", 42 | "expand", 43 | "expansion", 44 | "fill", 45 | "glob", 46 | "match", 47 | "matches", 48 | "matching", 49 | "number", 50 | "numerical", 51 | "range", 52 | "ranges", 53 | "regex", 54 | "sh" 55 | ], 56 | "verb": { 57 | "toc": false, 58 | "layout": "default", 59 | "tasks": [ 60 | "readme" 61 | ], 62 | "plugins": [ 63 | "gulp-format-md" 64 | ], 65 | "lint": { 66 | "reflinks": true 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /node_modules/fsevents/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | ----------- 3 | 4 | Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /node_modules/fsevents/README.md: -------------------------------------------------------------------------------- 1 | # fsevents [![NPM](https://nodei.co/npm/fsevents.png)](https://nodei.co/npm/fsevents/) 2 | 3 | Native access to MacOS FSEvents in [Node.js](https://nodejs.org/) 4 | 5 | The FSEvents API in MacOS allows applications to register for notifications of 6 | changes to a given directory tree. It is a very fast and lightweight alternative 7 | to kqueue. 8 | 9 | This is a low-level library. For a cross-platform file watching module that 10 | uses fsevents, check out [Chokidar](https://github.com/paulmillr/chokidar). 11 | 12 | ## Installation 13 | 14 | Supports only **Node.js v8.16 and higher**. 15 | 16 | ```sh 17 | npm install fsevents 18 | ``` 19 | 20 | ## Usage 21 | 22 | ```js 23 | const fsevents = require('fsevents'); 24 | const stop = fsevents.watch(__dirname, (path, flags, id) => { 25 | const info = fsevents.getInfo(path, flags, id); 26 | }); // To start observation 27 | stop(); // To end observation 28 | ``` 29 | 30 | The callback passed as the second parameter to `.watch` get's called whenever the operating system detects a 31 | a change in the file system. It takes three arguments: 32 | 33 | ###### `fsevents.watch(dirname: string, (path: string, flags: number, id: string) => void): () => Promise` 34 | 35 | * `path: string` - the item in the filesystem that have been changed 36 | * `flags: number` - a numeric value describing what the change was 37 | * `id: string` - an unique-id identifying this specific event 38 | 39 | Returns closer callback which when called returns a Promise resolving when the watcher process has been shut down. 40 | 41 | ###### `fsevents.getInfo(path: string, flags: number, id: string): FsEventInfo` 42 | 43 | The `getInfo` function takes the `path`, `flags` and `id` arguments and converts those parameters into a structure 44 | that is easier to digest to determine what the change was. 45 | 46 | The `FsEventsInfo` has the following shape: 47 | 48 | ```js 49 | /** 50 | * @typedef {'created'|'modified'|'deleted'|'moved'|'root-changed'|'cloned'|'unknown'} FsEventsEvent 51 | * @typedef {'file'|'directory'|'symlink'} FsEventsType 52 | */ 53 | { 54 | "event": "created", // {FsEventsEvent} 55 | "path": "file.txt", 56 | "type": "file", // {FsEventsType} 57 | "changes": { 58 | "inode": true, // Had iNode Meta-Information changed 59 | "finder": false, // Had Finder Meta-Data changed 60 | "access": false, // Had access permissions changed 61 | "xattrs": false // Had xAttributes changed 62 | }, 63 | "flags": 0x100000000 64 | } 65 | ``` 66 | 67 | ## Changelog 68 | 69 | - v2.3 supports Apple Silicon ARM CPUs 70 | - v2 supports node 8.16+ and reduces package size massively 71 | - v1.2.8 supports node 6+ 72 | - v1.2.7 supports node 4+ 73 | 74 | ## Troubleshooting 75 | 76 | - I'm getting `EBADPLATFORM` `Unsupported platform for fsevents` error. 77 | - It's fine, nothing is broken. fsevents is macos-only. Other platforms are skipped. If you want to hide this warning, report a bug to NPM bugtracker asking them to hide ebadplatform warnings by default. 78 | 79 | ## License 80 | 81 | The MIT License Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller — see LICENSE file. 82 | 83 | Visit our [GitHub page](https://github.com/fsevents/fsevents) and [NPM Page](https://npmjs.org/package/fsevents) 84 | -------------------------------------------------------------------------------- /node_modules/fsevents/fsevents.d.ts: -------------------------------------------------------------------------------- 1 | declare type Event = "created" | "cloned" | "modified" | "deleted" | "moved" | "root-changed" | "unknown"; 2 | declare type Type = "file" | "directory" | "symlink"; 3 | declare type FileChanges = { 4 | inode: boolean; 5 | finder: boolean; 6 | access: boolean; 7 | xattrs: boolean; 8 | }; 9 | declare type Info = { 10 | event: Event; 11 | path: string; 12 | type: Type; 13 | changes: FileChanges; 14 | flags: number; 15 | }; 16 | declare type WatchHandler = (path: string, flags: number, id: string) => void; 17 | export declare function watch(path: string, handler: WatchHandler): () => Promise; 18 | export declare function watch(path: string, since: number, handler: WatchHandler): () => Promise; 19 | export declare function getInfo(path: string, flags: number): Info; 20 | export declare const constants: { 21 | None: 0x00000000; 22 | MustScanSubDirs: 0x00000001; 23 | UserDropped: 0x00000002; 24 | KernelDropped: 0x00000004; 25 | EventIdsWrapped: 0x00000008; 26 | HistoryDone: 0x00000010; 27 | RootChanged: 0x00000020; 28 | Mount: 0x00000040; 29 | Unmount: 0x00000080; 30 | ItemCreated: 0x00000100; 31 | ItemRemoved: 0x00000200; 32 | ItemInodeMetaMod: 0x00000400; 33 | ItemRenamed: 0x00000800; 34 | ItemModified: 0x00001000; 35 | ItemFinderInfoMod: 0x00002000; 36 | ItemChangeOwner: 0x00004000; 37 | ItemXattrMod: 0x00008000; 38 | ItemIsFile: 0x00010000; 39 | ItemIsDir: 0x00020000; 40 | ItemIsSymlink: 0x00040000; 41 | ItemIsHardlink: 0x00100000; 42 | ItemIsLastHardlink: 0x00200000; 43 | OwnEvent: 0x00080000; 44 | ItemCloned: 0x00400000; 45 | }; 46 | export {}; 47 | -------------------------------------------------------------------------------- /node_modules/fsevents/fsevents.js: -------------------------------------------------------------------------------- 1 | /* 2 | ** © 2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller 3 | ** Licensed under MIT License. 4 | */ 5 | 6 | /* jshint node:true */ 7 | "use strict"; 8 | 9 | if (process.platform !== "darwin") { 10 | throw new Error(`Module 'fsevents' is not compatible with platform '${process.platform}'`); 11 | } 12 | 13 | const Native = require("./fsevents.node"); 14 | const events = Native.constants; 15 | 16 | function watch(path, since, handler) { 17 | if (typeof path !== "string") { 18 | throw new TypeError(`fsevents argument 1 must be a string and not a ${typeof path}`); 19 | } 20 | if ("function" === typeof since && "undefined" === typeof handler) { 21 | handler = since; 22 | since = Native.flags.SinceNow; 23 | } 24 | if (typeof since !== "number") { 25 | throw new TypeError(`fsevents argument 2 must be a number and not a ${typeof since}`); 26 | } 27 | if (typeof handler !== "function") { 28 | throw new TypeError(`fsevents argument 3 must be a function and not a ${typeof handler}`); 29 | } 30 | 31 | let instance = Native.start(Native.global, path, since, handler); 32 | if (!instance) throw new Error(`could not watch: ${path}`); 33 | return () => { 34 | const result = instance ? Promise.resolve(instance).then(Native.stop) : Promise.resolve(undefined); 35 | instance = undefined; 36 | return result; 37 | }; 38 | } 39 | 40 | function getInfo(path, flags) { 41 | return { 42 | path, 43 | flags, 44 | event: getEventType(flags), 45 | type: getFileType(flags), 46 | changes: getFileChanges(flags), 47 | }; 48 | } 49 | 50 | function getFileType(flags) { 51 | if (events.ItemIsFile & flags) return "file"; 52 | if (events.ItemIsDir & flags) return "directory"; 53 | if (events.ItemIsSymlink & flags) return "symlink"; 54 | } 55 | function anyIsTrue(obj) { 56 | for (let key in obj) { 57 | if (obj[key]) return true; 58 | } 59 | return false; 60 | } 61 | function getEventType(flags) { 62 | if (events.ItemRemoved & flags) return "deleted"; 63 | if (events.ItemRenamed & flags) return "moved"; 64 | if (events.ItemCreated & flags) return "created"; 65 | if (events.ItemModified & flags) return "modified"; 66 | if (events.RootChanged & flags) return "root-changed"; 67 | if (events.ItemCloned & flags) return "cloned"; 68 | if (anyIsTrue(flags)) return "modified"; 69 | return "unknown"; 70 | } 71 | function getFileChanges(flags) { 72 | return { 73 | inode: !!(events.ItemInodeMetaMod & flags), 74 | finder: !!(events.ItemFinderInfoMod & flags), 75 | access: !!(events.ItemChangeOwner & flags), 76 | xattrs: !!(events.ItemXattrMod & flags), 77 | }; 78 | } 79 | 80 | exports.watch = watch; 81 | exports.getInfo = getInfo; 82 | exports.constants = events; 83 | -------------------------------------------------------------------------------- /node_modules/fsevents/fsevents.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yakintech/techcareer-html-css-js/06944aecfa4e9c6bfc5b88b03bd138786d06575c/node_modules/fsevents/fsevents.node -------------------------------------------------------------------------------- /node_modules/fsevents/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fsevents", 3 | "version": "2.3.2", 4 | "description": "Native Access to MacOS FSEvents", 5 | "main": "fsevents.js", 6 | "types": "fsevents.d.ts", 7 | "os": [ 8 | "darwin" 9 | ], 10 | "files": [ 11 | "fsevents.d.ts", 12 | "fsevents.js", 13 | "fsevents.node" 14 | ], 15 | "engines": { 16 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 17 | }, 18 | "scripts": { 19 | "clean": "node-gyp clean && rm -f fsevents.node", 20 | "build": "node-gyp clean && rm -f fsevents.node && node-gyp rebuild && node-gyp clean", 21 | "test": "/bin/bash ./test.sh 2>/dev/null", 22 | "prepublishOnly": "npm run build" 23 | }, 24 | "repository": { 25 | "type": "git", 26 | "url": "https://github.com/fsevents/fsevents.git" 27 | }, 28 | "keywords": [ 29 | "fsevents", 30 | "mac" 31 | ], 32 | "contributors": [ 33 | { 34 | "name": "Philipp Dunkel", 35 | "email": "pip@pipobscure.com" 36 | }, 37 | { 38 | "name": "Ben Noordhuis", 39 | "email": "info@bnoordhuis.nl" 40 | }, 41 | { 42 | "name": "Elan Shankar", 43 | "email": "elan.shanker@gmail.com" 44 | }, 45 | { 46 | "name": "Miroslav Bajtoš", 47 | "email": "mbajtoss@gmail.com" 48 | }, 49 | { 50 | "name": "Paul Miller", 51 | "url": "https://paulmillr.com" 52 | } 53 | ], 54 | "license": "MIT", 55 | "bugs": { 56 | "url": "https://github.com/fsevents/fsevents/issues" 57 | }, 58 | "homepage": "https://github.com/fsevents/fsevents", 59 | "devDependencies": { 60 | "node-gyp": "^6.1.0" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /node_modules/glob-parent/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) 2015, 2019 Elan Shanker 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/glob-parent/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var isGlob = require('is-glob'); 4 | var pathPosixDirname = require('path').posix.dirname; 5 | var isWin32 = require('os').platform() === 'win32'; 6 | 7 | var slash = '/'; 8 | var backslash = /\\/g; 9 | var enclosure = /[\{\[].*[\}\]]$/; 10 | var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; 11 | var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; 12 | 13 | /** 14 | * @param {string} str 15 | * @param {Object} opts 16 | * @param {boolean} [opts.flipBackslashes=true] 17 | * @returns {string} 18 | */ 19 | module.exports = function globParent(str, opts) { 20 | var options = Object.assign({ flipBackslashes: true }, opts); 21 | 22 | // flip windows path separators 23 | if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { 24 | str = str.replace(backslash, slash); 25 | } 26 | 27 | // special case for strings ending in enclosure containing path separator 28 | if (enclosure.test(str)) { 29 | str += slash; 30 | } 31 | 32 | // preserves full path in case of trailing path separator 33 | str += 'a'; 34 | 35 | // remove path parts that are globby 36 | do { 37 | str = pathPosixDirname(str); 38 | } while (isGlob(str) || globby.test(str)); 39 | 40 | // remove escape chars and return result 41 | return str.replace(escaped, '$1'); 42 | }; 43 | -------------------------------------------------------------------------------- /node_modules/glob-parent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glob-parent", 3 | "version": "5.1.2", 4 | "description": "Extract the non-magic parent path from a glob string.", 5 | "author": "Gulp Team (https://gulpjs.com/)", 6 | "contributors": [ 7 | "Elan Shanker (https://github.com/es128)", 8 | "Blaine Bublitz " 9 | ], 10 | "repository": "gulpjs/glob-parent", 11 | "license": "ISC", 12 | "engines": { 13 | "node": ">= 6" 14 | }, 15 | "main": "index.js", 16 | "files": [ 17 | "LICENSE", 18 | "index.js" 19 | ], 20 | "scripts": { 21 | "lint": "eslint .", 22 | "pretest": "npm run lint", 23 | "test": "nyc mocha --async-only", 24 | "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", 25 | "coveralls": "nyc report --reporter=text-lcov | coveralls" 26 | }, 27 | "dependencies": { 28 | "is-glob": "^4.0.1" 29 | }, 30 | "devDependencies": { 31 | "coveralls": "^3.0.11", 32 | "eslint": "^2.13.1", 33 | "eslint-config-gulp": "^3.0.1", 34 | "expect": "^1.20.2", 35 | "mocha": "^6.0.2", 36 | "nyc": "^13.3.0" 37 | }, 38 | "keywords": [ 39 | "glob", 40 | "parent", 41 | "strip", 42 | "path", 43 | "dirname", 44 | "directory", 45 | "base", 46 | "wildcard" 47 | ] 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/immutable/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2014-present, Lee Byron and other contributors. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/immutable/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "immutable", 3 | "version": "4.3.1", 4 | "description": "Immutable Data Collections", 5 | "license": "MIT", 6 | "homepage": "https://immutable-js.com", 7 | "author": { 8 | "name": "Lee Byron", 9 | "url": "https://github.com/leebyron" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git://github.com/immutable-js/immutable-js.git" 14 | }, 15 | "bugs": { 16 | "url": "https://github.com/immutable-js/immutable-js/issues" 17 | }, 18 | "main": "dist/immutable.js", 19 | "module": "dist/immutable.es.js", 20 | "sideEffects": false, 21 | "types": "dist/immutable.d.ts", 22 | "files": [ 23 | "dist", 24 | "README.md", 25 | "LICENSE" 26 | ], 27 | "keywords": [ 28 | "immutable", 29 | "persistent", 30 | "lazy", 31 | "data", 32 | "datastructure", 33 | "functional", 34 | "collection", 35 | "stateless", 36 | "sequence", 37 | "iteration" 38 | ] 39 | } -------------------------------------------------------------------------------- /node_modules/is-binary-path/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if a file path is a binary file. 3 | 4 | @example 5 | ``` 6 | import isBinaryPath = require('is-binary-path'); 7 | 8 | isBinaryPath('source/unicorn.png'); 9 | //=> true 10 | 11 | isBinaryPath('source/unicorn.txt'); 12 | //=> false 13 | ``` 14 | */ 15 | declare function isBinaryPath(filePath: string): boolean; 16 | 17 | export = isBinaryPath; 18 | -------------------------------------------------------------------------------- /node_modules/is-binary-path/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | const binaryExtensions = require('binary-extensions'); 4 | 5 | const extensions = new Set(binaryExtensions); 6 | 7 | module.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase()); 8 | -------------------------------------------------------------------------------- /node_modules/is-binary-path/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/is-binary-path/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "is-binary-path", 3 | "version": "2.1.0", 4 | "description": "Check if a file path is a binary file", 5 | "license": "MIT", 6 | "repository": "sindresorhus/is-binary-path", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts" 21 | ], 22 | "keywords": [ 23 | "binary", 24 | "extensions", 25 | "extension", 26 | "file", 27 | "path", 28 | "check", 29 | "detect", 30 | "is" 31 | ], 32 | "dependencies": { 33 | "binary-extensions": "^2.0.0" 34 | }, 35 | "devDependencies": { 36 | "ava": "^1.4.1", 37 | "tsd": "^0.7.2", 38 | "xo": "^0.24.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /node_modules/is-binary-path/readme.md: -------------------------------------------------------------------------------- 1 | # is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path) 2 | 3 | > Check if a file path is a binary file 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install is-binary-path 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const isBinaryPath = require('is-binary-path'); 17 | 18 | isBinaryPath('source/unicorn.png'); 19 | //=> true 20 | 21 | isBinaryPath('source/unicorn.txt'); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## Related 27 | 28 | - [binary-extensions](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions 29 | - [is-text-path](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) 35 | -------------------------------------------------------------------------------- /node_modules/is-extglob/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2016, Jon Schlinkert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/is-extglob/README.md: -------------------------------------------------------------------------------- 1 | # is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob) 2 | 3 | > Returns true if a string has an extglob. 4 | 5 | ## Install 6 | 7 | Install with [npm](https://www.npmjs.com/): 8 | 9 | ```sh 10 | $ npm install --save is-extglob 11 | ``` 12 | 13 | ## Usage 14 | 15 | ```js 16 | var isExtglob = require('is-extglob'); 17 | ``` 18 | 19 | **True** 20 | 21 | ```js 22 | isExtglob('?(abc)'); 23 | isExtglob('@(abc)'); 24 | isExtglob('!(abc)'); 25 | isExtglob('*(abc)'); 26 | isExtglob('+(abc)'); 27 | ``` 28 | 29 | **False** 30 | 31 | Escaped extglobs: 32 | 33 | ```js 34 | isExtglob('\\?(abc)'); 35 | isExtglob('\\@(abc)'); 36 | isExtglob('\\!(abc)'); 37 | isExtglob('\\*(abc)'); 38 | isExtglob('\\+(abc)'); 39 | ``` 40 | 41 | Everything else... 42 | 43 | ```js 44 | isExtglob('foo.js'); 45 | isExtglob('!foo.js'); 46 | isExtglob('*.js'); 47 | isExtglob('**/abc.js'); 48 | isExtglob('abc/*.js'); 49 | isExtglob('abc/(aaa|bbb).js'); 50 | isExtglob('abc/[a-z].js'); 51 | isExtglob('abc/{a,b}.js'); 52 | isExtglob('abc/?.js'); 53 | isExtglob('abc.js'); 54 | isExtglob('abc/def/ghi.js'); 55 | ``` 56 | 57 | ## History 58 | 59 | **v2.0** 60 | 61 | Adds support for escaping. Escaped exglobs no longer return true. 62 | 63 | ## About 64 | 65 | ### Related projects 66 | 67 | * [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") 68 | * [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") 69 | * [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") 70 | 71 | ### Contributing 72 | 73 | Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). 74 | 75 | ### Building docs 76 | 77 | _(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ 78 | 79 | To generate the readme and API documentation with [verb](https://github.com/verbose/verb): 80 | 81 | ```sh 82 | $ npm install -g verb verb-generate-readme && verb 83 | ``` 84 | 85 | ### Running tests 86 | 87 | Install dev dependencies: 88 | 89 | ```sh 90 | $ npm install -d && npm test 91 | ``` 92 | 93 | ### Author 94 | 95 | **Jon Schlinkert** 96 | 97 | * [github/jonschlinkert](https://github.com/jonschlinkert) 98 | * [twitter/jonschlinkert](http://twitter.com/jonschlinkert) 99 | 100 | ### License 101 | 102 | Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). 103 | Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE). 104 | 105 | *** 106 | 107 | _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._ -------------------------------------------------------------------------------- /node_modules/is-extglob/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-extglob 3 | * 4 | * Copyright (c) 2014-2016, Jon Schlinkert. 5 | * Licensed under the MIT License. 6 | */ 7 | 8 | module.exports = function isExtglob(str) { 9 | if (typeof str !== 'string' || str === '') { 10 | return false; 11 | } 12 | 13 | var match; 14 | while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { 15 | if (match[2]) return true; 16 | str = str.slice(match.index + match[0].length); 17 | } 18 | 19 | return false; 20 | }; 21 | -------------------------------------------------------------------------------- /node_modules/is-extglob/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "is-extglob", 3 | "description": "Returns true if a string has an extglob.", 4 | "version": "2.1.1", 5 | "homepage": "https://github.com/jonschlinkert/is-extglob", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "repository": "jonschlinkert/is-extglob", 8 | "bugs": { 9 | "url": "https://github.com/jonschlinkert/is-extglob/issues" 10 | }, 11 | "license": "MIT", 12 | "files": [ 13 | "index.js" 14 | ], 15 | "main": "index.js", 16 | "engines": { 17 | "node": ">=0.10.0" 18 | }, 19 | "scripts": { 20 | "test": "mocha" 21 | }, 22 | "devDependencies": { 23 | "gulp-format-md": "^0.1.10", 24 | "mocha": "^3.0.2" 25 | }, 26 | "keywords": [ 27 | "bash", 28 | "braces", 29 | "check", 30 | "exec", 31 | "expression", 32 | "extglob", 33 | "glob", 34 | "globbing", 35 | "globstar", 36 | "is", 37 | "match", 38 | "matches", 39 | "pattern", 40 | "regex", 41 | "regular", 42 | "string", 43 | "test" 44 | ], 45 | "verb": { 46 | "toc": false, 47 | "layout": "default", 48 | "tasks": [ 49 | "readme" 50 | ], 51 | "plugins": [ 52 | "gulp-format-md" 53 | ], 54 | "related": { 55 | "list": [ 56 | "has-glob", 57 | "is-glob", 58 | "micromatch" 59 | ] 60 | }, 61 | "reflinks": [ 62 | "verb", 63 | "verb-generate-readme" 64 | ], 65 | "lint": { 66 | "reflinks": true 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /node_modules/is-glob/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2017, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/is-glob/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-glob 3 | * 4 | * Copyright (c) 2014-2017, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | var isExtglob = require('is-extglob'); 9 | var chars = { '{': '}', '(': ')', '[': ']'}; 10 | var strictCheck = function(str) { 11 | if (str[0] === '!') { 12 | return true; 13 | } 14 | var index = 0; 15 | var pipeIndex = -2; 16 | var closeSquareIndex = -2; 17 | var closeCurlyIndex = -2; 18 | var closeParenIndex = -2; 19 | var backSlashIndex = -2; 20 | while (index < str.length) { 21 | if (str[index] === '*') { 22 | return true; 23 | } 24 | 25 | if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { 26 | return true; 27 | } 28 | 29 | if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { 30 | if (closeSquareIndex < index) { 31 | closeSquareIndex = str.indexOf(']', index); 32 | } 33 | if (closeSquareIndex > index) { 34 | if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { 35 | return true; 36 | } 37 | backSlashIndex = str.indexOf('\\', index); 38 | if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { 39 | return true; 40 | } 41 | } 42 | } 43 | 44 | if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { 45 | closeCurlyIndex = str.indexOf('}', index); 46 | if (closeCurlyIndex > index) { 47 | backSlashIndex = str.indexOf('\\', index); 48 | if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { 49 | return true; 50 | } 51 | } 52 | } 53 | 54 | if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { 55 | closeParenIndex = str.indexOf(')', index); 56 | if (closeParenIndex > index) { 57 | backSlashIndex = str.indexOf('\\', index); 58 | if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { 59 | return true; 60 | } 61 | } 62 | } 63 | 64 | if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { 65 | if (pipeIndex < index) { 66 | pipeIndex = str.indexOf('|', index); 67 | } 68 | if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { 69 | closeParenIndex = str.indexOf(')', pipeIndex); 70 | if (closeParenIndex > pipeIndex) { 71 | backSlashIndex = str.indexOf('\\', pipeIndex); 72 | if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { 73 | return true; 74 | } 75 | } 76 | } 77 | } 78 | 79 | if (str[index] === '\\') { 80 | var open = str[index + 1]; 81 | index += 2; 82 | var close = chars[open]; 83 | 84 | if (close) { 85 | var n = str.indexOf(close, index); 86 | if (n !== -1) { 87 | index = n + 1; 88 | } 89 | } 90 | 91 | if (str[index] === '!') { 92 | return true; 93 | } 94 | } else { 95 | index++; 96 | } 97 | } 98 | return false; 99 | }; 100 | 101 | var relaxedCheck = function(str) { 102 | if (str[0] === '!') { 103 | return true; 104 | } 105 | var index = 0; 106 | while (index < str.length) { 107 | if (/[*?{}()[\]]/.test(str[index])) { 108 | return true; 109 | } 110 | 111 | if (str[index] === '\\') { 112 | var open = str[index + 1]; 113 | index += 2; 114 | var close = chars[open]; 115 | 116 | if (close) { 117 | var n = str.indexOf(close, index); 118 | if (n !== -1) { 119 | index = n + 1; 120 | } 121 | } 122 | 123 | if (str[index] === '!') { 124 | return true; 125 | } 126 | } else { 127 | index++; 128 | } 129 | } 130 | return false; 131 | }; 132 | 133 | module.exports = function isGlob(str, options) { 134 | if (typeof str !== 'string' || str === '') { 135 | return false; 136 | } 137 | 138 | if (isExtglob(str)) { 139 | return true; 140 | } 141 | 142 | var check = strictCheck; 143 | 144 | // optionally relax check 145 | if (options && options.strict === false) { 146 | check = relaxedCheck; 147 | } 148 | 149 | return check(str); 150 | }; 151 | -------------------------------------------------------------------------------- /node_modules/is-glob/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "is-glob", 3 | "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", 4 | "version": "4.0.3", 5 | "homepage": "https://github.com/micromatch/is-glob", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "contributors": [ 8 | "Brian Woodward (https://twitter.com/doowb)", 9 | "Daniel Perez (https://tuvistavie.com)", 10 | "Jon Schlinkert (http://twitter.com/jonschlinkert)" 11 | ], 12 | "repository": "micromatch/is-glob", 13 | "bugs": { 14 | "url": "https://github.com/micromatch/is-glob/issues" 15 | }, 16 | "license": "MIT", 17 | "files": [ 18 | "index.js" 19 | ], 20 | "main": "index.js", 21 | "engines": { 22 | "node": ">=0.10.0" 23 | }, 24 | "scripts": { 25 | "test": "mocha && node benchmark.js" 26 | }, 27 | "dependencies": { 28 | "is-extglob": "^2.1.1" 29 | }, 30 | "devDependencies": { 31 | "gulp-format-md": "^0.1.10", 32 | "mocha": "^3.0.2" 33 | }, 34 | "keywords": [ 35 | "bash", 36 | "braces", 37 | "check", 38 | "exec", 39 | "expression", 40 | "extglob", 41 | "glob", 42 | "globbing", 43 | "globstar", 44 | "is", 45 | "match", 46 | "matches", 47 | "pattern", 48 | "regex", 49 | "regular", 50 | "string", 51 | "test" 52 | ], 53 | "verb": { 54 | "layout": "default", 55 | "plugins": [ 56 | "gulp-format-md" 57 | ], 58 | "related": { 59 | "list": [ 60 | "assemble", 61 | "base", 62 | "update", 63 | "verb" 64 | ] 65 | }, 66 | "reflinks": [ 67 | "assemble", 68 | "bach", 69 | "base", 70 | "composer", 71 | "gulp", 72 | "has-glob", 73 | "is-valid-glob", 74 | "micromatch", 75 | "npm", 76 | "scaffold", 77 | "verb", 78 | "vinyl" 79 | ] 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /node_modules/is-number/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/is-number/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-number 3 | * 4 | * Copyright (c) 2014-present, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = function(num) { 11 | if (typeof num === 'number') { 12 | return num - num === 0; 13 | } 14 | if (typeof num === 'string' && num.trim() !== '') { 15 | return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); 16 | } 17 | return false; 18 | }; 19 | -------------------------------------------------------------------------------- /node_modules/is-number/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "is-number", 3 | "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", 4 | "version": "7.0.0", 5 | "homepage": "https://github.com/jonschlinkert/is-number", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "contributors": [ 8 | "Jon Schlinkert (http://twitter.com/jonschlinkert)", 9 | "Olsten Larck (https://i.am.charlike.online)", 10 | "Rouven Weßling (www.rouvenwessling.de)" 11 | ], 12 | "repository": "jonschlinkert/is-number", 13 | "bugs": { 14 | "url": "https://github.com/jonschlinkert/is-number/issues" 15 | }, 16 | "license": "MIT", 17 | "files": [ 18 | "index.js" 19 | ], 20 | "main": "index.js", 21 | "engines": { 22 | "node": ">=0.12.0" 23 | }, 24 | "scripts": { 25 | "test": "mocha" 26 | }, 27 | "devDependencies": { 28 | "ansi": "^0.3.1", 29 | "benchmark": "^2.1.4", 30 | "gulp-format-md": "^1.0.0", 31 | "mocha": "^3.5.3" 32 | }, 33 | "keywords": [ 34 | "cast", 35 | "check", 36 | "coerce", 37 | "coercion", 38 | "finite", 39 | "integer", 40 | "is", 41 | "isnan", 42 | "is-nan", 43 | "is-num", 44 | "is-number", 45 | "isnumber", 46 | "isfinite", 47 | "istype", 48 | "kind", 49 | "math", 50 | "nan", 51 | "num", 52 | "number", 53 | "numeric", 54 | "parseFloat", 55 | "parseInt", 56 | "test", 57 | "type", 58 | "typeof", 59 | "value" 60 | ], 61 | "verb": { 62 | "toc": false, 63 | "layout": "default", 64 | "tasks": [ 65 | "readme" 66 | ], 67 | "related": { 68 | "list": [ 69 | "is-plain-object", 70 | "is-primitive", 71 | "isobject", 72 | "kind-of" 73 | ] 74 | }, 75 | "plugins": [ 76 | "gulp-format-md" 77 | ], 78 | "lint": { 79 | "reflinks": true 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /node_modules/normalize-path/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2018, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/normalize-path/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * normalize-path 3 | * 4 | * Copyright (c) 2014-2018, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | module.exports = function(path, stripTrailing) { 9 | if (typeof path !== 'string') { 10 | throw new TypeError('expected path to be a string'); 11 | } 12 | 13 | if (path === '\\' || path === '/') return '/'; 14 | 15 | var len = path.length; 16 | if (len <= 1) return path; 17 | 18 | // ensure that win32 namespaces has two leading slashes, so that the path is 19 | // handled properly by the win32 version of path.parse() after being normalized 20 | // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces 21 | var prefix = ''; 22 | if (len > 4 && path[3] === '\\') { 23 | var ch = path[2]; 24 | if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { 25 | path = path.slice(2); 26 | prefix = '//'; 27 | } 28 | } 29 | 30 | var segs = path.split(/[/\\]+/); 31 | if (stripTrailing !== false && segs[segs.length - 1] === '') { 32 | segs.pop(); 33 | } 34 | return prefix + segs.join('/'); 35 | }; 36 | -------------------------------------------------------------------------------- /node_modules/normalize-path/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "normalize-path", 3 | "description": "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.", 4 | "version": "3.0.0", 5 | "homepage": "https://github.com/jonschlinkert/normalize-path", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "contributors": [ 8 | "Blaine Bublitz (https://twitter.com/BlaineBublitz)", 9 | "Jon Schlinkert (http://twitter.com/jonschlinkert)" 10 | ], 11 | "repository": "jonschlinkert/normalize-path", 12 | "bugs": { 13 | "url": "https://github.com/jonschlinkert/normalize-path/issues" 14 | }, 15 | "license": "MIT", 16 | "files": [ 17 | "index.js" 18 | ], 19 | "main": "index.js", 20 | "engines": { 21 | "node": ">=0.10.0" 22 | }, 23 | "scripts": { 24 | "test": "mocha" 25 | }, 26 | "devDependencies": { 27 | "gulp-format-md": "^1.0.0", 28 | "minimist": "^1.2.0", 29 | "mocha": "^3.5.3" 30 | }, 31 | "keywords": [ 32 | "absolute", 33 | "backslash", 34 | "delimiter", 35 | "file", 36 | "file-path", 37 | "filepath", 38 | "fix", 39 | "forward", 40 | "fp", 41 | "fs", 42 | "normalize", 43 | "path", 44 | "relative", 45 | "separator", 46 | "slash", 47 | "slashes", 48 | "trailing", 49 | "unix", 50 | "urix" 51 | ], 52 | "verb": { 53 | "toc": false, 54 | "layout": "default", 55 | "tasks": [ 56 | "readme" 57 | ], 58 | "plugins": [ 59 | "gulp-format-md" 60 | ], 61 | "related": { 62 | "description": "Other useful path-related libraries:", 63 | "list": [ 64 | "contains-path", 65 | "is-absolute", 66 | "is-relative", 67 | "parse-filepath", 68 | "path-ends-with", 69 | "path-ends-with", 70 | "unixify" 71 | ] 72 | }, 73 | "lint": { 74 | "reflinks": true 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /node_modules/picomatch/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /node_modules/picomatch/lib/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const path = require('path'); 4 | const win32 = process.platform === 'win32'; 5 | const { 6 | REGEX_BACKSLASH, 7 | REGEX_REMOVE_BACKSLASH, 8 | REGEX_SPECIAL_CHARS, 9 | REGEX_SPECIAL_CHARS_GLOBAL 10 | } = require('./constants'); 11 | 12 | exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); 13 | exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); 14 | exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); 15 | exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); 16 | exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); 17 | 18 | exports.removeBackslashes = str => { 19 | return str.replace(REGEX_REMOVE_BACKSLASH, match => { 20 | return match === '\\' ? '' : match; 21 | }); 22 | }; 23 | 24 | exports.supportsLookbehinds = () => { 25 | const segs = process.version.slice(1).split('.').map(Number); 26 | if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { 27 | return true; 28 | } 29 | return false; 30 | }; 31 | 32 | exports.isWindows = options => { 33 | if (options && typeof options.windows === 'boolean') { 34 | return options.windows; 35 | } 36 | return win32 === true || path.sep === '\\'; 37 | }; 38 | 39 | exports.escapeLast = (input, char, lastIdx) => { 40 | const idx = input.lastIndexOf(char, lastIdx); 41 | if (idx === -1) return input; 42 | if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); 43 | return `${input.slice(0, idx)}\\${input.slice(idx)}`; 44 | }; 45 | 46 | exports.removePrefix = (input, state = {}) => { 47 | let output = input; 48 | if (output.startsWith('./')) { 49 | output = output.slice(2); 50 | state.prefix = './'; 51 | } 52 | return output; 53 | }; 54 | 55 | exports.wrapOutput = (input, state = {}, options = {}) => { 56 | const prepend = options.contains ? '' : '^'; 57 | const append = options.contains ? '' : '$'; 58 | 59 | let output = `${prepend}(?:${input})${append}`; 60 | if (state.negated === true) { 61 | output = `(?:^(?!${output}).*$)`; 62 | } 63 | return output; 64 | }; 65 | -------------------------------------------------------------------------------- /node_modules/picomatch/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "picomatch", 3 | "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.", 4 | "version": "2.3.1", 5 | "homepage": "https://github.com/micromatch/picomatch", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "funding": "https://github.com/sponsors/jonschlinkert", 8 | "repository": "micromatch/picomatch", 9 | "bugs": { 10 | "url": "https://github.com/micromatch/picomatch/issues" 11 | }, 12 | "license": "MIT", 13 | "files": [ 14 | "index.js", 15 | "lib" 16 | ], 17 | "main": "index.js", 18 | "engines": { 19 | "node": ">=8.6" 20 | }, 21 | "scripts": { 22 | "lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .", 23 | "mocha": "mocha --reporter dot", 24 | "test": "npm run lint && npm run mocha", 25 | "test:ci": "npm run test:cover", 26 | "test:cover": "nyc npm run mocha" 27 | }, 28 | "devDependencies": { 29 | "eslint": "^6.8.0", 30 | "fill-range": "^7.0.1", 31 | "gulp-format-md": "^2.0.0", 32 | "mocha": "^6.2.2", 33 | "nyc": "^15.0.0", 34 | "time-require": "github:jonschlinkert/time-require" 35 | }, 36 | "keywords": [ 37 | "glob", 38 | "match", 39 | "picomatch" 40 | ], 41 | "nyc": { 42 | "reporter": [ 43 | "html", 44 | "lcov", 45 | "text-summary" 46 | ] 47 | }, 48 | "verb": { 49 | "toc": { 50 | "render": true, 51 | "method": "preWrite", 52 | "maxdepth": 3 53 | }, 54 | "layout": "empty", 55 | "tasks": [ 56 | "readme" 57 | ], 58 | "plugins": [ 59 | "gulp-format-md" 60 | ], 61 | "lint": { 62 | "reflinks": true 63 | }, 64 | "related": { 65 | "list": [ 66 | "braces", 67 | "micromatch" 68 | ] 69 | }, 70 | "reflinks": [ 71 | "braces", 72 | "expand-brackets", 73 | "extglob", 74 | "fill-range", 75 | "micromatch", 76 | "minimatch", 77 | "nanomatch", 78 | "picomatch" 79 | ] 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /node_modules/readdirp/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/readdirp/index.d.ts: -------------------------------------------------------------------------------- 1 | // TypeScript Version: 3.2 2 | 3 | /// 4 | 5 | import * as fs from 'fs'; 6 | import { Readable } from 'stream'; 7 | 8 | declare namespace readdir { 9 | interface EntryInfo { 10 | path: string; 11 | fullPath: string; 12 | basename: string; 13 | stats?: fs.Stats; 14 | dirent?: fs.Dirent; 15 | } 16 | 17 | interface ReaddirpOptions { 18 | root?: string; 19 | fileFilter?: string | string[] | ((entry: EntryInfo) => boolean); 20 | directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean); 21 | type?: 'files' | 'directories' | 'files_directories' | 'all'; 22 | lstat?: boolean; 23 | depth?: number; 24 | alwaysStat?: boolean; 25 | } 26 | 27 | interface ReaddirpStream extends Readable, AsyncIterable { 28 | read(): EntryInfo; 29 | [Symbol.asyncIterator](): AsyncIterableIterator; 30 | } 31 | 32 | function promise( 33 | root: string, 34 | options?: ReaddirpOptions 35 | ): Promise; 36 | } 37 | 38 | declare function readdir( 39 | root: string, 40 | options?: readdir.ReaddirpOptions 41 | ): readdir.ReaddirpStream; 42 | 43 | export = readdir; 44 | -------------------------------------------------------------------------------- /node_modules/readdirp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "readdirp", 3 | "description": "Recursive version of fs.readdir with streaming API.", 4 | "version": "3.6.0", 5 | "homepage": "https://github.com/paulmillr/readdirp", 6 | "repository": { 7 | "type": "git", 8 | "url": "git://github.com/paulmillr/readdirp.git" 9 | }, 10 | "license": "MIT", 11 | "bugs": { 12 | "url": "https://github.com/paulmillr/readdirp/issues" 13 | }, 14 | "author": "Thorsten Lorenz (thlorenz.com)", 15 | "contributors": [ 16 | "Thorsten Lorenz (thlorenz.com)", 17 | "Paul Miller (https://paulmillr.com)" 18 | ], 19 | "main": "index.js", 20 | "engines": { 21 | "node": ">=8.10.0" 22 | }, 23 | "files": [ 24 | "index.js", 25 | "index.d.ts" 26 | ], 27 | "keywords": [ 28 | "recursive", 29 | "fs", 30 | "stream", 31 | "streams", 32 | "readdir", 33 | "filesystem", 34 | "find", 35 | "filter" 36 | ], 37 | "scripts": { 38 | "dtslint": "dtslint", 39 | "nyc": "nyc", 40 | "mocha": "mocha --exit", 41 | "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", 42 | "test": "npm run lint && nyc npm run mocha" 43 | }, 44 | "dependencies": { 45 | "picomatch": "^2.2.1" 46 | }, 47 | "devDependencies": { 48 | "@types/node": "^14", 49 | "chai": "^4.2", 50 | "chai-subset": "^1.6", 51 | "dtslint": "^3.3.0", 52 | "eslint": "^7.0.0", 53 | "mocha": "^7.1.1", 54 | "nyc": "^15.0.0", 55 | "rimraf": "^3.0.0", 56 | "typescript": "^4.0.3" 57 | }, 58 | "nyc": { 59 | "reporter": [ 60 | "html", 61 | "text" 62 | ] 63 | }, 64 | "eslintConfig": { 65 | "root": true, 66 | "extends": "eslint:recommended", 67 | "parserOptions": { 68 | "ecmaVersion": 9, 69 | "sourceType": "script" 70 | }, 71 | "env": { 72 | "node": true, 73 | "es6": true 74 | }, 75 | "rules": { 76 | "array-callback-return": "error", 77 | "no-empty": [ 78 | "error", 79 | { 80 | "allowEmptyCatch": true 81 | } 82 | ], 83 | "no-else-return": [ 84 | "error", 85 | { 86 | "allowElseIf": false 87 | } 88 | ], 89 | "no-lonely-if": "error", 90 | "no-var": "error", 91 | "object-shorthand": "error", 92 | "prefer-arrow-callback": [ 93 | "error", 94 | { 95 | "allowNamedFunctions": true 96 | } 97 | ], 98 | "prefer-const": [ 99 | "error", 100 | { 101 | "ignoreReadBeforeAssign": true 102 | } 103 | ], 104 | "prefer-destructuring": [ 105 | "error", 106 | { 107 | "object": true, 108 | "array": false 109 | } 110 | ], 111 | "prefer-spread": "error", 112 | "prefer-template": "error", 113 | "radix": "error", 114 | "semi": "error", 115 | "strict": "error", 116 | "quotes": [ 117 | "error", 118 | "single" 119 | ] 120 | } 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /node_modules/sass/package.json: -------------------------------------------------------------------------------- 1 | {"name":"sass","description":"A pure JavaScript implementation of Sass.","license":"MIT","bugs":"https://github.com/sass/dart-sass/issues","homepage":"https://github.com/sass/dart-sass","repository":{"type":"git","url":"https://github.com/sass/dart-sass"},"author":{"name":"Natalie Weizenbaum","email":"nweiz@google.com","url":"https://github.com/nex3"},"engines":{"node":">=14.0.0"},"dependencies":{"chokidar":">=3.0.0 <4.0.0","immutable":"^4.0.0","source-map-js":">=0.6.2 <2.0.0"},"keywords":["style","scss","sass","preprocessor","css"],"types":"types/index.d.ts","exports":{"types":"./types/index.d.ts","node":{"require":"./sass.node.js","default":"./sass.node.mjs"},"default":{"require":"./sass.default.cjs","default":"./sass.default.js"}},"version":"1.64.1","bin":{"sass":"sass.js"},"main":"sass.node.js"} -------------------------------------------------------------------------------- /node_modules/sass/sass.default.cjs: -------------------------------------------------------------------------------- 1 | require('./sass.dart.js'); 2 | const library = globalThis._cliPkgExports.pop(); 3 | if (globalThis._cliPkgExports.length === 0) delete globalThis._cliPkgExports; 4 | library.load({ 5 | immutable: require("immutable"), 6 | }); 7 | 8 | module.exports = library; 9 | -------------------------------------------------------------------------------- /node_modules/sass/sass.default.js: -------------------------------------------------------------------------------- 1 | import * as immutable from "immutable" 2 | import "./sass.dart.js"; 3 | 4 | const _cliPkgLibrary = globalThis._cliPkgExports.pop(); 5 | if (globalThis._cliPkgExports.length === 0) delete globalThis._cliPkgExports; 6 | const _cliPkgExports = {}; 7 | _cliPkgLibrary.load({immutable}, _cliPkgExports); 8 | 9 | export const compile = _cliPkgExports.compile; 10 | export const compileAsync = _cliPkgExports.compileAsync; 11 | export const compileString = _cliPkgExports.compileString; 12 | export const compileStringAsync = _cliPkgExports.compileStringAsync; 13 | export const Logger = _cliPkgExports.Logger; 14 | export const SassArgumentList = _cliPkgExports.SassArgumentList; 15 | export const SassBoolean = _cliPkgExports.SassBoolean; 16 | export const SassCalculation = _cliPkgExports.SassCalculation; 17 | export const CalculationOperation = _cliPkgExports.CalculationOperation; 18 | export const CalculationInterpolation = _cliPkgExports.CalculationInterpolation; 19 | export const SassColor = _cliPkgExports.SassColor; 20 | export const SassFunction = _cliPkgExports.SassFunction; 21 | export const SassList = _cliPkgExports.SassList; 22 | export const SassMap = _cliPkgExports.SassMap; 23 | export const SassNumber = _cliPkgExports.SassNumber; 24 | export const SassString = _cliPkgExports.SassString; 25 | export const Value = _cliPkgExports.Value; 26 | export const CustomFunction = _cliPkgExports.CustomFunction; 27 | export const ListSeparator = _cliPkgExports.ListSeparator; 28 | export const sassFalse = _cliPkgExports.sassFalse; 29 | export const sassNull = _cliPkgExports.sassNull; 30 | export const sassTrue = _cliPkgExports.sassTrue; 31 | export const Exception = _cliPkgExports.Exception; 32 | export const PromiseOr = _cliPkgExports.PromiseOr; 33 | export const info = _cliPkgExports.info; 34 | export const render = _cliPkgExports.render; 35 | export const renderSync = _cliPkgExports.renderSync; 36 | export const TRUE = _cliPkgExports.TRUE; 37 | export const FALSE = _cliPkgExports.FALSE; 38 | export const NULL = _cliPkgExports.NULL; 39 | export const types = _cliPkgExports.types; 40 | -------------------------------------------------------------------------------- /node_modules/sass/sass.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('./sass.dart.js'); 4 | var library = globalThis._cliPkgExports.pop(); 5 | if (globalThis._cliPkgExports.length === 0) delete globalThis._cliPkgExports; 6 | 7 | library.load({ 8 | readline: require("readline"), 9 | chokidar: require("chokidar"), 10 | util: require("util"), 11 | stream: require("stream"), 12 | fs: require("fs"), 13 | immutable: require("immutable"), 14 | }); 15 | 16 | library.cli_pkg_main_0_(process.argv.slice(2)); 17 | -------------------------------------------------------------------------------- /node_modules/sass/sass.node.js: -------------------------------------------------------------------------------- 1 | require('./sass.dart.js'); 2 | const library = globalThis._cliPkgExports.pop(); 3 | if (globalThis._cliPkgExports.length === 0) delete globalThis._cliPkgExports; 4 | library.load({ 5 | util: require("util"), 6 | stream: require("stream"), 7 | fs: require("fs"), 8 | immutable: require("immutable"), 9 | }); 10 | 11 | module.exports = library; 12 | -------------------------------------------------------------------------------- /node_modules/sass/types/exception.d.ts: -------------------------------------------------------------------------------- 1 | import {SourceSpan} from './logger'; 2 | 3 | /** 4 | * An exception thrown because a Sass compilation failed. 5 | * 6 | * @category Other 7 | */ 8 | export class Exception extends Error { 9 | private constructor(); 10 | 11 | /** 12 | * A human-friendly representation of the exception. 13 | * 14 | * Because many tools simply print `Error.message` directly, this includes not 15 | * only the textual description of what went wrong (the {@link sassMessage}) 16 | * but also an indication of where in the Sass stylesheet the error occurred 17 | * (the {@link span}) and the Sass stack trace at the point of error (the 18 | * {@link sassStack}). 19 | */ 20 | message: string; 21 | 22 | /** 23 | * A textual description of what went wrong. 24 | * 25 | * Unlike {@link message}, this does *not* include representations of {@link 26 | * span} or {@link sassStack}. 27 | */ 28 | readonly sassMessage: string; 29 | 30 | /** 31 | * A human-friendly representation of the Sass stack trace at the point of 32 | * error. 33 | */ 34 | readonly sassStack: string; 35 | 36 | /** The location the error occurred in the Sass file that triggered it. */ 37 | readonly span: SourceSpan; 38 | 39 | /** Returns the same string as {@link message}. */ 40 | toString(): string; 41 | } 42 | -------------------------------------------------------------------------------- /node_modules/sass/types/index.d.ts: -------------------------------------------------------------------------------- 1 | // This is a mirror of the JS API definitions in `spec/js-api`, but with comments 2 | // written to provide user-facing documentation rather than to specify behavior for 3 | // implementations. 4 | 5 | export { 6 | CompileResult, 7 | compile, 8 | compileAsync, 9 | compileString, 10 | compileStringAsync, 11 | } from './compile'; 12 | export {Exception} from './exception'; 13 | export {FileImporter, Importer, ImporterResult} from './importer'; 14 | export {Logger, SourceSpan, SourceLocation} from './logger'; 15 | export { 16 | CustomFunction, 17 | Options, 18 | OutputStyle, 19 | StringOptions, 20 | StringOptionsWithImporter, 21 | StringOptionsWithoutImporter, 22 | Syntax, 23 | } from './options'; 24 | export {PromiseOr} from './util/promise_or'; 25 | export { 26 | CalculationInterpolation, 27 | CalculationOperation, 28 | CalculationOperator, 29 | CalculationValue, 30 | ListSeparator, 31 | SassArgumentList, 32 | SassBoolean, 33 | SassCalculation, 34 | SassColor, 35 | SassFunction, 36 | SassList, 37 | SassMap, 38 | SassNumber, 39 | SassString, 40 | Value, 41 | sassFalse, 42 | sassNull, 43 | sassTrue, 44 | } from './value'; 45 | 46 | // Legacy APIs 47 | export {LegacyException} from './legacy/exception'; 48 | export { 49 | FALSE, 50 | LegacyAsyncFunction, 51 | LegacyAsyncFunctionDone, 52 | LegacyFunction, 53 | LegacySyncFunction, 54 | LegacyValue, 55 | NULL, 56 | TRUE, 57 | types, 58 | } from './legacy/function'; 59 | export { 60 | LegacyAsyncImporter, 61 | LegacyImporter, 62 | LegacyImporterResult, 63 | LegacyImporterThis, 64 | LegacySyncImporter, 65 | } from './legacy/importer'; 66 | export { 67 | LegacySharedOptions, 68 | LegacyFileOptions, 69 | LegacyStringOptions, 70 | LegacyOptions, 71 | } from './legacy/options'; 72 | export {LegacyPluginThis} from './legacy/plugin_this'; 73 | export {LegacyResult, render, renderSync} from './legacy/render'; 74 | 75 | /** 76 | * Information about the Sass implementation. This always begins with a unique 77 | * identifier for the Sass implementation, followed by U+0009 TAB, followed by 78 | * its npm package version. Some implementations include additional information 79 | * as well, but not in any standardized format. 80 | * 81 | * * For Dart Sass, the implementation name is `dart-sass`. 82 | * * For Node Sass, the implementation name is `node-sass`. 83 | * * For the embedded host, the implementation name is `sass-embedded`. 84 | */ 85 | export const info: string; 86 | -------------------------------------------------------------------------------- /node_modules/sass/types/legacy/exception.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The exception type thrown by {@link renderSync} and passed as the error to 3 | * {@link render}'s callback. 4 | * 5 | * @category Legacy 6 | * @deprecated This is only thrown by the legacy {@link render} and {@link 7 | * renderSync} APIs. Use {@link compile}, {@link compileString}, {@link 8 | * compileAsync}, and {@link compileStringAsync} instead. 9 | */ 10 | export interface LegacyException extends Error { 11 | /** 12 | * The error message. For Dart Sass, when possible this includes a highlighted 13 | * indication of where in the source file the error occurred as well as the 14 | * Sass stack trace. 15 | */ 16 | message: string; 17 | 18 | /** 19 | * The error message. For Dart Sass, this is the same as the result of calling 20 | * {@link toString}, which is itself the same as {@link message} but with the 21 | * prefix "Error:". 22 | */ 23 | formatted: string; 24 | 25 | /** 26 | * The (1-based) line number on which the error occurred, if this exception is 27 | * associated with a specific Sass file location. 28 | */ 29 | line?: number; 30 | 31 | /** 32 | * The (1-based) column number within {@link line} at which the error 33 | * occurred, if this exception is associated with a specific Sass file 34 | * location. 35 | */ 36 | column?: number; 37 | 38 | /** 39 | * Analogous to the exit code for an executable. `1` for an error caused by a 40 | * Sass file, `3` for any other type of error. 41 | */ 42 | status: number; 43 | 44 | /** 45 | * If this exception was caused by an error in a Sass file, this will 46 | * represent the Sass file's location. It can be in one of three formats: 47 | * 48 | * * If the Sass file was loaded from disk, this is the path to that file. 49 | * * If the Sass file was generated by an importer, this is its canonical URL. 50 | * * If the Sass file was passed as {@link LegacyStringOptions.data} without a 51 | * corresponding {@link LegacyStringOptions.file}, this is the special 52 | * string `"stdin"`. 53 | */ 54 | file?: string; 55 | } 56 | -------------------------------------------------------------------------------- /node_modules/sass/types/legacy/plugin_this.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The value of `this` in the context of a {@link LegacyImporter} or {@link 3 | * LegacyFunction} callback. 4 | * 5 | * @category Legacy 6 | * @deprecated This is only used by the legacy {@link render} and {@link 7 | * renderSync} APIs. Use {@link compile}, {@link compileString}, {@link 8 | * compileAsync}, and {@link compileStringAsync} instead. 9 | */ 10 | export interface LegacyPluginThis { 11 | /** 12 | * A partial representation of the options passed to {@link render} or {@link 13 | * renderSync}. 14 | */ 15 | options: { 16 | /** The same {@link LegacyPluginThis} instance that contains this object. */ 17 | context: LegacyPluginThis; 18 | 19 | /** 20 | * The value passed to {@link LegacyFileOptions.file} or {@link 21 | * LegacyStringOptions.file}. 22 | */ 23 | file?: string; 24 | 25 | /** The value passed to {@link LegacyStringOptions.data}. */ 26 | data?: string; 27 | 28 | /** 29 | * The value passed to {@link LegacySharedOptions.includePaths} separated by 30 | * `";"` on Windows or `":"` on other operating systems. This always 31 | * includes the current working directory as the first entry. 32 | */ 33 | includePaths: string; 34 | 35 | /** Always the number 10. */ 36 | precision: 10; 37 | 38 | /** Always the number 1. */ 39 | style: 1; 40 | 41 | /** 1 if {@link LegacySharedOptions.indentType} was `"tab"`, 0 otherwise. */ 42 | indentType: 1 | 0; 43 | 44 | /** 45 | * The value passed to {@link LegacySharedOptions.indentWidth}, or `2` 46 | * otherwise. 47 | */ 48 | indentWidth: number; 49 | 50 | /** 51 | * The value passed to {@link LegacySharedOptions.linefeed}, or `"\n"` 52 | * otherwise. 53 | */ 54 | linefeed: '\r' | '\r\n' | '\n' | '\n\r'; 55 | 56 | /** A partially-constructed {@link LegacyResult} object. */ 57 | result: { 58 | /** Partial information about the compilation in progress. */ 59 | stats: { 60 | /** 61 | * The number of milliseconds between 1 January 1970 at 00:00:00 UTC and 62 | * the time at which Sass compilation began. 63 | */ 64 | start: number; 65 | 66 | /** 67 | * {@link LegacyFileOptions.file} if it was passed, otherwise the string 68 | * `"data"`. 69 | */ 70 | entry: string; 71 | }; 72 | }; 73 | }; 74 | } 75 | -------------------------------------------------------------------------------- /node_modules/sass/types/legacy/render.d.ts: -------------------------------------------------------------------------------- 1 | import {LegacyException} from './exception'; 2 | import {LegacyOptions} from './options'; 3 | 4 | /** 5 | * The object returned by {@link render} and {@link renderSync} after a 6 | * successful compilation. 7 | * 8 | * @category Legacy 9 | * @deprecated This is only used by the legacy {@link render} and {@link 10 | * renderSync} APIs. Use {@link compile}, {@link compileString}, {@link 11 | * compileAsync}, and {@link compileStringAsync} instead. 12 | */ 13 | export interface LegacyResult { 14 | /** 15 | * The compiled CSS. This can be converted to a string by calling 16 | * [Buffer.toString](https://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end). 17 | * 18 | * @example 19 | * 20 | * ```js 21 | * const result = sass.renderSync({file: "style.scss"}); 22 | * 23 | * console.log(result.css.toString()); 24 | * ``` 25 | */ 26 | css: Buffer; 27 | 28 | /** 29 | * The source map that maps the compiled CSS to the source files from which it 30 | * was generated. This can be converted to a string by calling 31 | * [Buffer.toString](https://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end). 32 | * 33 | * This is `undefined` unless either 34 | * 35 | * * {@link LegacySharedOptions.sourceMap} is a string; or 36 | * * {@link LegacySharedOptions.sourceMap} is `true` and 37 | * {@link LegacySharedOptions.outFile} is set. 38 | * 39 | * The source map uses absolute [`file:` 40 | * URLs](https://en.wikipedia.org/wiki/File_URI_scheme) to link to the Sass 41 | * source files, except if the source file comes from {@link 42 | * LegacyStringOptions.data} in which case it lists its URL as `"stdin"`. 43 | * 44 | * @example 45 | * 46 | * ```js 47 | * const result = sass.renderSync({ 48 | * file: "style.scss", 49 | * sourceMap: true, 50 | * outFile: "style.css" 51 | * }) 52 | * 53 | * console.log(result.map.toString()); 54 | * ``` 55 | */ 56 | map?: Buffer; 57 | 58 | /** Additional information about the compilation. */ 59 | stats: { 60 | /** 61 | * The absolute path of {@link LegacyFileOptions.file} or {@link 62 | * LegacyStringOptions.file}, or `"data"` if {@link 63 | * LegacyStringOptions.file} wasn't set. 64 | */ 65 | entry: string; 66 | 67 | /** 68 | * The number of milliseconds between 1 January 1970 at 00:00:00 UTC and the 69 | * time at which Sass compilation began. 70 | */ 71 | start: number; 72 | 73 | /** 74 | * The number of milliseconds between 1 January 1970 at 00:00:00 UTC and the 75 | * time at which Sass compilation ended. 76 | */ 77 | end: number; 78 | 79 | /** 80 | * The number of milliseconds it took to compile the Sass file. This is 81 | * always equal to `start` minus `end`. 82 | */ 83 | duration: number; 84 | 85 | /** 86 | * An array of the absolute paths of all Sass files loaded during 87 | * compilation. If a stylesheet was loaded from a {@link LegacyImporter} 88 | * that returned the stylesheet’s contents, the raw string of the `@use` or 89 | * `@import` that loaded that stylesheet included in this array. 90 | */ 91 | includedFiles: string[]; 92 | }; 93 | } 94 | 95 | /** 96 | * This function synchronously compiles a Sass file to CSS. If it succeeds, it 97 | * returns the result, and if it fails it throws an error. 98 | * 99 | * @example 100 | * 101 | * ```js 102 | * const sass = require('sass'); // or require('node-sass'); 103 | * 104 | * const result = sass.renderSync({file: "style.scss"}); 105 | * // ... 106 | * ``` 107 | * 108 | * @category Legacy 109 | * @deprecated Use {@link compile} or {@link compileString} instead. 110 | */ 111 | export function renderSync(options: LegacyOptions<'sync'>): LegacyResult; 112 | 113 | /** 114 | 115 | * This function asynchronously compiles a Sass file to CSS, and calls 116 | * `callback` with a {@link LegacyResult} if compilation succeeds or {@link 117 | * LegacyException} if it fails. 118 | * 119 | * **Heads up!** When using Dart Sass, **{@link renderSync} is almost twice as 120 | * fast as {@link render}** by default, due to the overhead of making the entire 121 | * evaluation process asynchronous. 122 | * 123 | * ```js 124 | * const sass = require('sass'); // or require('node-sass'); 125 | * 126 | * sass.render({ 127 | * file: "style.scss" 128 | * }, function(err, result) { 129 | * // ... 130 | * }); 131 | * ``` 132 | * 133 | * @category Legacy 134 | * @deprecated Use {@link compileAsync} or {@link compileStringAsync} instead. 135 | */ 136 | export function render( 137 | options: LegacyOptions<'async'>, 138 | callback: (exception?: LegacyException, result?: LegacyResult) => void 139 | ): void; 140 | -------------------------------------------------------------------------------- /node_modules/sass/types/logger/index.d.ts: -------------------------------------------------------------------------------- 1 | import {SourceSpan} from './source_span'; 2 | 3 | export {SourceLocation} from './source_location'; 4 | export {SourceSpan} from './source_span'; 5 | 6 | /** 7 | * An object that can be passed to {@link LegacySharedOptions.logger} to control 8 | * how Sass emits warnings and debug messages. 9 | * 10 | * @example 11 | * 12 | * ```js 13 | * const fs = require('fs'); 14 | * const sass = require('sass'); 15 | * 16 | * let log = ""; 17 | * sass.renderSync({ 18 | * file: 'input.scss', 19 | * logger: { 20 | * warn(message, options) { 21 | * if (options.span) { 22 | * log += `${span.url}:${span.start.line}:${span.start.column}: ` + 23 | * `${message}\n`; 24 | * } else { 25 | * log += `::: ${message}\n`; 26 | * } 27 | * } 28 | * } 29 | * }); 30 | * 31 | * fs.writeFileSync('log.txt', log); 32 | * ``` 33 | * 34 | * @category Logger 35 | */ 36 | export interface Logger { 37 | /** 38 | * This method is called when Sass emits a warning, whether due to a [`@warn` 39 | * rule](https://sass-lang.com/documentation/at-rules/warn) or a warning 40 | * generated by the Sass compiler. 41 | * 42 | * If this is `undefined`, Sass will print warnings to standard error. 43 | * 44 | * @param message - The warning message. 45 | * @param options.deprecation - Whether this is a deprecation warning. 46 | * @param options.span - The location in the Sass source code that generated this 47 | * warning. 48 | * @param options.stack - The Sass stack trace at the point the warning was issued. 49 | */ 50 | warn?( 51 | message: string, 52 | options: { 53 | deprecation: boolean; 54 | span?: SourceSpan; 55 | stack?: string; 56 | } 57 | ): void; 58 | 59 | /** 60 | * This method is called when Sass emits a debug message due to a [`@debug` 61 | * rule](https://sass-lang.com/documentation/at-rules/debug). 62 | * 63 | * If this is `undefined`, Sass will print debug messages to standard error. 64 | * 65 | * @param message - The debug message. 66 | * @param options.span - The location in the Sass source code that generated this 67 | * debug message. 68 | */ 69 | debug?(message: string, options: {span: SourceSpan}): void; 70 | } 71 | 72 | /** 73 | * A namespace for built-in {@link Logger}s. 74 | * 75 | * @category Logger 76 | * @compatibility dart: "1.43.0", node: false 77 | */ 78 | export namespace Logger { 79 | /** 80 | * A {@link Logger} that silently ignores all warnings and debug messages. 81 | * 82 | * @example 83 | * 84 | * ```js 85 | * const sass = require('sass'); 86 | * 87 | * const result = sass.renderSync({ 88 | * file: 'input.scss', 89 | * logger: sass.Logger.silent, 90 | * }); 91 | * ``` 92 | */ 93 | export const silent: Logger; 94 | } 95 | -------------------------------------------------------------------------------- /node_modules/sass/types/logger/source_location.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * A specific location within a source file. 3 | * 4 | * This is always associated with a {@link SourceSpan} which indicates *which* 5 | * file it refers to. 6 | * 7 | * @category Logger 8 | */ 9 | export interface SourceLocation { 10 | /** 11 | * The 0-based index of this location within its source file, in terms of 12 | * UTF-16 code units. 13 | */ 14 | offset: number; 15 | 16 | /** The 0-based line number of this location. */ 17 | line: number; 18 | 19 | /** The 0-based column number of this location. */ 20 | column: number; 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/sass/types/logger/source_span.d.ts: -------------------------------------------------------------------------------- 1 | import {SourceLocation} from './source_location'; 2 | 3 | /** 4 | * A span of text within a source file. 5 | * 6 | * @category Logger 7 | */ 8 | export interface SourceSpan { 9 | /** The beginning of this span, inclusive. */ 10 | start: SourceLocation; 11 | 12 | /** 13 | * The end of this span, exclusive. 14 | * 15 | * If {@link start} and {@link end} refer to the same location, the span has 16 | * zero length and refers to the point immediately after {@link start} and 17 | * before the next character. 18 | */ 19 | end: SourceLocation; 20 | 21 | /** The canonical URL of the file this span refers to. */ 22 | url?: URL; 23 | 24 | /** The text covered by the span. */ 25 | text: string; 26 | 27 | /** 28 | * Text surrounding the span. 29 | * 30 | * If this is set, it must include only whole lines, and it must include at 31 | * least all line(s) which are partially covered by this span. 32 | */ 33 | context?: string; 34 | } 35 | -------------------------------------------------------------------------------- /node_modules/sass/types/util/promise_or.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * A utility type for choosing between synchronous and asynchronous return 3 | * values. 4 | * 5 | * This is used as the return value for plugins like {@link CustomFunction}, 6 | * {@link Importer}, and {@link FileImporter} so that TypeScript enforces that 7 | * asynchronous plugins are only passed to {@link compileAsync} and {@link 8 | * compileStringAsync}, not {@link compile} or {@link compileString}. 9 | * 10 | * @typeParam sync - If this is `'sync'`, this can only be a `T`. If it's 11 | * `'async'`, this can be either a `T` or a `Promise`. 12 | * 13 | * @category Other 14 | */ 15 | export type PromiseOr = sync extends 'async' 16 | ? T | Promise 17 | : T; 18 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/argument_list.d.ts: -------------------------------------------------------------------------------- 1 | import {List, OrderedMap} from 'immutable'; 2 | 3 | import {Value} from './index'; 4 | import {SassList, ListSeparator} from './list'; 5 | 6 | /** 7 | * Sass's [argument list 8 | * type](https://sass-lang.com/documentation/values/lists#argument-lists). 9 | * 10 | * An argument list comes from a rest argument. It's distinct from a normal 11 | * {@link SassList} in that it may contain a keyword map as well as the 12 | * positional arguments. 13 | * 14 | * @category Custom Function 15 | */ 16 | export class SassArgumentList extends SassList { 17 | /** 18 | * Creates a new argument list. 19 | * 20 | * @param contents - The positional arguments that make up the primary 21 | * contents of the list. This may be either a plain JavaScript array or an 22 | * immutable {@link List} from the [`immutable` 23 | * package](https://immutable-js.com/). 24 | * 25 | * @param keywords - The keyword arguments attached to this argument list, 26 | * whose names should exclude `$`. This can be either a plain JavaScript 27 | * object with argument names as fields, or an immutable {@link OrderedMap} 28 | * from the [`immutable` package](https://immutable-js.com/) 29 | * 30 | * @param separator - The separator for this list. Defaults to `','`. 31 | */ 32 | constructor( 33 | contents: Value[] | List, 34 | keywords: Record | OrderedMap, 35 | separator?: ListSeparator 36 | ); 37 | 38 | /** 39 | * The keyword arguments attached to this argument list. 40 | * 41 | * The argument names don't include `$`. 42 | * 43 | * @returns An immutable {@link OrderedMap} from the [`immutable` 44 | * package](https://immutable-js.com/). 45 | */ 46 | get keywords(): OrderedMap; 47 | } 48 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/boolean.d.ts: -------------------------------------------------------------------------------- 1 | import {Value} from './index'; 2 | 3 | /** 4 | * Sass's [`true` value](https://sass-lang.com/documentation/values/booleans). 5 | * 6 | * @category Custom Function 7 | */ 8 | export const sassTrue: SassBoolean; 9 | 10 | /** 11 | * Sass's [`false` value](https://sass-lang.com/documentation/values/booleans). 12 | * 13 | * @category Custom Function 14 | */ 15 | export const sassFalse: SassBoolean; 16 | 17 | /** 18 | * Sass's [boolean type](https://sass-lang.com/documentation/values/booleans). 19 | * 20 | * @category Custom Function 21 | */ 22 | export class SassBoolean extends Value { 23 | private constructor(); 24 | 25 | /** 26 | * Whether this value is `true` or `false`. 27 | */ 28 | get value(): boolean; 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/calculation.d.ts: -------------------------------------------------------------------------------- 1 | import {List, ValueObject} from 'immutable'; 2 | import {Value, SassNumber, SassString} from './index'; 3 | 4 | /** 5 | * The type of values that can be arguments to a {@link SassCalculation}. 6 | * @category Custom Function 7 | * */ 8 | export type CalculationValue = 9 | | SassNumber 10 | | SassCalculation 11 | | SassString 12 | | CalculationOperation 13 | | CalculationInterpolation; 14 | 15 | /** 16 | * Sass's [calculation 17 | * type](https://sass-lang.com/documentation/values/calculations). 18 | * 19 | * Note: in the JS API calculations are not simplified eagerly. This also means 20 | * that unsimplified calculations are not equal to the numbers they would be 21 | * simplified to. 22 | * 23 | * @category Custom Function 24 | */ 25 | export class SassCalculation extends Value { 26 | /** 27 | * Creates a value that represents `calc(argument)`. 28 | * 29 | * @throws `Error` if `argument` is a quoted {@link SassString} 30 | * @returns A calculation with the name `calc` and `argument` as its single 31 | * argument. 32 | */ 33 | static calc(argument: CalculationValue): SassCalculation; 34 | 35 | /** 36 | * Creates a value that represents `min(arguments...)`. 37 | * 38 | * @throws `Error` if `arguments` contains a quoted {@link SassString} 39 | * @returns A calculation with the name `min` and `arguments` as its 40 | * arguments. 41 | */ 42 | static min( 43 | arguments: CalculationValue[] | List 44 | ): SassCalculation; 45 | 46 | /** 47 | * Creates a value that represents `max(arguments...)`. 48 | * 49 | * @throws `Error` if `arguments` contains a quoted {@link SassString} 50 | * @returns A calculation with the name `max` and `arguments` as its 51 | * arguments. 52 | */ 53 | static max( 54 | arguments: CalculationValue[] | List 55 | ): SassCalculation; 56 | 57 | /** 58 | * Creates a value that represents `clamp(value, min, max)`. 59 | * 60 | * @throws `Error` if any of `value`, `min`, or `max` are a quoted 61 | * {@link SassString}. 62 | * @throws `Error` if `value` is undefined and `max` is not undefined. 63 | * @throws `Error` if either `value` or `max` is undefined and neither `min` 64 | nor `value` is a {@link SassString} or {@link CalculationInterpolation}. 65 | @returns A calculation with the name `clamp` and `min`, `value`, and `max` 66 | as it's arguments, excluding any arguments that are undefined. 67 | */ 68 | static clamp( 69 | min: CalculationValue, 70 | value?: CalculationValue, 71 | max?: CalculationValue 72 | ): SassCalculation; 73 | 74 | /** Returns the calculation's `name` field. */ 75 | get name(): string; 76 | 77 | /** Returns a list of the calculation's `arguments` */ 78 | get arguments(): List; 79 | } 80 | 81 | /** 82 | * The set of possible operators in a Sass calculation. 83 | * @category Custom Function 84 | */ 85 | export type CalculationOperator = '+' | '-' | '*' | '/'; 86 | 87 | /** 88 | * A binary operation that can appear in a {@link SassCalculation}. 89 | * @category Custom Function 90 | */ 91 | export class CalculationOperation implements ValueObject { 92 | /** 93 | * Creates a Sass CalculationOperation with the given `operator`, `left`, and 94 | * `right` values. 95 | * @throws `Error` if `left` or `right` are quoted {@link SassString}s. 96 | */ 97 | constructor( 98 | operator: CalculationOperator, 99 | left: CalculationValue, 100 | right: CalculationValue 101 | ); 102 | 103 | /** Returns the operation's `operator` field. */ 104 | get operator(): CalculationOperator; 105 | 106 | /** Returns the operation's `left` field. */ 107 | get left(): CalculationValue; 108 | 109 | /** Returns the operation's `right` field. */ 110 | get right(): CalculationValue; 111 | 112 | equals(other: unknown): boolean; 113 | 114 | hashCode(): number; 115 | } 116 | 117 | /** 118 | * A string injected into a {@link SassCalculation} using interpolation. Unlike 119 | * unquoted strings, interpolations are always surrounded in parentheses when 120 | * they appear in {@link CalculationOperation}s. 121 | * @category Custom Function 122 | */ 123 | export class CalculationInterpolation implements ValueObject { 124 | /** 125 | * Creates a Sass CalculationInterpolation with the given `value`. 126 | */ 127 | constructor(value: string); 128 | 129 | /** 130 | * Returns the interpolation's `value` field. 131 | */ 132 | get value(): string; 133 | 134 | equals(other: unknown): boolean; 135 | 136 | hashCode(): number; 137 | } 138 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/color.d.ts: -------------------------------------------------------------------------------- 1 | import {Value} from './index'; 2 | 3 | /** 4 | * Sass's [color type](https://sass-lang.com/documentation/values/colors). 5 | * 6 | * No matter what representation was originally used to create this color, all 7 | * of its channels are accessible. 8 | * 9 | * @category Custom Function 10 | */ 11 | export class SassColor extends Value { 12 | /** 13 | * Creates an RGB color. 14 | * 15 | * @throws `Error` if `red`, `green`, and `blue` aren't between `0` and 16 | * `255`, or if `alpha` isn't between `0` and `1`. 17 | */ 18 | constructor(options: { 19 | red: number; 20 | green: number; 21 | blue: number; 22 | alpha?: number; 23 | }); 24 | 25 | /** 26 | * Creates an HSL color. 27 | * 28 | * @throws `Error` if `saturation` or `lightness` aren't between `0` and 29 | * `100`, or if `alpha` isn't between `0` and `1`. 30 | */ 31 | constructor(options: { 32 | hue: number; 33 | saturation: number; 34 | lightness: number; 35 | alpha?: number; 36 | }); 37 | 38 | /** 39 | * Creates an HWB color. 40 | * 41 | * @throws `Error` if `whiteness` or `blackness` aren't between `0` and `100`, 42 | * or if `alpha` isn't between `0` and `1`. 43 | */ 44 | constructor(options: { 45 | hue: number; 46 | whiteness: number; 47 | blackness: number; 48 | alpha?: number; 49 | }); 50 | 51 | /** This color's red channel, between `0` and `255`. */ 52 | get red(): number; 53 | 54 | /** This color's green channel, between `0` and `255`. */ 55 | get green(): number; 56 | 57 | /** This color's blue channel, between `0` and `255`. */ 58 | get blue(): number; 59 | 60 | /** This color's hue, between `0` and `360`. */ 61 | get hue(): number; 62 | 63 | /** This color's saturation, between `0` and `100`. */ 64 | get saturation(): number; 65 | 66 | /** This color's lightness, between `0` and `100`. */ 67 | get lightness(): number; 68 | 69 | /** This color's whiteness, between `0` and `100`. */ 70 | get whiteness(): number; 71 | 72 | /** This color's blackness, between `0` and `100`. */ 73 | get blackness(): number; 74 | 75 | /** This color's alpha channel, between `0` and `1`. */ 76 | get alpha(): number; 77 | 78 | /** 79 | * Changes one or more of this color's RGB channels and returns the result. 80 | */ 81 | change(options: { 82 | red?: number; 83 | green?: number; 84 | blue?: number; 85 | alpha?: number; 86 | }): SassColor; 87 | 88 | /** 89 | * Changes one or more of this color's HSL channels and returns the result. 90 | */ 91 | change(options: { 92 | hue?: number; 93 | saturation?: number; 94 | lightness?: number; 95 | alpha?: number; 96 | }): SassColor; 97 | 98 | /** 99 | * Changes one or more of this color's HWB channels and returns the result. 100 | */ 101 | change(options: { 102 | hue?: number; 103 | whiteness?: number; 104 | blackness?: number; 105 | alpha?: number; 106 | }): SassColor; 107 | } 108 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/function.d.ts: -------------------------------------------------------------------------------- 1 | import {Value} from './index'; 2 | 3 | /** 4 | * Sass's [function type](https://sass-lang.com/documentation/values/functions). 5 | * 6 | * **Heads up!** Although first-class Sass functions can be processed by custom 7 | * functions, there's no way to invoke them outside of a Sass stylesheet. 8 | * 9 | * @category Custom Function 10 | */ 11 | export class SassFunction extends Value { 12 | /** 13 | * Creates a new first-class function that can be invoked using 14 | * [`meta.call()`](https://sass-lang.com/documentation/modules/meta#call). 15 | * 16 | * @param signature - The function signature, like you'd write for the 17 | * [`@function rule`](https://sass-lang.com/documentation/at-rules/function). 18 | * @param callback - The callback that's invoked when this function is called, 19 | * just like for a {@link CustomFunction}. 20 | */ 21 | constructor(signature: string, callback: (args: Value[]) => Value); 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/list.d.ts: -------------------------------------------------------------------------------- 1 | import {List} from 'immutable'; 2 | 3 | import {Value} from './index'; 4 | 5 | /** 6 | * Possible separators used by Sass lists. The special separator `null` is only 7 | * used for lists with fewer than two elements, and indicates that the separator 8 | * has not yet been decided for this list. 9 | * 10 | * @category Custom Function 11 | */ 12 | export type ListSeparator = ',' | '/' | ' ' | null; 13 | 14 | /** 15 | * Sass's [list type](https://sass-lang.com/documentation/values/lists). 16 | * 17 | * @category Custom Function 18 | */ 19 | export class SassList extends Value { 20 | /** 21 | * Creates a new list. 22 | * 23 | * @param contents - The contents of the list. This may be either a plain 24 | * JavaScript array or an immutable {@link List} from the [`immutable` 25 | * package](https://immutable-js.com/). 26 | * 27 | * @param options.separator - The separator to use between elements of this 28 | * list. Defaults to `','`. 29 | * 30 | * @param options.brackets - Whether the list has square brackets. Defaults to 31 | * `false`. 32 | */ 33 | constructor( 34 | contents: Value[] | List, 35 | options?: { 36 | separator?: ListSeparator; 37 | brackets?: boolean; 38 | } 39 | ); 40 | 41 | /** 42 | * Creates an empty list. 43 | * 44 | * @param options.separator - The separator to use between elements of this 45 | * list. Defaults to `','`. 46 | * 47 | * @param options.brackets - Whether the list has square brackets. Defaults to 48 | * `false`. 49 | */ 50 | constructor(options?: {separator?: ListSeparator; brackets?: boolean}); 51 | 52 | /** @hidden */ 53 | get separator(): ListSeparator; 54 | } 55 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/map.d.ts: -------------------------------------------------------------------------------- 1 | import {OrderedMap} from 'immutable'; 2 | 3 | import {SassList} from './list'; 4 | import {Value} from './index'; 5 | 6 | /** 7 | * Sass's [map type](https://sass-lang.com/documentation/values/maps). 8 | * 9 | * @category Custom Function 10 | */ 11 | export class SassMap extends Value { 12 | /** 13 | * Creates a new map. 14 | * 15 | * @param contents - The contents of the map. This is an immutable 16 | * `OrderedMap` from the [`immutable` package](https://immutable-js.com/). 17 | * Defaults to an empty map. 18 | */ 19 | constructor(contents?: OrderedMap); 20 | 21 | /** 22 | * Returns the contents of this map as an immutable {@link OrderedMap} from the 23 | * [`immutable` package](https://immutable-js.com/). 24 | */ 25 | get contents(): OrderedMap; 26 | 27 | /** 28 | * Returns the value associated with `key` in this map, or `undefined` if 29 | * `key` isn't in the map. 30 | * 31 | * This is a shorthand for `this.contents.get(key)`, although it may be more 32 | * efficient in some cases. 33 | */ 34 | get(key: Value): Value | undefined; 35 | 36 | /** Inherited from {@link Value.get}. */ 37 | get(index: number): SassList | undefined; 38 | 39 | /** @hidden */ 40 | tryMap(): SassMap; 41 | } 42 | -------------------------------------------------------------------------------- /node_modules/sass/types/value/string.d.ts: -------------------------------------------------------------------------------- 1 | import {Value} from './index'; 2 | 3 | /** 4 | * Sass's [string type](https://sass-lang.com/documentation/values/strings). 5 | * 6 | * @category Custom Function 7 | */ 8 | export class SassString extends Value { 9 | /** 10 | * Creates a new string. 11 | * 12 | * @param text - The contents of the string. For quoted strings, this is the 13 | * semantic content—any escape sequences that were been written in the source 14 | * text are resolved to their Unicode values. For unquoted strings, though, 15 | * escape sequences are preserved as literal backslashes. 16 | * 17 | * @param options.quotes - Whether the string is quoted. Defaults to `true`. 18 | */ 19 | constructor( 20 | text: string, 21 | options?: { 22 | quotes?: boolean; 23 | } 24 | ); 25 | 26 | /** 27 | * Creates an empty string. 28 | * 29 | * @param options.quotes - Whether the string is quoted. Defaults to `true`. 30 | */ 31 | constructor(options?: {quotes?: boolean}); 32 | 33 | /** 34 | * The contents of the string. 35 | * 36 | * For quoted strings, this is the semantic content—any escape sequences that 37 | * were been written in the source text are resolved to their Unicode values. 38 | * For unquoted strings, though, escape sequences are preserved as literal 39 | * backslashes. 40 | * 41 | * This difference allows us to distinguish between identifiers with escapes, 42 | * such as `url\u28 http://example.com\u29`, and unquoted strings that contain 43 | * characters that aren't valid in identifiers, such as 44 | * `url(http://example.com)`. Unfortunately, it also means that we don't 45 | * consider `foo` and `f\6F\6F` the same string. 46 | */ 47 | get text(): string; 48 | 49 | /** Whether this string has quotes. */ 50 | get hasQuotes(): boolean; 51 | 52 | /** 53 | * Sass's notion of this string's length. 54 | * 55 | * Sass treats strings as a series of Unicode code points while JavaScript 56 | * treats them as a series of UTF-16 code units. For example, the character 57 | * U+1F60A SMILING FACE WITH SMILING EYES is a single Unicode code point but 58 | * is represented in UTF-16 as two code units (`0xD83D` and `0xDE0A`). So in 59 | * JavaScript, `"n😊b".length` returns `4`, whereas in Sass 60 | * `string.length("n😊b")` returns `3`. 61 | */ 62 | get sassLength(): number; 63 | 64 | /** 65 | * Converts `sassIndex` to a JavaScript index into {@link text}. 66 | * 67 | * Sass indices are one-based, while JavaScript indices are zero-based. Sass 68 | * indices may also be negative in order to index from the end of the string. 69 | * 70 | * In addition, Sass indices refer to Unicode code points while JavaScript 71 | * string indices refer to UTF-16 code units. For example, the character 72 | * U+1F60A SMILING FACE WITH SMILING EYES is a single Unicode code point but 73 | * is represented in UTF-16 as two code units (`0xD83D` and `0xDE0A`). So in 74 | * JavaScript, `"n😊b".charCodeAt(1)` returns `0xD83D`, whereas in Sass 75 | * `string.slice("n😊b", 1, 1)` returns `"😊"`. 76 | * 77 | * This function converts Sass's code point indices to JavaScript's code unit 78 | * indices. This means it's O(n) in the length of `text`. 79 | * 80 | * @throws `Error` - If `sassIndex` isn't a number, if that number isn't an 81 | * integer, or if that integer isn't a valid index for this string. 82 | */ 83 | sassIndexToStringIndex(sassIndex: Value, name?: string): number; 84 | } 85 | -------------------------------------------------------------------------------- /node_modules/source-map-js/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) 2009-2011, Mozilla Foundation and contributors 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | * Neither the names of the Mozilla Foundation nor the names of project 16 | contributors may be used to endorse or promote products derived from this 17 | software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /node_modules/source-map-js/lib/array-set.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | var util = require('./util'); 9 | var has = Object.prototype.hasOwnProperty; 10 | var hasNativeMap = typeof Map !== "undefined"; 11 | 12 | /** 13 | * A data structure which is a combination of an array and a set. Adding a new 14 | * member is O(1), testing for membership is O(1), and finding the index of an 15 | * element is O(1). Removing elements from the set is not supported. Only 16 | * strings are supported for membership. 17 | */ 18 | function ArraySet() { 19 | this._array = []; 20 | this._set = hasNativeMap ? new Map() : Object.create(null); 21 | } 22 | 23 | /** 24 | * Static method for creating ArraySet instances from an existing array. 25 | */ 26 | ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { 27 | var set = new ArraySet(); 28 | for (var i = 0, len = aArray.length; i < len; i++) { 29 | set.add(aArray[i], aAllowDuplicates); 30 | } 31 | return set; 32 | }; 33 | 34 | /** 35 | * Return how many unique items are in this ArraySet. If duplicates have been 36 | * added, than those do not count towards the size. 37 | * 38 | * @returns Number 39 | */ 40 | ArraySet.prototype.size = function ArraySet_size() { 41 | return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; 42 | }; 43 | 44 | /** 45 | * Add the given string to this set. 46 | * 47 | * @param String aStr 48 | */ 49 | ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { 50 | var sStr = hasNativeMap ? aStr : util.toSetString(aStr); 51 | var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); 52 | var idx = this._array.length; 53 | if (!isDuplicate || aAllowDuplicates) { 54 | this._array.push(aStr); 55 | } 56 | if (!isDuplicate) { 57 | if (hasNativeMap) { 58 | this._set.set(aStr, idx); 59 | } else { 60 | this._set[sStr] = idx; 61 | } 62 | } 63 | }; 64 | 65 | /** 66 | * Is the given string a member of this set? 67 | * 68 | * @param String aStr 69 | */ 70 | ArraySet.prototype.has = function ArraySet_has(aStr) { 71 | if (hasNativeMap) { 72 | return this._set.has(aStr); 73 | } else { 74 | var sStr = util.toSetString(aStr); 75 | return has.call(this._set, sStr); 76 | } 77 | }; 78 | 79 | /** 80 | * What is the index of the given string in the array? 81 | * 82 | * @param String aStr 83 | */ 84 | ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { 85 | if (hasNativeMap) { 86 | var idx = this._set.get(aStr); 87 | if (idx >= 0) { 88 | return idx; 89 | } 90 | } else { 91 | var sStr = util.toSetString(aStr); 92 | if (has.call(this._set, sStr)) { 93 | return this._set[sStr]; 94 | } 95 | } 96 | 97 | throw new Error('"' + aStr + '" is not in the set.'); 98 | }; 99 | 100 | /** 101 | * What is the element at the given index? 102 | * 103 | * @param Number aIdx 104 | */ 105 | ArraySet.prototype.at = function ArraySet_at(aIdx) { 106 | if (aIdx >= 0 && aIdx < this._array.length) { 107 | return this._array[aIdx]; 108 | } 109 | throw new Error('No element indexed by ' + aIdx); 110 | }; 111 | 112 | /** 113 | * Returns the array representation of this set (which has the proper indices 114 | * indicated by indexOf). Note that this is a copy of the internal array used 115 | * for storing the members so that no one can mess with internal state. 116 | */ 117 | ArraySet.prototype.toArray = function ArraySet_toArray() { 118 | return this._array.slice(); 119 | }; 120 | 121 | exports.ArraySet = ArraySet; 122 | -------------------------------------------------------------------------------- /node_modules/source-map-js/lib/base64.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); 9 | 10 | /** 11 | * Encode an integer in the range of 0 to 63 to a single base 64 digit. 12 | */ 13 | exports.encode = function (number) { 14 | if (0 <= number && number < intToCharMap.length) { 15 | return intToCharMap[number]; 16 | } 17 | throw new TypeError("Must be between 0 and 63: " + number); 18 | }; 19 | 20 | /** 21 | * Decode a single base 64 character code digit to an integer. Returns -1 on 22 | * failure. 23 | */ 24 | exports.decode = function (charCode) { 25 | var bigA = 65; // 'A' 26 | var bigZ = 90; // 'Z' 27 | 28 | var littleA = 97; // 'a' 29 | var littleZ = 122; // 'z' 30 | 31 | var zero = 48; // '0' 32 | var nine = 57; // '9' 33 | 34 | var plus = 43; // '+' 35 | var slash = 47; // '/' 36 | 37 | var littleOffset = 26; 38 | var numberOffset = 52; 39 | 40 | // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ 41 | if (bigA <= charCode && charCode <= bigZ) { 42 | return (charCode - bigA); 43 | } 44 | 45 | // 26 - 51: abcdefghijklmnopqrstuvwxyz 46 | if (littleA <= charCode && charCode <= littleZ) { 47 | return (charCode - littleA + littleOffset); 48 | } 49 | 50 | // 52 - 61: 0123456789 51 | if (zero <= charCode && charCode <= nine) { 52 | return (charCode - zero + numberOffset); 53 | } 54 | 55 | // 62: + 56 | if (charCode == plus) { 57 | return 62; 58 | } 59 | 60 | // 63: / 61 | if (charCode == slash) { 62 | return 63; 63 | } 64 | 65 | // Invalid base64 digit. 66 | return -1; 67 | }; 68 | -------------------------------------------------------------------------------- /node_modules/source-map-js/lib/binary-search.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | exports.GREATEST_LOWER_BOUND = 1; 9 | exports.LEAST_UPPER_BOUND = 2; 10 | 11 | /** 12 | * Recursive implementation of binary search. 13 | * 14 | * @param aLow Indices here and lower do not contain the needle. 15 | * @param aHigh Indices here and higher do not contain the needle. 16 | * @param aNeedle The element being searched for. 17 | * @param aHaystack The non-empty array being searched. 18 | * @param aCompare Function which takes two elements and returns -1, 0, or 1. 19 | * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or 20 | * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the 21 | * closest element that is smaller than or greater than the one we are 22 | * searching for, respectively, if the exact element cannot be found. 23 | */ 24 | function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { 25 | // This function terminates when one of the following is true: 26 | // 27 | // 1. We find the exact element we are looking for. 28 | // 29 | // 2. We did not find the exact element, but we can return the index of 30 | // the next-closest element. 31 | // 32 | // 3. We did not find the exact element, and there is no next-closest 33 | // element than the one we are searching for, so we return -1. 34 | var mid = Math.floor((aHigh - aLow) / 2) + aLow; 35 | var cmp = aCompare(aNeedle, aHaystack[mid], true); 36 | if (cmp === 0) { 37 | // Found the element we are looking for. 38 | return mid; 39 | } 40 | else if (cmp > 0) { 41 | // Our needle is greater than aHaystack[mid]. 42 | if (aHigh - mid > 1) { 43 | // The element is in the upper half. 44 | return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); 45 | } 46 | 47 | // The exact needle element was not found in this haystack. Determine if 48 | // we are in termination case (3) or (2) and return the appropriate thing. 49 | if (aBias == exports.LEAST_UPPER_BOUND) { 50 | return aHigh < aHaystack.length ? aHigh : -1; 51 | } else { 52 | return mid; 53 | } 54 | } 55 | else { 56 | // Our needle is less than aHaystack[mid]. 57 | if (mid - aLow > 1) { 58 | // The element is in the lower half. 59 | return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); 60 | } 61 | 62 | // we are in termination case (3) or (2) and return the appropriate thing. 63 | if (aBias == exports.LEAST_UPPER_BOUND) { 64 | return mid; 65 | } else { 66 | return aLow < 0 ? -1 : aLow; 67 | } 68 | } 69 | } 70 | 71 | /** 72 | * This is an implementation of binary search which will always try and return 73 | * the index of the closest element if there is no exact hit. This is because 74 | * mappings between original and generated line/col pairs are single points, 75 | * and there is an implicit region between each of them, so a miss just means 76 | * that you aren't on the very start of a region. 77 | * 78 | * @param aNeedle The element you are looking for. 79 | * @param aHaystack The array that is being searched. 80 | * @param aCompare A function which takes the needle and an element in the 81 | * array and returns -1, 0, or 1 depending on whether the needle is less 82 | * than, equal to, or greater than the element, respectively. 83 | * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or 84 | * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the 85 | * closest element that is smaller than or greater than the one we are 86 | * searching for, respectively, if the exact element cannot be found. 87 | * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. 88 | */ 89 | exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { 90 | if (aHaystack.length === 0) { 91 | return -1; 92 | } 93 | 94 | var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, 95 | aCompare, aBias || exports.GREATEST_LOWER_BOUND); 96 | if (index < 0) { 97 | return -1; 98 | } 99 | 100 | // We have found either the exact element, or the next-closest element than 101 | // the one we are searching for. However, there may be more than one such 102 | // element. Make sure we always return the smallest of these. 103 | while (index - 1 >= 0) { 104 | if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { 105 | break; 106 | } 107 | --index; 108 | } 109 | 110 | return index; 111 | }; 112 | -------------------------------------------------------------------------------- /node_modules/source-map-js/lib/mapping-list.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2014 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | var util = require('./util'); 9 | 10 | /** 11 | * Determine whether mappingB is after mappingA with respect to generated 12 | * position. 13 | */ 14 | function generatedPositionAfter(mappingA, mappingB) { 15 | // Optimized for most common case 16 | var lineA = mappingA.generatedLine; 17 | var lineB = mappingB.generatedLine; 18 | var columnA = mappingA.generatedColumn; 19 | var columnB = mappingB.generatedColumn; 20 | return lineB > lineA || lineB == lineA && columnB >= columnA || 21 | util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; 22 | } 23 | 24 | /** 25 | * A data structure to provide a sorted view of accumulated mappings in a 26 | * performance conscious manner. It trades a neglibable overhead in general 27 | * case for a large speedup in case of mappings being added in order. 28 | */ 29 | function MappingList() { 30 | this._array = []; 31 | this._sorted = true; 32 | // Serves as infimum 33 | this._last = {generatedLine: -1, generatedColumn: 0}; 34 | } 35 | 36 | /** 37 | * Iterate through internal items. This method takes the same arguments that 38 | * `Array.prototype.forEach` takes. 39 | * 40 | * NOTE: The order of the mappings is NOT guaranteed. 41 | */ 42 | MappingList.prototype.unsortedForEach = 43 | function MappingList_forEach(aCallback, aThisArg) { 44 | this._array.forEach(aCallback, aThisArg); 45 | }; 46 | 47 | /** 48 | * Add the given source mapping. 49 | * 50 | * @param Object aMapping 51 | */ 52 | MappingList.prototype.add = function MappingList_add(aMapping) { 53 | if (generatedPositionAfter(this._last, aMapping)) { 54 | this._last = aMapping; 55 | this._array.push(aMapping); 56 | } else { 57 | this._sorted = false; 58 | this._array.push(aMapping); 59 | } 60 | }; 61 | 62 | /** 63 | * Returns the flat, sorted array of mappings. The mappings are sorted by 64 | * generated position. 65 | * 66 | * WARNING: This method returns internal data without copying, for 67 | * performance. The return value must NOT be mutated, and should be treated as 68 | * an immutable borrow. If you want to take ownership, you must make your own 69 | * copy. 70 | */ 71 | MappingList.prototype.toArray = function MappingList_toArray() { 72 | if (!this._sorted) { 73 | this._array.sort(util.compareByGeneratedPositionsInflated); 74 | this._sorted = true; 75 | } 76 | return this._array; 77 | }; 78 | 79 | exports.MappingList = MappingList; 80 | -------------------------------------------------------------------------------- /node_modules/source-map-js/lib/quick-sort.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | // It turns out that some (most?) JavaScript engines don't self-host 9 | // `Array.prototype.sort`. This makes sense because C++ will likely remain 10 | // faster than JS when doing raw CPU-intensive sorting. However, when using a 11 | // custom comparator function, calling back and forth between the VM's C++ and 12 | // JIT'd JS is rather slow *and* loses JIT type information, resulting in 13 | // worse generated code for the comparator function than would be optimal. In 14 | // fact, when sorting with a comparator, these costs outweigh the benefits of 15 | // sorting in C++. By using our own JS-implemented Quick Sort (below), we get 16 | // a ~3500ms mean speed-up in `bench/bench.html`. 17 | 18 | function SortTemplate(comparator) { 19 | 20 | /** 21 | * Swap the elements indexed by `x` and `y` in the array `ary`. 22 | * 23 | * @param {Array} ary 24 | * The array. 25 | * @param {Number} x 26 | * The index of the first item. 27 | * @param {Number} y 28 | * The index of the second item. 29 | */ 30 | function swap(ary, x, y) { 31 | var temp = ary[x]; 32 | ary[x] = ary[y]; 33 | ary[y] = temp; 34 | } 35 | 36 | /** 37 | * Returns a random integer within the range `low .. high` inclusive. 38 | * 39 | * @param {Number} low 40 | * The lower bound on the range. 41 | * @param {Number} high 42 | * The upper bound on the range. 43 | */ 44 | function randomIntInRange(low, high) { 45 | return Math.round(low + (Math.random() * (high - low))); 46 | } 47 | 48 | /** 49 | * The Quick Sort algorithm. 50 | * 51 | * @param {Array} ary 52 | * An array to sort. 53 | * @param {function} comparator 54 | * Function to use to compare two items. 55 | * @param {Number} p 56 | * Start index of the array 57 | * @param {Number} r 58 | * End index of the array 59 | */ 60 | function doQuickSort(ary, comparator, p, r) { 61 | // If our lower bound is less than our upper bound, we (1) partition the 62 | // array into two pieces and (2) recurse on each half. If it is not, this is 63 | // the empty array and our base case. 64 | 65 | if (p < r) { 66 | // (1) Partitioning. 67 | // 68 | // The partitioning chooses a pivot between `p` and `r` and moves all 69 | // elements that are less than or equal to the pivot to the before it, and 70 | // all the elements that are greater than it after it. The effect is that 71 | // once partition is done, the pivot is in the exact place it will be when 72 | // the array is put in sorted order, and it will not need to be moved 73 | // again. This runs in O(n) time. 74 | 75 | // Always choose a random pivot so that an input array which is reverse 76 | // sorted does not cause O(n^2) running time. 77 | var pivotIndex = randomIntInRange(p, r); 78 | var i = p - 1; 79 | 80 | swap(ary, pivotIndex, r); 81 | var pivot = ary[r]; 82 | 83 | // Immediately after `j` is incremented in this loop, the following hold 84 | // true: 85 | // 86 | // * Every element in `ary[p .. i]` is less than or equal to the pivot. 87 | // 88 | // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. 89 | for (var j = p; j < r; j++) { 90 | if (comparator(ary[j], pivot, false) <= 0) { 91 | i += 1; 92 | swap(ary, i, j); 93 | } 94 | } 95 | 96 | swap(ary, i + 1, j); 97 | var q = i + 1; 98 | 99 | // (2) Recurse on each half. 100 | 101 | doQuickSort(ary, comparator, p, q - 1); 102 | doQuickSort(ary, comparator, q + 1, r); 103 | } 104 | } 105 | 106 | return doQuickSort; 107 | } 108 | 109 | function cloneSort(comparator) { 110 | let template = SortTemplate.toString(); 111 | let templateFn = new Function(`return ${template}`)(); 112 | return templateFn(comparator); 113 | } 114 | 115 | /** 116 | * Sort the given array in-place with the given comparator function. 117 | * 118 | * @param {Array} ary 119 | * An array to sort. 120 | * @param {function} comparator 121 | * Function to use to compare two items. 122 | */ 123 | 124 | let sortCache = new WeakMap(); 125 | exports.quickSort = function (ary, comparator, start = 0) { 126 | let doQuickSort = sortCache.get(comparator); 127 | if (doQuickSort === void 0) { 128 | doQuickSort = cloneSort(comparator); 129 | sortCache.set(comparator, doQuickSort); 130 | } 131 | doQuickSort(ary, comparator, start, ary.length - 1); 132 | }; 133 | -------------------------------------------------------------------------------- /node_modules/source-map-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "source-map-js", 3 | "description": "Generates and consumes source maps", 4 | "version": "1.0.2", 5 | "homepage": "https://github.com/7rulnik/source-map-js", 6 | "author": "Valentin 7rulnik Semirulnik ", 7 | "contributors": [ 8 | "Nick Fitzgerald ", 9 | "Tobias Koppers ", 10 | "Duncan Beevers ", 11 | "Stephen Crane ", 12 | "Ryan Seddon ", 13 | "Miles Elam ", 14 | "Mihai Bazon ", 15 | "Michael Ficarra ", 16 | "Todd Wolfson ", 17 | "Alexander Solovyov ", 18 | "Felix Gnass ", 19 | "Conrad Irwin ", 20 | "usrbincc ", 21 | "David Glasser ", 22 | "Chase Douglas ", 23 | "Evan Wallace ", 24 | "Heather Arthur ", 25 | "Hugh Kennedy ", 26 | "David Glasser ", 27 | "Simon Lydell ", 28 | "Jmeas Smith ", 29 | "Michael Z Goddard ", 30 | "azu ", 31 | "John Gozde ", 32 | "Adam Kirkton ", 33 | "Chris Montgomery ", 34 | "J. Ryan Stinnett ", 35 | "Jack Herrington ", 36 | "Chris Truter ", 37 | "Daniel Espeset ", 38 | "Jamie Wong ", 39 | "Eddy Bruël ", 40 | "Hawken Rives ", 41 | "Gilad Peleg ", 42 | "djchie ", 43 | "Gary Ye ", 44 | "Nicolas Lalevée " 45 | ], 46 | "repository": "7rulnik/source-map-js", 47 | "main": "./source-map.js", 48 | "files": [ 49 | "source-map.js", 50 | "source-map.d.ts", 51 | "lib/" 52 | ], 53 | "engines": { 54 | "node": ">=0.10.0" 55 | }, 56 | "license": "BSD-3-Clause", 57 | "scripts": { 58 | "test": "npm run build && node test/run-tests.js", 59 | "build": "webpack --color", 60 | "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" 61 | }, 62 | "devDependencies": { 63 | "clean-publish": "^3.1.0", 64 | "doctoc": "^0.15.0", 65 | "webpack": "^1.12.0" 66 | }, 67 | "clean-publish": { 68 | "cleanDocs": true 69 | }, 70 | "typings": "source-map.d.ts" 71 | } 72 | -------------------------------------------------------------------------------- /node_modules/source-map-js/source-map.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'source-map-js' { 2 | export interface StartOfSourceMap { 3 | file?: string; 4 | sourceRoot?: string; 5 | } 6 | 7 | export interface RawSourceMap extends StartOfSourceMap { 8 | version: string; 9 | sources: string[]; 10 | names: string[]; 11 | sourcesContent?: string[]; 12 | mappings: string; 13 | } 14 | 15 | export interface Position { 16 | line: number; 17 | column: number; 18 | } 19 | 20 | export interface LineRange extends Position { 21 | lastColumn: number; 22 | } 23 | 24 | export interface FindPosition extends Position { 25 | // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND 26 | bias?: number; 27 | } 28 | 29 | export interface SourceFindPosition extends FindPosition { 30 | source: string; 31 | } 32 | 33 | export interface MappedPosition extends Position { 34 | source: string; 35 | name?: string; 36 | } 37 | 38 | export interface MappingItem { 39 | source: string; 40 | generatedLine: number; 41 | generatedColumn: number; 42 | originalLine: number; 43 | originalColumn: number; 44 | name: string; 45 | } 46 | 47 | export class SourceMapConsumer { 48 | static GENERATED_ORDER: number; 49 | static ORIGINAL_ORDER: number; 50 | 51 | static GREATEST_LOWER_BOUND: number; 52 | static LEAST_UPPER_BOUND: number; 53 | 54 | constructor(rawSourceMap: RawSourceMap); 55 | computeColumnSpans(): void; 56 | originalPositionFor(generatedPosition: FindPosition): MappedPosition; 57 | generatedPositionFor(originalPosition: SourceFindPosition): LineRange; 58 | allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; 59 | hasContentsOfAllSources(): boolean; 60 | sourceContentFor(source: string, returnNullOnMissing?: boolean): string; 61 | eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; 62 | } 63 | 64 | export interface Mapping { 65 | generated: Position; 66 | original: Position; 67 | source: string; 68 | name?: string; 69 | } 70 | 71 | export class SourceMapGenerator { 72 | constructor(startOfSourceMap?: StartOfSourceMap); 73 | static fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator; 74 | addMapping(mapping: Mapping): void; 75 | setSourceContent(sourceFile: string, sourceContent: string): void; 76 | applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; 77 | toString(): string; 78 | } 79 | 80 | export interface CodeWithSourceMap { 81 | code: string; 82 | map: SourceMapGenerator; 83 | } 84 | 85 | export class SourceNode { 86 | constructor(); 87 | constructor(line: number, column: number, source: string); 88 | constructor(line: number, column: number, source: string, chunk?: string, name?: string); 89 | static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; 90 | add(chunk: string): void; 91 | prepend(chunk: string): void; 92 | setSourceContent(sourceFile: string, sourceContent: string): void; 93 | walk(fn: (chunk: string, mapping: MappedPosition) => void): void; 94 | walkSourceContents(fn: (file: string, content: string) => void): void; 95 | join(sep: string): SourceNode; 96 | replaceRight(pattern: string, replacement: string): SourceNode; 97 | toString(): string; 98 | toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; 99 | } 100 | } 101 | 102 | declare module 'source-map-js/lib/source-map-generator' { 103 | import { SourceMapGenerator } from 'source-map-js' 104 | export { SourceMapGenerator } 105 | } 106 | 107 | declare module 'source-map-js/lib/source-map-consumer' { 108 | import { SourceMapConsumer } from 'source-map-js' 109 | export { SourceMapConsumer } 110 | } 111 | 112 | declare module 'source-map-js/lib/source-node' { 113 | import { SourceNode } from 'source-map-js' 114 | export { SourceNode } 115 | } 116 | -------------------------------------------------------------------------------- /node_modules/source-map-js/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./lib/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /node_modules/to-regex-range/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/to-regex-range/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "to-regex-range", 3 | "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", 4 | "version": "5.0.1", 5 | "homepage": "https://github.com/micromatch/to-regex-range", 6 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 7 | "contributors": [ 8 | "Jon Schlinkert (http://twitter.com/jonschlinkert)", 9 | "Rouven Weßling (www.rouvenwessling.de)" 10 | ], 11 | "repository": "micromatch/to-regex-range", 12 | "bugs": { 13 | "url": "https://github.com/micromatch/to-regex-range/issues" 14 | }, 15 | "license": "MIT", 16 | "files": [ 17 | "index.js" 18 | ], 19 | "main": "index.js", 20 | "engines": { 21 | "node": ">=8.0" 22 | }, 23 | "scripts": { 24 | "test": "mocha" 25 | }, 26 | "dependencies": { 27 | "is-number": "^7.0.0" 28 | }, 29 | "devDependencies": { 30 | "fill-range": "^6.0.0", 31 | "gulp-format-md": "^2.0.0", 32 | "mocha": "^6.0.2", 33 | "text-table": "^0.2.0", 34 | "time-diff": "^0.3.1" 35 | }, 36 | "keywords": [ 37 | "bash", 38 | "date", 39 | "expand", 40 | "expansion", 41 | "expression", 42 | "glob", 43 | "match", 44 | "match date", 45 | "match number", 46 | "match numbers", 47 | "match year", 48 | "matches", 49 | "matching", 50 | "number", 51 | "numbers", 52 | "numerical", 53 | "range", 54 | "ranges", 55 | "regex", 56 | "regexp", 57 | "regular", 58 | "regular expression", 59 | "sequence" 60 | ], 61 | "verb": { 62 | "layout": "default", 63 | "toc": false, 64 | "tasks": [ 65 | "readme" 66 | ], 67 | "plugins": [ 68 | "gulp-format-md" 69 | ], 70 | "lint": { 71 | "reflinks": true 72 | }, 73 | "helpers": { 74 | "examples": { 75 | "displayName": "examples" 76 | } 77 | }, 78 | "related": { 79 | "list": [ 80 | "expand-range", 81 | "fill-range", 82 | "micromatch", 83 | "repeat-element", 84 | "repeat-string" 85 | ] 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /notes.txt: -------------------------------------------------------------------------------- 1 | Live server ext 2 | vs code ext üzerinden live server yazarak indirebilirsin 3 | ritwickdey.LiveServer 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "html-css-js-tutorial-techcareer", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "sass": "sass html-css/sassSample/template2/assets/main.scss html-css/sassSample/template2/assets/main.css" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "sass": "^1.64.1" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /unutmamali.txt: -------------------------------------------------------------------------------- 1 | ölçü birimleri -------------------------------------------------------------------------------- /ödevler.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Flex Okuma ve İzleme 4 | https://css-tricks.com/snippets/css/a-guide-to-flexbox/ 5 | https://www.youtube.com/watch?v=_s15i3MoAyE 6 | 7 | Flex Game 8 | https://flexboxfroggy.com/ 9 | 10 | 11 | Template ( Hafta sonu ödevi ) 12 | Page-1 13 | https://startbootstrap.com/previews/clean-blog 14 | Yukarıdaki 4 menüde olan tüm pageler yapılacak! 15 | 16 | --------------------------------------------------------------------------------