diff options
179 files changed, 5561 insertions, 5113 deletions
diff --git a/.dev/.sasslintrc b/.dev/.sasslintrc index ac406d7b..47c3145d 100644 --- a/.dev/.sasslintrc +++ b/.dev/.sasslintrc | |||
@@ -2,9 +2,11 @@ options: | |||
2 | max-warnings: 0 | 2 | max-warnings: 0 |
3 | rules: | 3 | rules: |
4 | property-sort-order: | 4 | property-sort-order: |
5 | - 1 | 5 | - 0 |
6 | - | 6 | # Sort order rule does not work with CSS variables: https://github.com/sasstools/sass-lint/issues/1161 |
7 | order: 'concentric' | 7 | # - 1 |
8 | # - | ||
9 | # order: 'concentric' | ||
8 | no-important: | 10 | no-important: |
9 | - 0 | 11 | - 0 |
10 | no-vendor-prefixes: | 12 | no-vendor-prefixes: |
@@ -22,15 +22,17 @@ inc/languages/*/LC_MESSAGES/shaarli.mo | |||
22 | 22 | ||
23 | # Development and test resources | 23 | # Development and test resources |
24 | coverage | 24 | coverage |
25 | doxygen | ||
26 | sandbox | 25 | sandbox |
27 | phpmd.html | 26 | phpmd.html |
27 | phpdoc.xml | ||
28 | 28 | ||
29 | # User plugin configuration | 29 | # User plugin configuration |
30 | plugins/*/config.php | 30 | plugins/*/config.php |
31 | plugins/default_colors/default_colors.css | ||
31 | 32 | ||
32 | # HTML documentation | 33 | # HTML documentation |
33 | doc/html/ | 34 | doc/html/ |
35 | doc/phpdoc/ | ||
34 | 36 | ||
35 | # 3rd party themes | 37 | # 3rd party themes |
36 | tpl/* | 38 | tpl/* |
@@ -46,3 +48,6 @@ tpl/default/img | |||
46 | tpl/vintage/js | 48 | tpl/vintage/js |
47 | tpl/vintage/css | 49 | tpl/vintage/css |
48 | tpl/vintage/img | 50 | tpl/vintage/img |
51 | |||
52 | # Documented scripts | ||
53 | generate_templates.php | ||
diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 00000000..09e5a6a5 --- /dev/null +++ b/.readthedocs.yml | |||
@@ -0,0 +1,15 @@ | |||
1 | # .readthedocs.yml | ||
2 | # Read the Docs configuration file | ||
3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details | ||
4 | |||
5 | # Required | ||
6 | version: 2 | ||
7 | |||
8 | # Build documentation with MkDocs | ||
9 | mkdocs: | ||
10 | configuration: mkdocs.yml | ||
11 | |||
12 | # Optionally set the version of Python and requirements required to build your docs | ||
13 | # https://github.com/rtfd/readthedocs.org/issues/5250 | ||
14 | python: | ||
15 | version: 3.5 \ No newline at end of file | ||
diff --git a/.travis.yml b/.travis.yml index cb81846f..c6400eef 100644 --- a/.travis.yml +++ b/.travis.yml | |||
@@ -4,6 +4,8 @@ dist: trusty | |||
4 | matrix: | 4 | matrix: |
5 | include: | 5 | include: |
6 | - language: php | 6 | - language: php |
7 | php: 7.3 | ||
8 | - language: php | ||
7 | php: 7.2 | 9 | php: 7.2 |
8 | - language: php | 10 | - language: php |
9 | php: 7.1 | 11 | php: 7.1 |
@@ -1,9 +1,10 @@ | |||
1 | 716 ArthurHoaro <arthur@hoa.ro> | 1 | 769 ArthurHoaro <arthur@hoa.ro> |
2 | 372 VirtualTam <virtualtam@flibidi.net> | 2 | 401 VirtualTam <virtualtam@flibidi.net> |
3 | 208 nodiscc <nodiscc@gmail.com> | 3 | 216 nodiscc <nodiscc@gmail.com> |
4 | 56 Sébastien Sauvage <sebsauvage@sebsauvage.net> | 4 | 56 Sébastien Sauvage <sebsauvage@sebsauvage.net> |
5 | 15 Florian Eula <eula.florian@gmail.com> | 5 | 15 Florian Eula <eula.florian@gmail.com> |
6 | 13 Emilien Klein <emilien@klein.st> | 6 | 13 Emilien Klein <emilien@klein.st> |
7 | 13 Luce Carević <lcarevic@access42.net> | ||
7 | 12 Nicolas Danelon <hi@nicolasmd.com.ar> | 8 | 12 Nicolas Danelon <hi@nicolasmd.com.ar> |
8 | 9 Willi Eggeling <thewilli@gmail.com> | 9 | 9 Willi Eggeling <thewilli@gmail.com> |
9 | 8 Christophe HENRY <christophe.henry@sbgodin.fr> | 10 | 8 Christophe HENRY <christophe.henry@sbgodin.fr> |
@@ -15,12 +16,12 @@ | |||
15 | 4 Alexandre Alapetite <alexandre@alapetite.fr> | 16 | 4 Alexandre Alapetite <alexandre@alapetite.fr> |
16 | 4 David Sferruzza <david.sferruzza@gmail.com> | 17 | 4 David Sferruzza <david.sferruzza@gmail.com> |
17 | 4 Immánuel Fodor <immanuelfactor+github@gmail.com> | 18 | 4 Immánuel Fodor <immanuelfactor+github@gmail.com> |
19 | 3 Agurato <mail.vmonot@gmail.com> | ||
18 | 3 Teromene <teromene@teromene.fr> | 20 | 3 Teromene <teromene@teromene.fr> |
19 | 2 Alexandre G.-Raymond <alex@ndre.gr> | 21 | 2 Alexandre G.-Raymond <alex@ndre.gr> |
20 | 2 Chris Kuethe <chris.kuethe@gmail.com> | 22 | 2 Chris Kuethe <chris.kuethe@gmail.com> |
21 | 2 Felix Bartels <felix@host-consultants.de> | 23 | 2 Felix Bartels <felix@host-consultants.de> |
22 | 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org> | 24 | 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org> |
23 | 2 Luce Carević <lcarevic@access42.net> | ||
24 | 2 Mathieu Chabanon <git@matchab.fr> | 25 | 2 Mathieu Chabanon <git@matchab.fr> |
25 | 2 Miloš Jovanović <mjovanovic@gmail.com> | 26 | 2 Miloš Jovanović <mjovanovic@gmail.com> |
26 | 2 Qwerty <champlywood@free.fr> | 27 | 2 Qwerty <champlywood@free.fr> |
@@ -29,6 +30,7 @@ | |||
29 | 2 julienCXX <software@chmodplusx.eu> | 30 | 2 julienCXX <software@chmodplusx.eu> |
30 | 2 philipp-r <philipp-r@users.noreply.github.com> | 31 | 2 philipp-r <philipp-r@users.noreply.github.com> |
31 | 2 pips <pips@e5150.fr> | 32 | 2 pips <pips@e5150.fr> |
33 | 2 trailjeep <trailjeep@gmail.com> | ||
32 | 1 Adrien Oliva <adrien.oliva@yapbreak.fr> | 34 | 1 Adrien Oliva <adrien.oliva@yapbreak.fr> |
33 | 1 Adrien le Maire <adrien@alemaire.be> | 35 | 1 Adrien le Maire <adrien@alemaire.be> |
34 | 1 Alexis J <alexis@effingo.be> | 36 | 1 Alexis J <alexis@effingo.be> |
@@ -56,6 +58,7 @@ | |||
56 | 1 Mark Gerarts <mark.gerarts@gmail.com> | 58 | 1 Mark Gerarts <mark.gerarts@gmail.com> |
57 | 1 Marsup <marsup@gmail.com> | 59 | 1 Marsup <marsup@gmail.com> |
58 | 1 Neros <contact@neros.fr> | 60 | 1 Neros <contact@neros.fr> |
61 | 1 Rajat Hans <rajathans9@gmail.com> | ||
59 | 1 Sbgodin <Sbgodin@users.noreply.github.com> | 62 | 1 Sbgodin <Sbgodin@users.noreply.github.com> |
60 | 1 TsT <tst2005@gmail.com> | 63 | 1 TsT <tst2005@gmail.com> |
61 | 1 dimtion <zizou.xena@gmail.com> | 64 | 1 dimtion <zizou.xena@gmail.com> |
diff --git a/CHANGELOG.md b/CHANGELOG.md index c08e42ee..189ed13d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -4,9 +4,54 @@ All notable changes to this project will be documented in this file. | |||
4 | The format is based on [Keep a Changelog](http://keepachangelog.com/) | 4 | The format is based on [Keep a Changelog](http://keepachangelog.com/) |
5 | and this project adheres to [Semantic Versioning](http://semver.org/). | 5 | and this project adheres to [Semantic Versioning](http://semver.org/). |
6 | 6 | ||
7 | ## [v0.10.4](https://github.com/shaarli/Shaarli/releases/tag/v0.10.4) - 2019-04-16 | 7 | ## [v0.11.0](https://github.com/shaarli/Shaarli/releases/tag/v0.11.0) - 2019-07-27 |
8 | |||
9 | **Shaarli no longer officially support PHP 5.6 and PHP 7.0 as they've reached end of life.** | ||
10 | |||
11 | **Shaarli classes now use namespace, third party plugins need to update.** | ||
12 | |||
13 | ### Added | ||
14 | - Add optional PHP extension to composer suggestions. | ||
15 | - composer: enforce PHP security advisories | ||
16 | - phpDocumentor configuration and make target | ||
17 | - Run unit tests against PHP 7.3 | ||
18 | - Bunch of accessibility improvements to the default template, thanks to @llune | ||
19 | - Bulk actions: set visibility | ||
20 | - Display sticky label in linklist | ||
21 | - Add print CSS rules to the default template | ||
22 | - New setting to automatically retrieve description for new bookmarks | ||
23 | - Plugin to override default template colors | ||
24 | |||
25 | ### Changed | ||
26 | - Shaarli now uses namespaces for its classes. | ||
27 | - Rewrite IP ban management | ||
28 | - Default template: slightly lighten visited link color | ||
29 | - Hide select all button on mobile view | ||
30 | - Switch from FontAwesome v4.x to ForkAwesome | ||
31 | - Daily - display the current day instead of the previous one | ||
8 | 32 | ||
9 | ### Fixed | 33 | ### Fixed |
34 | - Do not check the IP address with session protection disabled | ||
35 | - API: update test regexes to comply with PCRE2 | ||
36 | - Optimize and cleanup imports | ||
37 | - ensure HTML tags are stripped from OpenGraph description | ||
38 | - Documentation invalid links | ||
39 | - Thumbnails disabling if PHP GD is not installed | ||
40 | - Warning if links sticky status isn't set | ||
41 | - Fix button overlapping on mobile in linklist | ||
42 | - Do not try to retrieve thumbnails for internal link | ||
43 | - Update node-sass to fix a vulnerability in node tar dependency | ||
44 | - armhf Dockerfile | ||
45 | - Default template: Responsive issue with delete button fix | ||
46 | - Persist sticky status on bookmark update | ||
47 | |||
48 | ### Removed | ||
49 | - Doxygen configuration | ||
50 | - redirector setting | ||
51 | - QRCode link to an external service | ||
52 | |||
53 | ## [v0.10.4](https://github.com/shaarli/Shaarli/releases/tag/v0.10.4) - 2019-04-16 | ||
54 | ### Fixed | ||
10 | - Fix thumbnails disabling if PHP GD is not installed | 55 | - Fix thumbnails disabling if PHP GD is not installed |
11 | - Fix a warning if links sticky status isn't set | 56 | - Fix a warning if links sticky status isn't set |
12 | 57 | ||
@@ -121,6 +166,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). | |||
121 | ### Security | 166 | ### Security |
122 | - Update `.htaccess` to prevent accessing Git metadata when using a Git-based installation | 167 | - Update `.htaccess` to prevent accessing Git metadata when using a Git-based installation |
123 | 168 | ||
169 | |||
124 | ## [v0.9.7](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7) - 2018-06-20 | 170 | ## [v0.9.7](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7) - 2018-06-20 |
125 | ### Changed | 171 | ### Changed |
126 | - Build the Docker images from the local Git sources | 172 | - Build the Docker images from the local Git sources |
@@ -340,22 +386,6 @@ Theming: | |||
340 | ### Security | 386 | ### Security |
341 | - Markdown plugin: escape HTML entities by default | 387 | - Markdown plugin: escape HTML entities by default |
342 | 388 | ||
343 | ## [v0.8.4](https://github.com/shaarli/Shaarli/releases/tag/v0.8.4) - 2017-03-04 | ||
344 | ### Security | ||
345 | - Markdown plugin: escape HTML entities by default | ||
346 | |||
347 | |||
348 | ## [v0.8.3](https://github.com/shaarli/Shaarli/releases/tag/v0.8.3) - 2017-01-20 | ||
349 | |||
350 | ### Fixed | ||
351 | |||
352 | - PHP 7.1 compatibility: add ConfigManager parameter to anti-bruteforce function call in login template. | ||
353 | |||
354 | ## [v0.8.2](https://github.com/shaarli/Shaarli/releases/tag/v0.8.2) - 2016-12-15 | ||
355 | |||
356 | ### Fixed | ||
357 | |||
358 | - Editing a link created before the new ID system would change its permalink. | ||
359 | 389 | ||
360 | ## [v0.8.7](https://github.com/shaarli/Shaarli/releases/tag/v0.8.7) - 2018-06-20 | 390 | ## [v0.8.7](https://github.com/shaarli/Shaarli/releases/tag/v0.8.7) - 2018-06-20 |
361 | ### Changed | 391 | ### Changed |
diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 1185e2df..b75663bb 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf | |||
@@ -12,7 +12,7 @@ RUN apk --update --no-cache add py2-pip \ | |||
12 | # - Resolve PHP dependencies with Composer | 12 | # - Resolve PHP dependencies with Composer |
13 | FROM arm32v6/alpine:3.8 as composer | 13 | FROM arm32v6/alpine:3.8 as composer |
14 | COPY --from=docs /usr/src/app/shaarli /app/shaarli | 14 | COPY --from=docs /usr/src/app/shaarli /app/shaarli |
15 | RUN apk --update --no-cache add php7-mbstring composer \ | 15 | RUN apk --update --no-cache add php7-curl php7-mbstring composer \ |
16 | && cd /app/shaarli \ | 16 | && cd /app/shaarli \ |
17 | && composer --prefer-dist --no-dev install | 17 | && composer --prefer-dist --no-dev install |
18 | 18 | ||
diff --git a/Doxyfile b/Doxyfile deleted file mode 100644 index a7f6e04f..00000000 --- a/Doxyfile +++ /dev/null | |||
@@ -1,2377 +0,0 @@ | |||
1 | # Doxyfile 1.8.9.1 | ||
2 | |||
3 | # This file describes the settings to be used by the documentation system | ||
4 | # doxygen (www.doxygen.org) for a project. | ||
5 | # | ||
6 | # All text after a double hash (##) is considered a comment and is placed in | ||
7 | # front of the TAG it is preceding. | ||
8 | # | ||
9 | # All text after a single hash (#) is considered a comment and will be ignored. | ||
10 | # The format is: | ||
11 | # TAG = value [value, ...] | ||
12 | # For lists, items can also be appended using: | ||
13 | # TAG += value [value, ...] | ||
14 | # Values that contain spaces should be placed between quotes (\" \"). | ||
15 | |||
16 | #--------------------------------------------------------------------------- | ||
17 | # Project related configuration options | ||
18 | #--------------------------------------------------------------------------- | ||
19 | |||
20 | # This tag specifies the encoding used for all characters in the config file | ||
21 | # that follow. The default is UTF-8 which is also the encoding used for all text | ||
22 | # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv | ||
23 | # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv | ||
24 | # for the list of possible encodings. | ||
25 | # The default value is: UTF-8. | ||
26 | |||
27 | DOXYFILE_ENCODING = UTF-8 | ||
28 | |||
29 | # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by | ||
30 | # double-quotes, unless you are using Doxywizard) that should identify the | ||
31 | # project for which the documentation is generated. This name is used in the | ||
32 | # title of most generated pages and in a few other places. | ||
33 | # The default value is: My Project. | ||
34 | |||
35 | PROJECT_NAME = Shaarli | ||
36 | |||
37 | # The PROJECT_NUMBER tag can be used to enter a project or revision number. This | ||
38 | # could be handy for archiving the generated documentation or if some version | ||
39 | # control system is used. | ||
40 | |||
41 | PROJECT_NUMBER = | ||
42 | |||
43 | # Using the PROJECT_BRIEF tag one can provide an optional one line description | ||
44 | # for a project that appears at the top of each page and should give viewer a | ||
45 | # quick idea about the purpose of the project. Keep the description short. | ||
46 | |||
47 | PROJECT_BRIEF = "The personal, minimalist, super-fast, no-database delicious clone" | ||
48 | |||
49 | # With the PROJECT_LOGO tag one can specify a logo or an icon that is included | ||
50 | # in the documentation. The maximum height of the logo should not exceed 55 | ||
51 | # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy | ||
52 | # the logo to the output directory. | ||
53 | |||
54 | PROJECT_LOGO = doc/md/images/logo.png | ||
55 | |||
56 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path | ||
57 | # into which the generated documentation will be written. If a relative path is | ||
58 | # entered, it will be relative to the location where doxygen was started. If | ||
59 | # left blank the current directory will be used. | ||
60 | |||
61 | OUTPUT_DIRECTORY = . | ||
62 | |||
63 | # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- | ||
64 | # directories (in 2 levels) under the output directory of each output format and | ||
65 | # will distribute the generated files over these directories. Enabling this | ||
66 | # option can be useful when feeding doxygen a huge amount of source files, where | ||
67 | # putting all generated files in the same directory would otherwise causes | ||
68 | # performance problems for the file system. | ||
69 | # The default value is: NO. | ||
70 | |||
71 | CREATE_SUBDIRS = NO | ||
72 | |||
73 | # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII | ||
74 | # characters to appear in the names of generated files. If set to NO, non-ASCII | ||
75 | # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode | ||
76 | # U+3044. | ||
77 | # The default value is: NO. | ||
78 | |||
79 | ALLOW_UNICODE_NAMES = NO | ||
80 | |||
81 | # The OUTPUT_LANGUAGE tag is used to specify the language in which all | ||
82 | # documentation generated by doxygen is written. Doxygen will use this | ||
83 | # information to generate all constant output in the proper language. | ||
84 | # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, | ||
85 | # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), | ||
86 | # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, | ||
87 | # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), | ||
88 | # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, | ||
89 | # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, | ||
90 | # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, | ||
91 | # Ukrainian and Vietnamese. | ||
92 | # The default value is: English. | ||
93 | |||
94 | OUTPUT_LANGUAGE = English | ||
95 | |||
96 | # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member | ||
97 | # descriptions after the members that are listed in the file and class | ||
98 | # documentation (similar to Javadoc). Set to NO to disable this. | ||
99 | # The default value is: YES. | ||
100 | |||
101 | BRIEF_MEMBER_DESC = YES | ||
102 | |||
103 | # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief | ||
104 | # description of a member or function before the detailed description | ||
105 | # | ||
106 | # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the | ||
107 | # brief descriptions will be completely suppressed. | ||
108 | # The default value is: YES. | ||
109 | |||
110 | REPEAT_BRIEF = YES | ||
111 | |||
112 | # This tag implements a quasi-intelligent brief description abbreviator that is | ||
113 | # used to form the text in various listings. Each string in this list, if found | ||
114 | # as the leading text of the brief description, will be stripped from the text | ||
115 | # and the result, after processing the whole list, is used as the annotated | ||
116 | # text. Otherwise, the brief description is used as-is. If left blank, the | ||
117 | # following values are used ($name is automatically replaced with the name of | ||
118 | # the entity):The $name class, The $name widget, The $name file, is, provides, | ||
119 | # specifies, contains, represents, a, an and the. | ||
120 | |||
121 | ABBREVIATE_BRIEF = "The $name class" \ | ||
122 | "The $name widget" \ | ||
123 | "The $name file" \ | ||
124 | is \ | ||
125 | provides \ | ||
126 | specifies \ | ||
127 | contains \ | ||
128 | represents \ | ||
129 | a \ | ||
130 | an \ | ||
131 | the | ||
132 | |||
133 | # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then | ||
134 | # doxygen will generate a detailed section even if there is only a brief | ||
135 | # description. | ||
136 | # The default value is: NO. | ||
137 | |||
138 | ALWAYS_DETAILED_SEC = NO | ||
139 | |||
140 | # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all | ||
141 | # inherited members of a class in the documentation of that class as if those | ||
142 | # members were ordinary class members. Constructors, destructors and assignment | ||
143 | # operators of the base classes will not be shown. | ||
144 | # The default value is: NO. | ||
145 | |||
146 | INLINE_INHERITED_MEMB = NO | ||
147 | |||
148 | # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path | ||
149 | # before files name in the file list and in the header files. If set to NO the | ||
150 | # shortest path that makes the file name unique will be used | ||
151 | # The default value is: YES. | ||
152 | |||
153 | FULL_PATH_NAMES = YES | ||
154 | |||
155 | # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. | ||
156 | # Stripping is only done if one of the specified strings matches the left-hand | ||
157 | # part of the path. The tag can be used to show relative paths in the file list. | ||
158 | # If left blank the directory from which doxygen is run is used as the path to | ||
159 | # strip. | ||
160 | # | ||
161 | # Note that you can specify absolute paths here, but also relative paths, which | ||
162 | # will be relative from the directory where doxygen is started. | ||
163 | # This tag requires that the tag FULL_PATH_NAMES is set to YES. | ||
164 | |||
165 | STRIP_FROM_PATH = | ||
166 | |||
167 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the | ||
168 | # path mentioned in the documentation of a class, which tells the reader which | ||
169 | # header file to include in order to use a class. If left blank only the name of | ||
170 | # the header file containing the class definition is used. Otherwise one should | ||
171 | # specify the list of include paths that are normally passed to the compiler | ||
172 | # using the -I flag. | ||
173 | |||
174 | STRIP_FROM_INC_PATH = | ||
175 | |||
176 | # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but | ||
177 | # less readable) file names. This can be useful is your file systems doesn't | ||
178 | # support long names like on DOS, Mac, or CD-ROM. | ||
179 | # The default value is: NO. | ||
180 | |||
181 | SHORT_NAMES = NO | ||
182 | |||
183 | # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the | ||
184 | # first line (until the first dot) of a Javadoc-style comment as the brief | ||
185 | # description. If set to NO, the Javadoc-style will behave just like regular Qt- | ||
186 | # style comments (thus requiring an explicit @brief command for a brief | ||
187 | # description.) | ||
188 | # The default value is: NO. | ||
189 | |||
190 | JAVADOC_AUTOBRIEF = NO | ||
191 | |||
192 | # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first | ||
193 | # line (until the first dot) of a Qt-style comment as the brief description. If | ||
194 | # set to NO, the Qt-style will behave just like regular Qt-style comments (thus | ||
195 | # requiring an explicit \brief command for a brief description.) | ||
196 | # The default value is: NO. | ||
197 | |||
198 | QT_AUTOBRIEF = NO | ||
199 | |||
200 | # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a | ||
201 | # multi-line C++ special comment block (i.e. a block of //! or /// comments) as | ||
202 | # a brief description. This used to be the default behavior. The new default is | ||
203 | # to treat a multi-line C++ comment block as a detailed description. Set this | ||
204 | # tag to YES if you prefer the old behavior instead. | ||
205 | # | ||
206 | # Note that setting this tag to YES also means that rational rose comments are | ||
207 | # not recognized any more. | ||
208 | # The default value is: NO. | ||
209 | |||
210 | MULTILINE_CPP_IS_BRIEF = NO | ||
211 | |||
212 | # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the | ||
213 | # documentation from any documented member that it re-implements. | ||
214 | # The default value is: YES. | ||
215 | |||
216 | INHERIT_DOCS = YES | ||
217 | |||
218 | # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new | ||
219 | # page for each member. If set to NO, the documentation of a member will be part | ||
220 | # of the file/class/namespace that contains it. | ||
221 | # The default value is: NO. | ||
222 | |||
223 | SEPARATE_MEMBER_PAGES = NO | ||
224 | |||
225 | # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen | ||
226 | # uses this value to replace tabs by spaces in code fragments. | ||
227 | # Minimum value: 1, maximum value: 16, default value: 4. | ||
228 | |||
229 | TAB_SIZE = 4 | ||
230 | |||
231 | # This tag can be used to specify a number of aliases that act as commands in | ||
232 | # the documentation. An alias has the form: | ||
233 | # name=value | ||
234 | # For example adding | ||
235 | # "sideeffect=@par Side Effects:\n" | ||
236 | # will allow you to put the command \sideeffect (or @sideeffect) in the | ||
237 | # documentation, which will result in a user-defined paragraph with heading | ||
238 | # "Side Effects:". You can put \n's in the value part of an alias to insert | ||
239 | # newlines. | ||
240 | |||
241 | ALIASES = | ||
242 | |||
243 | # This tag can be used to specify a number of word-keyword mappings (TCL only). | ||
244 | # A mapping has the form "name=value". For example adding "class=itcl::class" | ||
245 | # will allow you to use the command class in the itcl::class meaning. | ||
246 | |||
247 | TCL_SUBST = | ||
248 | |||
249 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources | ||
250 | # only. Doxygen will then generate output that is more tailored for C. For | ||
251 | # instance, some of the names that are used will be different. The list of all | ||
252 | # members will be omitted, etc. | ||
253 | # The default value is: NO. | ||
254 | |||
255 | OPTIMIZE_OUTPUT_FOR_C = YES | ||
256 | |||
257 | # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or | ||
258 | # Python sources only. Doxygen will then generate output that is more tailored | ||
259 | # for that language. For instance, namespaces will be presented as packages, | ||
260 | # qualified scopes will look different, etc. | ||
261 | # The default value is: NO. | ||
262 | |||
263 | OPTIMIZE_OUTPUT_JAVA = NO | ||
264 | |||
265 | # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran | ||
266 | # sources. Doxygen will then generate output that is tailored for Fortran. | ||
267 | # The default value is: NO. | ||
268 | |||
269 | OPTIMIZE_FOR_FORTRAN = NO | ||
270 | |||
271 | # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL | ||
272 | # sources. Doxygen will then generate output that is tailored for VHDL. | ||
273 | # The default value is: NO. | ||
274 | |||
275 | OPTIMIZE_OUTPUT_VHDL = NO | ||
276 | |||
277 | # Doxygen selects the parser to use depending on the extension of the files it | ||
278 | # parses. With this tag you can assign which parser to use for a given | ||
279 | # extension. Doxygen has a built-in mapping, but you can override or extend it | ||
280 | # using this tag. The format is ext=language, where ext is a file extension, and | ||
281 | # language is one of the parsers supported by doxygen: IDL, Java, Javascript, | ||
282 | # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: | ||
283 | # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: | ||
284 | # Fortran. In the later case the parser tries to guess whether the code is fixed | ||
285 | # or free formatted code, this is the default for Fortran type files), VHDL. For | ||
286 | # instance to make doxygen treat .inc files as Fortran files (default is PHP), | ||
287 | # and .f files as C (default is Fortran), use: inc=Fortran f=C. | ||
288 | # | ||
289 | # Note: For files without extension you can use no_extension as a placeholder. | ||
290 | # | ||
291 | # Note that for custom extensions you also need to set FILE_PATTERNS otherwise | ||
292 | # the files are not read by doxygen. | ||
293 | |||
294 | EXTENSION_MAPPING = | ||
295 | |||
296 | # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments | ||
297 | # according to the Markdown format, which allows for more readable | ||
298 | # documentation. See http://daringfireball.net/projects/markdown/ for details. | ||
299 | # The output of markdown processing is further processed by doxygen, so you can | ||
300 | # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in | ||
301 | # case of backward compatibilities issues. | ||
302 | # The default value is: YES. | ||
303 | |||
304 | MARKDOWN_SUPPORT = YES | ||
305 | |||
306 | # When enabled doxygen tries to link words that correspond to documented | ||
307 | # classes, or namespaces to their corresponding documentation. Such a link can | ||
308 | # be prevented in individual cases by putting a % sign in front of the word or | ||
309 | # globally by setting AUTOLINK_SUPPORT to NO. | ||
310 | # The default value is: YES. | ||
311 | |||
312 | AUTOLINK_SUPPORT = YES | ||
313 | |||
314 | # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want | ||
315 | # to include (a tag file for) the STL sources as input, then you should set this | ||
316 | # tag to YES in order to let doxygen match functions declarations and | ||
317 | # definitions whose arguments contain STL classes (e.g. func(std::string); | ||
318 | # versus func(std::string) {}). This also make the inheritance and collaboration | ||
319 | # diagrams that involve STL classes more complete and accurate. | ||
320 | # The default value is: NO. | ||
321 | |||
322 | BUILTIN_STL_SUPPORT = NO | ||
323 | |||
324 | # If you use Microsoft's C++/CLI language, you should set this option to YES to | ||
325 | # enable parsing support. | ||
326 | # The default value is: NO. | ||
327 | |||
328 | CPP_CLI_SUPPORT = NO | ||
329 | |||
330 | # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: | ||
331 | # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen | ||
332 | # will parse them like normal C++ but will assume all classes use public instead | ||
333 | # of private inheritance when no explicit protection keyword is present. | ||
334 | # The default value is: NO. | ||
335 | |||
336 | SIP_SUPPORT = NO | ||
337 | |||
338 | # For Microsoft's IDL there are propget and propput attributes to indicate | ||
339 | # getter and setter methods for a property. Setting this option to YES will make | ||
340 | # doxygen to replace the get and set methods by a property in the documentation. | ||
341 | # This will only work if the methods are indeed getting or setting a simple | ||
342 | # type. If this is not the case, or you want to show the methods anyway, you | ||
343 | # should set this option to NO. | ||
344 | # The default value is: YES. | ||
345 | |||
346 | IDL_PROPERTY_SUPPORT = YES | ||
347 | |||
348 | # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC | ||
349 | # tag is set to YES then doxygen will reuse the documentation of the first | ||
350 | # member in the group (if any) for the other members of the group. By default | ||
351 | # all members of a group must be documented explicitly. | ||
352 | # The default value is: NO. | ||
353 | |||
354 | DISTRIBUTE_GROUP_DOC = NO | ||
355 | |||
356 | # Set the SUBGROUPING tag to YES to allow class member groups of the same type | ||
357 | # (for instance a group of public functions) to be put as a subgroup of that | ||
358 | # type (e.g. under the Public Functions section). Set it to NO to prevent | ||
359 | # subgrouping. Alternatively, this can be done per class using the | ||
360 | # \nosubgrouping command. | ||
361 | # The default value is: YES. | ||
362 | |||
363 | SUBGROUPING = YES | ||
364 | |||
365 | # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions | ||
366 | # are shown inside the group in which they are included (e.g. using \ingroup) | ||
367 | # instead of on a separate page (for HTML and Man pages) or section (for LaTeX | ||
368 | # and RTF). | ||
369 | # | ||
370 | # Note that this feature does not work in combination with | ||
371 | # SEPARATE_MEMBER_PAGES. | ||
372 | # The default value is: NO. | ||
373 | |||
374 | INLINE_GROUPED_CLASSES = NO | ||
375 | |||
376 | # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions | ||
377 | # with only public data fields or simple typedef fields will be shown inline in | ||
378 | # the documentation of the scope in which they are defined (i.e. file, | ||
379 | # namespace, or group documentation), provided this scope is documented. If set | ||
380 | # to NO, structs, classes, and unions are shown on a separate page (for HTML and | ||
381 | # Man pages) or section (for LaTeX and RTF). | ||
382 | # The default value is: NO. | ||
383 | |||
384 | INLINE_SIMPLE_STRUCTS = NO | ||
385 | |||
386 | # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or | ||
387 | # enum is documented as struct, union, or enum with the name of the typedef. So | ||
388 | # typedef struct TypeS {} TypeT, will appear in the documentation as a struct | ||
389 | # with name TypeT. When disabled the typedef will appear as a member of a file, | ||
390 | # namespace, or class. And the struct will be named TypeS. This can typically be | ||
391 | # useful for C code in case the coding convention dictates that all compound | ||
392 | # types are typedef'ed and only the typedef is referenced, never the tag name. | ||
393 | # The default value is: NO. | ||
394 | |||
395 | TYPEDEF_HIDES_STRUCT = NO | ||
396 | |||
397 | # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This | ||
398 | # cache is used to resolve symbols given their name and scope. Since this can be | ||
399 | # an expensive process and often the same symbol appears multiple times in the | ||
400 | # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small | ||
401 | # doxygen will become slower. If the cache is too large, memory is wasted. The | ||
402 | # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range | ||
403 | # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 | ||
404 | # symbols. At the end of a run doxygen will report the cache usage and suggest | ||
405 | # the optimal cache size from a speed point of view. | ||
406 | # Minimum value: 0, maximum value: 9, default value: 0. | ||
407 | |||
408 | LOOKUP_CACHE_SIZE = 0 | ||
409 | |||
410 | #--------------------------------------------------------------------------- | ||
411 | # Build related configuration options | ||
412 | #--------------------------------------------------------------------------- | ||
413 | |||
414 | # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in | ||
415 | # documentation are documented, even if no documentation was available. Private | ||
416 | # class members and static file members will be hidden unless the | ||
417 | # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. | ||
418 | # Note: This will also disable the warnings about undocumented members that are | ||
419 | # normally produced when WARNINGS is set to YES. | ||
420 | # The default value is: NO. | ||
421 | |||
422 | EXTRACT_ALL = YES | ||
423 | |||
424 | # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will | ||
425 | # be included in the documentation. | ||
426 | # The default value is: NO. | ||
427 | |||
428 | EXTRACT_PRIVATE = YES | ||
429 | |||
430 | # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal | ||
431 | # scope will be included in the documentation. | ||
432 | # The default value is: NO. | ||
433 | |||
434 | EXTRACT_PACKAGE = YES | ||
435 | |||
436 | # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be | ||
437 | # included in the documentation. | ||
438 | # The default value is: NO. | ||
439 | |||
440 | EXTRACT_STATIC = YES | ||
441 | |||
442 | # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined | ||
443 | # locally in source files will be included in the documentation. If set to NO, | ||
444 | # only classes defined in header files are included. Does not have any effect | ||
445 | # for Java sources. | ||
446 | # The default value is: YES. | ||
447 | |||
448 | EXTRACT_LOCAL_CLASSES = YES | ||
449 | |||
450 | # This flag is only useful for Objective-C code. If set to YES, local methods, | ||
451 | # which are defined in the implementation section but not in the interface are | ||
452 | # included in the documentation. If set to NO, only methods in the interface are | ||
453 | # included. | ||
454 | # The default value is: NO. | ||
455 | |||
456 | EXTRACT_LOCAL_METHODS = YES | ||
457 | |||
458 | # If this flag is set to YES, the members of anonymous namespaces will be | ||
459 | # extracted and appear in the documentation as a namespace called | ||
460 | # 'anonymous_namespace{file}', where file will be replaced with the base name of | ||
461 | # the file that contains the anonymous namespace. By default anonymous namespace | ||
462 | # are hidden. | ||
463 | # The default value is: NO. | ||
464 | |||
465 | EXTRACT_ANON_NSPACES = YES | ||
466 | |||
467 | # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all | ||
468 | # undocumented members inside documented classes or files. If set to NO these | ||
469 | # members will be included in the various overviews, but no documentation | ||
470 | # section is generated. This option has no effect if EXTRACT_ALL is enabled. | ||
471 | # The default value is: NO. | ||
472 | |||
473 | HIDE_UNDOC_MEMBERS = NO | ||
474 | |||
475 | # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all | ||
476 | # undocumented classes that are normally visible in the class hierarchy. If set | ||
477 | # to NO, these classes will be included in the various overviews. This option | ||
478 | # has no effect if EXTRACT_ALL is enabled. | ||
479 | # The default value is: NO. | ||
480 | |||
481 | HIDE_UNDOC_CLASSES = NO | ||
482 | |||
483 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend | ||
484 | # (class|struct|union) declarations. If set to NO, these declarations will be | ||
485 | # included in the documentation. | ||
486 | # The default value is: NO. | ||
487 | |||
488 | HIDE_FRIEND_COMPOUNDS = NO | ||
489 | |||
490 | # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any | ||
491 | # documentation blocks found inside the body of a function. If set to NO, these | ||
492 | # blocks will be appended to the function's detailed documentation block. | ||
493 | # The default value is: NO. | ||
494 | |||
495 | HIDE_IN_BODY_DOCS = NO | ||
496 | |||
497 | # The INTERNAL_DOCS tag determines if documentation that is typed after a | ||
498 | # \internal command is included. If the tag is set to NO then the documentation | ||
499 | # will be excluded. Set it to YES to include the internal documentation. | ||
500 | # The default value is: NO. | ||
501 | |||
502 | INTERNAL_DOCS = NO | ||
503 | |||
504 | # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file | ||
505 | # names in lower-case letters. If set to YES, upper-case letters are also | ||
506 | # allowed. This is useful if you have classes or files whose names only differ | ||
507 | # in case and if your file system supports case sensitive file names. Windows | ||
508 | # and Mac users are advised to set this option to NO. | ||
509 | # The default value is: system dependent. | ||
510 | |||
511 | CASE_SENSE_NAMES = NO | ||
512 | |||
513 | # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with | ||
514 | # their full class and namespace scopes in the documentation. If set to YES, the | ||
515 | # scope will be hidden. | ||
516 | # The default value is: NO. | ||
517 | |||
518 | HIDE_SCOPE_NAMES = YES | ||
519 | |||
520 | # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will | ||
521 | # append additional text to a page's title, such as Class Reference. If set to | ||
522 | # YES the compound reference will be hidden. | ||
523 | # The default value is: NO. | ||
524 | |||
525 | HIDE_COMPOUND_REFERENCE= NO | ||
526 | |||
527 | # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of | ||
528 | # the files that are included by a file in the documentation of that file. | ||
529 | # The default value is: YES. | ||
530 | |||
531 | SHOW_INCLUDE_FILES = YES | ||
532 | |||
533 | # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each | ||
534 | # grouped member an include statement to the documentation, telling the reader | ||
535 | # which file to include in order to use the member. | ||
536 | # The default value is: NO. | ||
537 | |||
538 | SHOW_GROUPED_MEMB_INC = NO | ||
539 | |||
540 | # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include | ||
541 | # files with double quotes in the documentation rather than with sharp brackets. | ||
542 | # The default value is: NO. | ||
543 | |||
544 | FORCE_LOCAL_INCLUDES = NO | ||
545 | |||
546 | # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the | ||
547 | # documentation for inline members. | ||
548 | # The default value is: YES. | ||
549 | |||
550 | INLINE_INFO = YES | ||
551 | |||
552 | # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the | ||
553 | # (detailed) documentation of file and class members alphabetically by member | ||
554 | # name. If set to NO, the members will appear in declaration order. | ||
555 | # The default value is: YES. | ||
556 | |||
557 | SORT_MEMBER_DOCS = YES | ||
558 | |||
559 | # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief | ||
560 | # descriptions of file, namespace and class members alphabetically by member | ||
561 | # name. If set to NO, the members will appear in declaration order. Note that | ||
562 | # this will also influence the order of the classes in the class list. | ||
563 | # The default value is: NO. | ||
564 | |||
565 | SORT_BRIEF_DOCS = NO | ||
566 | |||
567 | # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the | ||
568 | # (brief and detailed) documentation of class members so that constructors and | ||
569 | # destructors are listed first. If set to NO the constructors will appear in the | ||
570 | # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. | ||
571 | # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief | ||
572 | # member documentation. | ||
573 | # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting | ||
574 | # detailed member documentation. | ||
575 | # The default value is: NO. | ||
576 | |||
577 | SORT_MEMBERS_CTORS_1ST = NO | ||
578 | |||
579 | # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy | ||
580 | # of group names into alphabetical order. If set to NO the group names will | ||
581 | # appear in their defined order. | ||
582 | # The default value is: NO. | ||
583 | |||
584 | SORT_GROUP_NAMES = NO | ||
585 | |||
586 | # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by | ||
587 | # fully-qualified names, including namespaces. If set to NO, the class list will | ||
588 | # be sorted only by class name, not including the namespace part. | ||
589 | # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. | ||
590 | # Note: This option applies only to the class list, not to the alphabetical | ||
591 | # list. | ||
592 | # The default value is: NO. | ||
593 | |||
594 | SORT_BY_SCOPE_NAME = NO | ||
595 | |||
596 | # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper | ||
597 | # type resolution of all parameters of a function it will reject a match between | ||
598 | # the prototype and the implementation of a member function even if there is | ||
599 | # only one candidate or it is obvious which candidate to choose by doing a | ||
600 | # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still | ||
601 | # accept a match between prototype and implementation in such cases. | ||
602 | # The default value is: NO. | ||
603 | |||
604 | STRICT_PROTO_MATCHING = NO | ||
605 | |||
606 | # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo | ||
607 | # list. This list is created by putting \todo commands in the documentation. | ||
608 | # The default value is: YES. | ||
609 | |||
610 | GENERATE_TODOLIST = YES | ||
611 | |||
612 | # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test | ||
613 | # list. This list is created by putting \test commands in the documentation. | ||
614 | # The default value is: YES. | ||
615 | |||
616 | GENERATE_TESTLIST = YES | ||
617 | |||
618 | # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug | ||
619 | # list. This list is created by putting \bug commands in the documentation. | ||
620 | # The default value is: YES. | ||
621 | |||
622 | GENERATE_BUGLIST = YES | ||
623 | |||
624 | # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) | ||
625 | # the deprecated list. This list is created by putting \deprecated commands in | ||
626 | # the documentation. | ||
627 | # The default value is: YES. | ||
628 | |||
629 | GENERATE_DEPRECATEDLIST= YES | ||
630 | |||
631 | # The ENABLED_SECTIONS tag can be used to enable conditional documentation | ||
632 | # sections, marked by \if <section_label> ... \endif and \cond <section_label> | ||
633 | # ... \endcond blocks. | ||
634 | |||
635 | ENABLED_SECTIONS = | ||
636 | |||
637 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the | ||
638 | # initial value of a variable or macro / define can have for it to appear in the | ||
639 | # documentation. If the initializer consists of more lines than specified here | ||
640 | # it will be hidden. Use a value of 0 to hide initializers completely. The | ||
641 | # appearance of the value of individual variables and macros / defines can be | ||
642 | # controlled using \showinitializer or \hideinitializer command in the | ||
643 | # documentation regardless of this setting. | ||
644 | # Minimum value: 0, maximum value: 10000, default value: 30. | ||
645 | |||
646 | MAX_INITIALIZER_LINES = 30 | ||
647 | |||
648 | # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at | ||
649 | # the bottom of the documentation of classes and structs. If set to YES, the | ||
650 | # list will mention the files that were used to generate the documentation. | ||
651 | # The default value is: YES. | ||
652 | |||
653 | SHOW_USED_FILES = YES | ||
654 | |||
655 | # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This | ||
656 | # will remove the Files entry from the Quick Index and from the Folder Tree View | ||
657 | # (if specified). | ||
658 | # The default value is: YES. | ||
659 | |||
660 | SHOW_FILES = YES | ||
661 | |||
662 | # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces | ||
663 | # page. This will remove the Namespaces entry from the Quick Index and from the | ||
664 | # Folder Tree View (if specified). | ||
665 | # The default value is: YES. | ||
666 | |||
667 | SHOW_NAMESPACES = NO | ||
668 | |||
669 | # The FILE_VERSION_FILTER tag can be used to specify a program or script that | ||
670 | # doxygen should invoke to get the current version for each file (typically from | ||
671 | # the version control system). Doxygen will invoke the program by executing (via | ||
672 | # popen()) the command command input-file, where command is the value of the | ||
673 | # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided | ||
674 | # by doxygen. Whatever the program writes to standard output is used as the file | ||
675 | # version. For an example see the documentation. | ||
676 | |||
677 | FILE_VERSION_FILTER = | ||
678 | |||
679 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed | ||
680 | # by doxygen. The layout file controls the global structure of the generated | ||
681 | # output files in an output format independent way. To create the layout file | ||
682 | # that represents doxygen's defaults, run doxygen with the -l option. You can | ||
683 | # optionally specify a file name after the option, if omitted DoxygenLayout.xml | ||
684 | # will be used as the name of the layout file. | ||
685 | # | ||
686 | # Note that if you run doxygen from a directory containing a file called | ||
687 | # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE | ||
688 | # tag is left empty. | ||
689 | |||
690 | LAYOUT_FILE = | ||
691 | |||
692 | # The CITE_BIB_FILES tag can be used to specify one or more bib files containing | ||
693 | # the reference definitions. This must be a list of .bib files. The .bib | ||
694 | # extension is automatically appended if omitted. This requires the bibtex tool | ||
695 | # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. | ||
696 | # For LaTeX the style of the bibliography can be controlled using | ||
697 | # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the | ||
698 | # search path. See also \cite for info how to create references. | ||
699 | |||
700 | CITE_BIB_FILES = | ||
701 | |||
702 | #--------------------------------------------------------------------------- | ||
703 | # Configuration options related to warning and progress messages | ||
704 | #--------------------------------------------------------------------------- | ||
705 | |||
706 | # The QUIET tag can be used to turn on/off the messages that are generated to | ||
707 | # standard output by doxygen. If QUIET is set to YES this implies that the | ||
708 | # messages are off. | ||
709 | # The default value is: NO. | ||
710 | |||
711 | QUIET = NO | ||
712 | |||
713 | # The WARNINGS tag can be used to turn on/off the warning messages that are | ||
714 | # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES | ||
715 | # this implies that the warnings are on. | ||
716 | # | ||
717 | # Tip: Turn warnings on while writing the documentation. | ||
718 | # The default value is: YES. | ||
719 | |||
720 | WARNINGS = YES | ||
721 | |||
722 | # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate | ||
723 | # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag | ||
724 | # will automatically be disabled. | ||
725 | # The default value is: YES. | ||
726 | |||
727 | WARN_IF_UNDOCUMENTED = YES | ||
728 | |||
729 | # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for | ||
730 | # potential errors in the documentation, such as not documenting some parameters | ||
731 | # in a documented function, or documenting parameters that don't exist or using | ||
732 | # markup commands wrongly. | ||
733 | # The default value is: YES. | ||
734 | |||
735 | WARN_IF_DOC_ERROR = YES | ||
736 | |||
737 | # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that | ||
738 | # are documented, but have no documentation for their parameters or return | ||
739 | # value. If set to NO, doxygen will only warn about wrong or incomplete | ||
740 | # parameter documentation, but not about the absence of documentation. | ||
741 | # The default value is: NO. | ||
742 | |||
743 | WARN_NO_PARAMDOC = NO | ||
744 | |||
745 | # The WARN_FORMAT tag determines the format of the warning messages that doxygen | ||
746 | # can produce. The string should contain the $file, $line, and $text tags, which | ||
747 | # will be replaced by the file and line number from which the warning originated | ||
748 | # and the warning text. Optionally the format may contain $version, which will | ||
749 | # be replaced by the version of the file (if it could be obtained via | ||
750 | # FILE_VERSION_FILTER) | ||
751 | # The default value is: $file:$line: $text. | ||
752 | |||
753 | WARN_FORMAT = "$file:$line: $text" | ||
754 | |||
755 | # The WARN_LOGFILE tag can be used to specify a file to which warning and error | ||
756 | # messages should be written. If left blank the output is written to standard | ||
757 | # error (stderr). | ||
758 | |||
759 | WARN_LOGFILE = | ||
760 | |||
761 | #--------------------------------------------------------------------------- | ||
762 | # Configuration options related to the input files | ||
763 | #--------------------------------------------------------------------------- | ||
764 | |||
765 | # The INPUT tag is used to specify the files and/or directories that contain | ||
766 | # documented source files. You may enter file names like myfile.cpp or | ||
767 | # directories like /usr/src/myproject. Separate the files or directories with | ||
768 | # spaces. | ||
769 | # Note: If this tag is empty the current directory is searched. | ||
770 | |||
771 | INPUT = . | ||
772 | |||
773 | # This tag can be used to specify the character encoding of the source files | ||
774 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses | ||
775 | # libiconv (or the iconv built into libc) for the transcoding. See the libiconv | ||
776 | # documentation (see: http://www.gnu.org/software/libiconv) for the list of | ||
777 | # possible encodings. | ||
778 | # The default value is: UTF-8. | ||
779 | |||
780 | INPUT_ENCODING = UTF-8 | ||
781 | |||
782 | # If the value of the INPUT tag contains directories, you can use the | ||
783 | # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and | ||
784 | # *.h) to filter out the source-files in the directories. If left blank the | ||
785 | # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, | ||
786 | # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, | ||
787 | # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, | ||
788 | # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, | ||
789 | # *.qsf, *.as and *.js. | ||
790 | |||
791 | FILE_PATTERNS = *.php | ||
792 | |||
793 | # The RECURSIVE tag can be used to specify whether or not subdirectories should | ||
794 | # be searched for input files as well. | ||
795 | # The default value is: NO. | ||
796 | |||
797 | RECURSIVE = YES | ||
798 | |||
799 | # The EXCLUDE tag can be used to specify files and/or directories that should be | ||
800 | # excluded from the INPUT source files. This way you can easily exclude a | ||
801 | # subdirectory from a directory tree whose root is specified with the INPUT tag. | ||
802 | # | ||
803 | # Note that relative paths are relative to the directory from which doxygen is | ||
804 | # run. | ||
805 | |||
806 | EXCLUDE = vendor \ | ||
807 | data \ | ||
808 | tpl \ | ||
809 | inc \ | ||
810 | doc \ | ||
811 | tmp | ||
812 | |||
813 | # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or | ||
814 | # directories that are symbolic links (a Unix file system feature) are excluded | ||
815 | # from the input. | ||
816 | # The default value is: NO. | ||
817 | |||
818 | EXCLUDE_SYMLINKS = YES | ||
819 | |||
820 | # If the value of the INPUT tag contains directories, you can use the | ||
821 | # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude | ||
822 | # certain files from those directories. | ||
823 | # | ||
824 | # Note that the wildcards are matched against the file with absolute path, so to | ||
825 | # exclude all test directories for example use the pattern */test/* | ||
826 | |||
827 | EXCLUDE_PATTERNS = | ||
828 | |||
829 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names | ||
830 | # (namespaces, classes, functions, etc.) that should be excluded from the | ||
831 | # output. The symbol name can be a fully qualified name, a word, or if the | ||
832 | # wildcard * is used, a substring. Examples: ANamespace, AClass, | ||
833 | # AClass::ANamespace, ANamespace::*Test | ||
834 | # | ||
835 | # Note that the wildcards are matched against the file with absolute path, so to | ||
836 | # exclude all test directories use the pattern */test/* | ||
837 | |||
838 | EXCLUDE_SYMBOLS = | ||
839 | |||
840 | # The EXAMPLE_PATH tag can be used to specify one or more files or directories | ||
841 | # that contain example code fragments that are included (see the \include | ||
842 | # command). | ||
843 | |||
844 | EXAMPLE_PATH = | ||
845 | |||
846 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the | ||
847 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and | ||
848 | # *.h) to filter out the source-files in the directories. If left blank all | ||
849 | # files are included. | ||
850 | |||
851 | EXAMPLE_PATTERNS = * | ||
852 | |||
853 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be | ||
854 | # searched for input files to be used with the \include or \dontinclude commands | ||
855 | # irrespective of the value of the RECURSIVE tag. | ||
856 | # The default value is: NO. | ||
857 | |||
858 | EXAMPLE_RECURSIVE = NO | ||
859 | |||
860 | # The IMAGE_PATH tag can be used to specify one or more files or directories | ||
861 | # that contain images that are to be included in the documentation (see the | ||
862 | # \image command). | ||
863 | |||
864 | IMAGE_PATH = | ||
865 | |||
866 | # The INPUT_FILTER tag can be used to specify a program that doxygen should | ||
867 | # invoke to filter for each input file. Doxygen will invoke the filter program | ||
868 | # by executing (via popen()) the command: | ||
869 | # | ||
870 | # <filter> <input-file> | ||
871 | # | ||
872 | # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the | ||
873 | # name of an input file. Doxygen will then use the output that the filter | ||
874 | # program writes to standard output. If FILTER_PATTERNS is specified, this tag | ||
875 | # will be ignored. | ||
876 | # | ||
877 | # Note that the filter must not add or remove lines; it is applied before the | ||
878 | # code is scanned, but not when the output code is generated. If lines are added | ||
879 | # or removed, the anchors will not be placed correctly. | ||
880 | |||
881 | INPUT_FILTER = | ||
882 | |||
883 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern | ||
884 | # basis. Doxygen will compare the file name with each pattern and apply the | ||
885 | # filter if there is a match. The filters are a list of the form: pattern=filter | ||
886 | # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how | ||
887 | # filters are used. If the FILTER_PATTERNS tag is empty or if none of the | ||
888 | # patterns match the file name, INPUT_FILTER is applied. | ||
889 | |||
890 | FILTER_PATTERNS = | ||
891 | |||
892 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using | ||
893 | # INPUT_FILTER) will also be used to filter the input files that are used for | ||
894 | # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). | ||
895 | # The default value is: NO. | ||
896 | |||
897 | FILTER_SOURCE_FILES = NO | ||
898 | |||
899 | # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file | ||
900 | # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and | ||
901 | # it is also possible to disable source filtering for a specific pattern using | ||
902 | # *.ext= (so without naming a filter). | ||
903 | # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. | ||
904 | |||
905 | FILTER_SOURCE_PATTERNS = | ||
906 | |||
907 | # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that | ||
908 | # is part of the input, its contents will be placed on the main page | ||
909 | # (index.html). This can be useful if you have a project on for instance GitHub | ||
910 | # and want to reuse the introduction page also for the doxygen output. | ||
911 | |||
912 | USE_MDFILE_AS_MAINPAGE = | ||
913 | |||
914 | #--------------------------------------------------------------------------- | ||
915 | # Configuration options related to source browsing | ||
916 | #--------------------------------------------------------------------------- | ||
917 | |||
918 | # If the SOURCE_BROWSER tag is set to YES then a list of source files will be | ||
919 | # generated. Documented entities will be cross-referenced with these sources. | ||
920 | # | ||
921 | # Note: To get rid of all source code in the generated output, make sure that | ||
922 | # also VERBATIM_HEADERS is set to NO. | ||
923 | # The default value is: NO. | ||
924 | |||
925 | SOURCE_BROWSER = YES | ||
926 | |||
927 | # Setting the INLINE_SOURCES tag to YES will include the body of functions, | ||
928 | # classes and enums directly into the documentation. | ||
929 | # The default value is: NO. | ||
930 | |||
931 | INLINE_SOURCES = NO | ||
932 | |||
933 | # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any | ||
934 | # special comment blocks from generated source code fragments. Normal C, C++ and | ||
935 | # Fortran comments will always remain visible. | ||
936 | # The default value is: YES. | ||
937 | |||
938 | STRIP_CODE_COMMENTS = YES | ||
939 | |||
940 | # If the REFERENCED_BY_RELATION tag is set to YES then for each documented | ||
941 | # function all documented functions referencing it will be listed. | ||
942 | # The default value is: NO. | ||
943 | |||
944 | REFERENCED_BY_RELATION = NO | ||
945 | |||
946 | # If the REFERENCES_RELATION tag is set to YES then for each documented function | ||
947 | # all documented entities called/used by that function will be listed. | ||
948 | # The default value is: NO. | ||
949 | |||
950 | REFERENCES_RELATION = NO | ||
951 | |||
952 | # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set | ||
953 | # to YES then the hyperlinks from functions in REFERENCES_RELATION and | ||
954 | # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will | ||
955 | # link to the documentation. | ||
956 | # The default value is: YES. | ||
957 | |||
958 | REFERENCES_LINK_SOURCE = YES | ||
959 | |||
960 | # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the | ||
961 | # source code will show a tooltip with additional information such as prototype, | ||
962 | # brief description and links to the definition and documentation. Since this | ||
963 | # will make the HTML file larger and loading of large files a bit slower, you | ||
964 | # can opt to disable this feature. | ||
965 | # The default value is: YES. | ||
966 | # This tag requires that the tag SOURCE_BROWSER is set to YES. | ||
967 | |||
968 | SOURCE_TOOLTIPS = YES | ||
969 | |||
970 | # If the USE_HTAGS tag is set to YES then the references to source code will | ||
971 | # point to the HTML generated by the htags(1) tool instead of doxygen built-in | ||
972 | # source browser. The htags tool is part of GNU's global source tagging system | ||
973 | # (see http://www.gnu.org/software/global/global.html). You will need version | ||
974 | # 4.8.6 or higher. | ||
975 | # | ||
976 | # To use it do the following: | ||
977 | # - Install the latest version of global | ||
978 | # - Enable SOURCE_BROWSER and USE_HTAGS in the config file | ||
979 | # - Make sure the INPUT points to the root of the source tree | ||
980 | # - Run doxygen as normal | ||
981 | # | ||
982 | # Doxygen will invoke htags (and that will in turn invoke gtags), so these | ||
983 | # tools must be available from the command line (i.e. in the search path). | ||
984 | # | ||
985 | # The result: instead of the source browser generated by doxygen, the links to | ||
986 | # source code will now point to the output of htags. | ||
987 | # The default value is: NO. | ||
988 | # This tag requires that the tag SOURCE_BROWSER is set to YES. | ||
989 | |||
990 | USE_HTAGS = NO | ||
991 | |||
992 | # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a | ||
993 | # verbatim copy of the header file for each class for which an include is | ||
994 | # specified. Set to NO to disable this. | ||
995 | # See also: Section \class. | ||
996 | # The default value is: YES. | ||
997 | |||
998 | VERBATIM_HEADERS = YES | ||
999 | |||
1000 | #--------------------------------------------------------------------------- | ||
1001 | # Configuration options related to the alphabetical class index | ||
1002 | #--------------------------------------------------------------------------- | ||
1003 | |||
1004 | # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all | ||
1005 | # compounds will be generated. Enable this if the project contains a lot of | ||
1006 | # classes, structs, unions or interfaces. | ||
1007 | # The default value is: YES. | ||
1008 | |||
1009 | ALPHABETICAL_INDEX = YES | ||
1010 | |||
1011 | # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in | ||
1012 | # which the alphabetical index list will be split. | ||
1013 | # Minimum value: 1, maximum value: 20, default value: 5. | ||
1014 | # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. | ||
1015 | |||
1016 | COLS_IN_ALPHA_INDEX = 5 | ||
1017 | |||
1018 | # In case all classes in a project start with a common prefix, all classes will | ||
1019 | # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag | ||
1020 | # can be used to specify a prefix (or a list of prefixes) that should be ignored | ||
1021 | # while generating the index headers. | ||
1022 | # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. | ||
1023 | |||
1024 | IGNORE_PREFIX = | ||
1025 | |||
1026 | #--------------------------------------------------------------------------- | ||
1027 | # Configuration options related to the HTML output | ||
1028 | #--------------------------------------------------------------------------- | ||
1029 | |||
1030 | # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output | ||
1031 | # The default value is: YES. | ||
1032 | |||
1033 | GENERATE_HTML = YES | ||
1034 | |||
1035 | # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a | ||
1036 | # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of | ||
1037 | # it. | ||
1038 | # The default directory is: html. | ||
1039 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1040 | |||
1041 | HTML_OUTPUT = doxygen | ||
1042 | |||
1043 | # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each | ||
1044 | # generated HTML page (for example: .htm, .php, .asp). | ||
1045 | # The default value is: .html. | ||
1046 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1047 | |||
1048 | HTML_FILE_EXTENSION = .html | ||
1049 | |||
1050 | # The HTML_HEADER tag can be used to specify a user-defined HTML header file for | ||
1051 | # each generated HTML page. If the tag is left blank doxygen will generate a | ||
1052 | # standard header. | ||
1053 | # | ||
1054 | # To get valid HTML the header file that includes any scripts and style sheets | ||
1055 | # that doxygen needs, which is dependent on the configuration options used (e.g. | ||
1056 | # the setting GENERATE_TREEVIEW). It is highly recommended to start with a | ||
1057 | # default header using | ||
1058 | # doxygen -w html new_header.html new_footer.html new_stylesheet.css | ||
1059 | # YourConfigFile | ||
1060 | # and then modify the file new_header.html. See also section "Doxygen usage" | ||
1061 | # for information on how to generate the default header that doxygen normally | ||
1062 | # uses. | ||
1063 | # Note: The header is subject to change so you typically have to regenerate the | ||
1064 | # default header when upgrading to a newer version of doxygen. For a description | ||
1065 | # of the possible markers and block names see the documentation. | ||
1066 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1067 | |||
1068 | HTML_HEADER = | ||
1069 | |||
1070 | # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each | ||
1071 | # generated HTML page. If the tag is left blank doxygen will generate a standard | ||
1072 | # footer. See HTML_HEADER for more information on how to generate a default | ||
1073 | # footer and what special commands can be used inside the footer. See also | ||
1074 | # section "Doxygen usage" for information on how to generate the default footer | ||
1075 | # that doxygen normally uses. | ||
1076 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1077 | |||
1078 | HTML_FOOTER = | ||
1079 | |||
1080 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style | ||
1081 | # sheet that is used by each HTML page. It can be used to fine-tune the look of | ||
1082 | # the HTML output. If left blank doxygen will generate a default style sheet. | ||
1083 | # See also section "Doxygen usage" for information on how to generate the style | ||
1084 | # sheet that doxygen normally uses. | ||
1085 | # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as | ||
1086 | # it is more robust and this tag (HTML_STYLESHEET) will in the future become | ||
1087 | # obsolete. | ||
1088 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1089 | |||
1090 | HTML_STYLESHEET = | ||
1091 | |||
1092 | # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined | ||
1093 | # cascading style sheets that are included after the standard style sheets | ||
1094 | # created by doxygen. Using this option one can overrule certain style aspects. | ||
1095 | # This is preferred over using HTML_STYLESHEET since it does not replace the | ||
1096 | # standard style sheet and is therefore more robust against future updates. | ||
1097 | # Doxygen will copy the style sheet files to the output directory. | ||
1098 | # Note: The order of the extra style sheet files is of importance (e.g. the last | ||
1099 | # style sheet in the list overrules the setting of the previous ones in the | ||
1100 | # list). For an example see the documentation. | ||
1101 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1102 | |||
1103 | HTML_EXTRA_STYLESHEET = | ||
1104 | |||
1105 | # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or | ||
1106 | # other source files which should be copied to the HTML output directory. Note | ||
1107 | # that these files will be copied to the base HTML output directory. Use the | ||
1108 | # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these | ||
1109 | # files. In the HTML_STYLESHEET file, use the file name only. Also note that the | ||
1110 | # files will be copied as-is; there are no commands or markers available. | ||
1111 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1112 | |||
1113 | HTML_EXTRA_FILES = | ||
1114 | |||
1115 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen | ||
1116 | # will adjust the colors in the style sheet and background images according to | ||
1117 | # this color. Hue is specified as an angle on a colorwheel, see | ||
1118 | # http://en.wikipedia.org/wiki/Hue for more information. For instance the value | ||
1119 | # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 | ||
1120 | # purple, and 360 is red again. | ||
1121 | # Minimum value: 0, maximum value: 359, default value: 220. | ||
1122 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1123 | |||
1124 | HTML_COLORSTYLE_HUE = 220 | ||
1125 | |||
1126 | # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors | ||
1127 | # in the HTML output. For a value of 0 the output will use grayscales only. A | ||
1128 | # value of 255 will produce the most vivid colors. | ||
1129 | # Minimum value: 0, maximum value: 255, default value: 100. | ||
1130 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1131 | |||
1132 | HTML_COLORSTYLE_SAT = 100 | ||
1133 | |||
1134 | # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the | ||
1135 | # luminance component of the colors in the HTML output. Values below 100 | ||
1136 | # gradually make the output lighter, whereas values above 100 make the output | ||
1137 | # darker. The value divided by 100 is the actual gamma applied, so 80 represents | ||
1138 | # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not | ||
1139 | # change the gamma. | ||
1140 | # Minimum value: 40, maximum value: 240, default value: 80. | ||
1141 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1142 | |||
1143 | HTML_COLORSTYLE_GAMMA = 80 | ||
1144 | |||
1145 | # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML | ||
1146 | # page will contain the date and time when the page was generated. Setting this | ||
1147 | # to NO can help when comparing the output of multiple runs. | ||
1148 | # The default value is: YES. | ||
1149 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1150 | |||
1151 | HTML_TIMESTAMP = YES | ||
1152 | |||
1153 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML | ||
1154 | # documentation will contain sections that can be hidden and shown after the | ||
1155 | # page has loaded. | ||
1156 | # The default value is: NO. | ||
1157 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1158 | |||
1159 | HTML_DYNAMIC_SECTIONS = NO | ||
1160 | |||
1161 | # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries | ||
1162 | # shown in the various tree structured indices initially; the user can expand | ||
1163 | # and collapse entries dynamically later on. Doxygen will expand the tree to | ||
1164 | # such a level that at most the specified number of entries are visible (unless | ||
1165 | # a fully collapsed tree already exceeds this amount). So setting the number of | ||
1166 | # entries 1 will produce a full collapsed tree by default. 0 is a special value | ||
1167 | # representing an infinite number of entries and will result in a full expanded | ||
1168 | # tree by default. | ||
1169 | # Minimum value: 0, maximum value: 9999, default value: 100. | ||
1170 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1171 | |||
1172 | HTML_INDEX_NUM_ENTRIES = 100 | ||
1173 | |||
1174 | # If the GENERATE_DOCSET tag is set to YES, additional index files will be | ||
1175 | # generated that can be used as input for Apple's Xcode 3 integrated development | ||
1176 | # environment (see: http://developer.apple.com/tools/xcode/), introduced with | ||
1177 | # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a | ||
1178 | # Makefile in the HTML output directory. Running make will produce the docset in | ||
1179 | # that directory and running make install will install the docset in | ||
1180 | # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at | ||
1181 | # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html | ||
1182 | # for more information. | ||
1183 | # The default value is: NO. | ||
1184 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1185 | |||
1186 | GENERATE_DOCSET = NO | ||
1187 | |||
1188 | # This tag determines the name of the docset feed. A documentation feed provides | ||
1189 | # an umbrella under which multiple documentation sets from a single provider | ||
1190 | # (such as a company or product suite) can be grouped. | ||
1191 | # The default value is: Doxygen generated docs. | ||
1192 | # This tag requires that the tag GENERATE_DOCSET is set to YES. | ||
1193 | |||
1194 | DOCSET_FEEDNAME = "Doxygen generated docs" | ||
1195 | |||
1196 | # This tag specifies a string that should uniquely identify the documentation | ||
1197 | # set bundle. This should be a reverse domain-name style string, e.g. | ||
1198 | # com.mycompany.MyDocSet. Doxygen will append .docset to the name. | ||
1199 | # The default value is: org.doxygen.Project. | ||
1200 | # This tag requires that the tag GENERATE_DOCSET is set to YES. | ||
1201 | |||
1202 | DOCSET_BUNDLE_ID = org.doxygen.Project | ||
1203 | |||
1204 | # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify | ||
1205 | # the documentation publisher. This should be a reverse domain-name style | ||
1206 | # string, e.g. com.mycompany.MyDocSet.documentation. | ||
1207 | # The default value is: org.doxygen.Publisher. | ||
1208 | # This tag requires that the tag GENERATE_DOCSET is set to YES. | ||
1209 | |||
1210 | DOCSET_PUBLISHER_ID = org.doxygen.Publisher | ||
1211 | |||
1212 | # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. | ||
1213 | # The default value is: Publisher. | ||
1214 | # This tag requires that the tag GENERATE_DOCSET is set to YES. | ||
1215 | |||
1216 | DOCSET_PUBLISHER_NAME = Publisher | ||
1217 | |||
1218 | # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three | ||
1219 | # additional HTML index files: index.hhp, index.hhc, and index.hhk. The | ||
1220 | # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop | ||
1221 | # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on | ||
1222 | # Windows. | ||
1223 | # | ||
1224 | # The HTML Help Workshop contains a compiler that can convert all HTML output | ||
1225 | # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML | ||
1226 | # files are now used as the Windows 98 help format, and will replace the old | ||
1227 | # Windows help format (.hlp) on all Windows platforms in the future. Compressed | ||
1228 | # HTML files also contain an index, a table of contents, and you can search for | ||
1229 | # words in the documentation. The HTML workshop also contains a viewer for | ||
1230 | # compressed HTML files. | ||
1231 | # The default value is: NO. | ||
1232 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1233 | |||
1234 | GENERATE_HTMLHELP = NO | ||
1235 | |||
1236 | # The CHM_FILE tag can be used to specify the file name of the resulting .chm | ||
1237 | # file. You can add a path in front of the file if the result should not be | ||
1238 | # written to the html output directory. | ||
1239 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | ||
1240 | |||
1241 | CHM_FILE = | ||
1242 | |||
1243 | # The HHC_LOCATION tag can be used to specify the location (absolute path | ||
1244 | # including file name) of the HTML help compiler (hhc.exe). If non-empty, | ||
1245 | # doxygen will try to run the HTML help compiler on the generated index.hhp. | ||
1246 | # The file has to be specified with full path. | ||
1247 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | ||
1248 | |||
1249 | HHC_LOCATION = | ||
1250 | |||
1251 | # The GENERATE_CHI flag controls if a separate .chi index file is generated | ||
1252 | # (YES) or that it should be included in the master .chm file (NO). | ||
1253 | # The default value is: NO. | ||
1254 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | ||
1255 | |||
1256 | GENERATE_CHI = NO | ||
1257 | |||
1258 | # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) | ||
1259 | # and project file content. | ||
1260 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | ||
1261 | |||
1262 | CHM_INDEX_ENCODING = | ||
1263 | |||
1264 | # The BINARY_TOC flag controls whether a binary table of contents is generated | ||
1265 | # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it | ||
1266 | # enables the Previous and Next buttons. | ||
1267 | # The default value is: NO. | ||
1268 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | ||
1269 | |||
1270 | BINARY_TOC = NO | ||
1271 | |||
1272 | # The TOC_EXPAND flag can be set to YES to add extra items for group members to | ||
1273 | # the table of contents of the HTML help documentation and to the tree view. | ||
1274 | # The default value is: NO. | ||
1275 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | ||
1276 | |||
1277 | TOC_EXPAND = NO | ||
1278 | |||
1279 | # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and | ||
1280 | # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that | ||
1281 | # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help | ||
1282 | # (.qch) of the generated HTML documentation. | ||
1283 | # The default value is: NO. | ||
1284 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1285 | |||
1286 | GENERATE_QHP = NO | ||
1287 | |||
1288 | # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify | ||
1289 | # the file name of the resulting .qch file. The path specified is relative to | ||
1290 | # the HTML output folder. | ||
1291 | # This tag requires that the tag GENERATE_QHP is set to YES. | ||
1292 | |||
1293 | QCH_FILE = | ||
1294 | |||
1295 | # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help | ||
1296 | # Project output. For more information please see Qt Help Project / Namespace | ||
1297 | # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). | ||
1298 | # The default value is: org.doxygen.Project. | ||
1299 | # This tag requires that the tag GENERATE_QHP is set to YES. | ||
1300 | |||
1301 | QHP_NAMESPACE = org.doxygen.Project | ||
1302 | |||
1303 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt | ||
1304 | # Help Project output. For more information please see Qt Help Project / Virtual | ||
1305 | # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- | ||
1306 | # folders). | ||
1307 | # The default value is: doc. | ||
1308 | # This tag requires that the tag GENERATE_QHP is set to YES. | ||
1309 | |||
1310 | QHP_VIRTUAL_FOLDER = doc | ||
1311 | |||
1312 | # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom | ||
1313 | # filter to add. For more information please see Qt Help Project / Custom | ||
1314 | # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- | ||
1315 | # filters). | ||
1316 | # This tag requires that the tag GENERATE_QHP is set to YES. | ||
1317 | |||
1318 | QHP_CUST_FILTER_NAME = | ||
1319 | |||
1320 | # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the | ||
1321 | # custom filter to add. For more information please see Qt Help Project / Custom | ||
1322 | # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- | ||
1323 | # filters). | ||
1324 | # This tag requires that the tag GENERATE_QHP is set to YES. | ||
1325 | |||
1326 | QHP_CUST_FILTER_ATTRS = | ||
1327 | |||
1328 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this | ||
1329 | # project's filter section matches. Qt Help Project / Filter Attributes (see: | ||
1330 | # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). | ||
1331 | # This tag requires that the tag GENERATE_QHP is set to YES. | ||
1332 | |||
1333 | QHP_SECT_FILTER_ATTRS = | ||
1334 | |||
1335 | # The QHG_LOCATION tag can be used to specify the location of Qt's | ||
1336 | # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the | ||
1337 | # generated .qhp file. | ||
1338 | # This tag requires that the tag GENERATE_QHP is set to YES. | ||
1339 | |||
1340 | QHG_LOCATION = | ||
1341 | |||
1342 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be | ||
1343 | # generated, together with the HTML files, they form an Eclipse help plugin. To | ||
1344 | # install this plugin and make it available under the help contents menu in | ||
1345 | # Eclipse, the contents of the directory containing the HTML and XML files needs | ||
1346 | # to be copied into the plugins directory of eclipse. The name of the directory | ||
1347 | # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. | ||
1348 | # After copying Eclipse needs to be restarted before the help appears. | ||
1349 | # The default value is: NO. | ||
1350 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1351 | |||
1352 | GENERATE_ECLIPSEHELP = NO | ||
1353 | |||
1354 | # A unique identifier for the Eclipse help plugin. When installing the plugin | ||
1355 | # the directory name containing the HTML and XML files should also have this | ||
1356 | # name. Each documentation set should have its own identifier. | ||
1357 | # The default value is: org.doxygen.Project. | ||
1358 | # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. | ||
1359 | |||
1360 | ECLIPSE_DOC_ID = org.doxygen.Project | ||
1361 | |||
1362 | # If you want full control over the layout of the generated HTML pages it might | ||
1363 | # be necessary to disable the index and replace it with your own. The | ||
1364 | # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top | ||
1365 | # of each HTML page. A value of NO enables the index and the value YES disables | ||
1366 | # it. Since the tabs in the index contain the same information as the navigation | ||
1367 | # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. | ||
1368 | # The default value is: NO. | ||
1369 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1370 | |||
1371 | DISABLE_INDEX = NO | ||
1372 | |||
1373 | # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index | ||
1374 | # structure should be generated to display hierarchical information. If the tag | ||
1375 | # value is set to YES, a side panel will be generated containing a tree-like | ||
1376 | # index structure (just like the one that is generated for HTML Help). For this | ||
1377 | # to work a browser that supports JavaScript, DHTML, CSS and frames is required | ||
1378 | # (i.e. any modern browser). Windows users are probably better off using the | ||
1379 | # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can | ||
1380 | # further fine-tune the look of the index. As an example, the default style | ||
1381 | # sheet generated by doxygen has an example that shows how to put an image at | ||
1382 | # the root of the tree instead of the PROJECT_NAME. Since the tree basically has | ||
1383 | # the same information as the tab index, you could consider setting | ||
1384 | # DISABLE_INDEX to YES when enabling this option. | ||
1385 | # The default value is: NO. | ||
1386 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1387 | |||
1388 | GENERATE_TREEVIEW = YES | ||
1389 | |||
1390 | # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that | ||
1391 | # doxygen will group on one line in the generated HTML documentation. | ||
1392 | # | ||
1393 | # Note that a value of 0 will completely suppress the enum values from appearing | ||
1394 | # in the overview section. | ||
1395 | # Minimum value: 0, maximum value: 20, default value: 4. | ||
1396 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1397 | |||
1398 | ENUM_VALUES_PER_LINE = 4 | ||
1399 | |||
1400 | # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used | ||
1401 | # to set the initial width (in pixels) of the frame in which the tree is shown. | ||
1402 | # Minimum value: 0, maximum value: 1500, default value: 250. | ||
1403 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1404 | |||
1405 | TREEVIEW_WIDTH = 250 | ||
1406 | |||
1407 | # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to | ||
1408 | # external symbols imported via tag files in a separate window. | ||
1409 | # The default value is: NO. | ||
1410 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1411 | |||
1412 | EXT_LINKS_IN_WINDOW = NO | ||
1413 | |||
1414 | # Use this tag to change the font size of LaTeX formulas included as images in | ||
1415 | # the HTML documentation. When you change the font size after a successful | ||
1416 | # doxygen run you need to manually remove any form_*.png images from the HTML | ||
1417 | # output directory to force them to be regenerated. | ||
1418 | # Minimum value: 8, maximum value: 50, default value: 10. | ||
1419 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1420 | |||
1421 | FORMULA_FONTSIZE = 10 | ||
1422 | |||
1423 | # Use the FORMULA_TRANPARENT tag to determine whether or not the images | ||
1424 | # generated for formulas are transparent PNGs. Transparent PNGs are not | ||
1425 | # supported properly for IE 6.0, but are supported on all modern browsers. | ||
1426 | # | ||
1427 | # Note that when changing this option you need to delete any form_*.png files in | ||
1428 | # the HTML output directory before the changes have effect. | ||
1429 | # The default value is: YES. | ||
1430 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1431 | |||
1432 | FORMULA_TRANSPARENT = YES | ||
1433 | |||
1434 | # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see | ||
1435 | # http://www.mathjax.org) which uses client side Javascript for the rendering | ||
1436 | # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX | ||
1437 | # installed or if you want to formulas look prettier in the HTML output. When | ||
1438 | # enabled you may also need to install MathJax separately and configure the path | ||
1439 | # to it using the MATHJAX_RELPATH option. | ||
1440 | # The default value is: NO. | ||
1441 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1442 | |||
1443 | USE_MATHJAX = NO | ||
1444 | |||
1445 | # When MathJax is enabled you can set the default output format to be used for | ||
1446 | # the MathJax output. See the MathJax site (see: | ||
1447 | # http://docs.mathjax.org/en/latest/output.html) for more details. | ||
1448 | # Possible values are: HTML-CSS (which is slower, but has the best | ||
1449 | # compatibility), NativeMML (i.e. MathML) and SVG. | ||
1450 | # The default value is: HTML-CSS. | ||
1451 | # This tag requires that the tag USE_MATHJAX is set to YES. | ||
1452 | |||
1453 | MATHJAX_FORMAT = HTML-CSS | ||
1454 | |||
1455 | # When MathJax is enabled you need to specify the location relative to the HTML | ||
1456 | # output directory using the MATHJAX_RELPATH option. The destination directory | ||
1457 | # should contain the MathJax.js script. For instance, if the mathjax directory | ||
1458 | # is located at the same level as the HTML output directory, then | ||
1459 | # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax | ||
1460 | # Content Delivery Network so you can quickly see the result without installing | ||
1461 | # MathJax. However, it is strongly recommended to install a local copy of | ||
1462 | # MathJax from http://www.mathjax.org before deployment. | ||
1463 | # The default value is: http://cdn.mathjax.org/mathjax/latest. | ||
1464 | # This tag requires that the tag USE_MATHJAX is set to YES. | ||
1465 | |||
1466 | MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest | ||
1467 | |||
1468 | # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax | ||
1469 | # extension names that should be enabled during MathJax rendering. For example | ||
1470 | # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols | ||
1471 | # This tag requires that the tag USE_MATHJAX is set to YES. | ||
1472 | |||
1473 | MATHJAX_EXTENSIONS = | ||
1474 | |||
1475 | # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces | ||
1476 | # of code that will be used on startup of the MathJax code. See the MathJax site | ||
1477 | # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an | ||
1478 | # example see the documentation. | ||
1479 | # This tag requires that the tag USE_MATHJAX is set to YES. | ||
1480 | |||
1481 | MATHJAX_CODEFILE = | ||
1482 | |||
1483 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box for | ||
1484 | # the HTML output. The underlying search engine uses javascript and DHTML and | ||
1485 | # should work on any modern browser. Note that when using HTML help | ||
1486 | # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) | ||
1487 | # there is already a search function so this one should typically be disabled. | ||
1488 | # For large projects the javascript based search engine can be slow, then | ||
1489 | # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to | ||
1490 | # search using the keyboard; to jump to the search box use <access key> + S | ||
1491 | # (what the <access key> is depends on the OS and browser, but it is typically | ||
1492 | # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down | ||
1493 | # key> to jump into the search results window, the results can be navigated | ||
1494 | # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel | ||
1495 | # the search. The filter options can be selected when the cursor is inside the | ||
1496 | # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> | ||
1497 | # to select a filter and <Enter> or <escape> to activate or cancel the filter | ||
1498 | # option. | ||
1499 | # The default value is: YES. | ||
1500 | # This tag requires that the tag GENERATE_HTML is set to YES. | ||
1501 | |||
1502 | SEARCHENGINE = YES | ||
1503 | |||
1504 | # When the SERVER_BASED_SEARCH tag is enabled the search engine will be | ||
1505 | # implemented using a web server instead of a web client using Javascript. There | ||
1506 | # are two flavors of web server based searching depending on the EXTERNAL_SEARCH | ||
1507 | # setting. When disabled, doxygen will generate a PHP script for searching and | ||
1508 | # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing | ||
1509 | # and searching needs to be provided by external tools. See the section | ||
1510 | # "External Indexing and Searching" for details. | ||
1511 | # The default value is: NO. | ||
1512 | # This tag requires that the tag SEARCHENGINE is set to YES. | ||
1513 | |||
1514 | SERVER_BASED_SEARCH = NO | ||
1515 | |||
1516 | # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP | ||
1517 | # script for searching. Instead the search results are written to an XML file | ||
1518 | # which needs to be processed by an external indexer. Doxygen will invoke an | ||
1519 | # external search engine pointed to by the SEARCHENGINE_URL option to obtain the | ||
1520 | # search results. | ||
1521 | # | ||
1522 | # Doxygen ships with an example indexer (doxyindexer) and search engine | ||
1523 | # (doxysearch.cgi) which are based on the open source search engine library | ||
1524 | # Xapian (see: http://xapian.org/). | ||
1525 | # | ||
1526 | # See the section "External Indexing and Searching" for details. | ||
1527 | # The default value is: NO. | ||
1528 | # This tag requires that the tag SEARCHENGINE is set to YES. | ||
1529 | |||
1530 | EXTERNAL_SEARCH = NO | ||
1531 | |||
1532 | # The SEARCHENGINE_URL should point to a search engine hosted by a web server | ||
1533 | # which will return the search results when EXTERNAL_SEARCH is enabled. | ||
1534 | # | ||
1535 | # Doxygen ships with an example indexer (doxyindexer) and search engine | ||
1536 | # (doxysearch.cgi) which are based on the open source search engine library | ||
1537 | # Xapian (see: http://xapian.org/). See the section "External Indexing and | ||
1538 | # Searching" for details. | ||
1539 | # This tag requires that the tag SEARCHENGINE is set to YES. | ||
1540 | |||
1541 | SEARCHENGINE_URL = | ||
1542 | |||
1543 | # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed | ||
1544 | # search data is written to a file for indexing by an external tool. With the | ||
1545 | # SEARCHDATA_FILE tag the name of this file can be specified. | ||
1546 | # The default file is: searchdata.xml. | ||
1547 | # This tag requires that the tag SEARCHENGINE is set to YES. | ||
1548 | |||
1549 | SEARCHDATA_FILE = searchdata.xml | ||
1550 | |||
1551 | # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the | ||
1552 | # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is | ||
1553 | # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple | ||
1554 | # projects and redirect the results back to the right project. | ||
1555 | # This tag requires that the tag SEARCHENGINE is set to YES. | ||
1556 | |||
1557 | EXTERNAL_SEARCH_ID = | ||
1558 | |||
1559 | # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen | ||
1560 | # projects other than the one defined by this configuration file, but that are | ||
1561 | # all added to the same external search index. Each project needs to have a | ||
1562 | # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of | ||
1563 | # to a relative location where the documentation can be found. The format is: | ||
1564 | # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... | ||
1565 | # This tag requires that the tag SEARCHENGINE is set to YES. | ||
1566 | |||
1567 | EXTRA_SEARCH_MAPPINGS = | ||
1568 | |||
1569 | #--------------------------------------------------------------------------- | ||
1570 | # Configuration options related to the LaTeX output | ||
1571 | #--------------------------------------------------------------------------- | ||
1572 | |||
1573 | # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. | ||
1574 | # The default value is: YES. | ||
1575 | |||
1576 | GENERATE_LATEX = NO | ||
1577 | |||
1578 | # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a | ||
1579 | # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of | ||
1580 | # it. | ||
1581 | # The default directory is: latex. | ||
1582 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1583 | |||
1584 | LATEX_OUTPUT = latex | ||
1585 | |||
1586 | # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be | ||
1587 | # invoked. | ||
1588 | # | ||
1589 | # Note that when enabling USE_PDFLATEX this option is only used for generating | ||
1590 | # bitmaps for formulas in the HTML output, but not in the Makefile that is | ||
1591 | # written to the output directory. | ||
1592 | # The default file is: latex. | ||
1593 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1594 | |||
1595 | LATEX_CMD_NAME = latex | ||
1596 | |||
1597 | # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate | ||
1598 | # index for LaTeX. | ||
1599 | # The default file is: makeindex. | ||
1600 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1601 | |||
1602 | MAKEINDEX_CMD_NAME = makeindex | ||
1603 | |||
1604 | # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX | ||
1605 | # documents. This may be useful for small projects and may help to save some | ||
1606 | # trees in general. | ||
1607 | # The default value is: NO. | ||
1608 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1609 | |||
1610 | COMPACT_LATEX = NO | ||
1611 | |||
1612 | # The PAPER_TYPE tag can be used to set the paper type that is used by the | ||
1613 | # printer. | ||
1614 | # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x | ||
1615 | # 14 inches) and executive (7.25 x 10.5 inches). | ||
1616 | # The default value is: a4. | ||
1617 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1618 | |||
1619 | PAPER_TYPE = a4 | ||
1620 | |||
1621 | # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names | ||
1622 | # that should be included in the LaTeX output. To get the times font for | ||
1623 | # instance you can specify | ||
1624 | # EXTRA_PACKAGES=times | ||
1625 | # If left blank no extra packages will be included. | ||
1626 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1627 | |||
1628 | EXTRA_PACKAGES = | ||
1629 | |||
1630 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the | ||
1631 | # generated LaTeX document. The header should contain everything until the first | ||
1632 | # chapter. If it is left blank doxygen will generate a standard header. See | ||
1633 | # section "Doxygen usage" for information on how to let doxygen write the | ||
1634 | # default header to a separate file. | ||
1635 | # | ||
1636 | # Note: Only use a user-defined header if you know what you are doing! The | ||
1637 | # following commands have a special meaning inside the header: $title, | ||
1638 | # $datetime, $date, $doxygenversion, $projectname, $projectnumber, | ||
1639 | # $projectbrief, $projectlogo. Doxygen will replace $title with the empty | ||
1640 | # string, for the replacement values of the other commands the user is referred | ||
1641 | # to HTML_HEADER. | ||
1642 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1643 | |||
1644 | LATEX_HEADER = | ||
1645 | |||
1646 | # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the | ||
1647 | # generated LaTeX document. The footer should contain everything after the last | ||
1648 | # chapter. If it is left blank doxygen will generate a standard footer. See | ||
1649 | # LATEX_HEADER for more information on how to generate a default footer and what | ||
1650 | # special commands can be used inside the footer. | ||
1651 | # | ||
1652 | # Note: Only use a user-defined footer if you know what you are doing! | ||
1653 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1654 | |||
1655 | LATEX_FOOTER = | ||
1656 | |||
1657 | # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined | ||
1658 | # LaTeX style sheets that are included after the standard style sheets created | ||
1659 | # by doxygen. Using this option one can overrule certain style aspects. Doxygen | ||
1660 | # will copy the style sheet files to the output directory. | ||
1661 | # Note: The order of the extra style sheet files is of importance (e.g. the last | ||
1662 | # style sheet in the list overrules the setting of the previous ones in the | ||
1663 | # list). | ||
1664 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1665 | |||
1666 | LATEX_EXTRA_STYLESHEET = | ||
1667 | |||
1668 | # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or | ||
1669 | # other source files which should be copied to the LATEX_OUTPUT output | ||
1670 | # directory. Note that the files will be copied as-is; there are no commands or | ||
1671 | # markers available. | ||
1672 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1673 | |||
1674 | LATEX_EXTRA_FILES = | ||
1675 | |||
1676 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is | ||
1677 | # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will | ||
1678 | # contain links (just like the HTML output) instead of page references. This | ||
1679 | # makes the output suitable for online browsing using a PDF viewer. | ||
1680 | # The default value is: YES. | ||
1681 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1682 | |||
1683 | PDF_HYPERLINKS = YES | ||
1684 | |||
1685 | # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate | ||
1686 | # the PDF file directly from the LaTeX files. Set this option to YES, to get a | ||
1687 | # higher quality PDF documentation. | ||
1688 | # The default value is: YES. | ||
1689 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1690 | |||
1691 | USE_PDFLATEX = YES | ||
1692 | |||
1693 | # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode | ||
1694 | # command to the generated LaTeX files. This will instruct LaTeX to keep running | ||
1695 | # if errors occur, instead of asking the user for help. This option is also used | ||
1696 | # when generating formulas in HTML. | ||
1697 | # The default value is: NO. | ||
1698 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1699 | |||
1700 | LATEX_BATCHMODE = NO | ||
1701 | |||
1702 | # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the | ||
1703 | # index chapters (such as File Index, Compound Index, etc.) in the output. | ||
1704 | # The default value is: NO. | ||
1705 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1706 | |||
1707 | LATEX_HIDE_INDICES = NO | ||
1708 | |||
1709 | # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source | ||
1710 | # code with syntax highlighting in the LaTeX output. | ||
1711 | # | ||
1712 | # Note that which sources are shown also depends on other settings such as | ||
1713 | # SOURCE_BROWSER. | ||
1714 | # The default value is: NO. | ||
1715 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1716 | |||
1717 | LATEX_SOURCE_CODE = NO | ||
1718 | |||
1719 | # The LATEX_BIB_STYLE tag can be used to specify the style to use for the | ||
1720 | # bibliography, e.g. plainnat, or ieeetr. See | ||
1721 | # http://en.wikipedia.org/wiki/BibTeX and \cite for more info. | ||
1722 | # The default value is: plain. | ||
1723 | # This tag requires that the tag GENERATE_LATEX is set to YES. | ||
1724 | |||
1725 | LATEX_BIB_STYLE = plain | ||
1726 | |||
1727 | #--------------------------------------------------------------------------- | ||
1728 | # Configuration options related to the RTF output | ||
1729 | #--------------------------------------------------------------------------- | ||
1730 | |||
1731 | # If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The | ||
1732 | # RTF output is optimized for Word 97 and may not look too pretty with other RTF | ||
1733 | # readers/editors. | ||
1734 | # The default value is: NO. | ||
1735 | |||
1736 | GENERATE_RTF = NO | ||
1737 | |||
1738 | # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a | ||
1739 | # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of | ||
1740 | # it. | ||
1741 | # The default directory is: rtf. | ||
1742 | # This tag requires that the tag GENERATE_RTF is set to YES. | ||
1743 | |||
1744 | RTF_OUTPUT = rtf | ||
1745 | |||
1746 | # If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF | ||
1747 | # documents. This may be useful for small projects and may help to save some | ||
1748 | # trees in general. | ||
1749 | # The default value is: NO. | ||
1750 | # This tag requires that the tag GENERATE_RTF is set to YES. | ||
1751 | |||
1752 | COMPACT_RTF = NO | ||
1753 | |||
1754 | # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will | ||
1755 | # contain hyperlink fields. The RTF file will contain links (just like the HTML | ||
1756 | # output) instead of page references. This makes the output suitable for online | ||
1757 | # browsing using Word or some other Word compatible readers that support those | ||
1758 | # fields. | ||
1759 | # | ||
1760 | # Note: WordPad (write) and others do not support links. | ||
1761 | # The default value is: NO. | ||
1762 | # This tag requires that the tag GENERATE_RTF is set to YES. | ||
1763 | |||
1764 | RTF_HYPERLINKS = NO | ||
1765 | |||
1766 | # Load stylesheet definitions from file. Syntax is similar to doxygen's config | ||
1767 | # file, i.e. a series of assignments. You only have to provide replacements, | ||
1768 | # missing definitions are set to their default value. | ||
1769 | # | ||
1770 | # See also section "Doxygen usage" for information on how to generate the | ||
1771 | # default style sheet that doxygen normally uses. | ||
1772 | # This tag requires that the tag GENERATE_RTF is set to YES. | ||
1773 | |||
1774 | RTF_STYLESHEET_FILE = | ||
1775 | |||
1776 | # Set optional variables used in the generation of an RTF document. Syntax is | ||
1777 | # similar to doxygen's config file. A template extensions file can be generated | ||
1778 | # using doxygen -e rtf extensionFile. | ||
1779 | # This tag requires that the tag GENERATE_RTF is set to YES. | ||
1780 | |||
1781 | RTF_EXTENSIONS_FILE = | ||
1782 | |||
1783 | # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code | ||
1784 | # with syntax highlighting in the RTF output. | ||
1785 | # | ||
1786 | # Note that which sources are shown also depends on other settings such as | ||
1787 | # SOURCE_BROWSER. | ||
1788 | # The default value is: NO. | ||
1789 | # This tag requires that the tag GENERATE_RTF is set to YES. | ||
1790 | |||
1791 | RTF_SOURCE_CODE = NO | ||
1792 | |||
1793 | #--------------------------------------------------------------------------- | ||
1794 | # Configuration options related to the man page output | ||
1795 | #--------------------------------------------------------------------------- | ||
1796 | |||
1797 | # If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for | ||
1798 | # classes and files. | ||
1799 | # The default value is: NO. | ||
1800 | |||
1801 | GENERATE_MAN = NO | ||
1802 | |||
1803 | # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a | ||
1804 | # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of | ||
1805 | # it. A directory man3 will be created inside the directory specified by | ||
1806 | # MAN_OUTPUT. | ||
1807 | # The default directory is: man. | ||
1808 | # This tag requires that the tag GENERATE_MAN is set to YES. | ||
1809 | |||
1810 | MAN_OUTPUT = man | ||
1811 | |||
1812 | # The MAN_EXTENSION tag determines the extension that is added to the generated | ||
1813 | # man pages. In case the manual section does not start with a number, the number | ||
1814 | # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is | ||
1815 | # optional. | ||
1816 | # The default value is: .3. | ||
1817 | # This tag requires that the tag GENERATE_MAN is set to YES. | ||
1818 | |||
1819 | MAN_EXTENSION = .3 | ||
1820 | |||
1821 | # The MAN_SUBDIR tag determines the name of the directory created within | ||
1822 | # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by | ||
1823 | # MAN_EXTENSION with the initial . removed. | ||
1824 | # This tag requires that the tag GENERATE_MAN is set to YES. | ||
1825 | |||
1826 | MAN_SUBDIR = | ||
1827 | |||
1828 | # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it | ||
1829 | # will generate one additional man file for each entity documented in the real | ||
1830 | # man page(s). These additional files only source the real man page, but without | ||
1831 | # them the man command would be unable to find the correct page. | ||
1832 | # The default value is: NO. | ||
1833 | # This tag requires that the tag GENERATE_MAN is set to YES. | ||
1834 | |||
1835 | MAN_LINKS = NO | ||
1836 | |||
1837 | #--------------------------------------------------------------------------- | ||
1838 | # Configuration options related to the XML output | ||
1839 | #--------------------------------------------------------------------------- | ||
1840 | |||
1841 | # If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that | ||
1842 | # captures the structure of the code including all documentation. | ||
1843 | # The default value is: NO. | ||
1844 | |||
1845 | GENERATE_XML = NO | ||
1846 | |||
1847 | # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a | ||
1848 | # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of | ||
1849 | # it. | ||
1850 | # The default directory is: xml. | ||
1851 | # This tag requires that the tag GENERATE_XML is set to YES. | ||
1852 | |||
1853 | XML_OUTPUT = xml | ||
1854 | |||
1855 | # If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program | ||
1856 | # listings (including syntax highlighting and cross-referencing information) to | ||
1857 | # the XML output. Note that enabling this will significantly increase the size | ||
1858 | # of the XML output. | ||
1859 | # The default value is: YES. | ||
1860 | # This tag requires that the tag GENERATE_XML is set to YES. | ||
1861 | |||
1862 | XML_PROGRAMLISTING = YES | ||
1863 | |||
1864 | #--------------------------------------------------------------------------- | ||
1865 | # Configuration options related to the DOCBOOK output | ||
1866 | #--------------------------------------------------------------------------- | ||
1867 | |||
1868 | # If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files | ||
1869 | # that can be used to generate PDF. | ||
1870 | # The default value is: NO. | ||
1871 | |||
1872 | GENERATE_DOCBOOK = NO | ||
1873 | |||
1874 | # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. | ||
1875 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in | ||
1876 | # front of it. | ||
1877 | # The default directory is: docbook. | ||
1878 | # This tag requires that the tag GENERATE_DOCBOOK is set to YES. | ||
1879 | |||
1880 | DOCBOOK_OUTPUT = docbook | ||
1881 | |||
1882 | # If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the | ||
1883 | # program listings (including syntax highlighting and cross-referencing | ||
1884 | # information) to the DOCBOOK output. Note that enabling this will significantly | ||
1885 | # increase the size of the DOCBOOK output. | ||
1886 | # The default value is: NO. | ||
1887 | # This tag requires that the tag GENERATE_DOCBOOK is set to YES. | ||
1888 | |||
1889 | DOCBOOK_PROGRAMLISTING = NO | ||
1890 | |||
1891 | #--------------------------------------------------------------------------- | ||
1892 | # Configuration options for the AutoGen Definitions output | ||
1893 | #--------------------------------------------------------------------------- | ||
1894 | |||
1895 | # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an | ||
1896 | # AutoGen Definitions (see http://autogen.sf.net) file that captures the | ||
1897 | # structure of the code including all documentation. Note that this feature is | ||
1898 | # still experimental and incomplete at the moment. | ||
1899 | # The default value is: NO. | ||
1900 | |||
1901 | GENERATE_AUTOGEN_DEF = NO | ||
1902 | |||
1903 | #--------------------------------------------------------------------------- | ||
1904 | # Configuration options related to the Perl module output | ||
1905 | #--------------------------------------------------------------------------- | ||
1906 | |||
1907 | # If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module | ||
1908 | # file that captures the structure of the code including all documentation. | ||
1909 | # | ||
1910 | # Note that this feature is still experimental and incomplete at the moment. | ||
1911 | # The default value is: NO. | ||
1912 | |||
1913 | GENERATE_PERLMOD = NO | ||
1914 | |||
1915 | # If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary | ||
1916 | # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI | ||
1917 | # output from the Perl module output. | ||
1918 | # The default value is: NO. | ||
1919 | # This tag requires that the tag GENERATE_PERLMOD is set to YES. | ||
1920 | |||
1921 | PERLMOD_LATEX = NO | ||
1922 | |||
1923 | # If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely | ||
1924 | # formatted so it can be parsed by a human reader. This is useful if you want to | ||
1925 | # understand what is going on. On the other hand, if this tag is set to NO, the | ||
1926 | # size of the Perl module output will be much smaller and Perl will parse it | ||
1927 | # just the same. | ||
1928 | # The default value is: YES. | ||
1929 | # This tag requires that the tag GENERATE_PERLMOD is set to YES. | ||
1930 | |||
1931 | PERLMOD_PRETTY = YES | ||
1932 | |||
1933 | # The names of the make variables in the generated doxyrules.make file are | ||
1934 | # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful | ||
1935 | # so different doxyrules.make files included by the same Makefile don't | ||
1936 | # overwrite each other's variables. | ||
1937 | # This tag requires that the tag GENERATE_PERLMOD is set to YES. | ||
1938 | |||
1939 | PERLMOD_MAKEVAR_PREFIX = | ||
1940 | |||
1941 | #--------------------------------------------------------------------------- | ||
1942 | # Configuration options related to the preprocessor | ||
1943 | #--------------------------------------------------------------------------- | ||
1944 | |||
1945 | # If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all | ||
1946 | # C-preprocessor directives found in the sources and include files. | ||
1947 | # The default value is: YES. | ||
1948 | |||
1949 | ENABLE_PREPROCESSING = YES | ||
1950 | |||
1951 | # If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names | ||
1952 | # in the source code. If set to NO, only conditional compilation will be | ||
1953 | # performed. Macro expansion can be done in a controlled way by setting | ||
1954 | # EXPAND_ONLY_PREDEF to YES. | ||
1955 | # The default value is: NO. | ||
1956 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | ||
1957 | |||
1958 | MACRO_EXPANSION = NO | ||
1959 | |||
1960 | # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then | ||
1961 | # the macro expansion is limited to the macros specified with the PREDEFINED and | ||
1962 | # EXPAND_AS_DEFINED tags. | ||
1963 | # The default value is: NO. | ||
1964 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | ||
1965 | |||
1966 | EXPAND_ONLY_PREDEF = NO | ||
1967 | |||
1968 | # If the SEARCH_INCLUDES tag is set to YES, the include files in the | ||
1969 | # INCLUDE_PATH will be searched if a #include is found. | ||
1970 | # The default value is: YES. | ||
1971 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | ||
1972 | |||
1973 | SEARCH_INCLUDES = YES | ||
1974 | |||
1975 | # The INCLUDE_PATH tag can be used to specify one or more directories that | ||
1976 | # contain include files that are not input files but should be processed by the | ||
1977 | # preprocessor. | ||
1978 | # This tag requires that the tag SEARCH_INCLUDES is set to YES. | ||
1979 | |||
1980 | INCLUDE_PATH = | ||
1981 | |||
1982 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard | ||
1983 | # patterns (like *.h and *.hpp) to filter out the header-files in the | ||
1984 | # directories. If left blank, the patterns specified with FILE_PATTERNS will be | ||
1985 | # used. | ||
1986 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | ||
1987 | |||
1988 | INCLUDE_FILE_PATTERNS = | ||
1989 | |||
1990 | # The PREDEFINED tag can be used to specify one or more macro names that are | ||
1991 | # defined before the preprocessor is started (similar to the -D option of e.g. | ||
1992 | # gcc). The argument of the tag is a list of macros of the form: name or | ||
1993 | # name=definition (no spaces). If the definition and the "=" are omitted, "=1" | ||
1994 | # is assumed. To prevent a macro definition from being undefined via #undef or | ||
1995 | # recursively expanded use the := operator instead of the = operator. | ||
1996 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | ||
1997 | |||
1998 | PREDEFINED = | ||
1999 | |||
2000 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this | ||
2001 | # tag can be used to specify a list of macro names that should be expanded. The | ||
2002 | # macro definition that is found in the sources will be used. Use the PREDEFINED | ||
2003 | # tag if you want to use a different macro definition that overrules the | ||
2004 | # definition found in the source code. | ||
2005 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | ||
2006 | |||
2007 | EXPAND_AS_DEFINED = | ||
2008 | |||
2009 | # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will | ||
2010 | # remove all references to function-like macros that are alone on a line, have | ||
2011 | # an all uppercase name, and do not end with a semicolon. Such function macros | ||
2012 | # are typically used for boiler-plate code, and will confuse the parser if not | ||
2013 | # removed. | ||
2014 | # The default value is: YES. | ||
2015 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | ||
2016 | |||
2017 | SKIP_FUNCTION_MACROS = NO | ||
2018 | |||
2019 | #--------------------------------------------------------------------------- | ||
2020 | # Configuration options related to external references | ||
2021 | #--------------------------------------------------------------------------- | ||
2022 | |||
2023 | # The TAGFILES tag can be used to specify one or more tag files. For each tag | ||
2024 | # file the location of the external documentation should be added. The format of | ||
2025 | # a tag file without this location is as follows: | ||
2026 | # TAGFILES = file1 file2 ... | ||
2027 | # Adding location for the tag files is done as follows: | ||
2028 | # TAGFILES = file1=loc1 "file2 = loc2" ... | ||
2029 | # where loc1 and loc2 can be relative or absolute paths or URLs. See the | ||
2030 | # section "Linking to external documentation" for more information about the use | ||
2031 | # of tag files. | ||
2032 | # Note: Each tag file must have a unique name (where the name does NOT include | ||
2033 | # the path). If a tag file is not located in the directory in which doxygen is | ||
2034 | # run, you must also specify the path to the tagfile here. | ||
2035 | |||
2036 | TAGFILES = | ||
2037 | |||
2038 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create a | ||
2039 | # tag file that is based on the input files it reads. See section "Linking to | ||
2040 | # external documentation" for more information about the usage of tag files. | ||
2041 | |||
2042 | GENERATE_TAGFILE = | ||
2043 | |||
2044 | # If the ALLEXTERNALS tag is set to YES, all external class will be listed in | ||
2045 | # the class index. If set to NO, only the inherited external classes will be | ||
2046 | # listed. | ||
2047 | # The default value is: NO. | ||
2048 | |||
2049 | ALLEXTERNALS = NO | ||
2050 | |||
2051 | # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed | ||
2052 | # in the modules index. If set to NO, only the current project's groups will be | ||
2053 | # listed. | ||
2054 | # The default value is: YES. | ||
2055 | |||
2056 | EXTERNAL_GROUPS = YES | ||
2057 | |||
2058 | # If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in | ||
2059 | # the related pages index. If set to NO, only the current project's pages will | ||
2060 | # be listed. | ||
2061 | # The default value is: YES. | ||
2062 | |||
2063 | EXTERNAL_PAGES = YES | ||
2064 | |||
2065 | # The PERL_PATH should be the absolute path and name of the perl script | ||
2066 | # interpreter (i.e. the result of 'which perl'). | ||
2067 | # The default file (with absolute path) is: /usr/bin/perl. | ||
2068 | |||
2069 | PERL_PATH = /usr/bin/perl | ||
2070 | |||
2071 | #--------------------------------------------------------------------------- | ||
2072 | # Configuration options related to the dot tool | ||
2073 | #--------------------------------------------------------------------------- | ||
2074 | |||
2075 | # If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram | ||
2076 | # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to | ||
2077 | # NO turns the diagrams off. Note that this option also works with HAVE_DOT | ||
2078 | # disabled, but it is recommended to install and use dot, since it yields more | ||
2079 | # powerful graphs. | ||
2080 | # The default value is: YES. | ||
2081 | |||
2082 | CLASS_DIAGRAMS = NO | ||
2083 | |||
2084 | # You can define message sequence charts within doxygen comments using the \msc | ||
2085 | # command. Doxygen will then run the mscgen tool (see: | ||
2086 | # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the | ||
2087 | # documentation. The MSCGEN_PATH tag allows you to specify the directory where | ||
2088 | # the mscgen tool resides. If left empty the tool is assumed to be found in the | ||
2089 | # default search path. | ||
2090 | |||
2091 | MSCGEN_PATH = | ||
2092 | |||
2093 | # You can include diagrams made with dia in doxygen documentation. Doxygen will | ||
2094 | # then run dia to produce the diagram and insert it in the documentation. The | ||
2095 | # DIA_PATH tag allows you to specify the directory where the dia binary resides. | ||
2096 | # If left empty dia is assumed to be found in the default search path. | ||
2097 | |||
2098 | DIA_PATH = | ||
2099 | |||
2100 | # If set to YES the inheritance and collaboration graphs will hide inheritance | ||
2101 | # and usage relations if the target is undocumented or is not a class. | ||
2102 | # The default value is: YES. | ||
2103 | |||
2104 | HIDE_UNDOC_RELATIONS = YES | ||
2105 | |||
2106 | # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is | ||
2107 | # available from the path. This tool is part of Graphviz (see: | ||
2108 | # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent | ||
2109 | # Bell Labs. The other options in this section have no effect if this option is | ||
2110 | # set to NO | ||
2111 | # The default value is: NO. | ||
2112 | |||
2113 | HAVE_DOT = NO | ||
2114 | |||
2115 | # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed | ||
2116 | # to run in parallel. When set to 0 doxygen will base this on the number of | ||
2117 | # processors available in the system. You can set it explicitly to a value | ||
2118 | # larger than 0 to get control over the balance between CPU load and processing | ||
2119 | # speed. | ||
2120 | # Minimum value: 0, maximum value: 32, default value: 0. | ||
2121 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2122 | |||
2123 | DOT_NUM_THREADS = 0 | ||
2124 | |||
2125 | # When you want a differently looking font in the dot files that doxygen | ||
2126 | # generates you can specify the font name using DOT_FONTNAME. You need to make | ||
2127 | # sure dot is able to find the font, which can be done by putting it in a | ||
2128 | # standard location or by setting the DOTFONTPATH environment variable or by | ||
2129 | # setting DOT_FONTPATH to the directory containing the font. | ||
2130 | # The default value is: Helvetica. | ||
2131 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2132 | |||
2133 | DOT_FONTNAME = Helvetica | ||
2134 | |||
2135 | # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of | ||
2136 | # dot graphs. | ||
2137 | # Minimum value: 4, maximum value: 24, default value: 10. | ||
2138 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2139 | |||
2140 | DOT_FONTSIZE = 10 | ||
2141 | |||
2142 | # By default doxygen will tell dot to use the default font as specified with | ||
2143 | # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set | ||
2144 | # the path where dot can find it using this tag. | ||
2145 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2146 | |||
2147 | DOT_FONTPATH = | ||
2148 | |||
2149 | # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for | ||
2150 | # each documented class showing the direct and indirect inheritance relations. | ||
2151 | # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. | ||
2152 | # The default value is: YES. | ||
2153 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2154 | |||
2155 | CLASS_GRAPH = YES | ||
2156 | |||
2157 | # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a | ||
2158 | # graph for each documented class showing the direct and indirect implementation | ||
2159 | # dependencies (inheritance, containment, and class references variables) of the | ||
2160 | # class with other documented classes. | ||
2161 | # The default value is: YES. | ||
2162 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2163 | |||
2164 | COLLABORATION_GRAPH = YES | ||
2165 | |||
2166 | # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for | ||
2167 | # groups, showing the direct groups dependencies. | ||
2168 | # The default value is: YES. | ||
2169 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2170 | |||
2171 | GROUP_GRAPHS = YES | ||
2172 | |||
2173 | # If the UML_LOOK tag is set to YES, doxygen will generate inheritance and | ||
2174 | # collaboration diagrams in a style similar to the OMG's Unified Modeling | ||
2175 | # Language. | ||
2176 | # The default value is: NO. | ||
2177 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2178 | |||
2179 | UML_LOOK = NO | ||
2180 | |||
2181 | # If the UML_LOOK tag is enabled, the fields and methods are shown inside the | ||
2182 | # class node. If there are many fields or methods and many nodes the graph may | ||
2183 | # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the | ||
2184 | # number of items for each type to make the size more manageable. Set this to 0 | ||
2185 | # for no limit. Note that the threshold may be exceeded by 50% before the limit | ||
2186 | # is enforced. So when you set the threshold to 10, up to 15 fields may appear, | ||
2187 | # but if the number exceeds 15, the total amount of fields shown is limited to | ||
2188 | # 10. | ||
2189 | # Minimum value: 0, maximum value: 100, default value: 10. | ||
2190 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2191 | |||
2192 | UML_LIMIT_NUM_FIELDS = 10 | ||
2193 | |||
2194 | # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and | ||
2195 | # collaboration graphs will show the relations between templates and their | ||
2196 | # instances. | ||
2197 | # The default value is: NO. | ||
2198 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2199 | |||
2200 | TEMPLATE_RELATIONS = NO | ||
2201 | |||
2202 | # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to | ||
2203 | # YES then doxygen will generate a graph for each documented file showing the | ||
2204 | # direct and indirect include dependencies of the file with other documented | ||
2205 | # files. | ||
2206 | # The default value is: YES. | ||
2207 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2208 | |||
2209 | INCLUDE_GRAPH = YES | ||
2210 | |||
2211 | # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are | ||
2212 | # set to YES then doxygen will generate a graph for each documented file showing | ||
2213 | # the direct and indirect include dependencies of the file with other documented | ||
2214 | # files. | ||
2215 | # The default value is: YES. | ||
2216 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2217 | |||
2218 | INCLUDED_BY_GRAPH = YES | ||
2219 | |||
2220 | # If the CALL_GRAPH tag is set to YES then doxygen will generate a call | ||
2221 | # dependency graph for every global function or class method. | ||
2222 | # | ||
2223 | # Note that enabling this option will significantly increase the time of a run. | ||
2224 | # So in most cases it will be better to enable call graphs for selected | ||
2225 | # functions only using the \callgraph command. | ||
2226 | # The default value is: NO. | ||
2227 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2228 | |||
2229 | CALL_GRAPH = NO | ||
2230 | |||
2231 | # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller | ||
2232 | # dependency graph for every global function or class method. | ||
2233 | # | ||
2234 | # Note that enabling this option will significantly increase the time of a run. | ||
2235 | # So in most cases it will be better to enable caller graphs for selected | ||
2236 | # functions only using the \callergraph command. | ||
2237 | # The default value is: NO. | ||
2238 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2239 | |||
2240 | CALLER_GRAPH = NO | ||
2241 | |||
2242 | # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical | ||
2243 | # hierarchy of all classes instead of a textual one. | ||
2244 | # The default value is: YES. | ||
2245 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2246 | |||
2247 | GRAPHICAL_HIERARCHY = YES | ||
2248 | |||
2249 | # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the | ||
2250 | # dependencies a directory has on other directories in a graphical way. The | ||
2251 | # dependency relations are determined by the #include relations between the | ||
2252 | # files in the directories. | ||
2253 | # The default value is: YES. | ||
2254 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2255 | |||
2256 | DIRECTORY_GRAPH = YES | ||
2257 | |||
2258 | # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images | ||
2259 | # generated by dot. | ||
2260 | # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order | ||
2261 | # to make the SVG files visible in IE 9+ (other browsers do not have this | ||
2262 | # requirement). | ||
2263 | # Possible values are: png, jpg, gif and svg. | ||
2264 | # The default value is: png. | ||
2265 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2266 | |||
2267 | DOT_IMAGE_FORMAT = png | ||
2268 | |||
2269 | # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to | ||
2270 | # enable generation of interactive SVG images that allow zooming and panning. | ||
2271 | # | ||
2272 | # Note that this requires a modern browser other than Internet Explorer. Tested | ||
2273 | # and working are Firefox, Chrome, Safari, and Opera. | ||
2274 | # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make | ||
2275 | # the SVG files visible. Older versions of IE do not have SVG support. | ||
2276 | # The default value is: NO. | ||
2277 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2278 | |||
2279 | INTERACTIVE_SVG = NO | ||
2280 | |||
2281 | # The DOT_PATH tag can be used to specify the path where the dot tool can be | ||
2282 | # found. If left blank, it is assumed the dot tool can be found in the path. | ||
2283 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2284 | |||
2285 | DOT_PATH = | ||
2286 | |||
2287 | # The DOTFILE_DIRS tag can be used to specify one or more directories that | ||
2288 | # contain dot files that are included in the documentation (see the \dotfile | ||
2289 | # command). | ||
2290 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2291 | |||
2292 | DOTFILE_DIRS = | ||
2293 | |||
2294 | # The MSCFILE_DIRS tag can be used to specify one or more directories that | ||
2295 | # contain msc files that are included in the documentation (see the \mscfile | ||
2296 | # command). | ||
2297 | |||
2298 | MSCFILE_DIRS = | ||
2299 | |||
2300 | # The DIAFILE_DIRS tag can be used to specify one or more directories that | ||
2301 | # contain dia files that are included in the documentation (see the \diafile | ||
2302 | # command). | ||
2303 | |||
2304 | DIAFILE_DIRS = | ||
2305 | |||
2306 | # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the | ||
2307 | # path where java can find the plantuml.jar file. If left blank, it is assumed | ||
2308 | # PlantUML is not used or called during a preprocessing step. Doxygen will | ||
2309 | # generate a warning when it encounters a \startuml command in this case and | ||
2310 | # will not generate output for the diagram. | ||
2311 | |||
2312 | PLANTUML_JAR_PATH = | ||
2313 | |||
2314 | # When using plantuml, the specified paths are searched for files specified by | ||
2315 | # the !include statement in a plantuml block. | ||
2316 | |||
2317 | PLANTUML_INCLUDE_PATH = | ||
2318 | |||
2319 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes | ||
2320 | # that will be shown in the graph. If the number of nodes in a graph becomes | ||
2321 | # larger than this value, doxygen will truncate the graph, which is visualized | ||
2322 | # by representing a node as a red box. Note that doxygen if the number of direct | ||
2323 | # children of the root node in a graph is already larger than | ||
2324 | # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that | ||
2325 | # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. | ||
2326 | # Minimum value: 0, maximum value: 10000, default value: 50. | ||
2327 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2328 | |||
2329 | DOT_GRAPH_MAX_NODES = 50 | ||
2330 | |||
2331 | # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs | ||
2332 | # generated by dot. A depth value of 3 means that only nodes reachable from the | ||
2333 | # root by following a path via at most 3 edges will be shown. Nodes that lay | ||
2334 | # further from the root node will be omitted. Note that setting this option to 1 | ||
2335 | # or 2 may greatly reduce the computation time needed for large code bases. Also | ||
2336 | # note that the size of a graph can be further restricted by | ||
2337 | # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. | ||
2338 | # Minimum value: 0, maximum value: 1000, default value: 0. | ||
2339 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2340 | |||
2341 | MAX_DOT_GRAPH_DEPTH = 0 | ||
2342 | |||
2343 | # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent | ||
2344 | # background. This is disabled by default, because dot on Windows does not seem | ||
2345 | # to support this out of the box. | ||
2346 | # | ||
2347 | # Warning: Depending on the platform used, enabling this option may lead to | ||
2348 | # badly anti-aliased labels on the edges of a graph (i.e. they become hard to | ||
2349 | # read). | ||
2350 | # The default value is: NO. | ||
2351 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2352 | |||
2353 | DOT_TRANSPARENT = NO | ||
2354 | |||
2355 | # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output | ||
2356 | # files in one run (i.e. multiple -o and -T options on the command line). This | ||
2357 | # makes dot run faster, but since only newer versions of dot (>1.8.10) support | ||
2358 | # this, this feature is disabled by default. | ||
2359 | # The default value is: NO. | ||
2360 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2361 | |||
2362 | DOT_MULTI_TARGETS = NO | ||
2363 | |||
2364 | # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page | ||
2365 | # explaining the meaning of the various boxes and arrows in the dot generated | ||
2366 | # graphs. | ||
2367 | # The default value is: YES. | ||
2368 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2369 | |||
2370 | GENERATE_LEGEND = YES | ||
2371 | |||
2372 | # If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot | ||
2373 | # files that are used to generate the various graphs. | ||
2374 | # The default value is: YES. | ||
2375 | # This tag requires that the tag HAVE_DOT is set to YES. | ||
2376 | |||
2377 | DOT_CLEANUP = YES | ||
@@ -146,10 +146,9 @@ authors: | |||
146 | @git shortlog -sne > AUTHORS | 146 | @git shortlog -sne > AUTHORS |
147 | @rm .mailmap | 147 | @rm .mailmap |
148 | 148 | ||
149 | ### generate Doxygen documentation | 149 | ### generate phpDocumentor documentation |
150 | doxygen: clean | 150 | phpdoc: clean |
151 | @rm -rf doxygen | 151 | @docker run --rm -v $(PWD):/data -u `id -u`:`id -g` phpdoc/phpdoc |
152 | @doxygen Doxyfile | ||
153 | 152 | ||
154 | ### generate HTML documentation from Markdown pages with MkDocs | 153 | ### generate HTML documentation from Markdown pages with MkDocs |
155 | htmldoc: | 154 | htmldoc: |
@@ -9,10 +9,10 @@ _It is designed to be personal (single-user), fast and handy._ | |||
9 | [![](https://img.shields.io/badge/stable-v0.9.7-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7) | 9 | [![](https://img.shields.io/badge/stable-v0.9.7-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7) |
10 | [![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli) | 10 | [![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli) |
11 | • | 11 | • |
12 | [![](https://img.shields.io/badge/latest-v0.10.2-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.10.2) | 12 | [![](https://img.shields.io/badge/latest-v0.10.4-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.10.4) |
13 | [![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli) | 13 | [![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli) |
14 | • | 14 | • |
15 | [![](https://img.shields.io/badge/master-v0.10.x-blue.svg)](https://github.com/shaarli/Shaarli) | 15 | [![](https://img.shields.io/badge/master-v0.11.x-blue.svg)](https://github.com/shaarli/Shaarli) |
16 | [![](https://img.shields.io/travis/shaarli/Shaarli.svg?label=master)](https://travis-ci.org/shaarli/Shaarli) | 16 | [![](https://img.shields.io/travis/shaarli/Shaarli.svg?label=master)](https://travis-ci.org/shaarli/Shaarli) |
17 | 17 | ||
18 | [![Join the chat at https://gitter.im/shaarli/Shaarli](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/shaarli/Shaarli) | 18 | [![Join the chat at https://gitter.im/shaarli/Shaarli](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/shaarli/Shaarli) |
diff --git a/application/ApplicationUtils.php b/application/ApplicationUtils.php index a3b2dcb1..7fe3cb32 100644 --- a/application/ApplicationUtils.php +++ b/application/ApplicationUtils.php | |||
@@ -1,4 +1,9 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli; | ||
3 | |||
4 | use Exception; | ||
5 | use Shaarli\Config\ConfigManager; | ||
6 | |||
2 | /** | 7 | /** |
3 | * Shaarli (application) utilities | 8 | * Shaarli (application) utilities |
4 | */ | 9 | */ |
@@ -51,7 +56,7 @@ class ApplicationUtils | |||
51 | return false; | 56 | return false; |
52 | } | 57 | } |
53 | } else { | 58 | } else { |
54 | if (! is_file($remote)) { | 59 | if (!is_file($remote)) { |
55 | return false; | 60 | return false; |
56 | } | 61 | } |
57 | $data = file_get_contents($remote); | 62 | $data = file_get_contents($remote); |
@@ -97,7 +102,7 @@ class ApplicationUtils | |||
97 | // Do not check versions for visitors | 102 | // Do not check versions for visitors |
98 | // Do not check if the user doesn't want to | 103 | // Do not check if the user doesn't want to |
99 | // Do not check with dev version | 104 | // Do not check with dev version |
100 | if (! $isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') { | 105 | if (!$isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') { |
101 | return false; | 106 | return false; |
102 | } | 107 | } |
103 | 108 | ||
@@ -111,7 +116,7 @@ class ApplicationUtils | |||
111 | return false; | 116 | return false; |
112 | } | 117 | } |
113 | 118 | ||
114 | if (! in_array($branch, self::$GIT_BRANCHES)) { | 119 | if (!in_array($branch, self::$GIT_BRANCHES)) { |
115 | throw new Exception( | 120 | throw new Exception( |
116 | 'Invalid branch selected for updates: "' . $branch . '"' | 121 | 'Invalid branch selected for updates: "' . $branch . '"' |
117 | ); | 122 | ); |
@@ -123,7 +128,7 @@ class ApplicationUtils | |||
123 | self::$GIT_URL . '/' . $branch . '/' . self::$VERSION_FILE | 128 | self::$GIT_URL . '/' . $branch . '/' . self::$VERSION_FILE |
124 | ); | 129 | ); |
125 | 130 | ||
126 | if (! $latestVersion) { | 131 | if (!$latestVersion) { |
127 | // Only update the file's modification date | 132 | // Only update the file's modification date |
128 | file_put_contents($updateFile, $currentVersion); | 133 | file_put_contents($updateFile, $currentVersion); |
129 | return false; | 134 | return false; |
@@ -152,9 +157,9 @@ class ApplicationUtils | |||
152 | if (version_compare($curVersion, $minVersion) < 0) { | 157 | if (version_compare($curVersion, $minVersion) < 0) { |
153 | $msg = t( | 158 | $msg = t( |
154 | 'Your PHP version is obsolete!' | 159 | 'Your PHP version is obsolete!' |
155 | . ' Shaarli requires at least PHP %s, and thus cannot run.' | 160 | . ' Shaarli requires at least PHP %s, and thus cannot run.' |
156 | . ' Your PHP version has known security vulnerabilities and should be' | 161 | . ' Your PHP version has known security vulnerabilities and should be' |
157 | . ' updated as soon as possible.' | 162 | . ' updated as soon as possible.' |
158 | ); | 163 | ); |
159 | throw new Exception(sprintf($msg, $minVersion)); | 164 | throw new Exception(sprintf($msg, $minVersion)); |
160 | } | 165 | } |
@@ -174,50 +179,50 @@ class ApplicationUtils | |||
174 | 179 | ||
175 | // Check script and template directories are readable | 180 | // Check script and template directories are readable |
176 | foreach (array( | 181 | foreach (array( |
177 | 'application', | 182 | 'application', |
178 | 'inc', | 183 | 'inc', |
179 | 'plugins', | 184 | 'plugins', |
180 | $rainTplDir, | 185 | $rainTplDir, |
181 | $rainTplDir.'/'.$conf->get('resource.theme'), | 186 | $rainTplDir . '/' . $conf->get('resource.theme'), |
182 | ) as $path) { | 187 | ) as $path) { |
183 | if (! is_readable(realpath($path))) { | 188 | if (!is_readable(realpath($path))) { |
184 | $errors[] = '"'.$path.'" '. t('directory is not readable'); | 189 | $errors[] = '"' . $path . '" ' . t('directory is not readable'); |
185 | } | 190 | } |
186 | } | 191 | } |
187 | 192 | ||
188 | // Check cache and data directories are readable and writable | 193 | // Check cache and data directories are readable and writable |
189 | foreach (array( | 194 | foreach (array( |
190 | $conf->get('resource.thumbnails_cache'), | 195 | $conf->get('resource.thumbnails_cache'), |
191 | $conf->get('resource.data_dir'), | 196 | $conf->get('resource.data_dir'), |
192 | $conf->get('resource.page_cache'), | 197 | $conf->get('resource.page_cache'), |
193 | $conf->get('resource.raintpl_tmp'), | 198 | $conf->get('resource.raintpl_tmp'), |
194 | ) as $path) { | 199 | ) as $path) { |
195 | if (! is_readable(realpath($path))) { | 200 | if (!is_readable(realpath($path))) { |
196 | $errors[] = '"'.$path.'" '. t('directory is not readable'); | 201 | $errors[] = '"' . $path . '" ' . t('directory is not readable'); |
197 | } | 202 | } |
198 | if (! is_writable(realpath($path))) { | 203 | if (!is_writable(realpath($path))) { |
199 | $errors[] = '"'.$path.'" '. t('directory is not writable'); | 204 | $errors[] = '"' . $path . '" ' . t('directory is not writable'); |
200 | } | 205 | } |
201 | } | 206 | } |
202 | 207 | ||
203 | // Check configuration files are readable and writable | 208 | // Check configuration files are readable and writable |
204 | foreach (array( | 209 | foreach (array( |
205 | $conf->getConfigFileExt(), | 210 | $conf->getConfigFileExt(), |
206 | $conf->get('resource.datastore'), | 211 | $conf->get('resource.datastore'), |
207 | $conf->get('resource.ban_file'), | 212 | $conf->get('resource.ban_file'), |
208 | $conf->get('resource.log'), | 213 | $conf->get('resource.log'), |
209 | $conf->get('resource.update_check'), | 214 | $conf->get('resource.update_check'), |
210 | ) as $path) { | 215 | ) as $path) { |
211 | if (! is_file(realpath($path))) { | 216 | if (!is_file(realpath($path))) { |
212 | # the file may not exist yet | 217 | # the file may not exist yet |
213 | continue; | 218 | continue; |
214 | } | 219 | } |
215 | 220 | ||
216 | if (! is_readable(realpath($path))) { | 221 | if (!is_readable(realpath($path))) { |
217 | $errors[] = '"'.$path.'" '. t('file is not readable'); | 222 | $errors[] = '"' . $path . '" ' . t('file is not readable'); |
218 | } | 223 | } |
219 | if (! is_writable(realpath($path))) { | 224 | if (!is_writable(realpath($path))) { |
220 | $errors[] = '"'.$path.'" '. t('file is not writable'); | 225 | $errors[] = '"' . $path . '" ' . t('file is not writable'); |
221 | } | 226 | } |
222 | } | 227 | } |
223 | 228 | ||
diff --git a/application/FileUtils.php b/application/FileUtils.php index b89ea12b..30560bfc 100644 --- a/application/FileUtils.php +++ b/application/FileUtils.php | |||
@@ -1,6 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'exceptions/IOException.php'; | 3 | namespace Shaarli; |
4 | |||
5 | use Shaarli\Exceptions\IOException; | ||
4 | 6 | ||
5 | /** | 7 | /** |
6 | * Class FileUtils | 8 | * Class FileUtils |
@@ -44,7 +46,7 @@ class FileUtils | |||
44 | 46 | ||
45 | return file_put_contents( | 47 | return file_put_contents( |
46 | $file, | 48 | $file, |
47 | self::$phpPrefix.base64_encode(gzdeflate(serialize($content))).self::$phpSuffix | 49 | self::$phpPrefix . base64_encode(gzdeflate(serialize($content))) . self::$phpSuffix |
48 | ); | 50 | ); |
49 | } | 51 | } |
50 | 52 | ||
@@ -62,7 +64,7 @@ class FileUtils | |||
62 | { | 64 | { |
63 | // Note that gzinflate is faster than gzuncompress. | 65 | // Note that gzinflate is faster than gzuncompress. |
64 | // See: http://www.php.net/manual/en/function.gzdeflate.php#96439 | 66 | // See: http://www.php.net/manual/en/function.gzdeflate.php#96439 |
65 | if (! is_readable($file)) { | 67 | if (!is_readable($file)) { |
66 | return $default; | 68 | return $default; |
67 | } | 69 | } |
68 | 70 | ||
diff --git a/application/History.php b/application/History.php index 35ec016a..a5846652 100644 --- a/application/History.php +++ b/application/History.php | |||
@@ -1,4 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli; | ||
3 | |||
4 | use DateTime; | ||
5 | use Exception; | ||
2 | 6 | ||
3 | /** | 7 | /** |
4 | * Class History | 8 | * Class History |
@@ -66,7 +70,7 @@ class History | |||
66 | * History constructor. | 70 | * History constructor. |
67 | * | 71 | * |
68 | * @param string $historyFilePath History file path. | 72 | * @param string $historyFilePath History file path. |
69 | * @param int $retentionTime History content rentention time in seconds. | 73 | * @param int $retentionTime History content retention time in seconds. |
70 | * | 74 | * |
71 | * @throws Exception if something goes wrong. | 75 | * @throws Exception if something goes wrong. |
72 | */ | 76 | */ |
@@ -166,11 +170,11 @@ class History | |||
166 | */ | 170 | */ |
167 | protected function check() | 171 | protected function check() |
168 | { | 172 | { |
169 | if (! is_file($this->historyFilePath)) { | 173 | if (!is_file($this->historyFilePath)) { |
170 | FileUtils::writeFlatDB($this->historyFilePath, []); | 174 | FileUtils::writeFlatDB($this->historyFilePath, []); |
171 | } | 175 | } |
172 | 176 | ||
173 | if (! is_writable($this->historyFilePath)) { | 177 | if (!is_writable($this->historyFilePath)) { |
174 | throw new Exception(t('History file isn\'t readable or writable')); | 178 | throw new Exception(t('History file isn\'t readable or writable')); |
175 | } | 179 | } |
176 | } | 180 | } |
@@ -191,7 +195,7 @@ class History | |||
191 | */ | 195 | */ |
192 | protected function write() | 196 | protected function write() |
193 | { | 197 | { |
194 | $comparaison = new DateTime('-'. $this->retentionTime . ' seconds'); | 198 | $comparaison = new DateTime('-' . $this->retentionTime . ' seconds'); |
195 | foreach ($this->history as $key => $value) { | 199 | foreach ($this->history as $key => $value) { |
196 | if ($value['datetime'] < $comparaison) { | 200 | if ($value['datetime'] < $comparaison) { |
197 | unset($this->history[$key]); | 201 | unset($this->history[$key]); |
diff --git a/application/Languages.php b/application/Languages.php index b9c5d0e8..5cda802e 100644 --- a/application/Languages.php +++ b/application/Languages.php | |||
@@ -3,7 +3,6 @@ | |||
3 | namespace Shaarli; | 3 | namespace Shaarli; |
4 | 4 | ||
5 | use Gettext\GettextTranslator; | 5 | use Gettext\GettextTranslator; |
6 | use Gettext\Merge; | ||
7 | use Gettext\Translations; | 6 | use Gettext\Translations; |
8 | use Gettext\Translator; | 7 | use Gettext\Translator; |
9 | use Gettext\TranslatorInterface; | 8 | use Gettext\TranslatorInterface; |
diff --git a/application/Router.php b/application/Router.php index beb3165b..d7187487 100644 --- a/application/Router.php +++ b/application/Router.php | |||
@@ -1,4 +1,5 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli; | ||
2 | 3 | ||
3 | /** | 4 | /** |
4 | * Class Router | 5 | * Class Router |
@@ -37,6 +38,8 @@ class Router | |||
37 | 38 | ||
38 | public static $PAGE_DELETELINK = 'delete_link'; | 39 | public static $PAGE_DELETELINK = 'delete_link'; |
39 | 40 | ||
41 | public static $PAGE_CHANGE_VISIBILITY = 'change_visibility'; | ||
42 | |||
40 | public static $PAGE_PINLINK = 'pin'; | 43 | public static $PAGE_PINLINK = 'pin'; |
41 | 44 | ||
42 | public static $PAGE_EXPORT = 'export'; | 45 | public static $PAGE_EXPORT = 'export'; |
@@ -75,43 +78,43 @@ class Router | |||
75 | return self::$PAGE_LINKLIST; | 78 | return self::$PAGE_LINKLIST; |
76 | } | 79 | } |
77 | 80 | ||
78 | if (startsWith($query, 'do='. self::$PAGE_LOGIN) && $loggedIn === false) { | 81 | if (startsWith($query, 'do=' . self::$PAGE_LOGIN) && $loggedIn === false) { |
79 | return self::$PAGE_LOGIN; | 82 | return self::$PAGE_LOGIN; |
80 | } | 83 | } |
81 | 84 | ||
82 | if (startsWith($query, 'do='. self::$PAGE_PICWALL)) { | 85 | if (startsWith($query, 'do=' . self::$PAGE_PICWALL)) { |
83 | return self::$PAGE_PICWALL; | 86 | return self::$PAGE_PICWALL; |
84 | } | 87 | } |
85 | 88 | ||
86 | if (startsWith($query, 'do='. self::$PAGE_TAGCLOUD)) { | 89 | if (startsWith($query, 'do=' . self::$PAGE_TAGCLOUD)) { |
87 | return self::$PAGE_TAGCLOUD; | 90 | return self::$PAGE_TAGCLOUD; |
88 | } | 91 | } |
89 | 92 | ||
90 | if (startsWith($query, 'do='. self::$PAGE_TAGLIST)) { | 93 | if (startsWith($query, 'do=' . self::$PAGE_TAGLIST)) { |
91 | return self::$PAGE_TAGLIST; | 94 | return self::$PAGE_TAGLIST; |
92 | } | 95 | } |
93 | 96 | ||
94 | if (startsWith($query, 'do='. self::$PAGE_OPENSEARCH)) { | 97 | if (startsWith($query, 'do=' . self::$PAGE_OPENSEARCH)) { |
95 | return self::$PAGE_OPENSEARCH; | 98 | return self::$PAGE_OPENSEARCH; |
96 | } | 99 | } |
97 | 100 | ||
98 | if (startsWith($query, 'do='. self::$PAGE_DAILY)) { | 101 | if (startsWith($query, 'do=' . self::$PAGE_DAILY)) { |
99 | return self::$PAGE_DAILY; | 102 | return self::$PAGE_DAILY; |
100 | } | 103 | } |
101 | 104 | ||
102 | if (startsWith($query, 'do='. self::$PAGE_FEED_ATOM)) { | 105 | if (startsWith($query, 'do=' . self::$PAGE_FEED_ATOM)) { |
103 | return self::$PAGE_FEED_ATOM; | 106 | return self::$PAGE_FEED_ATOM; |
104 | } | 107 | } |
105 | 108 | ||
106 | if (startsWith($query, 'do='. self::$PAGE_FEED_RSS)) { | 109 | if (startsWith($query, 'do=' . self::$PAGE_FEED_RSS)) { |
107 | return self::$PAGE_FEED_RSS; | 110 | return self::$PAGE_FEED_RSS; |
108 | } | 111 | } |
109 | 112 | ||
110 | if (startsWith($query, 'do='. self::$PAGE_THUMBS_UPDATE)) { | 113 | if (startsWith($query, 'do=' . self::$PAGE_THUMBS_UPDATE)) { |
111 | return self::$PAGE_THUMBS_UPDATE; | 114 | return self::$PAGE_THUMBS_UPDATE; |
112 | } | 115 | } |
113 | 116 | ||
114 | if (startsWith($query, 'do='. self::$AJAX_THUMB_UPDATE)) { | 117 | if (startsWith($query, 'do=' . self::$AJAX_THUMB_UPDATE)) { |
115 | return self::$AJAX_THUMB_UPDATE; | 118 | return self::$AJAX_THUMB_UPDATE; |
116 | } | 119 | } |
117 | 120 | ||
@@ -120,23 +123,23 @@ class Router | |||
120 | return self::$PAGE_LINKLIST; | 123 | return self::$PAGE_LINKLIST; |
121 | } | 124 | } |
122 | 125 | ||
123 | if (startsWith($query, 'do='. self::$PAGE_TOOLS)) { | 126 | if (startsWith($query, 'do=' . self::$PAGE_TOOLS)) { |
124 | return self::$PAGE_TOOLS; | 127 | return self::$PAGE_TOOLS; |
125 | } | 128 | } |
126 | 129 | ||
127 | if (startsWith($query, 'do='. self::$PAGE_CHANGEPASSWORD)) { | 130 | if (startsWith($query, 'do=' . self::$PAGE_CHANGEPASSWORD)) { |
128 | return self::$PAGE_CHANGEPASSWORD; | 131 | return self::$PAGE_CHANGEPASSWORD; |
129 | } | 132 | } |
130 | 133 | ||
131 | if (startsWith($query, 'do='. self::$PAGE_CONFIGURE)) { | 134 | if (startsWith($query, 'do=' . self::$PAGE_CONFIGURE)) { |
132 | return self::$PAGE_CONFIGURE; | 135 | return self::$PAGE_CONFIGURE; |
133 | } | 136 | } |
134 | 137 | ||
135 | if (startsWith($query, 'do='. self::$PAGE_CHANGETAG)) { | 138 | if (startsWith($query, 'do=' . self::$PAGE_CHANGETAG)) { |
136 | return self::$PAGE_CHANGETAG; | 139 | return self::$PAGE_CHANGETAG; |
137 | } | 140 | } |
138 | 141 | ||
139 | if (startsWith($query, 'do='. self::$PAGE_ADDLINK)) { | 142 | if (startsWith($query, 'do=' . self::$PAGE_ADDLINK)) { |
140 | return self::$PAGE_ADDLINK; | 143 | return self::$PAGE_ADDLINK; |
141 | } | 144 | } |
142 | 145 | ||
@@ -148,27 +151,31 @@ class Router | |||
148 | return self::$PAGE_DELETELINK; | 151 | return self::$PAGE_DELETELINK; |
149 | } | 152 | } |
150 | 153 | ||
151 | if (startsWith($query, 'do='. self::$PAGE_PINLINK)) { | 154 | if (isset($get[self::$PAGE_CHANGE_VISIBILITY])) { |
155 | return self::$PAGE_CHANGE_VISIBILITY; | ||
156 | } | ||
157 | |||
158 | if (startsWith($query, 'do=' . self::$PAGE_PINLINK)) { | ||
152 | return self::$PAGE_PINLINK; | 159 | return self::$PAGE_PINLINK; |
153 | } | 160 | } |
154 | 161 | ||
155 | if (startsWith($query, 'do='. self::$PAGE_EXPORT)) { | 162 | if (startsWith($query, 'do=' . self::$PAGE_EXPORT)) { |
156 | return self::$PAGE_EXPORT; | 163 | return self::$PAGE_EXPORT; |
157 | } | 164 | } |
158 | 165 | ||
159 | if (startsWith($query, 'do='. self::$PAGE_IMPORT)) { | 166 | if (startsWith($query, 'do=' . self::$PAGE_IMPORT)) { |
160 | return self::$PAGE_IMPORT; | 167 | return self::$PAGE_IMPORT; |
161 | } | 168 | } |
162 | 169 | ||
163 | if (startsWith($query, 'do='. self::$PAGE_PLUGINSADMIN)) { | 170 | if (startsWith($query, 'do=' . self::$PAGE_PLUGINSADMIN)) { |
164 | return self::$PAGE_PLUGINSADMIN; | 171 | return self::$PAGE_PLUGINSADMIN; |
165 | } | 172 | } |
166 | 173 | ||
167 | if (startsWith($query, 'do='. self::$PAGE_SAVE_PLUGINSADMIN)) { | 174 | if (startsWith($query, 'do=' . self::$PAGE_SAVE_PLUGINSADMIN)) { |
168 | return self::$PAGE_SAVE_PLUGINSADMIN; | 175 | return self::$PAGE_SAVE_PLUGINSADMIN; |
169 | } | 176 | } |
170 | 177 | ||
171 | if (startsWith($query, 'do='. self::$GET_TOKEN)) { | 178 | if (startsWith($query, 'do=' . self::$GET_TOKEN)) { |
172 | return self::$GET_TOKEN; | 179 | return self::$GET_TOKEN; |
173 | } | 180 | } |
174 | 181 | ||
diff --git a/application/Thumbnailer.php b/application/Thumbnailer.php index 167d6296..d5f5ac28 100644 --- a/application/Thumbnailer.php +++ b/application/Thumbnailer.php | |||
@@ -3,9 +3,9 @@ | |||
3 | namespace Shaarli; | 3 | namespace Shaarli; |
4 | 4 | ||
5 | use Shaarli\Config\ConfigManager; | 5 | use Shaarli\Config\ConfigManager; |
6 | use WebThumbnailer\Application\ConfigManager as WTConfigManager; | ||
6 | use WebThumbnailer\Exception\WebThumbnailerException; | 7 | use WebThumbnailer\Exception\WebThumbnailerException; |
7 | use WebThumbnailer\WebThumbnailer; | 8 | use WebThumbnailer\WebThumbnailer; |
8 | use WebThumbnailer\Application\ConfigManager as WTConfigManager; | ||
9 | 9 | ||
10 | /** | 10 | /** |
11 | * Class Thumbnailer | 11 | * Class Thumbnailer |
diff --git a/application/api/ApiMiddleware.php b/application/api/ApiMiddleware.php index 66eac133..2d55bda6 100644 --- a/application/api/ApiMiddleware.php +++ b/application/api/ApiMiddleware.php | |||
@@ -1,9 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Api; | 2 | namespace Shaarli\Api; |
3 | 3 | ||
4 | use Shaarli\Api\Exceptions\ApiException; | ||
5 | use Shaarli\Api\Exceptions\ApiAuthorizationException; | 4 | use Shaarli\Api\Exceptions\ApiAuthorizationException; |
6 | 5 | use Shaarli\Api\Exceptions\ApiException; | |
7 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
8 | use Slim\Container; | 7 | use Slim\Container; |
9 | use Slim\Http\Request; | 8 | use Slim\Http\Request; |
@@ -127,12 +126,10 @@ class ApiMiddleware | |||
127 | */ | 126 | */ |
128 | protected function setLinkDb($conf) | 127 | protected function setLinkDb($conf) |
129 | { | 128 | { |
130 | $linkDb = new \LinkDB( | 129 | $linkDb = new \Shaarli\Bookmark\LinkDB( |
131 | $conf->get('resource.datastore'), | 130 | $conf->get('resource.datastore'), |
132 | true, | 131 | true, |
133 | $conf->get('privacy.hide_public_links'), | 132 | $conf->get('privacy.hide_public_links') |
134 | $conf->get('redirector.url'), | ||
135 | $conf->get('redirector.encode_url') | ||
136 | ); | 133 | ); |
137 | $this->container['db'] = $linkDb; | 134 | $this->container['db'] = $linkDb; |
138 | } | 135 | } |
diff --git a/application/api/ApiUtils.php b/application/api/ApiUtils.php index fc5ecaf1..1e3ac02e 100644 --- a/application/api/ApiUtils.php +++ b/application/api/ApiUtils.php | |||
@@ -1,8 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Api; | 2 | namespace Shaarli\Api; |
3 | 3 | ||
4 | use Shaarli\Base64Url; | ||
5 | use Shaarli\Api\Exceptions\ApiAuthorizationException; | 4 | use Shaarli\Api\Exceptions\ApiAuthorizationException; |
5 | use Shaarli\Http\Base64Url; | ||
6 | 6 | ||
7 | /** | 7 | /** |
8 | * REST API utilities | 8 | * REST API utilities |
@@ -12,7 +12,7 @@ class ApiUtils | |||
12 | /** | 12 | /** |
13 | * Validates a JWT token authenticity. | 13 | * Validates a JWT token authenticity. |
14 | * | 14 | * |
15 | * @param string $token JWT token extracted from the headers. | 15 | * @param string $token JWT token extracted from the headers. |
16 | * @param string $secret API secret set in the settings. | 16 | * @param string $secret API secret set in the settings. |
17 | * | 17 | * |
18 | * @throws ApiAuthorizationException the token is not valid. | 18 | * @throws ApiAuthorizationException the token is not valid. |
@@ -50,7 +50,7 @@ class ApiUtils | |||
50 | /** | 50 | /** |
51 | * Format a Link for the REST API. | 51 | * Format a Link for the REST API. |
52 | * | 52 | * |
53 | * @param array $link Link data read from the datastore. | 53 | * @param array $link Link data read from the datastore. |
54 | * @param string $indexUrl Shaarli's index URL (used for relative URL). | 54 | * @param string $indexUrl Shaarli's index URL (used for relative URL). |
55 | * | 55 | * |
56 | * @return array Link data formatted for the REST API. | 56 | * @return array Link data formatted for the REST API. |
@@ -59,7 +59,7 @@ class ApiUtils | |||
59 | { | 59 | { |
60 | $out['id'] = $link['id']; | 60 | $out['id'] = $link['id']; |
61 | // Not an internal link | 61 | // Not an internal link |
62 | if ($link['url'][0] != '?') { | 62 | if (! is_note($link['url'])) { |
63 | $out['url'] = $link['url']; | 63 | $out['url'] = $link['url']; |
64 | } else { | 64 | } else { |
65 | $out['url'] = $indexUrl . $link['url']; | 65 | $out['url'] = $indexUrl . $link['url']; |
diff --git a/application/api/controllers/ApiController.php b/application/api/controllers/ApiController.php index 9edefcf6..a6e7cbab 100644 --- a/application/api/controllers/ApiController.php +++ b/application/api/controllers/ApiController.php | |||
@@ -2,8 +2,9 @@ | |||
2 | 2 | ||
3 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
4 | 4 | ||
5 | use Shaarli\Bookmark\LinkDB; | ||
5 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
6 | use \Slim\Container; | 7 | use Slim\Container; |
7 | 8 | ||
8 | /** | 9 | /** |
9 | * Abstract Class ApiController | 10 | * Abstract Class ApiController |
@@ -25,12 +26,12 @@ abstract class ApiController | |||
25 | protected $conf; | 26 | protected $conf; |
26 | 27 | ||
27 | /** | 28 | /** |
28 | * @var \LinkDB | 29 | * @var LinkDB |
29 | */ | 30 | */ |
30 | protected $linkDb; | 31 | protected $linkDb; |
31 | 32 | ||
32 | /** | 33 | /** |
33 | * @var \History | 34 | * @var HistoryController |
34 | */ | 35 | */ |
35 | protected $history; | 36 | protected $history; |
36 | 37 | ||
diff --git a/application/api/controllers/History.php b/application/api/controllers/HistoryController.php index 4582e8b2..9afcfa26 100644 --- a/application/api/controllers/History.php +++ b/application/api/controllers/HistoryController.php | |||
@@ -14,7 +14,7 @@ use Slim\Http\Response; | |||
14 | * | 14 | * |
15 | * @package Shaarli\Api\Controllers | 15 | * @package Shaarli\Api\Controllers |
16 | */ | 16 | */ |
17 | class History extends ApiController | 17 | class HistoryController extends ApiController |
18 | { | 18 | { |
19 | /** | 19 | /** |
20 | * Service providing operation regarding Shaarli datastore and settings. | 20 | * Service providing operation regarding Shaarli datastore and settings. |
diff --git a/application/api/controllers/Tags.php b/application/api/controllers/Tags.php index 6dd78750..82f3ef74 100644 --- a/application/api/controllers/Tags.php +++ b/application/api/controllers/Tags.php | |||
@@ -4,7 +4,6 @@ namespace Shaarli\Api\Controllers; | |||
4 | 4 | ||
5 | use Shaarli\Api\ApiUtils; | 5 | use Shaarli\Api\ApiUtils; |
6 | use Shaarli\Api\Exceptions\ApiBadParametersException; | 6 | use Shaarli\Api\Exceptions\ApiBadParametersException; |
7 | use Shaarli\Api\Exceptions\ApiLinkNotFoundException; | ||
8 | use Shaarli\Api\Exceptions\ApiTagNotFoundException; | 7 | use Shaarli\Api\Exceptions\ApiTagNotFoundException; |
9 | use Slim\Http\Request; | 8 | use Slim\Http\Request; |
10 | use Slim\Http\Response; | 9 | use Slim\Http\Response; |
diff --git a/application/api/exceptions/ApiLinkNotFoundException.php b/application/api/exceptions/ApiLinkNotFoundException.php index c727f4f0..7c2bb56e 100644 --- a/application/api/exceptions/ApiLinkNotFoundException.php +++ b/application/api/exceptions/ApiLinkNotFoundException.php | |||
@@ -2,8 +2,6 @@ | |||
2 | 2 | ||
3 | namespace Shaarli\Api\Exceptions; | 3 | namespace Shaarli\Api\Exceptions; |
4 | 4 | ||
5 | use Slim\Http\Response; | ||
6 | |||
7 | /** | 5 | /** |
8 | * Class ApiLinkNotFoundException | 6 | * Class ApiLinkNotFoundException |
9 | * | 7 | * |
diff --git a/application/api/exceptions/ApiTagNotFoundException.php b/application/api/exceptions/ApiTagNotFoundException.php index eee152fe..66ace8bf 100644 --- a/application/api/exceptions/ApiTagNotFoundException.php +++ b/application/api/exceptions/ApiTagNotFoundException.php | |||
@@ -2,8 +2,6 @@ | |||
2 | 2 | ||
3 | namespace Shaarli\Api\Exceptions; | 3 | namespace Shaarli\Api\Exceptions; |
4 | 4 | ||
5 | use Slim\Http\Response; | ||
6 | |||
7 | /** | 5 | /** |
8 | * Class ApiTagNotFoundException | 6 | * Class ApiTagNotFoundException |
9 | * | 7 | * |
diff --git a/application/LinkDB.php b/application/bookmark/LinkDB.php index 803757ca..76ba95f0 100644 --- a/application/LinkDB.php +++ b/application/bookmark/LinkDB.php | |||
@@ -1,4 +1,15 @@ | |||
1 | <?php | 1 | <?php |
2 | |||
3 | namespace Shaarli\Bookmark; | ||
4 | |||
5 | use ArrayAccess; | ||
6 | use Countable; | ||
7 | use DateTime; | ||
8 | use Iterator; | ||
9 | use Shaarli\Bookmark\Exception\LinkNotFoundException; | ||
10 | use Shaarli\Exceptions\IOException; | ||
11 | use Shaarli\FileUtils; | ||
12 | |||
2 | /** | 13 | /** |
3 | * Data storage for links. | 14 | * Data storage for links. |
4 | * | 15 | * |
@@ -18,10 +29,10 @@ | |||
18 | * - private: Is this link private? 0=no, other value=yes | 29 | * - private: Is this link private? 0=no, other value=yes |
19 | * - tags: tags attached to this entry (separated by spaces) | 30 | * - tags: tags attached to this entry (separated by spaces) |
20 | * - title Title of the link | 31 | * - title Title of the link |
21 | * - url URL of the link. Used for displayable links (no redirector, relative, etc.). | 32 | * - url URL of the link. Used for displayable links. |
22 | * Can be absolute or relative. | 33 | * Can be absolute or relative in the database but the relative links |
23 | * Relative URLs are permalinks (e.g.'?m-ukcw') | 34 | * will be converted to absolute ones in templates. |
24 | * - real_url Absolute processed URL. | 35 | * - real_url Raw URL in stored in the DB (absolute or relative). |
25 | * - shorturl Permalink smallhash | 36 | * - shorturl Permalink smallhash |
26 | * | 37 | * |
27 | * Implements 3 interfaces: | 38 | * Implements 3 interfaces: |
@@ -77,19 +88,6 @@ class LinkDB implements Iterator, Countable, ArrayAccess | |||
77 | // Hide public links | 88 | // Hide public links |
78 | private $hidePublicLinks; | 89 | private $hidePublicLinks; |
79 | 90 | ||
80 | // link redirector set in user settings. | ||
81 | private $redirector; | ||
82 | |||
83 | /** | ||
84 | * Set this to `true` to urlencode link behind redirector link, `false` to leave it untouched. | ||
85 | * | ||
86 | * Example: | ||
87 | * anonym.to needs clean URL while dereferer.org needs urlencoded URL. | ||
88 | * | ||
89 | * @var boolean $redirectorEncode parameter: true or false | ||
90 | */ | ||
91 | private $redirectorEncode; | ||
92 | |||
93 | /** | 91 | /** |
94 | * Creates a new LinkDB | 92 | * Creates a new LinkDB |
95 | * | 93 | * |
@@ -98,21 +96,16 @@ class LinkDB implements Iterator, Countable, ArrayAccess | |||
98 | * @param string $datastore datastore file path. | 96 | * @param string $datastore datastore file path. |
99 | * @param boolean $isLoggedIn is the user logged in? | 97 | * @param boolean $isLoggedIn is the user logged in? |
100 | * @param boolean $hidePublicLinks if true all links are private. | 98 | * @param boolean $hidePublicLinks if true all links are private. |
101 | * @param string $redirector link redirector set in user settings. | ||
102 | * @param boolean $redirectorEncode Enable urlencode on redirected urls (default: true). | ||
103 | */ | 99 | */ |
104 | public function __construct( | 100 | public function __construct( |
105 | $datastore, | 101 | $datastore, |
106 | $isLoggedIn, | 102 | $isLoggedIn, |
107 | $hidePublicLinks, | 103 | $hidePublicLinks |
108 | $redirector = '', | ||
109 | $redirectorEncode = true | ||
110 | ) { | 104 | ) { |
105 | |||
111 | $this->datastore = $datastore; | 106 | $this->datastore = $datastore; |
112 | $this->loggedIn = $isLoggedIn; | 107 | $this->loggedIn = $isLoggedIn; |
113 | $this->hidePublicLinks = $hidePublicLinks; | 108 | $this->hidePublicLinks = $hidePublicLinks; |
114 | $this->redirector = $redirector; | ||
115 | $this->redirectorEncode = $redirectorEncode === true; | ||
116 | $this->check(); | 109 | $this->check(); |
117 | $this->read(); | 110 | $this->read(); |
118 | } | 111 | } |
@@ -137,7 +130,7 @@ class LinkDB implements Iterator, Countable, ArrayAccess | |||
137 | if (!isset($value['id']) || empty($value['url'])) { | 130 | if (!isset($value['id']) || empty($value['url'])) { |
138 | die(t('Internal Error: A link should always have an id and URL.')); | 131 | die(t('Internal Error: A link should always have an id and URL.')); |
139 | } | 132 | } |
140 | if (($offset !== null && ! is_int($offset)) || ! is_int($value['id'])) { | 133 | if (($offset !== null && !is_int($offset)) || !is_int($value['id'])) { |
141 | die(t('You must specify an integer as a key.')); | 134 | die(t('You must specify an integer as a key.')); |
142 | } | 135 | } |
143 | if ($offset !== null && $offset !== $value['id']) { | 136 | if ($offset !== null && $offset !== $value['id']) { |
@@ -247,19 +240,19 @@ class LinkDB implements Iterator, Countable, ArrayAccess | |||
247 | $this->links = array(); | 240 | $this->links = array(); |
248 | $link = array( | 241 | $link = array( |
249 | 'id' => 1, | 242 | 'id' => 1, |
250 | 'title'=> t('The personal, minimalist, super-fast, database free, bookmarking service'), | 243 | 'title' => t('The personal, minimalist, super-fast, database free, bookmarking service'), |
251 | 'url'=>'https://shaarli.readthedocs.io', | 244 | 'url' => 'https://shaarli.readthedocs.io', |
252 | 'description'=>t( | 245 | 'description' => t( |
253 | 'Welcome to Shaarli! This is your first public bookmark. ' | 246 | 'Welcome to Shaarli! This is your first public bookmark. ' |
254 | .'To edit or delete me, you must first login. | 247 | . 'To edit or delete me, you must first login. |
255 | 248 | ||
256 | To learn how to use Shaarli, consult the link "Documentation" at the bottom of this page. | 249 | To learn how to use Shaarli, consult the link "Documentation" at the bottom of this page. |
257 | 250 | ||
258 | You use the community supported version of the original Shaarli project, by Sebastien Sauvage.' | 251 | You use the community supported version of the original Shaarli project, by Sebastien Sauvage.' |
259 | ), | 252 | ), |
260 | 'private'=>0, | 253 | 'private' => 0, |
261 | 'created'=> new DateTime(), | 254 | 'created' => new DateTime(), |
262 | 'tags'=>'opensource software', | 255 | 'tags' => 'opensource software', |
263 | 'sticky' => false, | 256 | 'sticky' => false, |
264 | ); | 257 | ); |
265 | $link['shorturl'] = link_small_hash($link['created'], $link['id']); | 258 | $link['shorturl'] = link_small_hash($link['created'], $link['id']); |
@@ -267,12 +260,12 @@ You use the community supported version of the original Shaarli project, by Seba | |||
267 | 260 | ||
268 | $link = array( | 261 | $link = array( |
269 | 'id' => 0, | 262 | 'id' => 0, |
270 | 'title'=> t('My secret stuff... - Pastebin.com'), | 263 | 'title' => t('My secret stuff... - Pastebin.com'), |
271 | 'url'=>'http://sebsauvage.net/paste/?8434b27936c09649#bR7XsXhoTiLcqCpQbmOpBi3rq2zzQUC5hBI7ZT1O3x8=', | 264 | 'url' => 'http://sebsauvage.net/paste/?8434b27936c09649#bR7XsXhoTiLcqCpQbmOpBi3rq2zzQUC5hBI7ZT1O3x8=', |
272 | 'description'=> t('Shhhh! I\'m a private link only YOU can see. You can delete me too.'), | 265 | 'description' => t('Shhhh! I\'m a private link only YOU can see. You can delete me too.'), |
273 | 'private'=>1, | 266 | 'private' => 1, |
274 | 'created'=> new DateTime('1 minute ago'), | 267 | 'created' => new DateTime('1 minute ago'), |
275 | 'tags'=>'secretstuff', | 268 | 'tags' => 'secretstuff', |
276 | 'sticky' => false, | 269 | 'sticky' => false, |
277 | ); | 270 | ); |
278 | $link['shorturl'] = link_small_hash($link['created'], $link['id']); | 271 | $link['shorturl'] = link_small_hash($link['created'], $link['id']); |
@@ -299,7 +292,7 @@ You use the community supported version of the original Shaarli project, by Seba | |||
299 | 292 | ||
300 | $toremove = array(); | 293 | $toremove = array(); |
301 | foreach ($this->links as $key => &$link) { | 294 | foreach ($this->links as $key => &$link) { |
302 | if (! $this->loggedIn && $link['private'] != 0) { | 295 | if (!$this->loggedIn && $link['private'] != 0) { |
303 | // Transition for not upgraded databases. | 296 | // Transition for not upgraded databases. |
304 | unset($this->links[$key]); | 297 | unset($this->links[$key]); |
305 | continue; | 298 | continue; |
@@ -309,29 +302,19 @@ You use the community supported version of the original Shaarli project, by Seba | |||
309 | sanitizeLink($link); | 302 | sanitizeLink($link); |
310 | 303 | ||
311 | // Remove private tags if the user is not logged in. | 304 | // Remove private tags if the user is not logged in. |
312 | if (! $this->loggedIn) { | 305 | if (!$this->loggedIn) { |
313 | $link['tags'] = preg_replace('/(^|\s+)\.[^($|\s)]+\s*/', ' ', $link['tags']); | 306 | $link['tags'] = preg_replace('/(^|\s+)\.[^($|\s)]+\s*/', ' ', $link['tags']); |
314 | } | 307 | } |
315 | 308 | ||
316 | // Do not use the redirector for internal links (Shaarli note URL starting with a '?'). | 309 | $link['real_url'] = $link['url']; |
317 | if (!empty($this->redirector) && !startsWith($link['url'], '?')) { | ||
318 | $link['real_url'] = $this->redirector; | ||
319 | if ($this->redirectorEncode) { | ||
320 | $link['real_url'] .= urlencode(unescape($link['url'])); | ||
321 | } else { | ||
322 | $link['real_url'] .= $link['url']; | ||
323 | } | ||
324 | } else { | ||
325 | $link['real_url'] = $link['url']; | ||
326 | } | ||
327 | 310 | ||
328 | $link['sticky'] = isset($link['sticky']) ? $link['sticky'] : false; | 311 | $link['sticky'] = isset($link['sticky']) ? $link['sticky'] : false; |
329 | 312 | ||
330 | // To be able to load links before running the update, and prepare the update | 313 | // To be able to load links before running the update, and prepare the update |
331 | if (! isset($link['created'])) { | 314 | if (!isset($link['created'])) { |
332 | $link['id'] = $link['linkdate']; | 315 | $link['id'] = $link['linkdate']; |
333 | $link['created'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['linkdate']); | 316 | $link['created'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['linkdate']); |
334 | if (! empty($link['updated'])) { | 317 | if (!empty($link['updated'])) { |
335 | $link['updated'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['updated']); | 318 | $link['updated'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['updated']); |
336 | } | 319 | } |
337 | $link['shorturl'] = smallHash($link['linkdate']); | 320 | $link['shorturl'] = smallHash($link['linkdate']); |
@@ -417,12 +400,12 @@ You use the community supported version of the original Shaarli project, by Seba | |||
417 | /** | 400 | /** |
418 | * Filter links according to search parameters. | 401 | * Filter links according to search parameters. |
419 | * | 402 | * |
420 | * @param array $filterRequest Search request content. Supported keys: | 403 | * @param array $filterRequest Search request content. Supported keys: |
421 | * - searchtags: list of tags | 404 | * - searchtags: list of tags |
422 | * - searchterm: term search | 405 | * - searchterm: term search |
423 | * @param bool $casesensitive Optional: Perform case sensitive filter | 406 | * @param bool $casesensitive Optional: Perform case sensitive filter |
424 | * @param string $visibility return only all/private/public links | 407 | * @param string $visibility return only all/private/public links |
425 | * @param string $untaggedonly return only untagged links | 408 | * @param bool $untaggedonly return only untagged links |
426 | * | 409 | * |
427 | * @return array filtered links, all links if no suitable filter was provided. | 410 | * @return array filtered links, all links if no suitable filter was provided. |
428 | */ | 411 | */ |
@@ -432,6 +415,7 @@ You use the community supported version of the original Shaarli project, by Seba | |||
432 | $visibility = 'all', | 415 | $visibility = 'all', |
433 | $untaggedonly = false | 416 | $untaggedonly = false |
434 | ) { | 417 | ) { |
418 | |||
435 | // Filter link database according to parameters. | 419 | // Filter link database according to parameters. |
436 | $searchtags = isset($filterRequest['searchtags']) ? escape($filterRequest['searchtags']) : ''; | 420 | $searchtags = isset($filterRequest['searchtags']) ? escape($filterRequest['searchtags']) : ''; |
437 | $searchterm = isset($filterRequest['searchterm']) ? escape($filterRequest['searchterm']) : ''; | 421 | $searchterm = isset($filterRequest['searchterm']) ? escape($filterRequest['searchterm']) : ''; |
@@ -447,8 +431,8 @@ You use the community supported version of the original Shaarli project, by Seba | |||
447 | /** | 431 | /** |
448 | * Returns the list tags appearing in the links with the given tags | 432 | * Returns the list tags appearing in the links with the given tags |
449 | * | 433 | * |
450 | * @param array $filteringTags tags selecting the links to consider | 434 | * @param array $filteringTags tags selecting the links to consider |
451 | * @param string $visibility process only all/private/public links | 435 | * @param string $visibility process only all/private/public links |
452 | * | 436 | * |
453 | * @return array tag => linksCount | 437 | * @return array tag => linksCount |
454 | */ | 438 | */ |
diff --git a/application/LinkFilter.php b/application/bookmark/LinkFilter.php index 8f147974..9b966307 100644 --- a/application/LinkFilter.php +++ b/application/bookmark/LinkFilter.php | |||
@@ -1,5 +1,10 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Shaarli\Bookmark; | ||
4 | |||
5 | use Exception; | ||
6 | use Shaarli\Bookmark\Exception\LinkNotFoundException; | ||
7 | |||
3 | /** | 8 | /** |
4 | * Class LinkFilter. | 9 | * Class LinkFilter. |
5 | * | 10 | * |
@@ -10,22 +15,22 @@ class LinkFilter | |||
10 | /** | 15 | /** |
11 | * @var string permalinks. | 16 | * @var string permalinks. |
12 | */ | 17 | */ |
13 | public static $FILTER_HASH = 'permalink'; | 18 | public static $FILTER_HASH = 'permalink'; |
14 | 19 | ||
15 | /** | 20 | /** |
16 | * @var string text search. | 21 | * @var string text search. |
17 | */ | 22 | */ |
18 | public static $FILTER_TEXT = 'fulltext'; | 23 | public static $FILTER_TEXT = 'fulltext'; |
19 | 24 | ||
20 | /** | 25 | /** |
21 | * @var string tag filter. | 26 | * @var string tag filter. |
22 | */ | 27 | */ |
23 | public static $FILTER_TAG = 'tags'; | 28 | public static $FILTER_TAG = 'tags'; |
24 | 29 | ||
25 | /** | 30 | /** |
26 | * @var string filter by day. | 31 | * @var string filter by day. |
27 | */ | 32 | */ |
28 | public static $FILTER_DAY = 'FILTER_DAY'; | 33 | public static $FILTER_DAY = 'FILTER_DAY'; |
29 | 34 | ||
30 | /** | 35 | /** |
31 | * @var string Allowed characters for hashtags (regex syntax). | 36 | * @var string Allowed characters for hashtags (regex syntax). |
@@ -58,7 +63,7 @@ class LinkFilter | |||
58 | */ | 63 | */ |
59 | public function filter($type, $request, $casesensitive = false, $visibility = 'all', $untaggedonly = false) | 64 | public function filter($type, $request, $casesensitive = false, $visibility = 'all', $untaggedonly = false) |
60 | { | 65 | { |
61 | if (! in_array($visibility, ['all', 'public', 'private'])) { | 66 | if (!in_array($visibility, ['all', 'public', 'private'])) { |
62 | $visibility = 'all'; | 67 | $visibility = 'all'; |
63 | } | 68 | } |
64 | 69 | ||
@@ -117,7 +122,7 @@ class LinkFilter | |||
117 | foreach ($this->links as $key => $value) { | 122 | foreach ($this->links as $key => $value) { |
118 | if ($value['private'] && $visibility === 'private') { | 123 | if ($value['private'] && $visibility === 'private') { |
119 | $out[$key] = $value; | 124 | $out[$key] = $value; |
120 | } elseif (! $value['private'] && $visibility === 'public') { | 125 | } elseif (!$value['private'] && $visibility === 'public') { |
121 | $out[$key] = $value; | 126 | $out[$key] = $value; |
122 | } | 127 | } |
123 | } | 128 | } |
@@ -132,7 +137,7 @@ class LinkFilter | |||
132 | * | 137 | * |
133 | * @return array $filtered array containing permalink data. | 138 | * @return array $filtered array containing permalink data. |
134 | * | 139 | * |
135 | * @throws LinkNotFoundException if the smallhash doesn't match any link. | 140 | * @throws \Shaarli\Bookmark\Exception\LinkNotFoundException if the smallhash doesn't match any link. |
136 | */ | 141 | */ |
137 | private function filterSmallHash($smallHash) | 142 | private function filterSmallHash($smallHash) |
138 | { | 143 | { |
@@ -169,7 +174,7 @@ class LinkFilter | |||
169 | * - see https://github.com/shaarli/Shaarli/issues/75 for examples | 174 | * - see https://github.com/shaarli/Shaarli/issues/75 for examples |
170 | * | 175 | * |
171 | * @param string $searchterms search query. | 176 | * @param string $searchterms search query. |
172 | * @param string $visibility Optional: return only all/private/public links. | 177 | * @param string $visibility Optional: return only all/private/public links. |
173 | * | 178 | * |
174 | * @return array search results. | 179 | * @return array search results. |
175 | */ | 180 | */ |
@@ -207,7 +212,7 @@ class LinkFilter | |||
207 | foreach ($this->links as $id => $link) { | 212 | foreach ($this->links as $id => $link) { |
208 | // ignore non private links when 'privatonly' is on. | 213 | // ignore non private links when 'privatonly' is on. |
209 | if ($visibility !== 'all') { | 214 | if ($visibility !== 'all') { |
210 | if (! $link['private'] && $visibility === 'private') { | 215 | if (!$link['private'] && $visibility === 'private') { |
211 | continue; | 216 | continue; |
212 | } elseif ($link['private'] && $visibility === 'public') { | 217 | } elseif ($link['private'] && $visibility === 'public') { |
213 | continue; | 218 | continue; |
@@ -250,7 +255,9 @@ class LinkFilter | |||
250 | 255 | ||
251 | /** | 256 | /** |
252 | * generate a regex fragment out of a tag | 257 | * generate a regex fragment out of a tag |
258 | * | ||
253 | * @param string $tag to to generate regexs from. may start with '-' to negate, contain '*' as wildcard | 259 | * @param string $tag to to generate regexs from. may start with '-' to negate, contain '*' as wildcard |
260 | * | ||
254 | * @return string generated regex fragment | 261 | * @return string generated regex fragment |
255 | */ | 262 | */ |
256 | private static function tag2regex($tag) | 263 | private static function tag2regex($tag) |
@@ -334,7 +341,7 @@ class LinkFilter | |||
334 | // check level of visibility | 341 | // check level of visibility |
335 | // ignore non private links when 'privateonly' is on. | 342 | // ignore non private links when 'privateonly' is on. |
336 | if ($visibility !== 'all') { | 343 | if ($visibility !== 'all') { |
337 | if (! $link['private'] && $visibility === 'private') { | 344 | if (!$link['private'] && $visibility === 'private') { |
338 | continue; | 345 | continue; |
339 | } elseif ($link['private'] && $visibility === 'public') { | 346 | } elseif ($link['private'] && $visibility === 'public') { |
340 | continue; | 347 | continue; |
@@ -377,7 +384,7 @@ class LinkFilter | |||
377 | $filtered = []; | 384 | $filtered = []; |
378 | foreach ($this->links as $key => $link) { | 385 | foreach ($this->links as $key => $link) { |
379 | if ($visibility !== 'all') { | 386 | if ($visibility !== 'all') { |
380 | if (! $link['private'] && $visibility === 'private') { | 387 | if (!$link['private'] && $visibility === 'private') { |
381 | continue; | 388 | continue; |
382 | } elseif ($link['private'] && $visibility === 'public') { | 389 | } elseif ($link['private'] && $visibility === 'public') { |
383 | continue; | 390 | continue; |
@@ -406,7 +413,7 @@ class LinkFilter | |||
406 | */ | 413 | */ |
407 | public function filterDay($day) | 414 | public function filterDay($day) |
408 | { | 415 | { |
409 | if (! checkDateFormat('Ymd', $day)) { | 416 | if (!checkDateFormat('Ymd', $day)) { |
410 | throw new Exception('Invalid date format'); | 417 | throw new Exception('Invalid date format'); |
411 | } | 418 | } |
412 | 419 | ||
@@ -440,14 +447,3 @@ class LinkFilter | |||
440 | return preg_split('/\s+/', $tagsOut, -1, PREG_SPLIT_NO_EMPTY); | 447 | return preg_split('/\s+/', $tagsOut, -1, PREG_SPLIT_NO_EMPTY); |
441 | } | 448 | } |
442 | } | 449 | } |
443 | |||
444 | class LinkNotFoundException extends Exception | ||
445 | { | ||
446 | /** | ||
447 | * LinkNotFoundException constructor. | ||
448 | */ | ||
449 | public function __construct() | ||
450 | { | ||
451 | $this->message = t('The link you are trying to reach does not exist or has been deleted.'); | ||
452 | } | ||
453 | } | ||
diff --git a/application/LinkUtils.php b/application/bookmark/LinkUtils.php index d56e019f..77eb2d95 100644 --- a/application/LinkUtils.php +++ b/application/bookmark/LinkUtils.php | |||
@@ -1,17 +1,31 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use Shaarli\Bookmark\LinkDB; | ||
4 | |||
3 | /** | 5 | /** |
4 | * Get cURL callback function for CURLOPT_WRITEFUNCTION | 6 | * Get cURL callback function for CURLOPT_WRITEFUNCTION |
5 | * | 7 | * |
6 | * @param string $charset to extract from the downloaded page (reference) | 8 | * @param string $charset to extract from the downloaded page (reference) |
7 | * @param string $title to extract from the downloaded page (reference) | 9 | * @param string $title to extract from the downloaded page (reference) |
8 | * @param string $curlGetInfo Optionnaly overrides curl_getinfo function | 10 | * @param string $description to extract from the downloaded page (reference) |
11 | * @param string $keywords to extract from the downloaded page (reference) | ||
12 | * @param bool $retrieveDescription Automatically tries to retrieve description and keywords from HTML content | ||
13 | * @param string $curlGetInfo Optionally overrides curl_getinfo function | ||
9 | * | 14 | * |
10 | * @return Closure | 15 | * @return Closure |
11 | */ | 16 | */ |
12 | function get_curl_download_callback(&$charset, &$title, $curlGetInfo = 'curl_getinfo') | 17 | function get_curl_download_callback( |
13 | { | 18 | &$charset, |
19 | &$title, | ||
20 | &$description, | ||
21 | &$keywords, | ||
22 | $retrieveDescription, | ||
23 | $curlGetInfo = 'curl_getinfo' | ||
24 | ) { | ||
14 | $isRedirected = false; | 25 | $isRedirected = false; |
26 | $currentChunk = 0; | ||
27 | $foundChunk = null; | ||
28 | |||
15 | /** | 29 | /** |
16 | * cURL callback function for CURLOPT_WRITEFUNCTION (called during the download). | 30 | * cURL callback function for CURLOPT_WRITEFUNCTION (called during the download). |
17 | * | 31 | * |
@@ -23,7 +37,18 @@ function get_curl_download_callback(&$charset, &$title, $curlGetInfo = 'curl_get | |||
23 | * | 37 | * |
24 | * @return int|bool length of $data or false if we need to stop the download | 38 | * @return int|bool length of $data or false if we need to stop the download |
25 | */ | 39 | */ |
26 | return function (&$ch, $data) use ($curlGetInfo, &$charset, &$title, &$isRedirected) { | 40 | return function (&$ch, $data) use ( |
41 | $retrieveDescription, | ||
42 | $curlGetInfo, | ||
43 | &$charset, | ||
44 | &$title, | ||
45 | &$description, | ||
46 | &$keywords, | ||
47 | &$isRedirected, | ||
48 | &$currentChunk, | ||
49 | &$foundChunk | ||
50 | ) { | ||
51 | $currentChunk++; | ||
27 | $responseCode = $curlGetInfo($ch, CURLINFO_RESPONSE_CODE); | 52 | $responseCode = $curlGetInfo($ch, CURLINFO_RESPONSE_CODE); |
28 | if (!empty($responseCode) && in_array($responseCode, [301, 302])) { | 53 | if (!empty($responseCode) && in_array($responseCode, [301, 302])) { |
29 | $isRedirected = true; | 54 | $isRedirected = true; |
@@ -48,9 +73,34 @@ function get_curl_download_callback(&$charset, &$title, $curlGetInfo = 'curl_get | |||
48 | } | 73 | } |
49 | if (empty($title)) { | 74 | if (empty($title)) { |
50 | $title = html_extract_title($data); | 75 | $title = html_extract_title($data); |
76 | $foundChunk = ! empty($title) ? $currentChunk : $foundChunk; | ||
77 | } | ||
78 | if ($retrieveDescription && empty($description)) { | ||
79 | $description = html_extract_tag('description', $data); | ||
80 | $foundChunk = ! empty($description) ? $currentChunk : $foundChunk; | ||
51 | } | 81 | } |
82 | if ($retrieveDescription && empty($keywords)) { | ||
83 | $keywords = html_extract_tag('keywords', $data); | ||
84 | if (! empty($keywords)) { | ||
85 | $foundChunk = $currentChunk; | ||
86 | // Keywords use the format tag1, tag2 multiple words, tag | ||
87 | // So we format them to match Shaarli's separator and glue multiple words with '-' | ||
88 | $keywords = implode(' ', array_map(function($keyword) { | ||
89 | return implode('-', preg_split('/\s+/', trim($keyword))); | ||
90 | }, explode(',', $keywords))); | ||
91 | } | ||
92 | } | ||
93 | |||
52 | // We got everything we want, stop the download. | 94 | // We got everything we want, stop the download. |
53 | if (!empty($responseCode) && !empty($contentType) && !empty($charset) && !empty($title)) { | 95 | // If we already found either the title, description or keywords, |
96 | // it's highly unlikely that we'll found the other metas further than | ||
97 | // in the same chunk of data or the next one. So we also stop the download after that. | ||
98 | if ((!empty($responseCode) && !empty($contentType) && !empty($charset)) && $foundChunk !== null | ||
99 | && (! $retrieveDescription | ||
100 | || $foundChunk < $currentChunk | ||
101 | || (!empty($title) && !empty($description) && !empty($keywords)) | ||
102 | ) | ||
103 | ) { | ||
54 | return false; | 104 | return false; |
55 | } | 105 | } |
56 | 106 | ||
@@ -109,6 +159,35 @@ function html_extract_charset($html) | |||
109 | } | 159 | } |
110 | 160 | ||
111 | /** | 161 | /** |
162 | * Extract meta tag from HTML content in either: | ||
163 | * - OpenGraph: <meta property="og:[tag]" ...> | ||
164 | * - Meta tag: <meta name="[tag]" ...> | ||
165 | * | ||
166 | * @param string $tag Name of the tag to retrieve. | ||
167 | * @param string $html HTML content where to look for charset. | ||
168 | * | ||
169 | * @return bool|string Charset string if found, false otherwise. | ||
170 | */ | ||
171 | function html_extract_tag($tag, $html) | ||
172 | { | ||
173 | $propertiesKey = ['property', 'name', 'itemprop']; | ||
174 | $properties = implode('|', $propertiesKey); | ||
175 | // Try to retrieve OpenGraph image. | ||
176 | $ogRegex = '#<meta[^>]+(?:'. $properties .')=["\']?(?:og:)?'. $tag .'["\'\s][^>]*content=["\']?(.*?)["\'/>]#'; | ||
177 | // If the attributes are not in the order property => content (e.g. Github) | ||
178 | // New regex to keep this readable... more or less. | ||
179 | $ogRegexReverse = '#<meta[^>]+content=["\']([^"\']+)[^>]+(?:'. $properties .')=["\']?(?:og)?:'. $tag .'["\'\s/>]#'; | ||
180 | |||
181 | if (preg_match($ogRegex, $html, $matches) > 0 | ||
182 | || preg_match($ogRegexReverse, $html, $matches) > 0 | ||
183 | ) { | ||
184 | return $matches[1]; | ||
185 | } | ||
186 | |||
187 | return false; | ||
188 | } | ||
189 | |||
190 | /** | ||
112 | * Count private links in given linklist. | 191 | * Count private links in given linklist. |
113 | * | 192 | * |
114 | * @param array|Countable $links Linklist. | 193 | * @param array|Countable $links Linklist. |
@@ -131,29 +210,15 @@ function count_private($links) | |||
131 | * In a string, converts URLs to clickable links. | 210 | * In a string, converts URLs to clickable links. |
132 | * | 211 | * |
133 | * @param string $text input string. | 212 | * @param string $text input string. |
134 | * @param string $redirector if a redirector is set, use it to gerenate links. | ||
135 | * @param bool $urlEncode Use `urlencode()` on the URL after the redirector or not. | ||
136 | * | 213 | * |
137 | * @return string returns $text with all links converted to HTML links. | 214 | * @return string returns $text with all links converted to HTML links. |
138 | * | 215 | * |
139 | * @see Function inspired from http://www.php.net/manual/en/function.preg-replace.php#85722 | 216 | * @see Function inspired from http://www.php.net/manual/en/function.preg-replace.php#85722 |
140 | */ | 217 | */ |
141 | function text2clickable($text, $redirector = '', $urlEncode = true) | 218 | function text2clickable($text) |
142 | { | 219 | { |
143 | $regex = '!(((?:https?|ftp|file)://|apt:|magnet:)\S+[a-z0-9\(\)]/?)!si'; | 220 | $regex = '!(((?:https?|ftp|file)://|apt:|magnet:)\S+[a-z0-9\(\)]/?)!si'; |
144 | 221 | return preg_replace($regex, '<a href="$1">$1</a>', $text); | |
145 | if (empty($redirector)) { | ||
146 | return preg_replace($regex, '<a href="$1">$1</a>', $text); | ||
147 | } | ||
148 | // Redirector is set, urlencode the final URL. | ||
149 | return preg_replace_callback( | ||
150 | $regex, | ||
151 | function ($matches) use ($redirector, $urlEncode) { | ||
152 | $url = $urlEncode ? urlencode($matches[1]) : $matches[1]; | ||
153 | return '<a href="' . $redirector . $url .'">'. $matches[1] .'</a>'; | ||
154 | }, | ||
155 | $text | ||
156 | ); | ||
157 | } | 222 | } |
158 | 223 | ||
159 | /** | 224 | /** |
@@ -195,15 +260,13 @@ function space2nbsp($text) | |||
195 | * Format Shaarli's description | 260 | * Format Shaarli's description |
196 | * | 261 | * |
197 | * @param string $description shaare's description. | 262 | * @param string $description shaare's description. |
198 | * @param string $redirector if a redirector is set, use it to gerenate links. | ||
199 | * @param bool $urlEncode Use `urlencode()` on the URL after the redirector or not. | ||
200 | * @param string $indexUrl URL to Shaarli's index. | 263 | * @param string $indexUrl URL to Shaarli's index. |
201 | 264 | ||
202 | * @return string formatted description. | 265 | * @return string formatted description. |
203 | */ | 266 | */ |
204 | function format_description($description, $redirector = '', $urlEncode = true, $indexUrl = '') | 267 | function format_description($description, $indexUrl = '') |
205 | { | 268 | { |
206 | return nl2br(space2nbsp(hashtag_autolink(text2clickable($description, $redirector, $urlEncode), $indexUrl))); | 269 | return nl2br(space2nbsp(hashtag_autolink(text2clickable($description), $indexUrl))); |
207 | } | 270 | } |
208 | 271 | ||
209 | /** | 272 | /** |
@@ -218,3 +281,16 @@ function link_small_hash($date, $id) | |||
218 | { | 281 | { |
219 | return smallHash($date->format(LinkDB::LINK_DATE_FORMAT) . $id); | 282 | return smallHash($date->format(LinkDB::LINK_DATE_FORMAT) . $id); |
220 | } | 283 | } |
284 | |||
285 | /** | ||
286 | * Returns whether or not the link is an internal note. | ||
287 | * Its URL starts by `?` because it's actually a permalink. | ||
288 | * | ||
289 | * @param string $linkUrl | ||
290 | * | ||
291 | * @return bool true if internal note, false otherwise. | ||
292 | */ | ||
293 | function is_note($linkUrl) | ||
294 | { | ||
295 | return isset($linkUrl[0]) && $linkUrl[0] === '?'; | ||
296 | } | ||
diff --git a/application/bookmark/exception/LinkNotFoundException.php b/application/bookmark/exception/LinkNotFoundException.php new file mode 100644 index 00000000..f9414428 --- /dev/null +++ b/application/bookmark/exception/LinkNotFoundException.php | |||
@@ -0,0 +1,15 @@ | |||
1 | <?php | ||
2 | namespace Shaarli\Bookmark\Exception; | ||
3 | |||
4 | use Exception; | ||
5 | |||
6 | class LinkNotFoundException extends Exception | ||
7 | { | ||
8 | /** | ||
9 | * LinkNotFoundException constructor. | ||
10 | */ | ||
11 | public function __construct() | ||
12 | { | ||
13 | $this->message = t('The link you are trying to reach does not exist or has been deleted.'); | ||
14 | } | ||
15 | } | ||
diff --git a/application/config/ConfigJson.php b/application/config/ConfigJson.php index 8c8d5610..4509357c 100644 --- a/application/config/ConfigJson.php +++ b/application/config/ConfigJson.php | |||
@@ -47,7 +47,7 @@ class ConfigJson implements ConfigIO | |||
47 | $print = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0; | 47 | $print = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0; |
48 | $data = self::getPhpHeaders() . json_encode($conf, $print) . self::getPhpSuffix(); | 48 | $data = self::getPhpHeaders() . json_encode($conf, $print) . self::getPhpSuffix(); |
49 | if (!file_put_contents($filepath, $data)) { | 49 | if (!file_put_contents($filepath, $data)) { |
50 | throw new \IOException( | 50 | throw new \Shaarli\Exceptions\IOException( |
51 | $filepath, | 51 | $filepath, |
52 | t('Shaarli could not create the config file. '. | 52 | t('Shaarli could not create the config file. '. |
53 | 'Please make sure Shaarli has the right to write in the folder is it installed in.') | 53 | 'Please make sure Shaarli has the right to write in the folder is it installed in.') |
diff --git a/application/config/ConfigManager.php b/application/config/ConfigManager.php index 32aaea48..c95e6800 100644 --- a/application/config/ConfigManager.php +++ b/application/config/ConfigManager.php | |||
@@ -207,7 +207,7 @@ class ConfigManager | |||
207 | * | 207 | * |
208 | * @throws MissingFieldConfigException: a mandatory field has not been provided in $conf. | 208 | * @throws MissingFieldConfigException: a mandatory field has not been provided in $conf. |
209 | * @throws UnauthorizedConfigException: user is not authorize to change configuration. | 209 | * @throws UnauthorizedConfigException: user is not authorize to change configuration. |
210 | * @throws \IOException: an error occurred while writing the new config file. | 210 | * @throws \Shaarli\Exceptions\IOException: an error occurred while writing the new config file. |
211 | */ | 211 | */ |
212 | public function write($isLoggedIn) | 212 | public function write($isLoggedIn) |
213 | { | 213 | { |
@@ -221,7 +221,6 @@ class ConfigManager | |||
221 | 'general.title', | 221 | 'general.title', |
222 | 'general.header_link', | 222 | 'general.header_link', |
223 | 'privacy.default_private_links', | 223 | 'privacy.default_private_links', |
224 | 'redirector.url', | ||
225 | ); | 224 | ); |
226 | 225 | ||
227 | // Only logged in user can alter config. | 226 | // Only logged in user can alter config. |
@@ -366,6 +365,7 @@ class ConfigManager | |||
366 | $this->setEmpty('general.links_per_page', 20); | 365 | $this->setEmpty('general.links_per_page', 20); |
367 | $this->setEmpty('general.enabled_plugins', self::$DEFAULT_PLUGINS); | 366 | $this->setEmpty('general.enabled_plugins', self::$DEFAULT_PLUGINS); |
368 | $this->setEmpty('general.default_note_title', 'Note: '); | 367 | $this->setEmpty('general.default_note_title', 'Note: '); |
368 | $this->setEmpty('general.retrieve_description', false); | ||
369 | 369 | ||
370 | $this->setEmpty('updates.check_updates', false); | 370 | $this->setEmpty('updates.check_updates', false); |
371 | $this->setEmpty('updates.check_updates_branch', 'stable'); | 371 | $this->setEmpty('updates.check_updates_branch', 'stable'); |
@@ -381,9 +381,6 @@ class ConfigManager | |||
381 | // default state of the 'remember me' checkbox of the login form | 381 | // default state of the 'remember me' checkbox of the login form |
382 | $this->setEmpty('privacy.remember_user_default', true); | 382 | $this->setEmpty('privacy.remember_user_default', true); |
383 | 383 | ||
384 | $this->setEmpty('redirector.url', ''); | ||
385 | $this->setEmpty('redirector.encode_url', true); | ||
386 | |||
387 | $this->setEmpty('thumbnails.width', '125'); | 384 | $this->setEmpty('thumbnails.width', '125'); |
388 | $this->setEmpty('thumbnails.height', '90'); | 385 | $this->setEmpty('thumbnails.height', '90'); |
389 | 386 | ||
diff --git a/application/config/ConfigPhp.php b/application/config/ConfigPhp.php index 9625fe1a..cad34594 100644 --- a/application/config/ConfigPhp.php +++ b/application/config/ConfigPhp.php | |||
@@ -27,7 +27,7 @@ class ConfigPhp implements ConfigIO | |||
27 | /** | 27 | /** |
28 | * Map legacy config keys with the new ones. | 28 | * Map legacy config keys with the new ones. |
29 | * If ConfigPhp is used, getting <newkey> will actually look for <legacykey>. | 29 | * If ConfigPhp is used, getting <newkey> will actually look for <legacykey>. |
30 | * The Updater will use this array to transform keys when switching to JSON. | 30 | * The updater will use this array to transform keys when switching to JSON. |
31 | * | 31 | * |
32 | * @var array current key => legacy key. | 32 | * @var array current key => legacy key. |
33 | */ | 33 | */ |
@@ -124,7 +124,7 @@ class ConfigPhp implements ConfigIO | |||
124 | if (!file_put_contents($filepath, $configStr) | 124 | if (!file_put_contents($filepath, $configStr) |
125 | || strcmp(file_get_contents($filepath), $configStr) != 0 | 125 | || strcmp(file_get_contents($filepath), $configStr) != 0 |
126 | ) { | 126 | ) { |
127 | throw new \IOException( | 127 | throw new \Shaarli\Exceptions\IOException( |
128 | $filepath, | 128 | $filepath, |
129 | t('Shaarli could not create the config file. '. | 129 | t('Shaarli could not create the config file. '. |
130 | 'Please make sure Shaarli has the right to write in the folder is it installed in.') | 130 | 'Please make sure Shaarli has the right to write in the folder is it installed in.') |
diff --git a/application/exceptions/IOException.php b/application/exceptions/IOException.php index 18e46b77..2aa25e5c 100644 --- a/application/exceptions/IOException.php +++ b/application/exceptions/IOException.php | |||
@@ -1,4 +1,7 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Exceptions; | ||
3 | |||
4 | use Exception; | ||
2 | 5 | ||
3 | /** | 6 | /** |
4 | * Exception class thrown when a filesystem access failure happens | 7 | * Exception class thrown when a filesystem access failure happens |
@@ -17,6 +20,6 @@ class IOException extends Exception | |||
17 | { | 20 | { |
18 | $this->path = $path; | 21 | $this->path = $path; |
19 | $this->message = empty($message) ? t('Error accessing') : $message; | 22 | $this->message = empty($message) ? t('Error accessing') : $message; |
20 | $this->message .= ' "' . $this->path .'"'; | 23 | $this->message .= ' "' . $this->path . '"'; |
21 | } | 24 | } |
22 | } | 25 | } |
diff --git a/application/Cache.php b/application/feed/Cache.php index e5d43e61..e5d43e61 100644 --- a/application/Cache.php +++ b/application/feed/Cache.php | |||
diff --git a/application/CachedPage.php b/application/feed/CachedPage.php index e11cc52d..d809bdd9 100644 --- a/application/CachedPage.php +++ b/application/feed/CachedPage.php | |||
@@ -1,4 +1,7 @@ | |||
1 | <?php | 1 | <?php |
2 | |||
3 | namespace Shaarli\Feed; | ||
4 | |||
2 | /** | 5 | /** |
3 | * Simple cache system, mainly for the RSS/ATOM feeds | 6 | * Simple cache system, mainly for the RSS/ATOM feeds |
4 | */ | 7 | */ |
@@ -24,7 +27,7 @@ class CachedPage | |||
24 | { | 27 | { |
25 | // TODO: check write access to the cache directory | 28 | // TODO: check write access to the cache directory |
26 | $this->cacheDir = $cacheDir; | 29 | $this->cacheDir = $cacheDir; |
27 | $this->filename = $this->cacheDir.'/'.sha1($url).'.cache'; | 30 | $this->filename = $this->cacheDir . '/' . sha1($url) . '.cache'; |
28 | $this->shouldBeCached = $shouldBeCached; | 31 | $this->shouldBeCached = $shouldBeCached; |
29 | } | 32 | } |
30 | 33 | ||
diff --git a/application/FeedBuilder.php b/application/feed/FeedBuilder.php index 73fafcbe..7c859474 100644 --- a/application/FeedBuilder.php +++ b/application/feed/FeedBuilder.php | |||
@@ -1,4 +1,7 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Feed; | ||
3 | |||
4 | use DateTime; | ||
2 | 5 | ||
3 | /** | 6 | /** |
4 | * FeedBuilder class. | 7 | * FeedBuilder class. |
@@ -28,7 +31,7 @@ class FeedBuilder | |||
28 | public static $DEFAULT_NB_LINKS = 50; | 31 | public static $DEFAULT_NB_LINKS = 50; |
29 | 32 | ||
30 | /** | 33 | /** |
31 | * @var LinkDB instance. | 34 | * @var \Shaarli\Bookmark\LinkDB instance. |
32 | */ | 35 | */ |
33 | protected $linkDB; | 36 | protected $linkDB; |
34 | 37 | ||
@@ -38,12 +41,12 @@ class FeedBuilder | |||
38 | protected $feedType; | 41 | protected $feedType; |
39 | 42 | ||
40 | /** | 43 | /** |
41 | * @var array $_SERVER. | 44 | * @var array $_SERVER |
42 | */ | 45 | */ |
43 | protected $serverInfo; | 46 | protected $serverInfo; |
44 | 47 | ||
45 | /** | 48 | /** |
46 | * @var array $_GET. | 49 | * @var array $_GET |
47 | */ | 50 | */ |
48 | protected $userInput; | 51 | protected $userInput; |
49 | 52 | ||
@@ -75,11 +78,12 @@ class FeedBuilder | |||
75 | /** | 78 | /** |
76 | * Feed constructor. | 79 | * Feed constructor. |
77 | * | 80 | * |
78 | * @param LinkDB $linkDB LinkDB instance. | 81 | * @param \Shaarli\Bookmark\LinkDB $linkDB LinkDB instance. |
79 | * @param string $feedType Type of feed. | 82 | * @param string $feedType Type of feed. |
80 | * @param array $serverInfo $_SERVER. | 83 | * @param array $serverInfo $_SERVER. |
81 | * @param array $userInput $_GET. | 84 | * @param array $userInput $_GET. |
82 | * @param boolean $isLoggedIn True if the user is currently logged in, false otherwise. | 85 | * @param boolean $isLoggedIn True if the user is currently logged in, |
86 | * false otherwise. | ||
83 | */ | 87 | */ |
84 | public function __construct($linkDB, $feedType, $serverInfo, $userInput, $isLoggedIn) | 88 | public function __construct($linkDB, $feedType, $serverInfo, $userInput, $isLoggedIn) |
85 | { | 89 | { |
@@ -124,7 +128,7 @@ class FeedBuilder | |||
124 | $data['show_dates'] = !$this->hideDates || $this->isLoggedIn; | 128 | $data['show_dates'] = !$this->hideDates || $this->isLoggedIn; |
125 | // Remove leading slash from REQUEST_URI. | 129 | // Remove leading slash from REQUEST_URI. |
126 | $data['self_link'] = escape(server_url($this->serverInfo)) | 130 | $data['self_link'] = escape(server_url($this->serverInfo)) |
127 | . escape($this->serverInfo['REQUEST_URI']); | 131 | . escape($this->serverInfo['REQUEST_URI']); |
128 | $data['index_url'] = $pageaddr; | 132 | $data['index_url'] = $pageaddr; |
129 | $data['usepermalinks'] = $this->usePermalinks === true; | 133 | $data['usepermalinks'] = $this->usePermalinks === true; |
130 | $data['links'] = $linkDisplayed; | 134 | $data['links'] = $linkDisplayed; |
@@ -142,18 +146,18 @@ class FeedBuilder | |||
142 | */ | 146 | */ |
143 | protected function buildItem($link, $pageaddr) | 147 | protected function buildItem($link, $pageaddr) |
144 | { | 148 | { |
145 | $link['guid'] = $pageaddr .'?'. $link['shorturl']; | 149 | $link['guid'] = $pageaddr . '?' . $link['shorturl']; |
146 | // Check for both signs of a note: starting with ? and 7 chars long. | 150 | // Prepend the root URL for notes |
147 | if ($link['url'][0] === '?' && strlen($link['url']) === 7) { | 151 | if (is_note($link['url'])) { |
148 | $link['url'] = $pageaddr . $link['url']; | 152 | $link['url'] = $pageaddr . $link['url']; |
149 | } | 153 | } |
150 | if ($this->usePermalinks === true) { | 154 | if ($this->usePermalinks === true) { |
151 | $permalink = '<a href="'. $link['url'] .'" title="'. t('Direct link') .'">'. t('Direct link') .'</a>'; | 155 | $permalink = '<a href="' . $link['url'] . '" title="' . t('Direct link') . '">' . t('Direct link') . '</a>'; |
152 | } else { | 156 | } else { |
153 | $permalink = '<a href="'. $link['guid'] .'" title="'. t('Permalink') .'">'. t('Permalink') .'</a>'; | 157 | $permalink = '<a href="' . $link['guid'] . '" title="' . t('Permalink') . '">' . t('Permalink') . '</a>'; |
154 | } | 158 | } |
155 | $link['description'] = format_description($link['description'], '', false, $pageaddr); | 159 | $link['description'] = format_description($link['description'], $pageaddr); |
156 | $link['description'] .= PHP_EOL .'<br>— '. $permalink; | 160 | $link['description'] .= PHP_EOL . '<br>— ' . $permalink; |
157 | 161 | ||
158 | $pubDate = $link['created']; | 162 | $pubDate = $link['created']; |
159 | $link['pub_iso_date'] = $this->getIsoDate($pubDate); | 163 | $link['pub_iso_date'] = $this->getIsoDate($pubDate); |
@@ -164,7 +168,6 @@ class FeedBuilder | |||
164 | $link['up_iso_date'] = $this->getIsoDate($upDate, DateTime::ATOM); | 168 | $link['up_iso_date'] = $this->getIsoDate($upDate, DateTime::ATOM); |
165 | } else { | 169 | } else { |
166 | $link['up_iso_date'] = $this->getIsoDate($pubDate, DateTime::ATOM); | 170 | $link['up_iso_date'] = $this->getIsoDate($pubDate, DateTime::ATOM); |
167 | ; | ||
168 | } | 171 | } |
169 | 172 | ||
170 | // Save the more recent item. | 173 | // Save the more recent item. |
@@ -223,11 +226,11 @@ class FeedBuilder | |||
223 | public function getTypeLanguage() | 226 | public function getTypeLanguage() |
224 | { | 227 | { |
225 | // Use the locale do define the language, if available. | 228 | // Use the locale do define the language, if available. |
226 | if (! empty($this->locale) && preg_match('/^\w{2}[_\-]\w{2}/', $this->locale)) { | 229 | if (!empty($this->locale) && preg_match('/^\w{2}[_\-]\w{2}/', $this->locale)) { |
227 | $length = ($this->feedType == self::$FEED_RSS) ? 5 : 2; | 230 | $length = ($this->feedType === self::$FEED_RSS) ? 5 : 2; |
228 | return str_replace('_', '-', substr($this->locale, 0, $length)); | 231 | return str_replace('_', '-', substr($this->locale, 0, $length)); |
229 | } | 232 | } |
230 | return ($this->feedType == self::$FEED_RSS) ? 'en-en' : 'en'; | 233 | return ($this->feedType === self::$FEED_RSS) ? 'en-en' : 'en'; |
231 | } | 234 | } |
232 | 235 | ||
233 | /** | 236 | /** |
@@ -287,7 +290,7 @@ class FeedBuilder | |||
287 | } | 290 | } |
288 | 291 | ||
289 | $intNb = intval($this->userInput['nb']); | 292 | $intNb = intval($this->userInput['nb']); |
290 | if (! is_int($intNb) || $intNb == 0) { | 293 | if (!is_int($intNb) || $intNb == 0) { |
291 | return self::$DEFAULT_NB_LINKS; | 294 | return self::$DEFAULT_NB_LINKS; |
292 | } | 295 | } |
293 | 296 | ||
diff --git a/application/Base64Url.php b/application/http/Base64Url.php index 54d0fcd5..33fa7c1f 100644 --- a/application/Base64Url.php +++ b/application/http/Base64Url.php | |||
@@ -1,6 +1,6 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Shaarli; | 3 | namespace Shaarli\Http; |
4 | 4 | ||
5 | /** | 5 | /** |
6 | * URL-safe Base64 operations | 6 | * URL-safe Base64 operations |
diff --git a/application/HttpUtils.php b/application/http/HttpUtils.php index 9c438160..2ea9195d 100644 --- a/application/HttpUtils.php +++ b/application/http/HttpUtils.php | |||
@@ -1,4 +1,7 @@ | |||
1 | <?php | 1 | <?php |
2 | |||
3 | use Shaarli\Http\Url; | ||
4 | |||
2 | /** | 5 | /** |
3 | * GET an HTTP URL to retrieve its content | 6 | * GET an HTTP URL to retrieve its content |
4 | * Uses the cURL library or a fallback method | 7 | * Uses the cURL library or a fallback method |
@@ -38,7 +41,7 @@ function get_http_response($url, $timeout = 30, $maxBytes = 4194304, $curlWriteF | |||
38 | $cleanUrl = $urlObj->idnToAscii(); | 41 | $cleanUrl = $urlObj->idnToAscii(); |
39 | 42 | ||
40 | if (!filter_var($cleanUrl, FILTER_VALIDATE_URL) || !$urlObj->isHttp()) { | 43 | if (!filter_var($cleanUrl, FILTER_VALIDATE_URL) || !$urlObj->isHttp()) { |
41 | return array(array(0 => 'Invalid HTTP Url'), false); | 44 | return array(array(0 => 'Invalid HTTP UrlUtils'), false); |
42 | } | 45 | } |
43 | 46 | ||
44 | $userAgent = | 47 | $userAgent = |
diff --git a/application/Url.php b/application/http/Url.php index 3b7f19c2..90444a2f 100644 --- a/application/Url.php +++ b/application/http/Url.php | |||
@@ -1,91 +1,6 @@ | |||
1 | <?php | 1 | <?php |
2 | /** | ||
3 | * Converts an array-represented URL to a string | ||
4 | * | ||
5 | * Source: http://php.net/manual/en/function.parse-url.php#106731 | ||
6 | * | ||
7 | * @see http://php.net/manual/en/function.parse-url.php | ||
8 | * | ||
9 | * @param array $parsedUrl an array-represented URL | ||
10 | * | ||
11 | * @return string the string representation of the URL | ||
12 | */ | ||
13 | function unparse_url($parsedUrl) | ||
14 | { | ||
15 | $scheme = isset($parsedUrl['scheme']) ? $parsedUrl['scheme'].'://' : ''; | ||
16 | $host = isset($parsedUrl['host']) ? $parsedUrl['host'] : ''; | ||
17 | $port = isset($parsedUrl['port']) ? ':'.$parsedUrl['port'] : ''; | ||
18 | $user = isset($parsedUrl['user']) ? $parsedUrl['user'] : ''; | ||
19 | $pass = isset($parsedUrl['pass']) ? ':'.$parsedUrl['pass'] : ''; | ||
20 | $pass = ($user || $pass) ? "$pass@" : ''; | ||
21 | $path = isset($parsedUrl['path']) ? $parsedUrl['path'] : ''; | ||
22 | $query = isset($parsedUrl['query']) ? '?'.$parsedUrl['query'] : ''; | ||
23 | $fragment = isset($parsedUrl['fragment']) ? '#'.$parsedUrl['fragment'] : ''; | ||
24 | 2 | ||
25 | return "$scheme$user$pass$host$port$path$query$fragment"; | 3 | namespace Shaarli\Http; |
26 | } | ||
27 | |||
28 | /** | ||
29 | * Removes undesired query parameters and fragments | ||
30 | * | ||
31 | * @param string url Url to be cleaned | ||
32 | * | ||
33 | * @return string the string representation of this URL after cleanup | ||
34 | */ | ||
35 | function cleanup_url($url) | ||
36 | { | ||
37 | $obj_url = new Url($url); | ||
38 | return $obj_url->cleanup(); | ||
39 | } | ||
40 | |||
41 | /** | ||
42 | * Get URL scheme. | ||
43 | * | ||
44 | * @param string url Url for which the scheme is requested | ||
45 | * | ||
46 | * @return mixed the URL scheme or false if none is provided. | ||
47 | */ | ||
48 | function get_url_scheme($url) | ||
49 | { | ||
50 | $obj_url = new Url($url); | ||
51 | return $obj_url->getScheme(); | ||
52 | } | ||
53 | |||
54 | /** | ||
55 | * Adds a trailing slash at the end of URL if necessary. | ||
56 | * | ||
57 | * @param string $url URL to check/edit. | ||
58 | * | ||
59 | * @return string $url URL with a end trailing slash. | ||
60 | */ | ||
61 | function add_trailing_slash($url) | ||
62 | { | ||
63 | return $url . (!endsWith($url, '/') ? '/' : ''); | ||
64 | } | ||
65 | |||
66 | /** | ||
67 | * Replace not whitelisted protocols by 'http://' from given URL. | ||
68 | * | ||
69 | * @param string $url URL to clean | ||
70 | * @param array $protocols List of allowed protocols (aside from http(s)). | ||
71 | * | ||
72 | * @return string URL with allowed protocol | ||
73 | */ | ||
74 | function whitelist_protocols($url, $protocols) | ||
75 | { | ||
76 | if (startsWith($url, '?') || startsWith($url, '/')) { | ||
77 | return $url; | ||
78 | } | ||
79 | $protocols = array_merge(['http', 'https'], $protocols); | ||
80 | $protocol = preg_match('#^(\w+):/?/?#', $url, $match); | ||
81 | // Protocol not allowed: we remove it and replace it with http | ||
82 | if ($protocol === 1 && ! in_array($match[1], $protocols)) { | ||
83 | $url = str_replace($match[0], 'http://', $url); | ||
84 | } elseif ($protocol !== 1) { | ||
85 | $url = 'http://' . $url; | ||
86 | } | ||
87 | return $url; | ||
88 | } | ||
89 | 4 | ||
90 | /** | 5 | /** |
91 | * URL representation and cleanup utilities | 6 | * URL representation and cleanup utilities |
@@ -182,7 +97,7 @@ class Url | |||
182 | } | 97 | } |
183 | return $input; | 98 | return $input; |
184 | } | 99 | } |
185 | 100 | ||
186 | /** | 101 | /** |
187 | * Returns a string representation of this URL | 102 | * Returns a string representation of this URL |
188 | */ | 103 | */ |
@@ -196,7 +111,7 @@ class Url | |||
196 | */ | 111 | */ |
197 | protected function cleanupQuery() | 112 | protected function cleanupQuery() |
198 | { | 113 | { |
199 | if (! isset($this->parts['query'])) { | 114 | if (!isset($this->parts['query'])) { |
200 | return; | 115 | return; |
201 | } | 116 | } |
202 | 117 | ||
@@ -224,7 +139,7 @@ class Url | |||
224 | */ | 139 | */ |
225 | protected function cleanupFragment() | 140 | protected function cleanupFragment() |
226 | { | 141 | { |
227 | if (! isset($this->parts['fragment'])) { | 142 | if (!isset($this->parts['fragment'])) { |
228 | return; | 143 | return; |
229 | } | 144 | } |
230 | 145 | ||
@@ -257,7 +172,7 @@ class Url | |||
257 | public function idnToAscii() | 172 | public function idnToAscii() |
258 | { | 173 | { |
259 | $out = $this->cleanup(); | 174 | $out = $this->cleanup(); |
260 | if (! function_exists('idn_to_ascii') || ! isset($this->parts['host'])) { | 175 | if (!function_exists('idn_to_ascii') || !isset($this->parts['host'])) { |
261 | return $out; | 176 | return $out; |
262 | } | 177 | } |
263 | $asciiHost = idn_to_ascii($this->parts['host'], 0, INTL_IDNA_VARIANT_UTS46); | 178 | $asciiHost = idn_to_ascii($this->parts['host'], 0, INTL_IDNA_VARIANT_UTS46); |
@@ -291,7 +206,7 @@ class Url | |||
291 | } | 206 | } |
292 | 207 | ||
293 | /** | 208 | /** |
294 | * Test if the Url is an HTTP one. | 209 | * Test if the UrlUtils is an HTTP one. |
295 | * | 210 | * |
296 | * @return true is HTTP, false otherwise. | 211 | * @return true is HTTP, false otherwise. |
297 | */ | 212 | */ |
diff --git a/application/http/UrlUtils.php b/application/http/UrlUtils.php new file mode 100644 index 00000000..4bc84b82 --- /dev/null +++ b/application/http/UrlUtils.php | |||
@@ -0,0 +1,88 @@ | |||
1 | <?php | ||
2 | /** | ||
3 | * Converts an array-represented URL to a string | ||
4 | * | ||
5 | * Source: http://php.net/manual/en/function.parse-url.php#106731 | ||
6 | * | ||
7 | * @see http://php.net/manual/en/function.parse-url.php | ||
8 | * | ||
9 | * @param array $parsedUrl an array-represented URL | ||
10 | * | ||
11 | * @return string the string representation of the URL | ||
12 | */ | ||
13 | function unparse_url($parsedUrl) | ||
14 | { | ||
15 | $scheme = isset($parsedUrl['scheme']) ? $parsedUrl['scheme'].'://' : ''; | ||
16 | $host = isset($parsedUrl['host']) ? $parsedUrl['host'] : ''; | ||
17 | $port = isset($parsedUrl['port']) ? ':'.$parsedUrl['port'] : ''; | ||
18 | $user = isset($parsedUrl['user']) ? $parsedUrl['user'] : ''; | ||
19 | $pass = isset($parsedUrl['pass']) ? ':'.$parsedUrl['pass'] : ''; | ||
20 | $pass = ($user || $pass) ? "$pass@" : ''; | ||
21 | $path = isset($parsedUrl['path']) ? $parsedUrl['path'] : ''; | ||
22 | $query = isset($parsedUrl['query']) ? '?'.$parsedUrl['query'] : ''; | ||
23 | $fragment = isset($parsedUrl['fragment']) ? '#'.$parsedUrl['fragment'] : ''; | ||
24 | |||
25 | return "$scheme$user$pass$host$port$path$query$fragment"; | ||
26 | } | ||
27 | |||
28 | /** | ||
29 | * Removes undesired query parameters and fragments | ||
30 | * | ||
31 | * @param string url UrlUtils to be cleaned | ||
32 | * | ||
33 | * @return string the string representation of this URL after cleanup | ||
34 | */ | ||
35 | function cleanup_url($url) | ||
36 | { | ||
37 | $obj_url = new \Shaarli\Http\Url($url); | ||
38 | return $obj_url->cleanup(); | ||
39 | } | ||
40 | |||
41 | /** | ||
42 | * Get URL scheme. | ||
43 | * | ||
44 | * @param string url UrlUtils for which the scheme is requested | ||
45 | * | ||
46 | * @return mixed the URL scheme or false if none is provided. | ||
47 | */ | ||
48 | function get_url_scheme($url) | ||
49 | { | ||
50 | $obj_url = new \Shaarli\Http\Url($url); | ||
51 | return $obj_url->getScheme(); | ||
52 | } | ||
53 | |||
54 | /** | ||
55 | * Adds a trailing slash at the end of URL if necessary. | ||
56 | * | ||
57 | * @param string $url URL to check/edit. | ||
58 | * | ||
59 | * @return string $url URL with a end trailing slash. | ||
60 | */ | ||
61 | function add_trailing_slash($url) | ||
62 | { | ||
63 | return $url . (!endsWith($url, '/') ? '/' : ''); | ||
64 | } | ||
65 | |||
66 | /** | ||
67 | * Replace not whitelisted protocols by 'http://' from given URL. | ||
68 | * | ||
69 | * @param string $url URL to clean | ||
70 | * @param array $protocols List of allowed protocols (aside from http(s)). | ||
71 | * | ||
72 | * @return string URL with allowed protocol | ||
73 | */ | ||
74 | function whitelist_protocols($url, $protocols) | ||
75 | { | ||
76 | if (startsWith($url, '?') || startsWith($url, '/')) { | ||
77 | return $url; | ||
78 | } | ||
79 | $protocols = array_merge(['http', 'https'], $protocols); | ||
80 | $protocol = preg_match('#^(\w+):/?/?#', $url, $match); | ||
81 | // Protocol not allowed: we remove it and replace it with http | ||
82 | if ($protocol === 1 && ! in_array($match[1], $protocols)) { | ||
83 | $url = str_replace($match[0], 'http://', $url); | ||
84 | } elseif ($protocol !== 1) { | ||
85 | $url = 'http://' . $url; | ||
86 | } | ||
87 | return $url; | ||
88 | } | ||
diff --git a/application/NetscapeBookmarkUtils.php b/application/netscape/NetscapeBookmarkUtils.php index 84dd2b20..28665941 100644 --- a/application/NetscapeBookmarkUtils.php +++ b/application/netscape/NetscapeBookmarkUtils.php | |||
@@ -1,9 +1,16 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Shaarli\Netscape; | ||
4 | |||
5 | use DateTime; | ||
6 | use DateTimeZone; | ||
7 | use Exception; | ||
8 | use Katzgrau\KLogger\Logger; | ||
3 | use Psr\Log\LogLevel; | 9 | use Psr\Log\LogLevel; |
10 | use Shaarli\Bookmark\LinkDB; | ||
4 | use Shaarli\Config\ConfigManager; | 11 | use Shaarli\Config\ConfigManager; |
12 | use Shaarli\History; | ||
5 | use Shaarli\NetscapeBookmarkParser\NetscapeBookmarkParser; | 13 | use Shaarli\NetscapeBookmarkParser\NetscapeBookmarkParser; |
6 | use Katzgrau\KLogger\Logger; | ||
7 | 14 | ||
8 | /** | 15 | /** |
9 | * Utilities to import and export bookmarks using the Netscape format | 16 | * Utilities to import and export bookmarks using the Netscape format |
@@ -31,8 +38,8 @@ class NetscapeBookmarkUtils | |||
31 | public static function filterAndFormat($linkDb, $selection, $prependNoteUrl, $indexUrl) | 38 | public static function filterAndFormat($linkDb, $selection, $prependNoteUrl, $indexUrl) |
32 | { | 39 | { |
33 | // see tpl/export.html for possible values | 40 | // see tpl/export.html for possible values |
34 | if (! in_array($selection, array('all', 'public', 'private'))) { | 41 | if (!in_array($selection, array('all', 'public', 'private'))) { |
35 | throw new Exception(t('Invalid export selection:') .' "'.$selection.'"'); | 42 | throw new Exception(t('Invalid export selection:') . ' "' . $selection . '"'); |
36 | } | 43 | } |
37 | 44 | ||
38 | $bookmarkLinks = array(); | 45 | $bookmarkLinks = array(); |
@@ -47,7 +54,7 @@ class NetscapeBookmarkUtils | |||
47 | $link['timestamp'] = $date->getTimestamp(); | 54 | $link['timestamp'] = $date->getTimestamp(); |
48 | $link['taglist'] = str_replace(' ', ',', $link['tags']); | 55 | $link['taglist'] = str_replace(' ', ',', $link['tags']); |
49 | 56 | ||
50 | if (startsWith($link['url'], '?') && $prependNoteUrl) { | 57 | if (is_note($link['url']) && $prependNoteUrl) { |
51 | $link['url'] = $indexUrl . $link['url']; | 58 | $link['url'] = $indexUrl . $link['url']; |
52 | } | 59 | } |
53 | 60 | ||
@@ -84,7 +91,7 @@ class NetscapeBookmarkUtils | |||
84 | $status .= vsprintf( | 91 | $status .= vsprintf( |
85 | t( | 92 | t( |
86 | 'was successfully processed in %d seconds: ' | 93 | 'was successfully processed in %d seconds: ' |
87 | .'%d links imported, %d links overwritten, %d links skipped.' | 94 | . '%d links imported, %d links overwritten, %d links skipped.' |
88 | ), | 95 | ), |
89 | [$duration, $importCount, $overwriteCount, $skipCount] | 96 | [$duration, $importCount, $overwriteCount, $skipCount] |
90 | ); | 97 | ); |
@@ -95,11 +102,11 @@ class NetscapeBookmarkUtils | |||
95 | /** | 102 | /** |
96 | * Imports Web bookmarks from an uploaded Netscape bookmark dump | 103 | * Imports Web bookmarks from an uploaded Netscape bookmark dump |
97 | * | 104 | * |
98 | * @param array $post Server $_POST parameters | 105 | * @param array $post Server $_POST parameters |
99 | * @param array $files Server $_FILES parameters | 106 | * @param array $files Server $_FILES parameters |
100 | * @param LinkDB $linkDb Loaded LinkDB instance | 107 | * @param LinkDB $linkDb Loaded LinkDB instance |
101 | * @param ConfigManager $conf instance | 108 | * @param ConfigManager $conf instance |
102 | * @param History $history History instance | 109 | * @param History $history History instance |
103 | * | 110 | * |
104 | * @return string Summary of the bookmark import status | 111 | * @return string Summary of the bookmark import status |
105 | */ | 112 | */ |
@@ -115,7 +122,7 @@ class NetscapeBookmarkUtils | |||
115 | } | 122 | } |
116 | 123 | ||
117 | // Overwrite existing links? | 124 | // Overwrite existing links? |
118 | $overwrite = ! empty($post['overwrite']); | 125 | $overwrite = !empty($post['overwrite']); |
119 | 126 | ||
120 | // Add tags to all imported links? | 127 | // Add tags to all imported links? |
121 | if (empty($post['default_tags'])) { | 128 | if (empty($post['default_tags'])) { |
@@ -138,7 +145,7 @@ class NetscapeBookmarkUtils | |||
138 | ); | 145 | ); |
139 | $logger = new Logger( | 146 | $logger = new Logger( |
140 | $conf->get('resource.data_dir'), | 147 | $conf->get('resource.data_dir'), |
141 | ! $conf->get('dev.debug') ? LogLevel::INFO : LogLevel::DEBUG, | 148 | !$conf->get('dev.debug') ? LogLevel::INFO : LogLevel::DEBUG, |
142 | [ | 149 | [ |
143 | 'prefix' => 'import.', | 150 | 'prefix' => 'import.', |
144 | 'extension' => 'log', | 151 | 'extension' => 'log', |
@@ -193,7 +200,7 @@ class NetscapeBookmarkUtils | |||
193 | } | 200 | } |
194 | 201 | ||
195 | // Add a new link - @ used for UNIX timestamps | 202 | // Add a new link - @ used for UNIX timestamps |
196 | $newLinkDate = new DateTime('@'.strval($bkm['time'])); | 203 | $newLinkDate = new DateTime('@' . strval($bkm['time'])); |
197 | $newLinkDate->setTimezone(new DateTimeZone(date_default_timezone_get())); | 204 | $newLinkDate->setTimezone(new DateTimeZone(date_default_timezone_get())); |
198 | $newLink['created'] = $newLinkDate; | 205 | $newLink['created'] = $newLinkDate; |
199 | $newLink['id'] = $linkDb->getNextId(); | 206 | $newLink['id'] = $linkDb->getNextId(); |
diff --git a/application/PluginManager.php b/application/plugin/PluginManager.php index 1ed4db4b..f7b24a8e 100644 --- a/application/PluginManager.php +++ b/application/plugin/PluginManager.php | |||
@@ -1,4 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin; | ||
3 | |||
4 | use Shaarli\Config\ConfigManager; | ||
5 | use Shaarli\Plugin\Exception\PluginFileNotFoundException; | ||
2 | 6 | ||
3 | /** | 7 | /** |
4 | * Class PluginManager | 8 | * Class PluginManager |
@@ -9,12 +13,14 @@ class PluginManager | |||
9 | { | 13 | { |
10 | /** | 14 | /** |
11 | * List of authorized plugins from configuration file. | 15 | * List of authorized plugins from configuration file. |
16 | * | ||
12 | * @var array $authorizedPlugins | 17 | * @var array $authorizedPlugins |
13 | */ | 18 | */ |
14 | private $authorizedPlugins; | 19 | private $authorizedPlugins; |
15 | 20 | ||
16 | /** | 21 | /** |
17 | * List of loaded plugins. | 22 | * List of loaded plugins. |
23 | * | ||
18 | * @var array $loadedPlugins | 24 | * @var array $loadedPlugins |
19 | */ | 25 | */ |
20 | private $loadedPlugins = array(); | 26 | private $loadedPlugins = array(); |
@@ -31,12 +37,14 @@ class PluginManager | |||
31 | 37 | ||
32 | /** | 38 | /** |
33 | * Plugins subdirectory. | 39 | * Plugins subdirectory. |
40 | * | ||
34 | * @var string $PLUGINS_PATH | 41 | * @var string $PLUGINS_PATH |
35 | */ | 42 | */ |
36 | public static $PLUGINS_PATH = 'plugins'; | 43 | public static $PLUGINS_PATH = 'plugins'; |
37 | 44 | ||
38 | /** | 45 | /** |
39 | * Plugins meta files extension. | 46 | * Plugins meta files extension. |
47 | * | ||
40 | * @var string $META_EXT | 48 | * @var string $META_EXT |
41 | */ | 49 | */ |
42 | public static $META_EXT = 'meta'; | 50 | public static $META_EXT = 'meta'; |
@@ -84,9 +92,9 @@ class PluginManager | |||
84 | /** | 92 | /** |
85 | * Execute all plugins registered hook. | 93 | * Execute all plugins registered hook. |
86 | * | 94 | * |
87 | * @param string $hook name of the hook to trigger. | 95 | * @param string $hook name of the hook to trigger. |
88 | * @param array $data list of data to manipulate passed by reference. | 96 | * @param array $data list of data to manipulate passed by reference. |
89 | * @param array $params additional parameters such as page target. | 97 | * @param array $params additional parameters such as page target. |
90 | * | 98 | * |
91 | * @return void | 99 | * @return void |
92 | */ | 100 | */ |
@@ -118,7 +126,7 @@ class PluginManager | |||
118 | * @param string $pluginName plugin's name. | 126 | * @param string $pluginName plugin's name. |
119 | * | 127 | * |
120 | * @return void | 128 | * @return void |
121 | * @throws PluginFileNotFoundException - plugin files not found. | 129 | * @throws \Shaarli\Plugin\Exception\PluginFileNotFoundException - plugin files not found. |
122 | */ | 130 | */ |
123 | private function loadPlugin($dir, $pluginName) | 131 | private function loadPlugin($dir, $pluginName) |
124 | { | 132 | { |
@@ -204,8 +212,8 @@ class PluginManager | |||
204 | 212 | ||
205 | $metaData[$plugin]['parameters'][$param]['value'] = ''; | 213 | $metaData[$plugin]['parameters'][$param]['value'] = ''; |
206 | // Optional parameter description in parameter.PARAM_NAME= | 214 | // Optional parameter description in parameter.PARAM_NAME= |
207 | if (isset($metaData[$plugin]['parameter.'. $param])) { | 215 | if (isset($metaData[$plugin]['parameter.' . $param])) { |
208 | $metaData[$plugin]['parameters'][$param]['desc'] = t($metaData[$plugin]['parameter.'. $param]); | 216 | $metaData[$plugin]['parameters'][$param]['desc'] = t($metaData[$plugin]['parameter.' . $param]); |
209 | } | 217 | } |
210 | } | 218 | } |
211 | } | 219 | } |
@@ -223,22 +231,3 @@ class PluginManager | |||
223 | return $this->errors; | 231 | return $this->errors; |
224 | } | 232 | } |
225 | } | 233 | } |
226 | |||
227 | /** | ||
228 | * Class PluginFileNotFoundException | ||
229 | * | ||
230 | * Raise when plugin files can't be found. | ||
231 | */ | ||
232 | class PluginFileNotFoundException extends Exception | ||
233 | { | ||
234 | /** | ||
235 | * Construct exception with plugin name. | ||
236 | * Generate message. | ||
237 | * | ||
238 | * @param string $pluginName name of the plugin not found | ||
239 | */ | ||
240 | public function __construct($pluginName) | ||
241 | { | ||
242 | $this->message = sprintf(t('Plugin "%s" files not found.'), $pluginName); | ||
243 | } | ||
244 | } | ||
diff --git a/application/plugin/exception/PluginFileNotFoundException.php b/application/plugin/exception/PluginFileNotFoundException.php new file mode 100644 index 00000000..e5386f02 --- /dev/null +++ b/application/plugin/exception/PluginFileNotFoundException.php | |||
@@ -0,0 +1,23 @@ | |||
1 | <?php | ||
2 | namespace Shaarli\Plugin\Exception; | ||
3 | |||
4 | use Exception; | ||
5 | |||
6 | /** | ||
7 | * Class PluginFileNotFoundException | ||
8 | * | ||
9 | * Raise when plugin files can't be found. | ||
10 | */ | ||
11 | class PluginFileNotFoundException extends Exception | ||
12 | { | ||
13 | /** | ||
14 | * Construct exception with plugin name. | ||
15 | * Generate message. | ||
16 | * | ||
17 | * @param string $pluginName name of the plugin not found | ||
18 | */ | ||
19 | public function __construct($pluginName) | ||
20 | { | ||
21 | $this->message = sprintf(t('Plugin "%s" files not found.'), $pluginName); | ||
22 | } | ||
23 | } | ||
diff --git a/application/PageBuilder.php b/application/render/PageBuilder.php index 2ca95832..3f86fc26 100644 --- a/application/PageBuilder.php +++ b/application/render/PageBuilder.php | |||
@@ -1,5 +1,11 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Shaarli\Render; | ||
4 | |||
5 | use Exception; | ||
6 | use RainTPL; | ||
7 | use Shaarli\ApplicationUtils; | ||
8 | use Shaarli\Bookmark\LinkDB; | ||
3 | use Shaarli\Config\ConfigManager; | 9 | use Shaarli\Config\ConfigManager; |
4 | use Shaarli\Thumbnailer; | 10 | use Shaarli\Thumbnailer; |
5 | 11 | ||
@@ -37,7 +43,9 @@ class PageBuilder | |||
37 | */ | 43 | */ |
38 | protected $token; | 44 | protected $token; |
39 | 45 | ||
40 | /** @var bool $isLoggedIn Whether the user is logged in **/ | 46 | /** |
47 | * @var bool $isLoggedIn Whether the user is logged in | ||
48 | */ | ||
41 | protected $isLoggedIn = false; | 49 | protected $isLoggedIn = false; |
42 | 50 | ||
43 | /** | 51 | /** |
@@ -101,7 +109,7 @@ class PageBuilder | |||
101 | ApplicationUtils::getVersionHash(SHAARLI_VERSION, $this->conf->get('credentials.salt')) | 109 | ApplicationUtils::getVersionHash(SHAARLI_VERSION, $this->conf->get('credentials.salt')) |
102 | ); | 110 | ); |
103 | $this->tpl->assign('index_url', index_url($_SERVER)); | 111 | $this->tpl->assign('index_url', index_url($_SERVER)); |
104 | $visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : ''; | 112 | $visibility = !empty($_SESSION['visibility']) ? $_SESSION['visibility'] : ''; |
105 | $this->tpl->assign('visibility', $visibility); | 113 | $this->tpl->assign('visibility', $visibility); |
106 | $this->tpl->assign('untaggedonly', !empty($_SESSION['untaggedonly'])); | 114 | $this->tpl->assign('untaggedonly', !empty($_SESSION['untaggedonly'])); |
107 | $this->tpl->assign('pagetitle', $this->conf->get('general.title', 'Shaarli')); | 115 | $this->tpl->assign('pagetitle', $this->conf->get('general.title', 'Shaarli')); |
@@ -115,6 +123,8 @@ class PageBuilder | |||
115 | $this->tpl->assign('hide_timestamps', $this->conf->get('privacy.hide_timestamps', false)); | 123 | $this->tpl->assign('hide_timestamps', $this->conf->get('privacy.hide_timestamps', false)); |
116 | $this->tpl->assign('token', $this->token); | 124 | $this->tpl->assign('token', $this->token); |
117 | 125 | ||
126 | $this->tpl->assign('language', $this->conf->get('translation.language')); | ||
127 | |||
118 | if ($this->linkDB !== null) { | 128 | if ($this->linkDB !== null) { |
119 | $this->tpl->assign('tags', $this->linkDB->linksCountPerTag()); | 129 | $this->tpl->assign('tags', $this->linkDB->linksCountPerTag()); |
120 | } | 130 | } |
@@ -126,7 +136,7 @@ class PageBuilder | |||
126 | $this->tpl->assign('thumbnails_width', $this->conf->get('thumbnails.width')); | 136 | $this->tpl->assign('thumbnails_width', $this->conf->get('thumbnails.width')); |
127 | $this->tpl->assign('thumbnails_height', $this->conf->get('thumbnails.height')); | 137 | $this->tpl->assign('thumbnails_height', $this->conf->get('thumbnails.height')); |
128 | 138 | ||
129 | if (! empty($_SESSION['warnings'])) { | 139 | if (!empty($_SESSION['warnings'])) { |
130 | $this->tpl->assign('global_warnings', $_SESSION['warnings']); | 140 | $this->tpl->assign('global_warnings', $_SESSION['warnings']); |
131 | unset($_SESSION['warnings']); | 141 | unset($_SESSION['warnings']); |
132 | } | 142 | } |
@@ -189,16 +199,16 @@ class PageBuilder | |||
189 | 199 | ||
190 | /** | 200 | /** |
191 | * Render a 404 page (uses the template : tpl/404.tpl) | 201 | * Render a 404 page (uses the template : tpl/404.tpl) |
192 | * usage : $PAGE->render404('The link was deleted') | 202 | * usage: $PAGE->render404('The link was deleted') |
193 | * | 203 | * |
194 | * @param string $message A messate to display what is not found | 204 | * @param string $message A message to display what is not found |
195 | */ | 205 | */ |
196 | public function render404($message = '') | 206 | public function render404($message = '') |
197 | { | 207 | { |
198 | if (empty($message)) { | 208 | if (empty($message)) { |
199 | $message = t('The page you are trying to reach does not exist or has been deleted.'); | 209 | $message = t('The page you are trying to reach does not exist or has been deleted.'); |
200 | } | 210 | } |
201 | header($_SERVER['SERVER_PROTOCOL'] .' '. t('404 Not Found')); | 211 | header($_SERVER['SERVER_PROTOCOL'] . ' ' . t('404 Not Found')); |
202 | $this->tpl->assign('error_message', $message); | 212 | $this->tpl->assign('error_message', $message); |
203 | $this->renderPage('404'); | 213 | $this->renderPage('404'); |
204 | } | 214 | } |
diff --git a/application/ThemeUtils.php b/application/render/ThemeUtils.php index 16f2f6a2..86096c64 100644 --- a/application/ThemeUtils.php +++ b/application/render/ThemeUtils.php | |||
@@ -1,6 +1,6 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Shaarli; | 3 | namespace Shaarli\Render; |
4 | 4 | ||
5 | /** | 5 | /** |
6 | * Class ThemeUtils | 6 | * Class ThemeUtils |
diff --git a/application/security/BanManager.php b/application/security/BanManager.php new file mode 100644 index 00000000..68190c54 --- /dev/null +++ b/application/security/BanManager.php | |||
@@ -0,0 +1,213 @@ | |||
1 | <?php | ||
2 | |||
3 | |||
4 | namespace Shaarli\Security; | ||
5 | |||
6 | use Shaarli\FileUtils; | ||
7 | |||
8 | /** | ||
9 | * Class BanManager | ||
10 | * | ||
11 | * Failed login attempts will store the associated IP address. | ||
12 | * After N failed attempts, the IP will be prevented from log in for duration D. | ||
13 | * Both N and D can be set in the configuration file. | ||
14 | * | ||
15 | * @package Shaarli\Security | ||
16 | */ | ||
17 | class BanManager | ||
18 | { | ||
19 | /** @var array List of allowed proxies IP */ | ||
20 | protected $trustedProxies; | ||
21 | |||
22 | /** @var int Number of allowed failed attempt before the ban */ | ||
23 | protected $nbAttempts; | ||
24 | |||
25 | /** @var int Ban duration in seconds */ | ||
26 | protected $banDuration; | ||
27 | |||
28 | /** @var string Path to the file containing IP bans and failures */ | ||
29 | protected $banFile; | ||
30 | |||
31 | /** @var string Path to the log file, used to log bans */ | ||
32 | protected $logFile; | ||
33 | |||
34 | /** @var array List of IP with their associated number of failed attempts */ | ||
35 | protected $failures = []; | ||
36 | |||
37 | /** @var array List of banned IP with their associated unban timestamp */ | ||
38 | protected $bans = []; | ||
39 | |||
40 | /** | ||
41 | * BanManager constructor. | ||
42 | * | ||
43 | * @param array $trustedProxies List of allowed proxies IP | ||
44 | * @param int $nbAttempts Number of allowed failed attempt before the ban | ||
45 | * @param int $banDuration Ban duration in seconds | ||
46 | * @param string $banFile Path to the file containing IP bans and failures | ||
47 | * @param string $logFile Path to the log file, used to log bans | ||
48 | */ | ||
49 | public function __construct($trustedProxies, $nbAttempts, $banDuration, $banFile, $logFile) { | ||
50 | $this->trustedProxies = $trustedProxies; | ||
51 | $this->nbAttempts = $nbAttempts; | ||
52 | $this->banDuration = $banDuration; | ||
53 | $this->banFile = $banFile; | ||
54 | $this->logFile = $logFile; | ||
55 | $this->readBanFile(); | ||
56 | } | ||
57 | |||
58 | /** | ||
59 | * Handle a failed login and ban the IP after too many failed attempts | ||
60 | * | ||
61 | * @param array $server The $_SERVER array | ||
62 | */ | ||
63 | public function handleFailedAttempt($server) | ||
64 | { | ||
65 | $ip = $this->getIp($server); | ||
66 | // the IP is behind a trusted forward proxy, but is not forwarded | ||
67 | // in the HTTP headers, so we do nothing | ||
68 | if (empty($ip)) { | ||
69 | return; | ||
70 | } | ||
71 | |||
72 | // increment the fail count for this IP | ||
73 | if (isset($this->failures[$ip])) { | ||
74 | $this->failures[$ip]++; | ||
75 | } else { | ||
76 | $this->failures[$ip] = 1; | ||
77 | } | ||
78 | |||
79 | if ($this->failures[$ip] >= $this->nbAttempts) { | ||
80 | $this->bans[$ip] = time() + $this->banDuration; | ||
81 | logm( | ||
82 | $this->logFile, | ||
83 | $server['REMOTE_ADDR'], | ||
84 | 'IP address banned from login: '. $ip | ||
85 | ); | ||
86 | } | ||
87 | $this->writeBanFile(); | ||
88 | } | ||
89 | |||
90 | /** | ||
91 | * Remove failed attempts for the provided client. | ||
92 | * | ||
93 | * @param array $server $_SERVER | ||
94 | */ | ||
95 | public function clearFailures($server) | ||
96 | { | ||
97 | $ip = $this->getIp($server); | ||
98 | // the IP is behind a trusted forward proxy, but is not forwarded | ||
99 | // in the HTTP headers, so we do nothing | ||
100 | if (empty($ip)) { | ||
101 | return; | ||
102 | } | ||
103 | |||
104 | if (isset($this->failures[$ip])) { | ||
105 | unset($this->failures[$ip]); | ||
106 | } | ||
107 | $this->writeBanFile(); | ||
108 | } | ||
109 | |||
110 | /** | ||
111 | * Check whether the client IP is banned or not. | ||
112 | * | ||
113 | * @param array $server $_SERVER | ||
114 | * | ||
115 | * @return bool True if the IP is banned, false otherwise | ||
116 | */ | ||
117 | public function isBanned($server) | ||
118 | { | ||
119 | $ip = $this->getIp($server); | ||
120 | // the IP is behind a trusted forward proxy, but is not forwarded | ||
121 | // in the HTTP headers, so we allow the authentication attempt. | ||
122 | if (empty($ip)) { | ||
123 | return false; | ||
124 | } | ||
125 | |||
126 | // the user is not banned | ||
127 | if (! isset($this->bans[$ip])) { | ||
128 | return false; | ||
129 | } | ||
130 | |||
131 | // the user is still banned | ||
132 | if ($this->bans[$ip] > time()) { | ||
133 | return true; | ||
134 | } | ||
135 | |||
136 | // the ban has expired, the user can attempt to log in again | ||
137 | if (isset($this->failures[$ip])) { | ||
138 | unset($this->failures[$ip]); | ||
139 | } | ||
140 | unset($this->bans[$ip]); | ||
141 | logm($this->logFile, $server['REMOTE_ADDR'], 'Ban lifted for: '. $ip); | ||
142 | |||
143 | $this->writeBanFile(); | ||
144 | return false; | ||
145 | } | ||
146 | |||
147 | /** | ||
148 | * Retrieve the IP from $_SERVER. | ||
149 | * If the actual IP is behind an allowed reverse proxy, | ||
150 | * we try to extract the forwarded IP from HTTP headers. | ||
151 | * | ||
152 | * @param array $server $_SERVER | ||
153 | * | ||
154 | * @return string|bool The IP or false if none could be extracted | ||
155 | */ | ||
156 | protected function getIp($server) | ||
157 | { | ||
158 | $ip = $server['REMOTE_ADDR']; | ||
159 | if (! in_array($ip, $this->trustedProxies)) { | ||
160 | return $ip; | ||
161 | } | ||
162 | return getIpAddressFromProxy($server, $this->trustedProxies); | ||
163 | } | ||
164 | |||
165 | /** | ||
166 | * Read a file containing banned IPs | ||
167 | */ | ||
168 | protected function readBanFile() | ||
169 | { | ||
170 | $data = FileUtils::readFlatDB($this->banFile); | ||
171 | if (isset($data['failures']) && is_array($data['failures'])) { | ||
172 | $this->failures = $data['failures']; | ||
173 | } | ||
174 | |||
175 | if (isset($data['bans']) && is_array($data['bans'])) { | ||
176 | $this->bans = $data['bans']; | ||
177 | } | ||
178 | } | ||
179 | |||
180 | /** | ||
181 | * Write the banned IPs to a file | ||
182 | */ | ||
183 | protected function writeBanFile() | ||
184 | { | ||
185 | return FileUtils::writeFlatDB( | ||
186 | $this->banFile, | ||
187 | [ | ||
188 | 'failures' => $this->failures, | ||
189 | 'bans' => $this->bans, | ||
190 | ] | ||
191 | ); | ||
192 | } | ||
193 | |||
194 | /** | ||
195 | * Get the Failures (for UT purpose). | ||
196 | * | ||
197 | * @return array | ||
198 | */ | ||
199 | public function getFailures() | ||
200 | { | ||
201 | return $this->failures; | ||
202 | } | ||
203 | |||
204 | /** | ||
205 | * Get the Bans (for UT purpose). | ||
206 | * | ||
207 | * @return array | ||
208 | */ | ||
209 | public function getBans() | ||
210 | { | ||
211 | return $this->bans; | ||
212 | } | ||
213 | } | ||
diff --git a/application/security/LoginManager.php b/application/security/LoginManager.php index 0f315483..0b0ce0b1 100644 --- a/application/security/LoginManager.php +++ b/application/security/LoginManager.php | |||
@@ -20,8 +20,8 @@ class LoginManager | |||
20 | /** @var SessionManager Session Manager instance **/ | 20 | /** @var SessionManager Session Manager instance **/ |
21 | protected $sessionManager = null; | 21 | protected $sessionManager = null; |
22 | 22 | ||
23 | /** @var string Path to the file containing IP bans */ | 23 | /** @var BanManager Ban Manager instance **/ |
24 | protected $banFile = ''; | 24 | protected $banManager; |
25 | 25 | ||
26 | /** @var bool Whether the user is logged in **/ | 26 | /** @var bool Whether the user is logged in **/ |
27 | protected $isLoggedIn = false; | 27 | protected $isLoggedIn = false; |
@@ -35,17 +35,21 @@ class LoginManager | |||
35 | /** | 35 | /** |
36 | * Constructor | 36 | * Constructor |
37 | * | 37 | * |
38 | * @param array $globals The $GLOBALS array (reference) | ||
39 | * @param ConfigManager $configManager Configuration Manager instance | 38 | * @param ConfigManager $configManager Configuration Manager instance |
40 | * @param SessionManager $sessionManager SessionManager instance | 39 | * @param SessionManager $sessionManager SessionManager instance |
41 | */ | 40 | */ |
42 | public function __construct(& $globals, $configManager, $sessionManager) | 41 | public function __construct($configManager, $sessionManager) |
43 | { | 42 | { |
44 | $this->globals = &$globals; | ||
45 | $this->configManager = $configManager; | 43 | $this->configManager = $configManager; |
46 | $this->sessionManager = $sessionManager; | 44 | $this->sessionManager = $sessionManager; |
47 | $this->banFile = $this->configManager->get('resource.ban_file', 'data/ipbans.php'); | 45 | $this->banManager = new BanManager( |
48 | $this->readBanFile(); | 46 | $this->configManager->get('security.trusted_proxies', []), |
47 | $this->configManager->get('security.ban_after'), | ||
48 | $this->configManager->get('security.ban_duration'), | ||
49 | $this->configManager->get('resource.ban_file', 'data/ipbans.php'), | ||
50 | $this->configManager->get('resource.log') | ||
51 | ); | ||
52 | |||
49 | if ($this->configManager->get('security.open_shaarli') === true) { | 53 | if ($this->configManager->get('security.open_shaarli') === true) { |
50 | $this->openShaarli = true; | 54 | $this->openShaarli = true; |
51 | } | 55 | } |
@@ -58,6 +62,9 @@ class LoginManager | |||
58 | */ | 62 | */ |
59 | public function generateStaySignedInToken($clientIpAddress) | 63 | public function generateStaySignedInToken($clientIpAddress) |
60 | { | 64 | { |
65 | if ($this->configManager->get('security.session_protection_disabled') === true) { | ||
66 | $clientIpAddress = ''; | ||
67 | } | ||
61 | $this->staySignedInToken = sha1( | 68 | $this->staySignedInToken = sha1( |
62 | $this->configManager->get('credentials.hash') | 69 | $this->configManager->get('credentials.hash') |
63 | . $clientIpAddress | 70 | . $clientIpAddress |
@@ -155,65 +162,13 @@ class LoginManager | |||
155 | } | 162 | } |
156 | 163 | ||
157 | /** | 164 | /** |
158 | * Read a file containing banned IPs | ||
159 | */ | ||
160 | protected function readBanFile() | ||
161 | { | ||
162 | if (! file_exists($this->banFile)) { | ||
163 | return; | ||
164 | } | ||
165 | include $this->banFile; | ||
166 | } | ||
167 | |||
168 | /** | ||
169 | * Write the banned IPs to a file | ||
170 | */ | ||
171 | protected function writeBanFile() | ||
172 | { | ||
173 | if (! array_key_exists('IPBANS', $this->globals)) { | ||
174 | return; | ||
175 | } | ||
176 | file_put_contents( | ||
177 | $this->banFile, | ||
178 | "<?php\n\$GLOBALS['IPBANS']=" . var_export($this->globals['IPBANS'], true) . ";\n?>" | ||
179 | ); | ||
180 | } | ||
181 | |||
182 | /** | ||
183 | * Handle a failed login and ban the IP after too many failed attempts | 165 | * Handle a failed login and ban the IP after too many failed attempts |
184 | * | 166 | * |
185 | * @param array $server The $_SERVER array | 167 | * @param array $server The $_SERVER array |
186 | */ | 168 | */ |
187 | public function handleFailedLogin($server) | 169 | public function handleFailedLogin($server) |
188 | { | 170 | { |
189 | $ip = $server['REMOTE_ADDR']; | 171 | $this->banManager->handleFailedAttempt($server); |
190 | $trusted = $this->configManager->get('security.trusted_proxies', []); | ||
191 | |||
192 | if (in_array($ip, $trusted)) { | ||
193 | $ip = getIpAddressFromProxy($server, $trusted); | ||
194 | if (! $ip) { | ||
195 | // the IP is behind a trusted forward proxy, but is not forwarded | ||
196 | // in the HTTP headers, so we do nothing | ||
197 | return; | ||
198 | } | ||
199 | } | ||
200 | |||
201 | // increment the fail count for this IP | ||
202 | if (isset($this->globals['IPBANS']['FAILURES'][$ip])) { | ||
203 | $this->globals['IPBANS']['FAILURES'][$ip]++; | ||
204 | } else { | ||
205 | $this->globals['IPBANS']['FAILURES'][$ip] = 1; | ||
206 | } | ||
207 | |||
208 | if ($this->globals['IPBANS']['FAILURES'][$ip] >= $this->configManager->get('security.ban_after')) { | ||
209 | $this->globals['IPBANS']['BANS'][$ip] = time() + $this->configManager->get('security.ban_duration', 1800); | ||
210 | logm( | ||
211 | $this->configManager->get('resource.log'), | ||
212 | $server['REMOTE_ADDR'], | ||
213 | 'IP address banned from login' | ||
214 | ); | ||
215 | } | ||
216 | $this->writeBanFile(); | ||
217 | } | 172 | } |
218 | 173 | ||
219 | /** | 174 | /** |
@@ -223,13 +178,7 @@ class LoginManager | |||
223 | */ | 178 | */ |
224 | public function handleSuccessfulLogin($server) | 179 | public function handleSuccessfulLogin($server) |
225 | { | 180 | { |
226 | $ip = $server['REMOTE_ADDR']; | 181 | $this->banManager->clearFailures($server); |
227 | // FIXME unban when behind a trusted proxy? | ||
228 | |||
229 | unset($this->globals['IPBANS']['FAILURES'][$ip]); | ||
230 | unset($this->globals['IPBANS']['BANS'][$ip]); | ||
231 | |||
232 | $this->writeBanFile(); | ||
233 | } | 182 | } |
234 | 183 | ||
235 | /** | 184 | /** |
@@ -241,24 +190,6 @@ class LoginManager | |||
241 | */ | 190 | */ |
242 | public function canLogin($server) | 191 | public function canLogin($server) |
243 | { | 192 | { |
244 | $ip = $server['REMOTE_ADDR']; | 193 | return ! $this->banManager->isBanned($server); |
245 | |||
246 | if (! isset($this->globals['IPBANS']['BANS'][$ip])) { | ||
247 | // the user is not banned | ||
248 | return true; | ||
249 | } | ||
250 | |||
251 | if ($this->globals['IPBANS']['BANS'][$ip] > time()) { | ||
252 | // the user is still banned | ||
253 | return false; | ||
254 | } | ||
255 | |||
256 | // the ban has expired, the user can attempt to log in again | ||
257 | logm($this->configManager->get('resource.log'), $server['REMOTE_ADDR'], 'Ban lifted.'); | ||
258 | unset($this->globals['IPBANS']['FAILURES'][$ip]); | ||
259 | unset($this->globals['IPBANS']['BANS'][$ip]); | ||
260 | |||
261 | $this->writeBanFile(); | ||
262 | return true; | ||
263 | } | 194 | } |
264 | } | 195 | } |
diff --git a/application/Updater.php b/application/updater/Updater.php index 6b94c5e3..beb9ea9b 100644 --- a/application/Updater.php +++ b/application/updater/Updater.php | |||
@@ -1,11 +1,24 @@ | |||
1 | <?php | 1 | <?php |
2 | |||
3 | namespace Shaarli\Updater; | ||
4 | |||
5 | use Exception; | ||
6 | use RainTPL; | ||
7 | use ReflectionClass; | ||
8 | use ReflectionException; | ||
9 | use ReflectionMethod; | ||
10 | use Shaarli\ApplicationUtils; | ||
11 | use Shaarli\Bookmark\LinkDB; | ||
12 | use Shaarli\Bookmark\LinkFilter; | ||
2 | use Shaarli\Config\ConfigJson; | 13 | use Shaarli\Config\ConfigJson; |
3 | use Shaarli\Config\ConfigPhp; | ||
4 | use Shaarli\Config\ConfigManager; | 14 | use Shaarli\Config\ConfigManager; |
15 | use Shaarli\Config\ConfigPhp; | ||
16 | use Shaarli\Exceptions\IOException; | ||
5 | use Shaarli\Thumbnailer; | 17 | use Shaarli\Thumbnailer; |
18 | use Shaarli\Updater\Exception\UpdaterException; | ||
6 | 19 | ||
7 | /** | 20 | /** |
8 | * Class Updater. | 21 | * Class updater. |
9 | * Used to update stuff when a new Shaarli's version is reached. | 22 | * Used to update stuff when a new Shaarli's version is reached. |
10 | * Update methods are ran only once, and the stored in a JSON file. | 23 | * Update methods are ran only once, and the stored in a JSON file. |
11 | */ | 24 | */ |
@@ -83,12 +96,12 @@ class Updater | |||
83 | } | 96 | } |
84 | 97 | ||
85 | if ($this->methods === null) { | 98 | if ($this->methods === null) { |
86 | throw new UpdaterException(t('Couldn\'t retrieve Updater class methods.')); | 99 | throw new UpdaterException(t('Couldn\'t retrieve updater class methods.')); |
87 | } | 100 | } |
88 | 101 | ||
89 | foreach ($this->methods as $method) { | 102 | foreach ($this->methods as $method) { |
90 | // Not an update method or already done, pass. | 103 | // Not an update method or already done, pass. |
91 | if (! startsWith($method->getName(), 'updateMethod') | 104 | if (!startsWith($method->getName(), 'updateMethod') |
92 | || in_array($method->getName(), $this->doneUpdates) | 105 | || in_array($method->getName(), $this->doneUpdates) |
93 | ) { | 106 | ) { |
94 | continue; | 107 | continue; |
@@ -139,7 +152,7 @@ class Updater | |||
139 | } | 152 | } |
140 | } | 153 | } |
141 | $this->conf->write($this->isLoggedIn); | 154 | $this->conf->write($this->isLoggedIn); |
142 | unlink($this->conf->get('resource.data_dir').'/options.php'); | 155 | unlink($this->conf->get('resource.data_dir') . '/options.php'); |
143 | } | 156 | } |
144 | 157 | ||
145 | return true; | 158 | return true; |
@@ -174,10 +187,10 @@ class Updater | |||
174 | $subConfig = array('config', 'plugins'); | 187 | $subConfig = array('config', 'plugins'); |
175 | foreach ($subConfig as $sub) { | 188 | foreach ($subConfig as $sub) { |
176 | foreach ($oldConfig[$sub] as $key => $value) { | 189 | foreach ($oldConfig[$sub] as $key => $value) { |
177 | if (isset($legacyMap[$sub .'.'. $key])) { | 190 | if (isset($legacyMap[$sub . '.' . $key])) { |
178 | $configKey = $legacyMap[$sub .'.'. $key]; | 191 | $configKey = $legacyMap[$sub . '.' . $key]; |
179 | } else { | 192 | } else { |
180 | $configKey = $sub .'.'. $key; | 193 | $configKey = $sub . '.' . $key; |
181 | } | 194 | } |
182 | $this->conf->set($configKey, $value); | 195 | $this->conf->set($configKey, $value); |
183 | } | 196 | } |
@@ -205,7 +218,6 @@ class Updater | |||
205 | try { | 218 | try { |
206 | $this->conf->set('general.title', escape($this->conf->get('general.title'))); | 219 | $this->conf->set('general.title', escape($this->conf->get('general.title'))); |
207 | $this->conf->set('general.header_link', escape($this->conf->get('general.header_link'))); | 220 | $this->conf->set('general.header_link', escape($this->conf->get('general.header_link'))); |
208 | $this->conf->set('redirector.url', escape($this->conf->get('redirector.url'))); | ||
209 | $this->conf->write($this->isLoggedIn); | 221 | $this->conf->write($this->isLoggedIn); |
210 | } catch (Exception $e) { | 222 | } catch (Exception $e) { |
211 | error_log($e->getMessage()); | 223 | error_log($e->getMessage()); |
@@ -233,7 +245,7 @@ class Updater | |||
233 | return true; | 245 | return true; |
234 | } | 246 | } |
235 | 247 | ||
236 | $save = $this->conf->get('resource.data_dir') .'/datastore.'. date('YmdHis') .'.php'; | 248 | $save = $this->conf->get('resource.data_dir') . '/datastore.' . date('YmdHis') . '.php'; |
237 | copy($this->conf->get('resource.datastore'), $save); | 249 | copy($this->conf->get('resource.datastore'), $save); |
238 | 250 | ||
239 | $links = array(); | 251 | $links = array(); |
@@ -307,7 +319,7 @@ class Updater | |||
307 | // We run the update only if this folder still contains the template files. | 319 | // We run the update only if this folder still contains the template files. |
308 | $tplDir = $this->conf->get('resource.raintpl_tpl'); | 320 | $tplDir = $this->conf->get('resource.raintpl_tpl'); |
309 | $tplFile = $tplDir . '/linklist.html'; | 321 | $tplFile = $tplDir . '/linklist.html'; |
310 | if (! file_exists($tplFile)) { | 322 | if (!file_exists($tplFile)) { |
311 | return true; | 323 | return true; |
312 | } | 324 | } |
313 | 325 | ||
@@ -331,7 +343,7 @@ class Updater | |||
331 | */ | 343 | */ |
332 | public function updateMethodMoveUserCss() | 344 | public function updateMethodMoveUserCss() |
333 | { | 345 | { |
334 | if (! is_file('inc/user.css')) { | 346 | if (!is_file('inc/user.css')) { |
335 | return true; | 347 | return true; |
336 | } | 348 | } |
337 | 349 | ||
@@ -367,11 +379,11 @@ class Updater | |||
367 | */ | 379 | */ |
368 | public function updateMethodPiwikUrl() | 380 | public function updateMethodPiwikUrl() |
369 | { | 381 | { |
370 | if (! $this->conf->exists('plugins.PIWIK_URL') || startsWith($this->conf->get('plugins.PIWIK_URL'), 'http')) { | 382 | if (!$this->conf->exists('plugins.PIWIK_URL') || startsWith($this->conf->get('plugins.PIWIK_URL'), 'http')) { |
371 | return true; | 383 | return true; |
372 | } | 384 | } |
373 | 385 | ||
374 | $this->conf->set('plugins.PIWIK_URL', 'http://'. $this->conf->get('plugins.PIWIK_URL')); | 386 | $this->conf->set('plugins.PIWIK_URL', 'http://' . $this->conf->get('plugins.PIWIK_URL')); |
375 | $this->conf->write($this->isLoggedIn); | 387 | $this->conf->write($this->isLoggedIn); |
376 | 388 | ||
377 | return true; | 389 | return true; |
@@ -481,11 +493,11 @@ class Updater | |||
481 | return true; | 493 | return true; |
482 | } | 494 | } |
483 | 495 | ||
484 | if (! $this->conf->exists('general.download_max_size')) { | 496 | if (!$this->conf->exists('general.download_max_size')) { |
485 | $this->conf->set('general.download_max_size', 1024*1024*4); | 497 | $this->conf->set('general.download_max_size', 1024 * 1024 * 4); |
486 | } | 498 | } |
487 | 499 | ||
488 | if (! $this->conf->exists('general.download_timeout')) { | 500 | if (!$this->conf->exists('general.download_timeout')) { |
489 | $this->conf->set('general.download_timeout', 30); | 501 | $this->conf->set('general.download_timeout', 30); |
490 | } | 502 | } |
491 | 503 | ||
@@ -537,97 +549,14 @@ class Updater | |||
537 | 549 | ||
538 | return true; | 550 | return true; |
539 | } | 551 | } |
540 | } | ||
541 | |||
542 | /** | ||
543 | * Class UpdaterException. | ||
544 | */ | ||
545 | class UpdaterException extends Exception | ||
546 | { | ||
547 | /** | ||
548 | * @var string Method where the error occurred. | ||
549 | */ | ||
550 | protected $method; | ||
551 | 552 | ||
552 | /** | 553 | /** |
553 | * @var Exception The parent exception. | 554 | * Remove redirector settings. |
554 | */ | 555 | */ |
555 | protected $previous; | 556 | public function updateMethodRemoveRedirector() |
556 | |||
557 | /** | ||
558 | * Constructor. | ||
559 | * | ||
560 | * @param string $message Force the error message if set. | ||
561 | * @param string $method Method where the error occurred. | ||
562 | * @param Exception|bool $previous Parent exception. | ||
563 | */ | ||
564 | public function __construct($message = '', $method = '', $previous = false) | ||
565 | { | 557 | { |
566 | $this->method = $method; | 558 | $this->conf->remove('redirector'); |
567 | $this->previous = $previous; | 559 | $this->conf->write(true); |
568 | $this->message = $this->buildMessage($message); | 560 | return true; |
569 | } | ||
570 | |||
571 | /** | ||
572 | * Build the exception error message. | ||
573 | * | ||
574 | * @param string $message Optional given error message. | ||
575 | * | ||
576 | * @return string The built error message. | ||
577 | */ | ||
578 | private function buildMessage($message) | ||
579 | { | ||
580 | $out = ''; | ||
581 | if (! empty($message)) { | ||
582 | $out .= $message . PHP_EOL; | ||
583 | } | ||
584 | |||
585 | if (! empty($this->method)) { | ||
586 | $out .= t('An error occurred while running the update ') . $this->method . PHP_EOL; | ||
587 | } | ||
588 | |||
589 | if (! empty($this->previous)) { | ||
590 | $out .= ' '. $this->previous->getMessage(); | ||
591 | } | ||
592 | |||
593 | return $out; | ||
594 | } | ||
595 | } | ||
596 | |||
597 | /** | ||
598 | * Read the updates file, and return already done updates. | ||
599 | * | ||
600 | * @param string $updatesFilepath Updates file path. | ||
601 | * | ||
602 | * @return array Already done update methods. | ||
603 | */ | ||
604 | function read_updates_file($updatesFilepath) | ||
605 | { | ||
606 | if (! empty($updatesFilepath) && is_file($updatesFilepath)) { | ||
607 | $content = file_get_contents($updatesFilepath); | ||
608 | if (! empty($content)) { | ||
609 | return explode(';', $content); | ||
610 | } | ||
611 | } | ||
612 | return array(); | ||
613 | } | ||
614 | |||
615 | /** | ||
616 | * Write updates file. | ||
617 | * | ||
618 | * @param string $updatesFilepath Updates file path. | ||
619 | * @param array $updates Updates array to write. | ||
620 | * | ||
621 | * @throws Exception Couldn't write version number. | ||
622 | */ | ||
623 | function write_updates_file($updatesFilepath, $updates) | ||
624 | { | ||
625 | if (empty($updatesFilepath)) { | ||
626 | throw new Exception(t('Updates file path is not set, can\'t write updates.')); | ||
627 | } | ||
628 | |||
629 | $res = file_put_contents($updatesFilepath, implode(';', $updates)); | ||
630 | if ($res === false) { | ||
631 | throw new Exception(t('Unable to write updates in '. $updatesFilepath . '.')); | ||
632 | } | 561 | } |
633 | } | 562 | } |
diff --git a/application/updater/UpdaterUtils.php b/application/updater/UpdaterUtils.php new file mode 100644 index 00000000..34d4f422 --- /dev/null +++ b/application/updater/UpdaterUtils.php | |||
@@ -0,0 +1,39 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Read the updates file, and return already done updates. | ||
5 | * | ||
6 | * @param string $updatesFilepath Updates file path. | ||
7 | * | ||
8 | * @return array Already done update methods. | ||
9 | */ | ||
10 | function read_updates_file($updatesFilepath) | ||
11 | { | ||
12 | if (! empty($updatesFilepath) && is_file($updatesFilepath)) { | ||
13 | $content = file_get_contents($updatesFilepath); | ||
14 | if (! empty($content)) { | ||
15 | return explode(';', $content); | ||
16 | } | ||
17 | } | ||
18 | return array(); | ||
19 | } | ||
20 | |||
21 | /** | ||
22 | * Write updates file. | ||
23 | * | ||
24 | * @param string $updatesFilepath Updates file path. | ||
25 | * @param array $updates Updates array to write. | ||
26 | * | ||
27 | * @throws Exception Couldn't write version number. | ||
28 | */ | ||
29 | function write_updates_file($updatesFilepath, $updates) | ||
30 | { | ||
31 | if (empty($updatesFilepath)) { | ||
32 | throw new Exception(t('Updates file path is not set, can\'t write updates.')); | ||
33 | } | ||
34 | |||
35 | $res = file_put_contents($updatesFilepath, implode(';', $updates)); | ||
36 | if ($res === false) { | ||
37 | throw new Exception(t('Unable to write updates in '. $updatesFilepath . '.')); | ||
38 | } | ||
39 | } | ||
diff --git a/application/updater/exception/UpdaterException.php b/application/updater/exception/UpdaterException.php new file mode 100644 index 00000000..20aceccf --- /dev/null +++ b/application/updater/exception/UpdaterException.php | |||
@@ -0,0 +1,60 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Shaarli\Updater\Exception; | ||
4 | |||
5 | use Exception; | ||
6 | |||
7 | /** | ||
8 | * Class UpdaterException. | ||
9 | */ | ||
10 | class UpdaterException extends Exception | ||
11 | { | ||
12 | /** | ||
13 | * @var string Method where the error occurred. | ||
14 | */ | ||
15 | protected $method; | ||
16 | |||
17 | /** | ||
18 | * @var Exception The parent exception. | ||
19 | */ | ||
20 | protected $previous; | ||
21 | |||
22 | /** | ||
23 | * Constructor. | ||
24 | * | ||
25 | * @param string $message Force the error message if set. | ||
26 | * @param string $method Method where the error occurred. | ||
27 | * @param Exception|bool $previous Parent exception. | ||
28 | */ | ||
29 | public function __construct($message = '', $method = '', $previous = false) | ||
30 | { | ||
31 | $this->method = $method; | ||
32 | $this->previous = $previous; | ||
33 | $this->message = $this->buildMessage($message); | ||
34 | } | ||
35 | |||
36 | /** | ||
37 | * Build the exception error message. | ||
38 | * | ||
39 | * @param string $message Optional given error message. | ||
40 | * | ||
41 | * @return string The built error message. | ||
42 | */ | ||
43 | private function buildMessage($message) | ||
44 | { | ||
45 | $out = ''; | ||
46 | if (!empty($message)) { | ||
47 | $out .= $message . PHP_EOL; | ||
48 | } | ||
49 | |||
50 | if (!empty($this->method)) { | ||
51 | $out .= t('An error occurred while running the update ') . $this->method . PHP_EOL; | ||
52 | } | ||
53 | |||
54 | if (!empty($this->previous)) { | ||
55 | $out .= ' ' . $this->previous->getMessage(); | ||
56 | } | ||
57 | |||
58 | return $out; | ||
59 | } | ||
60 | } | ||
diff --git a/assets/default/img/icon.png b/assets/default/img/icon.png deleted file mode 100644 index 474edec3..00000000 --- a/assets/default/img/icon.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/assets/default/js/base.js b/assets/default/js/base.js index 99e03370..d5c29c69 100644 --- a/assets/default/js/base.js +++ b/assets/default/js/base.js | |||
@@ -466,6 +466,28 @@ function init(description) { | |||
466 | }); | 466 | }); |
467 | } | 467 | } |
468 | 468 | ||
469 | const changeVisibilityButtons = document.querySelectorAll('.actions-change-visibility'); | ||
470 | if (changeVisibilityButtons != null && token != null) { | ||
471 | [...changeVisibilityButtons].forEach((button) => { | ||
472 | button.addEventListener('click', (event) => { | ||
473 | event.preventDefault(); | ||
474 | const visibility = event.target.getAttribute('data-visibility'); | ||
475 | |||
476 | const links = []; | ||
477 | const linkCheckedCheckboxes = document.querySelectorAll('.link-checkbox:checked'); | ||
478 | [...linkCheckedCheckboxes].forEach((checkbox) => { | ||
479 | links.push({ | ||
480 | id: checkbox.value, | ||
481 | title: document.querySelector(`.linklist-item[data-id="${checkbox.value}"] .linklist-link`).innerHTML, | ||
482 | }); | ||
483 | }); | ||
484 | |||
485 | const ids = links.map(item => item.id); | ||
486 | window.location = `?change_visibility&token=${token.value}&newVisibility=${visibility}&ids=${ids.join('+')}`; | ||
487 | }); | ||
488 | }); | ||
489 | } | ||
490 | |||
469 | /** | 491 | /** |
470 | * Select all button | 492 | * Select all button |
471 | */ | 493 | */ |
diff --git a/assets/default/scss/shaarli.scss b/assets/default/scss/shaarli.scss index 760d8d6a..61e382b6 100644 --- a/assets/default/scss/shaarli.scss +++ b/assets/default/scss/shaarli.scss | |||
@@ -1,6 +1,6 @@ | |||
1 | $fa-font-path: '~font-awesome/fonts'; | 1 | $fa-font-path: '~fork-awesome/fonts'; |
2 | 2 | ||
3 | @import '~font-awesome/scss/font-awesome'; | 3 | @import '~fork-awesome/scss/fork-awesome'; |
4 | @import '~purecss/build/pure.css'; | 4 | @import '~purecss/build/pure.css'; |
5 | @import '~purecss/build/grids-responsive.css'; | 5 | @import '~purecss/build/grids-responsive.css'; |
6 | @import '~pure-extras/css/pure-extras.css'; | 6 | @import '~pure-extras/css/pure-extras.css'; |
@@ -13,7 +13,7 @@ $dark-grey: #252525; | |||
13 | $light-grey: #797979; | 13 | $light-grey: #797979; |
14 | $main-green: #1b926c; | 14 | $main-green: #1b926c; |
15 | $light-green: #b0ddce; | 15 | $light-green: #b0ddce; |
16 | $dark-green: #2a4c41; | 16 | $dark-green: #186446; |
17 | $red: #ac2925; | 17 | $red: #ac2925; |
18 | $orange: #f89406; | 18 | $orange: #f89406; |
19 | $blue: #0b5ea6; | 19 | $blue: #0b5ea6; |
@@ -25,9 +25,15 @@ $warning-text: #97600d; | |||
25 | $form-input-border: #d8d8d8; | 25 | $form-input-border: #d8d8d8; |
26 | $form-input-background: #eee; | 26 | $form-input-background: #eee; |
27 | 27 | ||
28 | :root { | ||
29 | --main-color: #{$main-green}; | ||
30 | --background-color: #{$background-color}; | ||
31 | --dark-main-color: #{$dark-green}; | ||
32 | } | ||
33 | |||
28 | // General | 34 | // General |
29 | body { | 35 | body { |
30 | background: $background-color; | 36 | background: var(--background-color); |
31 | } | 37 | } |
32 | 38 | ||
33 | .strong { | 39 | .strong { |
@@ -143,7 +149,7 @@ body, | |||
143 | } | 149 | } |
144 | 150 | ||
145 | .pure-alert-success { | 151 | .pure-alert-success { |
146 | background-color: $main-green; | 152 | background-color: var(--main-color); |
147 | } | 153 | } |
148 | 154 | ||
149 | .pure-alert-warning { | 155 | .pure-alert-warning { |
@@ -169,7 +175,7 @@ body, | |||
169 | top: 0; | 175 | top: 0; |
170 | transition: max-height .5s; | 176 | transition: max-height .5s; |
171 | z-index: 999; | 177 | z-index: 999; |
172 | background: $main-green; | 178 | background: var(--main-color); |
173 | width: 100%; | 179 | width: 100%; |
174 | // Hack to transition with auto height: http://stackoverflow.com/a/8331169/1484919 | 180 | // Hack to transition with auto height: http://stackoverflow.com/a/8331169/1484919 |
175 | max-height: 45px; | 181 | max-height: 45px; |
@@ -322,7 +328,7 @@ body, | |||
322 | button { | 328 | button { |
323 | border: 0; | 329 | border: 0; |
324 | border-radius: 2px; | 330 | border-radius: 2px; |
325 | background-color: $main-green; | 331 | background-color: var(--main-color); |
326 | padding: 4px 8px 6px; | 332 | padding: 4px 8px 6px; |
327 | color: $almost-white; | 333 | color: $almost-white; |
328 | } | 334 | } |
@@ -358,7 +364,7 @@ body, | |||
358 | .search-tagcloud { | 364 | .search-tagcloud { |
359 | button { | 365 | button { |
360 | &:hover { | 366 | &:hover { |
361 | color: $background-color; | 367 | color: var(--background-color); |
362 | } | 368 | } |
363 | } | 369 | } |
364 | } | 370 | } |
@@ -389,7 +395,7 @@ body, | |||
389 | position: fixed; | 395 | position: fixed; |
390 | visibility: hidden; | 396 | visibility: hidden; |
391 | z-index: 999; | 397 | z-index: 999; |
392 | background: $main-green; | 398 | background: var(--main-color); |
393 | padding: 5px 0; | 399 | padding: 5px 0; |
394 | width: 100%; | 400 | width: 100%; |
395 | height: 30px; | 401 | height: 30px; |
@@ -411,7 +417,7 @@ body, | |||
411 | margin: 0 0 5px; | 417 | margin: 0 0 5px; |
412 | border: 1px solid $almost-white; | 418 | border: 1px solid $almost-white; |
413 | border-radius: 2px; | 419 | border-radius: 2px; |
414 | background: $main-green; | 420 | background: var(--main-color); |
415 | padding: 4px 0; | 421 | padding: 4px 0; |
416 | width: 100px; | 422 | width: 100px; |
417 | height: 28px; | 423 | height: 28px; |
@@ -419,7 +425,7 @@ body, | |||
419 | 425 | ||
420 | &:hover { | 426 | &:hover { |
421 | background: $almost-white; | 427 | background: $almost-white; |
422 | color: $main-green; | 428 | color: var(--main-color); |
423 | } | 429 | } |
424 | } | 430 | } |
425 | 431 | ||
@@ -544,7 +550,10 @@ body, | |||
544 | color: $dark-grey; | 550 | color: $dark-grey; |
545 | font-size: .9em; | 551 | font-size: .9em; |
546 | 552 | ||
553 | |||
547 | a { | 554 | a { |
555 | display: inline-block; | ||
556 | margin: 3px 0; | ||
548 | padding: 5px 8px; | 557 | padding: 5px 8px; |
549 | text-decoration: none; | 558 | text-decoration: none; |
550 | } | 559 | } |
@@ -555,7 +564,7 @@ body, | |||
555 | } | 564 | } |
556 | 565 | ||
557 | .filter-on { | 566 | .filter-on { |
558 | background: $main-green; | 567 | background: var(--main-color); |
559 | color: $light-green; | 568 | color: $light-green; |
560 | } | 569 | } |
561 | 570 | ||
@@ -694,7 +703,7 @@ body, | |||
694 | 703 | ||
695 | &:visited { | 704 | &:visited { |
696 | .linklist-link { | 705 | .linklist-link { |
697 | color: $dark-green; | 706 | color: var(--dark-main-color); |
698 | } | 707 | } |
699 | } | 708 | } |
700 | 709 | ||
@@ -705,7 +714,7 @@ body, | |||
705 | } | 714 | } |
706 | 715 | ||
707 | .linklist-link { | 716 | .linklist-link { |
708 | color: $main-green; | 717 | color: var(--main-color); |
709 | font-size: 1.1em; | 718 | font-size: 1.1em; |
710 | 719 | ||
711 | &:hover { | 720 | &:hover { |
@@ -713,11 +722,19 @@ body, | |||
713 | } | 722 | } |
714 | } | 723 | } |
715 | 724 | ||
725 | .label { | ||
726 | font-family: Arial, sans-serif; | ||
727 | font-size: .65em; | ||
728 | } | ||
729 | |||
716 | .label-private { | 730 | .label-private { |
717 | border: solid 1px $orange; | 731 | border: solid 1px $orange; |
718 | color: $orange; | 732 | color: $orange; |
719 | font-family: Arial, sans-serif; | 733 | } |
720 | font-size: .65em; | 734 | |
735 | .label-sticky { | ||
736 | border: solid 1px $blue; | ||
737 | color: $blue; | ||
721 | } | 738 | } |
722 | } | 739 | } |
723 | 740 | ||
@@ -772,14 +789,14 @@ body, | |||
772 | 789 | ||
773 | a { | 790 | a { |
774 | text-decoration: none; | 791 | text-decoration: none; |
775 | color: $main-green; | 792 | color: var(--main-color); |
776 | 793 | ||
777 | &:hover { | 794 | &:hover { |
778 | color: $dark-grey; | 795 | color: $dark-grey; |
779 | } | 796 | } |
780 | 797 | ||
781 | &:visited { | 798 | &:visited { |
782 | color: $dark-green; | 799 | color: var(--dark-main-color); |
783 | } | 800 | } |
784 | } | 801 | } |
785 | } | 802 | } |
@@ -877,7 +894,7 @@ body, | |||
877 | &::before { | 894 | &::before { |
878 | display: block; | 895 | display: block; |
879 | margin: 10px auto; | 896 | margin: 10px auto; |
880 | background: linear-gradient(to right, $background-color, $dark-grey, $background-color); | 897 | background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color)); |
881 | width: 80%; | 898 | width: 80%; |
882 | height: 1px; | 899 | height: 1px; |
883 | content: ''; | 900 | content: ''; |
@@ -906,7 +923,7 @@ body, | |||
906 | margin: 15px 5px; | 923 | margin: 15px 5px; |
907 | border: 0; | 924 | border: 0; |
908 | box-shadow: 1px 1px 1px $form-input-border, -1px -1px 6px $form-input-border, -1px 1px 2px $form-input-border, 1px -1px 2px $form-input-border; | 925 | box-shadow: 1px 1px 1px $form-input-border, -1px -1px 6px $form-input-border, -1px 1px 2px $form-input-border, 1px -1px 2px $form-input-border; |
909 | background: $main-green; | 926 | background: var(--main-color); |
910 | min-width: 150px; | 927 | min-width: 150px; |
911 | height: 35px; | 928 | height: 35px; |
912 | vertical-align: center; | 929 | vertical-align: center; |
@@ -930,7 +947,7 @@ body, | |||
930 | padding: 10px 0; | 947 | padding: 10px 0; |
931 | width: 100%; | 948 | width: 100%; |
932 | text-align: center; | 949 | text-align: center; |
933 | color: $main-green; | 950 | color: var(--main-color); |
934 | } | 951 | } |
935 | 952 | ||
936 | .window-subtitle { | 953 | .window-subtitle { |
@@ -939,7 +956,7 @@ body, | |||
939 | 956 | ||
940 | a { | 957 | a { |
941 | text-decoration: none; | 958 | text-decoration: none; |
942 | color: $main-green; | 959 | color: var(--main-color); |
943 | font-weight: bold; | 960 | font-weight: bold; |
944 | 961 | ||
945 | &.button { | 962 | &.button { |
@@ -1061,7 +1078,6 @@ body, | |||
1061 | .page-form { | 1078 | .page-form { |
1062 | .submit-buttons { | 1079 | .submit-buttons { |
1063 | .button { | 1080 | .button { |
1064 | display: block; | ||
1065 | margin: auto; | 1081 | margin: auto; |
1066 | } | 1082 | } |
1067 | } | 1083 | } |
@@ -1267,7 +1283,7 @@ form { | |||
1267 | 1283 | ||
1268 | .pure-button { | 1284 | .pure-button { |
1269 | &:hover { | 1285 | &:hover { |
1270 | background-color: $main-green; | 1286 | background-color: var(--main-color); |
1271 | background-image: none; | 1287 | background-image: none; |
1272 | color: $almost-white; | 1288 | color: $almost-white; |
1273 | } | 1289 | } |
@@ -1351,7 +1367,7 @@ form { | |||
1351 | } | 1367 | } |
1352 | 1368 | ||
1353 | .validate-rename-tag { | 1369 | .validate-rename-tag { |
1354 | color: $main-green; | 1370 | color: var(--main-color); |
1355 | } | 1371 | } |
1356 | } | 1372 | } |
1357 | 1373 | ||
@@ -1447,7 +1463,7 @@ form { | |||
1447 | &::after { | 1463 | &::after { |
1448 | display: block; | 1464 | display: block; |
1449 | margin: 10px auto; | 1465 | margin: 10px auto; |
1450 | background: linear-gradient(to right, $background-color, $dark-grey, $background-color); | 1466 | background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color)); |
1451 | width: 90%; | 1467 | width: 90%; |
1452 | height: 1px; | 1468 | height: 1px; |
1453 | content: ''; | 1469 | content: ''; |
@@ -1497,14 +1513,14 @@ form { | |||
1497 | .daily-entry-description { | 1513 | .daily-entry-description { |
1498 | a { | 1514 | a { |
1499 | text-decoration: none; | 1515 | text-decoration: none; |
1500 | color: $main-green; | 1516 | color: var(--main-color); |
1501 | 1517 | ||
1502 | &:hover { | 1518 | &:hover { |
1503 | text-shadow: 1px 1px $background-linklist-info; | 1519 | text-shadow: 1px 1px $background-linklist-info; |
1504 | } | 1520 | } |
1505 | 1521 | ||
1506 | &:visited { | 1522 | &:visited { |
1507 | color: $dark-green; | 1523 | color: var(--dark-main-color); |
1508 | } | 1524 | } |
1509 | } | 1525 | } |
1510 | } | 1526 | } |
@@ -1561,12 +1577,12 @@ form { | |||
1561 | } | 1577 | } |
1562 | 1578 | ||
1563 | .pure-button-shaarli { | 1579 | .pure-button-shaarli { |
1564 | background-color: $main-green; | 1580 | background-color: var(--main-color); |
1565 | } | 1581 | } |
1566 | 1582 | ||
1567 | .progressbar { | 1583 | .progressbar { |
1568 | border-radius: 6px; | 1584 | border-radius: 6px; |
1569 | background-color: $main-green; | 1585 | background-color: var(--main-color); |
1570 | padding: 1px; | 1586 | padding: 1px; |
1571 | 1587 | ||
1572 | > div { | 1588 | > div { |
@@ -1575,8 +1591,8 @@ form { | |||
1575 | -45deg, | 1591 | -45deg, |
1576 | $almost-white, | 1592 | $almost-white, |
1577 | $almost-white 6px, | 1593 | $almost-white 6px, |
1578 | $background-color 6px, | 1594 | var(--background-color) 6px, |
1579 | $background-color 12px | 1595 | var(--background-color) 12px |
1580 | ); | 1596 | ); |
1581 | width: 0%; | 1597 | width: 0%; |
1582 | height: 10px; | 1598 | height: 10px; |
@@ -1600,3 +1616,17 @@ form { | |||
1600 | white-space: nowrap; | 1616 | white-space: nowrap; |
1601 | } | 1617 | } |
1602 | } | 1618 | } |
1619 | |||
1620 | // Print rules | ||
1621 | @media print { | ||
1622 | .shaarli-menu { | ||
1623 | position: absolute; | ||
1624 | } | ||
1625 | |||
1626 | .search-linklist, | ||
1627 | .link-count-block, | ||
1628 | .linklist-item-infos-controls-group, | ||
1629 | .mobile-buttons { | ||
1630 | display: none; | ||
1631 | } | ||
1632 | } | ||
diff --git a/composer.json b/composer.json index dccf83b6..c23b8252 100644 --- a/composer.json +++ b/composer.json | |||
@@ -16,6 +16,8 @@ | |||
16 | }, | 16 | }, |
17 | "require": { | 17 | "require": { |
18 | "php": ">=5.6", | 18 | "php": ">=5.6", |
19 | "ext-json": "*", | ||
20 | "ext-zlib": "*", | ||
19 | "shaarli/netscape-bookmark-parser": "^2.1", | 21 | "shaarli/netscape-bookmark-parser": "^2.1", |
20 | "erusev/parsedown": "^1.6", | 22 | "erusev/parsedown": "^1.6", |
21 | "slim/slim": "^3.0", | 23 | "slim/slim": "^3.0", |
@@ -24,19 +26,39 @@ | |||
24 | "gettext/gettext": "^4.4" | 26 | "gettext/gettext": "^4.4" |
25 | }, | 27 | }, |
26 | "require-dev": { | 28 | "require-dev": { |
29 | "roave/security-advisories": "dev-master", | ||
27 | "phpunit/phpcov": "*", | 30 | "phpunit/phpcov": "*", |
28 | "phpunit/phpunit": "^5.0", | 31 | "phpunit/phpunit": "^5.0", |
29 | "squizlabs/php_codesniffer": "2.*" | 32 | "squizlabs/php_codesniffer": "2.*" |
30 | }, | 33 | }, |
34 | "suggest": { | ||
35 | "ext-curl": "Allows fetching web pages and thumbnails in a more robust way", | ||
36 | "ext-gd": "Required for thumbnail generation", | ||
37 | "ext-gettext": "Enables faster translation system in gettext mode", | ||
38 | "ext-intl": "Provides localized text sorting", | ||
39 | "ext-mbstring": "Provides multibyte (Unicode) string support" | ||
40 | }, | ||
31 | "autoload": { | 41 | "autoload": { |
32 | "psr-4": { | 42 | "psr-4": { |
33 | "Shaarli\\": "application", | 43 | "Shaarli\\": "application", |
34 | "Shaarli\\Api\\": "application/api/", | 44 | "Shaarli\\Api\\": "application/api/", |
35 | "Shaarli\\Api\\Controllers\\": "application/api/controllers", | 45 | "Shaarli\\Api\\Controllers\\": "application/api/controllers", |
36 | "Shaarli\\Api\\Exceptions\\": "application/api/exceptions", | 46 | "Shaarli\\Api\\Exceptions\\": "application/api/exceptions", |
47 | "Shaarli\\Bookmark\\": "application/bookmark", | ||
48 | "Shaarli\\Bookmark\\Exception\\": "application/bookmark/exception", | ||
37 | "Shaarli\\Config\\": "application/config/", | 49 | "Shaarli\\Config\\": "application/config/", |
38 | "Shaarli\\Config\\Exception\\": "application/config/exception", | 50 | "Shaarli\\Config\\Exception\\": "application/config/exception", |
39 | "Shaarli\\Security\\": "application/security" | 51 | "Shaarli\\Exceptions\\": "application/exceptions", |
52 | "Shaarli\\Feed\\": "application/feed", | ||
53 | "Shaarli\\Http\\": "application/http", | ||
54 | "Shaarli\\Netscape\\": "application/netscape", | ||
55 | "Shaarli\\Plugin\\": "application/plugin", | ||
56 | "Shaarli\\Plugin\\Exception\\": "application/plugin/exception", | ||
57 | "Shaarli\\Plugin\\Wallabag\\": "plugins/wallabag", | ||
58 | "Shaarli\\Render\\": "application/render", | ||
59 | "Shaarli\\Security\\": "application/security", | ||
60 | "Shaarli\\Updater\\": "application/updater", | ||
61 | "Shaarli\\Updater\\Exception\\": "application/updater/exception" | ||
40 | } | 62 | } |
41 | } | 63 | } |
42 | } | 64 | } |
diff --git a/composer.lock b/composer.lock index c43dad6f..5cbcbc4a 100644 --- a/composer.lock +++ b/composer.lock | |||
@@ -4,7 +4,7 @@ | |||
4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", | 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", |
5 | "This file is @generated automatically" | 5 | "This file is @generated automatically" |
6 | ], | 6 | ], |
7 | "content-hash": "3876b34296fedb365517b785af8384de", | 7 | "content-hash": "432005c9db3e890f42fde27036d2a70f", |
8 | "packages": [ | 8 | "packages": [ |
9 | { | 9 | { |
10 | "name": "arthurhoaro/web-thumbnailer", | 10 | "name": "arthurhoaro/web-thumbnailer", |
@@ -133,16 +133,16 @@ | |||
133 | }, | 133 | }, |
134 | { | 134 | { |
135 | "name": "gettext/gettext", | 135 | "name": "gettext/gettext", |
136 | "version": "v4.6.1", | 136 | "version": "v4.6.2", |
137 | "source": { | 137 | "source": { |
138 | "type": "git", | 138 | "type": "git", |
139 | "url": "https://github.com/oscarotero/Gettext.git", | 139 | "url": "https://github.com/oscarotero/Gettext.git", |
140 | "reference": "854ff5f5aaf92d2af7080ba8fc15718b27b5c89a" | 140 | "reference": "93176b272d61fb58a9767be71c50d19149cb1e48" |
141 | }, | 141 | }, |
142 | "dist": { | 142 | "dist": { |
143 | "type": "zip", | 143 | "type": "zip", |
144 | "url": "https://api.github.com/repos/oscarotero/Gettext/zipball/854ff5f5aaf92d2af7080ba8fc15718b27b5c89a", | 144 | "url": "https://api.github.com/repos/oscarotero/Gettext/zipball/93176b272d61fb58a9767be71c50d19149cb1e48", |
145 | "reference": "854ff5f5aaf92d2af7080ba8fc15718b27b5c89a", | 145 | "reference": "93176b272d61fb58a9767be71c50d19149cb1e48", |
146 | "shasum": "" | 146 | "shasum": "" |
147 | }, | 147 | }, |
148 | "require": { | 148 | "require": { |
@@ -191,20 +191,20 @@ | |||
191 | "po", | 191 | "po", |
192 | "translation" | 192 | "translation" |
193 | ], | 193 | ], |
194 | "time": "2018-08-27T15:40:19+00:00" | 194 | "time": "2019-01-12T18:40:56+00:00" |
195 | }, | 195 | }, |
196 | { | 196 | { |
197 | "name": "gettext/languages", | 197 | "name": "gettext/languages", |
198 | "version": "2.4.0", | 198 | "version": "2.5.0", |
199 | "source": { | 199 | "source": { |
200 | "type": "git", | 200 | "type": "git", |
201 | "url": "https://github.com/mlocati/cldr-to-gettext-plural-rules.git", | 201 | "url": "https://github.com/mlocati/cldr-to-gettext-plural-rules.git", |
202 | "reference": "1b74377bd0c4cd87e8d72b948f5d8867e23505a5" | 202 | "reference": "78db2d17933f0765a102f368a6663f057162ddbd" |
203 | }, | 203 | }, |
204 | "dist": { | 204 | "dist": { |
205 | "type": "zip", | 205 | "type": "zip", |
206 | "url": "https://api.github.com/repos/mlocati/cldr-to-gettext-plural-rules/zipball/1b74377bd0c4cd87e8d72b948f5d8867e23505a5", | 206 | "url": "https://api.github.com/repos/mlocati/cldr-to-gettext-plural-rules/zipball/78db2d17933f0765a102f368a6663f057162ddbd", |
207 | "reference": "1b74377bd0c4cd87e8d72b948f5d8867e23505a5", | 207 | "reference": "78db2d17933f0765a102f368a6663f057162ddbd", |
208 | "shasum": "" | 208 | "shasum": "" |
209 | }, | 209 | }, |
210 | "require": { | 210 | "require": { |
@@ -252,7 +252,7 @@ | |||
252 | "translations", | 252 | "translations", |
253 | "unicode" | 253 | "unicode" |
254 | ], | 254 | ], |
255 | "time": "2018-06-21T15:58:36+00:00" | 255 | "time": "2018-11-13T22:06:07+00:00" |
256 | }, | 256 | }, |
257 | { | 257 | { |
258 | "name": "katzgrau/klogger", | 258 | "name": "katzgrau/klogger", |
@@ -542,16 +542,16 @@ | |||
542 | }, | 542 | }, |
543 | { | 543 | { |
544 | "name": "psr/log", | 544 | "name": "psr/log", |
545 | "version": "1.0.2", | 545 | "version": "1.1.0", |
546 | "source": { | 546 | "source": { |
547 | "type": "git", | 547 | "type": "git", |
548 | "url": "https://github.com/php-fig/log.git", | 548 | "url": "https://github.com/php-fig/log.git", |
549 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" | 549 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" |
550 | }, | 550 | }, |
551 | "dist": { | 551 | "dist": { |
552 | "type": "zip", | 552 | "type": "zip", |
553 | "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", | 553 | "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", |
554 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", | 554 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", |
555 | "shasum": "" | 555 | "shasum": "" |
556 | }, | 556 | }, |
557 | "require": { | 557 | "require": { |
@@ -585,7 +585,7 @@ | |||
585 | "psr", | 585 | "psr", |
586 | "psr-3" | 586 | "psr-3" |
587 | ], | 587 | ], |
588 | "time": "2016-10-10T12:19:37+00:00" | 588 | "time": "2018-11-20T15:27:04+00:00" |
589 | }, | 589 | }, |
590 | { | 590 | { |
591 | "name": "pubsubhubbub/publisher", | 591 | "name": "pubsubhubbub/publisher", |
@@ -689,16 +689,16 @@ | |||
689 | }, | 689 | }, |
690 | { | 690 | { |
691 | "name": "slim/slim", | 691 | "name": "slim/slim", |
692 | "version": "3.11.0", | 692 | "version": "3.12.0", |
693 | "source": { | 693 | "source": { |
694 | "type": "git", | 694 | "type": "git", |
695 | "url": "https://github.com/slimphp/Slim.git", | 695 | "url": "https://github.com/slimphp/Slim.git", |
696 | "reference": "d378e70431e78ee92ee32ddde61ecc72edf5dc0a" | 696 | "reference": "f4947cc900b6e51cbfda58b9f1247bca2f76f9f0" |
697 | }, | 697 | }, |
698 | "dist": { | 698 | "dist": { |
699 | "type": "zip", | 699 | "type": "zip", |
700 | "url": "https://api.github.com/repos/slimphp/Slim/zipball/d378e70431e78ee92ee32ddde61ecc72edf5dc0a", | 700 | "url": "https://api.github.com/repos/slimphp/Slim/zipball/f4947cc900b6e51cbfda58b9f1247bca2f76f9f0", |
701 | "reference": "d378e70431e78ee92ee32ddde61ecc72edf5dc0a", | 701 | "reference": "f4947cc900b6e51cbfda58b9f1247bca2f76f9f0", |
702 | "shasum": "" | 702 | "shasum": "" |
703 | }, | 703 | }, |
704 | "require": { | 704 | "require": { |
@@ -756,7 +756,7 @@ | |||
756 | "micro", | 756 | "micro", |
757 | "router" | 757 | "router" |
758 | ], | 758 | ], |
759 | "time": "2018-09-16T10:54:21+00:00" | 759 | "time": "2019-01-15T13:21:25+00:00" |
760 | } | 760 | } |
761 | ], | 761 | ], |
762 | "packages-dev": [ | 762 | "packages-dev": [ |
@@ -1470,6 +1470,210 @@ | |||
1470 | "time": "2017-06-30T09:13:00+00:00" | 1470 | "time": "2017-06-30T09:13:00+00:00" |
1471 | }, | 1471 | }, |
1472 | { | 1472 | { |
1473 | "name": "roave/security-advisories", | ||
1474 | "version": "dev-master", | ||
1475 | "source": { | ||
1476 | "type": "git", | ||
1477 | "url": "https://github.com/Roave/SecurityAdvisories.git", | ||
1478 | "reference": "d155baccb43ba2542941fbcba258b85ce7786419" | ||
1479 | }, | ||
1480 | "dist": { | ||
1481 | "type": "zip", | ||
1482 | "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d155baccb43ba2542941fbcba258b85ce7786419", | ||
1483 | "reference": "d155baccb43ba2542941fbcba258b85ce7786419", | ||
1484 | "shasum": "" | ||
1485 | }, | ||
1486 | "conflict": { | ||
1487 | "3f/pygmentize": "<1.2", | ||
1488 | "adodb/adodb-php": "<5.20.12", | ||
1489 | "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", | ||
1490 | "amphp/artax": "<1.0.6|>=2,<2.0.6", | ||
1491 | "amphp/http": "<1.0.1", | ||
1492 | "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", | ||
1493 | "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", | ||
1494 | "aws/aws-sdk-php": ">=3,<3.2.1", | ||
1495 | "brightlocal/phpwhois": "<=4.2.5", | ||
1496 | "bugsnag/bugsnag-laravel": ">=2,<2.0.2", | ||
1497 | "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.0.15|>=3.1,<3.1.4|>=3.4,<3.4.14|>=3.5,<3.5.17|>=3.6,<3.6.4", | ||
1498 | "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", | ||
1499 | "cartalyst/sentry": "<=2.1.6", | ||
1500 | "codeigniter/framework": "<=3.0.6", | ||
1501 | "composer/composer": "<=1.0.0-alpha11", | ||
1502 | "contao-components/mediaelement": ">=2.14.2,<2.21.1", | ||
1503 | "contao/core": ">=2,<3.5.35", | ||
1504 | "contao/core-bundle": ">=4,<4.4.18|>=4.5,<4.5.8", | ||
1505 | "contao/listing-bundle": ">=4,<4.4.8", | ||
1506 | "contao/newsletter-bundle": ">=4,<4.1", | ||
1507 | "david-garcia/phpwhois": "<=4.3.1", | ||
1508 | "doctrine/annotations": ">=1,<1.2.7", | ||
1509 | "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", | ||
1510 | "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", | ||
1511 | "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2", | ||
1512 | "doctrine/doctrine-bundle": "<1.5.2", | ||
1513 | "doctrine/doctrine-module": "<=0.7.1", | ||
1514 | "doctrine/mongodb-odm": ">=1,<1.0.2", | ||
1515 | "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", | ||
1516 | "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1", | ||
1517 | "dompdf/dompdf": ">=0.6,<0.6.2", | ||
1518 | "drupal/core": ">=7,<7.60|>=8,<8.5.8|>=8.6,<8.6.2", | ||
1519 | "drupal/drupal": ">=7,<7.60|>=8,<8.5.8|>=8.6,<8.6.2", | ||
1520 | "erusev/parsedown": "<1.7", | ||
1521 | "ezsystems/ezpublish-kernel": ">=5.3,<5.3.12.1|>=5.4,<5.4.13.1|>=6,<6.7.9.1|>=6.8,<6.13.5.1|>=7,<7.2.4.1|>=7.3,<7.3.2.1", | ||
1522 | "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.12.3|>=2011,<2017.12.4.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3", | ||
1523 | "ezsystems/repository-forms": ">=2.3,<2.3.2.1", | ||
1524 | "ezyang/htmlpurifier": "<4.1.1", | ||
1525 | "firebase/php-jwt": "<2", | ||
1526 | "fooman/tcpdf": "<6.2.22", | ||
1527 | "fossar/tcpdf-parser": "<6.2.22", | ||
1528 | "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", | ||
1529 | "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", | ||
1530 | "fuel/core": "<1.8.1", | ||
1531 | "gree/jose": "<=2.2", | ||
1532 | "gregwar/rst": "<1.0.3", | ||
1533 | "guzzlehttp/guzzle": ">=6,<6.2.1|>=4.0.0-rc2,<4.2.4|>=5,<5.3.1", | ||
1534 | "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", | ||
1535 | "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.42|>=5.6,<5.6.30", | ||
1536 | "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29", | ||
1537 | "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", | ||
1538 | "ivankristianto/phpwhois": "<=4.3", | ||
1539 | "james-heinrich/getid3": "<1.9.9", | ||
1540 | "joomla/session": "<1.3.1", | ||
1541 | "jsmitty12/phpwhois": "<5.1", | ||
1542 | "kazist/phpwhois": "<=4.2.6", | ||
1543 | "kreait/firebase-php": ">=3.2,<3.8.1", | ||
1544 | "la-haute-societe/tcpdf": "<6.2.22", | ||
1545 | "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.42|>=5.6,<5.6.30", | ||
1546 | "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", | ||
1547 | "league/commonmark": ">=0.15.6,<0.18.1", | ||
1548 | "magento/magento1ce": "<1.9.4", | ||
1549 | "magento/magento1ee": ">=1.9,<1.14.4", | ||
1550 | "magento/product-community-edition": ">=2,<2.2.7", | ||
1551 | "monolog/monolog": ">=1.8,<1.12", | ||
1552 | "namshi/jose": "<2.2", | ||
1553 | "onelogin/php-saml": "<2.10.4", | ||
1554 | "openid/php-openid": "<2.3", | ||
1555 | "oro/crm": ">=1.7,<1.7.4", | ||
1556 | "oro/platform": ">=1.7,<1.7.4", | ||
1557 | "padraic/humbug_get_contents": "<1.1.2", | ||
1558 | "pagarme/pagarme-php": ">=0,<3", | ||
1559 | "paragonie/random_compat": "<2", | ||
1560 | "paypal/merchant-sdk-php": "<3.12", | ||
1561 | "pear/archive_tar": "<1.4.4", | ||
1562 | "phpmailer/phpmailer": ">=5,<5.2.27|>=6,<6.0.6", | ||
1563 | "phpoffice/phpexcel": "<=1.8.1", | ||
1564 | "phpoffice/phpspreadsheet": "<=1.5", | ||
1565 | "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", | ||
1566 | "phpwhois/phpwhois": "<=4.2.5", | ||
1567 | "phpxmlrpc/extras": "<0.6.1", | ||
1568 | "propel/propel": ">=2.0.0-alpha1,<=2.0.0-alpha7", | ||
1569 | "propel/propel1": ">=1,<=1.7.1", | ||
1570 | "pusher/pusher-php-server": "<2.2.1", | ||
1571 | "robrichards/xmlseclibs": ">=1,<3.0.2", | ||
1572 | "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", | ||
1573 | "sensiolabs/connect": "<4.2.3", | ||
1574 | "serluck/phpwhois": "<=4.2.6", | ||
1575 | "shopware/shopware": "<5.3.7", | ||
1576 | "silverstripe/cms": ">=3,<=3.0.11|>=3.1,<3.1.11", | ||
1577 | "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", | ||
1578 | "silverstripe/framework": ">=3,<3.3", | ||
1579 | "silverstripe/userforms": "<3", | ||
1580 | "simple-updates/phpwhois": "<=1", | ||
1581 | "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", | ||
1582 | "simplesamlphp/simplesamlphp": "<1.16.3", | ||
1583 | "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", | ||
1584 | "slim/slim": "<2.6", | ||
1585 | "smarty/smarty": "<3.1.33", | ||
1586 | "socalnick/scn-social-auth": "<1.15.2", | ||
1587 | "spoonity/tcpdf": "<6.2.22", | ||
1588 | "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", | ||
1589 | "stormpath/sdk": ">=0,<9.9.99", | ||
1590 | "swiftmailer/swiftmailer": ">=4,<5.4.5", | ||
1591 | "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", | ||
1592 | "sylius/sylius": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", | ||
1593 | "symfony/dependency-injection": ">=2,<2.0.17", | ||
1594 | "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", | ||
1595 | "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2", | ||
1596 | "symfony/http-foundation": ">=2,<2.7.49|>=2.8,<2.8.44|>=3,<3.3.18|>=3.4,<3.4.14|>=4,<4.0.14|>=4.1,<4.1.3", | ||
1597 | "symfony/http-kernel": ">=2,<2.3.29|>=2.4,<2.5.12|>=2.6,<2.6.8", | ||
1598 | "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", | ||
1599 | "symfony/polyfill": ">=1,<1.10", | ||
1600 | "symfony/polyfill-php55": ">=1,<1.10", | ||
1601 | "symfony/routing": ">=2,<2.0.19", | ||
1602 | "symfony/security": ">=2,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.19|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", | ||
1603 | "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", | ||
1604 | "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", | ||
1605 | "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", | ||
1606 | "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", | ||
1607 | "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", | ||
1608 | "symfony/serializer": ">=2,<2.0.11", | ||
1609 | "symfony/symfony": ">=2,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", | ||
1610 | "symfony/translation": ">=2,<2.0.17", | ||
1611 | "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", | ||
1612 | "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", | ||
1613 | "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", | ||
1614 | "tecnickcom/tcpdf": "<6.2.22", | ||
1615 | "thelia/backoffice-default-template": ">=2.1,<2.1.2", | ||
1616 | "thelia/thelia": ">=2.1.0-beta1,<2.1.3|>=2.1,<2.1.2", | ||
1617 | "theonedemon/phpwhois": "<=4.2.5", | ||
1618 | "titon/framework": ">=0,<9.9.99", | ||
1619 | "truckersmp/phpwhois": "<=4.3.1", | ||
1620 | "twig/twig": "<1.20", | ||
1621 | "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.21|>=9,<9.5.2", | ||
1622 | "typo3/cms-core": ">=8,<8.7.21|>=9,<9.5.2", | ||
1623 | "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", | ||
1624 | "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", | ||
1625 | "ua-parser/uap-php": "<3.8", | ||
1626 | "wallabag/tcpdf": "<6.2.22", | ||
1627 | "willdurand/js-translation-bundle": "<2.1.1", | ||
1628 | "yiisoft/yii": ">=1.1.14,<1.1.15", | ||
1629 | "yiisoft/yii2": "<2.0.15", | ||
1630 | "yiisoft/yii2-bootstrap": "<2.0.4", | ||
1631 | "yiisoft/yii2-dev": "<2.0.15", | ||
1632 | "yiisoft/yii2-elasticsearch": "<2.0.5", | ||
1633 | "yiisoft/yii2-gii": "<2.0.4", | ||
1634 | "yiisoft/yii2-jui": "<2.0.4", | ||
1635 | "yiisoft/yii2-redis": "<2.0.8", | ||
1636 | "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", | ||
1637 | "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", | ||
1638 | "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", | ||
1639 | "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", | ||
1640 | "zendframework/zend-diactoros": ">=1,<1.8.4", | ||
1641 | "zendframework/zend-feed": ">=1,<2.10.3", | ||
1642 | "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", | ||
1643 | "zendframework/zend-http": ">=1,<2.8.1", | ||
1644 | "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", | ||
1645 | "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", | ||
1646 | "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", | ||
1647 | "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", | ||
1648 | "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", | ||
1649 | "zendframework/zend-validator": ">=2.3,<2.3.6", | ||
1650 | "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", | ||
1651 | "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", | ||
1652 | "zendframework/zendframework": "<2.5.1", | ||
1653 | "zendframework/zendframework1": "<1.12.20", | ||
1654 | "zendframework/zendopenid": ">=2,<2.0.2", | ||
1655 | "zendframework/zendxml": ">=1,<1.0.1", | ||
1656 | "zetacomponents/mail": "<1.8.2", | ||
1657 | "zf-commons/zfc-user": "<1.2.2", | ||
1658 | "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", | ||
1659 | "zfr/zfr-oauth2-server-module": "<0.1.2" | ||
1660 | }, | ||
1661 | "type": "metapackage", | ||
1662 | "notification-url": "https://packagist.org/downloads/", | ||
1663 | "license": [ | ||
1664 | "MIT" | ||
1665 | ], | ||
1666 | "authors": [ | ||
1667 | { | ||
1668 | "name": "Marco Pivetta", | ||
1669 | "email": "ocramius@gmail.com", | ||
1670 | "role": "maintainer" | ||
1671 | } | ||
1672 | ], | ||
1673 | "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", | ||
1674 | "time": "2019-01-15T19:39:37+00:00" | ||
1675 | }, | ||
1676 | { | ||
1473 | "name": "sebastian/code-unit-reverse-lookup", | 1677 | "name": "sebastian/code-unit-reverse-lookup", |
1474 | "version": "1.0.1", | 1678 | "version": "1.0.1", |
1475 | "source": { | 1679 | "source": { |
@@ -2023,16 +2227,16 @@ | |||
2023 | }, | 2227 | }, |
2024 | { | 2228 | { |
2025 | "name": "squizlabs/php_codesniffer", | 2229 | "name": "squizlabs/php_codesniffer", |
2026 | "version": "2.9.1", | 2230 | "version": "2.9.2", |
2027 | "source": { | 2231 | "source": { |
2028 | "type": "git", | 2232 | "type": "git", |
2029 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", | 2233 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", |
2030 | "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" | 2234 | "reference": "2acf168de78487db620ab4bc524135a13cfe6745" |
2031 | }, | 2235 | }, |
2032 | "dist": { | 2236 | "dist": { |
2033 | "type": "zip", | 2237 | "type": "zip", |
2034 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", | 2238 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", |
2035 | "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", | 2239 | "reference": "2acf168de78487db620ab4bc524135a13cfe6745", |
2036 | "shasum": "" | 2240 | "shasum": "" |
2037 | }, | 2241 | }, |
2038 | "require": { | 2242 | "require": { |
@@ -2097,20 +2301,20 @@ | |||
2097 | "phpcs", | 2301 | "phpcs", |
2098 | "standards" | 2302 | "standards" |
2099 | ], | 2303 | ], |
2100 | "time": "2017-05-22T02:43:20+00:00" | 2304 | "time": "2018-11-07T22:31:41+00:00" |
2101 | }, | 2305 | }, |
2102 | { | 2306 | { |
2103 | "name": "symfony/console", | 2307 | "name": "symfony/console", |
2104 | "version": "v3.4.17", | 2308 | "version": "v3.4.21", |
2105 | "source": { | 2309 | "source": { |
2106 | "type": "git", | 2310 | "type": "git", |
2107 | "url": "https://github.com/symfony/console.git", | 2311 | "url": "https://github.com/symfony/console.git", |
2108 | "reference": "3b2b415d4c48fbefca7dc742aa0a0171bfae4e0b" | 2312 | "reference": "a700b874d3692bc8342199adfb6d3b99f62cc61a" |
2109 | }, | 2313 | }, |
2110 | "dist": { | 2314 | "dist": { |
2111 | "type": "zip", | 2315 | "type": "zip", |
2112 | "url": "https://api.github.com/repos/symfony/console/zipball/3b2b415d4c48fbefca7dc742aa0a0171bfae4e0b", | 2316 | "url": "https://api.github.com/repos/symfony/console/zipball/a700b874d3692bc8342199adfb6d3b99f62cc61a", |
2113 | "reference": "3b2b415d4c48fbefca7dc742aa0a0171bfae4e0b", | 2317 | "reference": "a700b874d3692bc8342199adfb6d3b99f62cc61a", |
2114 | "shasum": "" | 2318 | "shasum": "" |
2115 | }, | 2319 | }, |
2116 | "require": { | 2320 | "require": { |
@@ -2166,20 +2370,20 @@ | |||
2166 | ], | 2370 | ], |
2167 | "description": "Symfony Console Component", | 2371 | "description": "Symfony Console Component", |
2168 | "homepage": "https://symfony.com", | 2372 | "homepage": "https://symfony.com", |
2169 | "time": "2018-10-02T16:33:53+00:00" | 2373 | "time": "2019-01-04T04:42:43+00:00" |
2170 | }, | 2374 | }, |
2171 | { | 2375 | { |
2172 | "name": "symfony/debug", | 2376 | "name": "symfony/debug", |
2173 | "version": "v3.4.17", | 2377 | "version": "v3.4.21", |
2174 | "source": { | 2378 | "source": { |
2175 | "type": "git", | 2379 | "type": "git", |
2176 | "url": "https://github.com/symfony/debug.git", | 2380 | "url": "https://github.com/symfony/debug.git", |
2177 | "reference": "0a612e9dfbd2ccce03eb174365f31ecdca930ff6" | 2381 | "reference": "26d7f23b9bd0b93bee5583e4d6ca5cb1ab31b186" |
2178 | }, | 2382 | }, |
2179 | "dist": { | 2383 | "dist": { |
2180 | "type": "zip", | 2384 | "type": "zip", |
2181 | "url": "https://api.github.com/repos/symfony/debug/zipball/0a612e9dfbd2ccce03eb174365f31ecdca930ff6", | 2385 | "url": "https://api.github.com/repos/symfony/debug/zipball/26d7f23b9bd0b93bee5583e4d6ca5cb1ab31b186", |
2182 | "reference": "0a612e9dfbd2ccce03eb174365f31ecdca930ff6", | 2386 | "reference": "26d7f23b9bd0b93bee5583e4d6ca5cb1ab31b186", |
2183 | "shasum": "" | 2387 | "shasum": "" |
2184 | }, | 2388 | }, |
2185 | "require": { | 2389 | "require": { |
@@ -2222,20 +2426,20 @@ | |||
2222 | ], | 2426 | ], |
2223 | "description": "Symfony Debug Component", | 2427 | "description": "Symfony Debug Component", |
2224 | "homepage": "https://symfony.com", | 2428 | "homepage": "https://symfony.com", |
2225 | "time": "2018-10-02T16:33:53+00:00" | 2429 | "time": "2019-01-01T13:45:19+00:00" |
2226 | }, | 2430 | }, |
2227 | { | 2431 | { |
2228 | "name": "symfony/finder", | 2432 | "name": "symfony/finder", |
2229 | "version": "v3.4.17", | 2433 | "version": "v3.4.21", |
2230 | "source": { | 2434 | "source": { |
2231 | "type": "git", | 2435 | "type": "git", |
2232 | "url": "https://github.com/symfony/finder.git", | 2436 | "url": "https://github.com/symfony/finder.git", |
2233 | "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d" | 2437 | "reference": "3f2a2ab6315dd7682d4c16dcae1e7b95c8b8555e" |
2234 | }, | 2438 | }, |
2235 | "dist": { | 2439 | "dist": { |
2236 | "type": "zip", | 2440 | "type": "zip", |
2237 | "url": "https://api.github.com/repos/symfony/finder/zipball/54ba444dddc5bd5708a34bd095ea67c6eb54644d", | 2441 | "url": "https://api.github.com/repos/symfony/finder/zipball/3f2a2ab6315dd7682d4c16dcae1e7b95c8b8555e", |
2238 | "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d", | 2442 | "reference": "3f2a2ab6315dd7682d4c16dcae1e7b95c8b8555e", |
2239 | "shasum": "" | 2443 | "shasum": "" |
2240 | }, | 2444 | }, |
2241 | "require": { | 2445 | "require": { |
@@ -2271,11 +2475,11 @@ | |||
2271 | ], | 2475 | ], |
2272 | "description": "Symfony Finder Component", | 2476 | "description": "Symfony Finder Component", |
2273 | "homepage": "https://symfony.com", | 2477 | "homepage": "https://symfony.com", |
2274 | "time": "2018-10-03T08:46:40+00:00" | 2478 | "time": "2019-01-01T13:45:19+00:00" |
2275 | }, | 2479 | }, |
2276 | { | 2480 | { |
2277 | "name": "symfony/polyfill-ctype", | 2481 | "name": "symfony/polyfill-ctype", |
2278 | "version": "v1.9.0", | 2482 | "version": "v1.10.0", |
2279 | "source": { | 2483 | "source": { |
2280 | "type": "git", | 2484 | "type": "git", |
2281 | "url": "https://github.com/symfony/polyfill-ctype.git", | 2485 | "url": "https://github.com/symfony/polyfill-ctype.git", |
@@ -2333,16 +2537,16 @@ | |||
2333 | }, | 2537 | }, |
2334 | { | 2538 | { |
2335 | "name": "symfony/polyfill-mbstring", | 2539 | "name": "symfony/polyfill-mbstring", |
2336 | "version": "v1.9.0", | 2540 | "version": "v1.10.0", |
2337 | "source": { | 2541 | "source": { |
2338 | "type": "git", | 2542 | "type": "git", |
2339 | "url": "https://github.com/symfony/polyfill-mbstring.git", | 2543 | "url": "https://github.com/symfony/polyfill-mbstring.git", |
2340 | "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8" | 2544 | "reference": "c79c051f5b3a46be09205c73b80b346e4153e494" |
2341 | }, | 2545 | }, |
2342 | "dist": { | 2546 | "dist": { |
2343 | "type": "zip", | 2547 | "type": "zip", |
2344 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d0cd638f4634c16d8df4508e847f14e9e43168b8", | 2548 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494", |
2345 | "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8", | 2549 | "reference": "c79c051f5b3a46be09205c73b80b346e4153e494", |
2346 | "shasum": "" | 2550 | "shasum": "" |
2347 | }, | 2551 | }, |
2348 | "require": { | 2552 | "require": { |
@@ -2388,20 +2592,20 @@ | |||
2388 | "portable", | 2592 | "portable", |
2389 | "shim" | 2593 | "shim" |
2390 | ], | 2594 | ], |
2391 | "time": "2018-08-06T14:22:27+00:00" | 2595 | "time": "2018-09-21T13:07:52+00:00" |
2392 | }, | 2596 | }, |
2393 | { | 2597 | { |
2394 | "name": "symfony/yaml", | 2598 | "name": "symfony/yaml", |
2395 | "version": "v3.4.17", | 2599 | "version": "v3.4.21", |
2396 | "source": { | 2600 | "source": { |
2397 | "type": "git", | 2601 | "type": "git", |
2398 | "url": "https://github.com/symfony/yaml.git", | 2602 | "url": "https://github.com/symfony/yaml.git", |
2399 | "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f" | 2603 | "reference": "554a59a1ccbaac238a89b19c8e551a556fd0e2ea" |
2400 | }, | 2604 | }, |
2401 | "dist": { | 2605 | "dist": { |
2402 | "type": "zip", | 2606 | "type": "zip", |
2403 | "url": "https://api.github.com/repos/symfony/yaml/zipball/640b6c27fed4066d64b64d5903a86043f4a4de7f", | 2607 | "url": "https://api.github.com/repos/symfony/yaml/zipball/554a59a1ccbaac238a89b19c8e551a556fd0e2ea", |
2404 | "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f", | 2608 | "reference": "554a59a1ccbaac238a89b19c8e551a556fd0e2ea", |
2405 | "shasum": "" | 2609 | "shasum": "" |
2406 | }, | 2610 | }, |
2407 | "require": { | 2611 | "require": { |
@@ -2447,7 +2651,7 @@ | |||
2447 | ], | 2651 | ], |
2448 | "description": "Symfony Yaml Component", | 2652 | "description": "Symfony Yaml Component", |
2449 | "homepage": "https://symfony.com", | 2653 | "homepage": "https://symfony.com", |
2450 | "time": "2018-10-02T16:33:53+00:00" | 2654 | "time": "2019-01-01T13:45:19+00:00" |
2451 | }, | 2655 | }, |
2452 | { | 2656 | { |
2453 | "name": "theseer/fdomdocument", | 2657 | "name": "theseer/fdomdocument", |
@@ -2491,20 +2695,21 @@ | |||
2491 | }, | 2695 | }, |
2492 | { | 2696 | { |
2493 | "name": "webmozart/assert", | 2697 | "name": "webmozart/assert", |
2494 | "version": "1.3.0", | 2698 | "version": "1.4.0", |
2495 | "source": { | 2699 | "source": { |
2496 | "type": "git", | 2700 | "type": "git", |
2497 | "url": "https://github.com/webmozart/assert.git", | 2701 | "url": "https://github.com/webmozart/assert.git", |
2498 | "reference": "0df1908962e7a3071564e857d86874dad1ef204a" | 2702 | "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" |
2499 | }, | 2703 | }, |
2500 | "dist": { | 2704 | "dist": { |
2501 | "type": "zip", | 2705 | "type": "zip", |
2502 | "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", | 2706 | "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", |
2503 | "reference": "0df1908962e7a3071564e857d86874dad1ef204a", | 2707 | "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", |
2504 | "shasum": "" | 2708 | "shasum": "" |
2505 | }, | 2709 | }, |
2506 | "require": { | 2710 | "require": { |
2507 | "php": "^5.3.3 || ^7.0" | 2711 | "php": "^5.3.3 || ^7.0", |
2712 | "symfony/polyfill-ctype": "^1.8" | ||
2508 | }, | 2713 | }, |
2509 | "require-dev": { | 2714 | "require-dev": { |
2510 | "phpunit/phpunit": "^4.6", | 2715 | "phpunit/phpunit": "^4.6", |
@@ -2537,18 +2742,21 @@ | |||
2537 | "check", | 2742 | "check", |
2538 | "validate" | 2743 | "validate" |
2539 | ], | 2744 | ], |
2540 | "time": "2018-01-29T19:49:41+00:00" | 2745 | "time": "2018-12-25T11:19:39+00:00" |
2541 | } | 2746 | } |
2542 | ], | 2747 | ], |
2543 | "aliases": [], | 2748 | "aliases": [], |
2544 | "minimum-stability": "stable", | 2749 | "minimum-stability": "stable", |
2545 | "stability-flags": { | 2750 | "stability-flags": { |
2546 | "pubsubhubbub/publisher": 20 | 2751 | "pubsubhubbub/publisher": 20, |
2752 | "roave/security-advisories": 20 | ||
2547 | }, | 2753 | }, |
2548 | "prefer-stable": false, | 2754 | "prefer-stable": false, |
2549 | "prefer-lowest": false, | 2755 | "prefer-lowest": false, |
2550 | "platform": { | 2756 | "platform": { |
2551 | "php": ">=5.6" | 2757 | "php": ">=5.6", |
2758 | "ext-json": "*", | ||
2759 | "ext-zlib": "*" | ||
2552 | }, | 2760 | }, |
2553 | "platform-dev": [], | 2761 | "platform-dev": [], |
2554 | "platform-overrides": { | 2762 | "platform-overrides": { |
diff --git a/doc/md/Community-&-Related-software.md b/doc/md/Community-&-Related-software.md index 67fdd70f..c66d1c70 100644 --- a/doc/md/Community-&-Related-software.md +++ b/doc/md/Community-&-Related-software.md | |||
@@ -22,7 +22,8 @@ See [REST API](REST-API) for a list of official and community clients. | |||
22 | - [shaarli2twitter](https://github.com/ArthurHoaro/shaarli2twitter) by [@ArthurHoaro](https://github.com/ArthurHoaro) - Automatically tweet your shared links from Shaarli | 22 | - [shaarli2twitter](https://github.com/ArthurHoaro/shaarli2twitter) by [@ArthurHoaro](https://github.com/ArthurHoaro) - Automatically tweet your shared links from Shaarli |
23 | - [shaarli2mastodon](https://github.com/kalvn/shaarli2mastodon) by [@kalvn](https://github.com/kalvn) - This Shaarli plugin allows you to automatically publish links you post on your Mastodon timeline. | 23 | - [shaarli2mastodon](https://github.com/kalvn/shaarli2mastodon) by [@kalvn](https://github.com/kalvn) - This Shaarli plugin allows you to automatically publish links you post on your Mastodon timeline. |
24 | - [shaarli-descriptor](https://github.com/immanuelfodor/shaarli-descriptor) by [@immanuelfodor](https://github.com/immanuelfodor) - Customize the default height/number of rows of the Description field when editing a link. | 24 | - [shaarli-descriptor](https://github.com/immanuelfodor/shaarli-descriptor) by [@immanuelfodor](https://github.com/immanuelfodor) - Customize the default height/number of rows of the Description field when editing a link. |
25 | 25 | - [urlextern](https://github.com/trailjeep/shaarli-urlextern) by [@trailjeep](https://github.com/trailjeep) - Shaarli plugin to open external links in a new tab/window. | |
26 | - [favicons](https://github.com/trailjeep/shaarli-favicons) by [@trailjeep](https://github.com/trailjeep) - Shaarli plugin to add favicon/filetype icons to links. | ||
26 | 27 | ||
27 | ### Third-party themes | 28 | ### Third-party themes |
28 | See [Theming](Theming) for a list of community-contributed themes, and an installation guide. | 29 | See [Theming](Theming) for a list of community-contributed themes, and an installation guide. |
diff --git a/doc/md/Download-and-Installation.md b/doc/md/Download-and-Installation.md index 14649e06..8c9e8a32 100644 --- a/doc/md/Download-and-Installation.md +++ b/doc/md/Download-and-Installation.md | |||
@@ -24,11 +24,11 @@ Using one of the following methods: | |||
24 | 24 | ||
25 | In most cases, you should download the latest Shaarli release from the [releases](https://github.com/shaarli/Shaarli/releases) page. Download our **shaarli-full** archive to include dependencies. | 25 | In most cases, you should download the latest Shaarli release from the [releases](https://github.com/shaarli/Shaarli/releases) page. Download our **shaarli-full** archive to include dependencies. |
26 | 26 | ||
27 | The current latest released version is `v0.9.7` | 27 | The current latest released version is `v0.10.4` |
28 | 28 | ||
29 | ```bash | 29 | ```bash |
30 | $ wget https://github.com/shaarli/Shaarli/releases/download/v0.9.7/shaarli-v0.9.7-full.zip | 30 | $ wget https://github.com/shaarli/Shaarli/releases/download/v0.10.4/shaarli-v0.10.4-full.zip |
31 | $ unzip shaarli-v0.9.7-full.zip | 31 | $ unzip shaarli-v0.10.4-full.zip |
32 | $ mv Shaarli /path/to/shaarli/ | 32 | $ mv Shaarli /path/to/shaarli/ |
33 | ``` | 33 | ``` |
34 | 34 | ||
diff --git a/doc/md/Plugin-System.md b/doc/md/Plugin-System.md index cbec04c0..9b0d3a7d 100644 --- a/doc/md/Plugin-System.md +++ b/doc/md/Plugin-System.md | |||
@@ -137,6 +137,7 @@ If it's still not working, please [open an issue](https://github.com/shaarli/Sha | |||
137 | | [render_feed](#render_feed) | Allow to do add tags in RSS and ATOM feeds. | | 137 | | [render_feed](#render_feed) | Allow to do add tags in RSS and ATOM feeds. | |
138 | | [save_link](#save_link) | Allow to alter the link being saved in the datastore. | | 138 | | [save_link](#save_link) | Allow to alter the link being saved in the datastore. | |
139 | | [delete_link](#delete_link) | Allow to do an action before a link is deleted from the datastore. | | 139 | | [delete_link](#delete_link) | Allow to do an action before a link is deleted from the datastore. | |
140 | | [save_plugin_parameters](#save_plugin_parameters) | Allow to manipulate plugin parameters before they're saved. | | ||
140 | 141 | ||
141 | 142 | ||
142 | 143 | ||
@@ -471,6 +472,22 @@ Allow to execute any action before the link is actually removed from the datasto | |||
471 | - created | 472 | - created |
472 | - updated | 473 | - updated |
473 | 474 | ||
475 | |||
476 | #### save_plugin_parameters | ||
477 | |||
478 | Triggered when the plugin parameters are saved from the plugin administration page. | ||
479 | |||
480 | Plugins can perform an action every times their settings are updated. | ||
481 | For example it is used to update the CSS file of the `default_colors` plugins. | ||
482 | |||
483 | ##### Data | ||
484 | |||
485 | `$data` input contains the `$_POST` array. | ||
486 | |||
487 | So if the plugin has a parameter called `MYPLUGIN_PARAMETER`, | ||
488 | the array will contain an entry with `MYPLUGIN_PARAMETER` as a key. | ||
489 | |||
490 | |||
474 | ## Guide for template designer | 491 | ## Guide for template designer |
475 | 492 | ||
476 | ### Plugin administration | 493 | ### Plugin administration |
diff --git a/doc/md/Plugins.md b/doc/md/Plugins.md index 954442e2..3e261815 100644 --- a/doc/md/Plugins.md +++ b/doc/md/Plugins.md | |||
@@ -63,8 +63,12 @@ Usage of each plugin is documented in it's README file: | |||
63 | 63 | ||
64 | * `addlink-toolbar`: Adds the addlink input on the linklist page | 64 | * `addlink-toolbar`: Adds the addlink input on the linklist page |
65 | * `archiveorg`: For each link, add an Archive.org icon | 65 | * `archiveorg`: For each link, add an Archive.org icon |
66 | * `default_colors`: Override default theme colors. | ||
67 | * `isso`: Let visitor comment your shaares on permalinks with Isso. | ||
66 | * [`markdown`](https://github.com/shaarli/Shaarli/blob/master/plugins/markdown/README.md): Render shaare description with Markdown syntax. | 68 | * [`markdown`](https://github.com/shaarli/Shaarli/blob/master/plugins/markdown/README.md): Render shaare description with Markdown syntax. |
69 | * `piwik`: A plugin that adds Piwik tracking code to Shaarli pages. | ||
67 | * [`playvideos`](https://github.com/shaarli/Shaarli/blob/master/plugins/playvideos/README.md): Add a button in the toolbar allowing to watch all videos. | 70 | * [`playvideos`](https://github.com/shaarli/Shaarli/blob/master/plugins/playvideos/README.md): Add a button in the toolbar allowing to watch all videos. |
71 | * `pubsubhubbub`: Enable PubSubHubbub feed publishing | ||
68 | * `qrcode`: For each link, add a QRCode icon. | 72 | * `qrcode`: For each link, add a QRCode icon. |
69 | * [`wallabag`](https://github.com/shaarli/Shaarli/blob/master/plugins/wallabag/README.md): For each link, add a Wallabag icon to save it in your instance. | 73 | * [`wallabag`](https://github.com/shaarli/Shaarli/blob/master/plugins/wallabag/README.md): For each link, add a Wallabag icon to save it in your instance. |
70 | 74 | ||
diff --git a/doc/md/Server-configuration.md b/doc/md/Server-configuration.md index 78083a46..88eed8e6 100644 --- a/doc/md/Server-configuration.md +++ b/doc/md/Server-configuration.md | |||
@@ -17,7 +17,7 @@ Version | Status | Shaarli compatibility | |||
17 | :---:|:---:|:---: | 17 | :---:|:---:|:---: |
18 | 7.2 | Supported | Yes | 18 | 7.2 | Supported | Yes |
19 | 7.1 | Supported | Yes | 19 | 7.1 | Supported | Yes |
20 | 7.0 | Supported | Yes | 20 | 7.0 | EOL: 2018-12-03 | Yes (up to Shaarli 0.10.x) |
21 | 5.6 | EOL: 2018-12-31 | Yes (up to Shaarli 0.10.x) | 21 | 5.6 | EOL: 2018-12-31 | Yes (up to Shaarli 0.10.x) |
22 | 5.5 | EOL: 2016-07-10 | Yes | 22 | 5.5 | EOL: 2016-07-10 | Yes |
23 | 5.4 | EOL: 2015-09-14 | Yes (up to Shaarli 0.8.x) | 23 | 5.4 | EOL: 2015-09-14 | Yes (up to Shaarli 0.8.x) |
@@ -404,6 +404,8 @@ If Shaarli is served behind a proxy (i.e. there is a proxy server between client | |||
404 | - `X-Forwarded-Host` | 404 | - `X-Forwarded-Host` |
405 | - `X-Forwarded-For` | 405 | - `X-Forwarded-For` |
406 | 406 | ||
407 | In you [Shaarli configuration](Shaarli-configuration) `data/config.json.php`, add the public IP of your proxy under `security.trusted_proxies`. | ||
408 | |||
407 | See also [proxy-related](https://github.com/shaarli/Shaarli/issues?utf8=%E2%9C%93&q=label%3Aproxy+) issues. | 409 | See also [proxy-related](https://github.com/shaarli/Shaarli/issues?utf8=%E2%9C%93&q=label%3Aproxy+) issues. |
408 | 410 | ||
409 | ## Robots and crawlers | 411 | ## Robots and crawlers |
diff --git a/doc/md/Shaarli-configuration.md b/doc/md/Shaarli-configuration.md index 920c7e27..664e36dd 100644 --- a/doc/md/Shaarli-configuration.md +++ b/doc/md/Shaarli-configuration.md | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | Once your Shaarli instance is installed, the file `data/config.json.php` is generated: | 5 | Once your Shaarli instance is installed, the file `data/config.json.php` is generated: |
6 | * it contains all settings in JSON format, and can be edited to customize values | 6 | * it contains all settings in JSON format, and can be edited to customize values |
7 | * it defines which [plugins](Plugin-System) are enabled[](.html) | 7 | * it defines which [plugins](Plugin-System) are enabled |
8 | * its values override those defined in `index.php` | 8 | * its values override those defined in `index.php` |
9 | * it is wrap in a PHP comment to prevent anyone accessing it, regardless of server configuration | 9 | * it is wrap in a PHP comment to prevent anyone accessing it, regardless of server configuration |
10 | 10 | ||
@@ -32,13 +32,13 @@ On a Linux distribution: | |||
32 | - to give it access to Shaarli, either: | 32 | - to give it access to Shaarli, either: |
33 | - unzip Shaarli in the default web server location (usually `/var/www/`) and set the web server user as the owner | 33 | - unzip Shaarli in the default web server location (usually `/var/www/`) and set the web server user as the owner |
34 | - put users in the same group as the web server, and set the appropriate access rights | 34 | - put users in the same group as the web server, and set the appropriate access rights |
35 | - if you have a domain / subdomain to serve Shaarli, [configure the server](Server-configuration) accordingly[](.html) | 35 | - if you have a domain / subdomain to serve Shaarli, [configure the server](Server-configuration) accordingly |
36 | 36 | ||
37 | ## Configuration | 37 | ## Configuration |
38 | 38 | ||
39 | In `data/config.json.php`. | 39 | In `data/config.json.php`. |
40 | 40 | ||
41 | See also [Plugin System](Plugin-System.html). | 41 | See also [Plugin System](Plugin-System). |
42 | 42 | ||
43 | ### Credentials | 43 | ### Credentials |
44 | 44 | ||
@@ -56,6 +56,8 @@ _These settings should not be edited_ | |||
56 | - **timezone**: See [the list of supported timezones](http://php.net/manual/en/timezones.php). | 56 | - **timezone**: See [the list of supported timezones](http://php.net/manual/en/timezones.php). |
57 | - **enabled_plugins**: List of enabled plugins. | 57 | - **enabled_plugins**: List of enabled plugins. |
58 | - **default_note_title**: Default title of a new note. | 58 | - **default_note_title**: Default title of a new note. |
59 | - **retrieve_description** (boolean): If set to true, for every new links Shaarli will try | ||
60 | to retrieve the description and keywords from the HTML meta tags. | ||
59 | 61 | ||
60 | ### Security | 62 | ### Security |
61 | 63 | ||
@@ -120,11 +122,6 @@ Must be an associative array: `translation domain => translation path`. | |||
120 | - **enable_thumbnails**: Enable or disable thumbnail display. | 122 | - **enable_thumbnails**: Enable or disable thumbnail display. |
121 | - **enable_localcache**: Enable or disable local cache. | 123 | - **enable_localcache**: Enable or disable local cache. |
122 | 124 | ||
123 | ### Redirector | ||
124 | |||
125 | - **url**: Redirector URL, such as `anonym.to`. | ||
126 | - **encode_url**: Enable this if the redirector needs encoded URL to work properly. | ||
127 | |||
128 | ## Configuration file example | 125 | ## Configuration file example |
129 | 126 | ||
130 | ```json | 127 | ```json |
@@ -185,8 +182,6 @@ Must be an associative array: `translation domain => translation path`. | |||
185 | "hide_public_links": false, | 182 | "hide_public_links": false, |
186 | "hide_timestamps": false, | 183 | "hide_timestamps": false, |
187 | "open_shaarli": false, | 184 | "open_shaarli": false, |
188 | "redirector": "http://anonym.to/?", | ||
189 | "redirector_encode_url": false | ||
190 | }, | 185 | }, |
191 | "general": { | 186 | "general": { |
192 | "header_link": "?", | 187 | "header_link": "?", |
@@ -218,10 +213,6 @@ Must be an associative array: `translation domain => translation path`. | |||
218 | "enable_thumbnails": true, | 213 | "enable_thumbnails": true, |
219 | "enable_localcache": true | 214 | "enable_localcache": true |
220 | }, | 215 | }, |
221 | "redirector": { | ||
222 | "url": "http://anonym.to/?", | ||
223 | "encode_url": false | ||
224 | }, | ||
225 | "plugins": { | 216 | "plugins": { |
226 | "WALLABAG_URL": "http://demo.wallabag.org", | 217 | "WALLABAG_URL": "http://demo.wallabag.org", |
227 | "WALLABAG_VERSION": "1" | 218 | "WALLABAG_VERSION": "1" |
diff --git a/inc/languages/fr/LC_MESSAGES/shaarli.po b/inc/languages/fr/LC_MESSAGES/shaarli.po index 102c80da..026d0101 100644 --- a/inc/languages/fr/LC_MESSAGES/shaarli.po +++ b/inc/languages/fr/LC_MESSAGES/shaarli.po | |||
@@ -1,15 +1,15 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Project-Id-Version: Shaarli\n" | 3 | "Project-Id-Version: Shaarli\n" |
4 | "POT-Creation-Date: 2018-10-06 13:08+0200\n" | 4 | "POT-Creation-Date: 2019-07-13 10:45+0200\n" |
5 | "PO-Revision-Date: 2018-10-06 13:08+0200\n" | 5 | "PO-Revision-Date: 2019-07-13 10:49+0200\n" |
6 | "Last-Translator: \n" | 6 | "Last-Translator: \n" |
7 | "Language-Team: Shaarli\n" | 7 | "Language-Team: Shaarli\n" |
8 | "Language: fr_FR\n" | 8 | "Language: fr_FR\n" |
9 | "MIME-Version: 1.0\n" | 9 | "MIME-Version: 1.0\n" |
10 | "Content-Type: text/plain; charset=UTF-8\n" | 10 | "Content-Type: text/plain; charset=UTF-8\n" |
11 | "Content-Transfer-Encoding: 8bit\n" | 11 | "Content-Transfer-Encoding: 8bit\n" |
12 | "X-Generator: Poedit 2.1.1\n" | 12 | "X-Generator: Poedit 2.2.1\n" |
13 | "X-Poedit-Basepath: ../../../..\n" | 13 | "X-Poedit-Basepath: ../../../..\n" |
14 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" | 14 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
15 | "X-Poedit-SourceCharset: UTF-8\n" | 15 | "X-Poedit-SourceCharset: UTF-8\n" |
@@ -18,7 +18,7 @@ msgstr "" | |||
18 | "X-Poedit-SearchPathExcluded-0: node_modules\n" | 18 | "X-Poedit-SearchPathExcluded-0: node_modules\n" |
19 | "X-Poedit-SearchPathExcluded-1: vendor\n" | 19 | "X-Poedit-SearchPathExcluded-1: vendor\n" |
20 | 20 | ||
21 | #: application/ApplicationUtils.php:153 | 21 | #: application/ApplicationUtils.php:159 |
22 | #, php-format | 22 | #, php-format |
23 | msgid "" | 23 | msgid "" |
24 | "Your PHP version is obsolete! Shaarli requires at least PHP %s, and thus " | 24 | "Your PHP version is obsolete! Shaarli requires at least PHP %s, and thus " |
@@ -29,87 +29,109 @@ msgstr "" | |||
29 | "peut donc pas fonctionner. Votre version de PHP a des failles de sécurités " | 29 | "peut donc pas fonctionner. Votre version de PHP a des failles de sécurités " |
30 | "connues et devrait être mise à jour au plus tôt." | 30 | "connues et devrait être mise à jour au plus tôt." |
31 | 31 | ||
32 | #: application/ApplicationUtils.php:183 application/ApplicationUtils.php:195 | 32 | #: application/ApplicationUtils.php:189 application/ApplicationUtils.php:201 |
33 | msgid "directory is not readable" | 33 | msgid "directory is not readable" |
34 | msgstr "le répertoire n'est pas accessible en lecture" | 34 | msgstr "le répertoire n'est pas accessible en lecture" |
35 | 35 | ||
36 | #: application/ApplicationUtils.php:198 | 36 | #: application/ApplicationUtils.php:204 |
37 | msgid "directory is not writable" | 37 | msgid "directory is not writable" |
38 | msgstr "le répertoire n'est pas accessible en écriture" | 38 | msgstr "le répertoire n'est pas accessible en écriture" |
39 | 39 | ||
40 | #: application/ApplicationUtils.php:216 | 40 | #: application/ApplicationUtils.php:222 |
41 | msgid "file is not readable" | 41 | msgid "file is not readable" |
42 | msgstr "le fichier n'est pas accessible en lecture" | 42 | msgstr "le fichier n'est pas accessible en lecture" |
43 | 43 | ||
44 | #: application/ApplicationUtils.php:219 | 44 | #: application/ApplicationUtils.php:225 |
45 | msgid "file is not writable" | 45 | msgid "file is not writable" |
46 | msgstr "le fichier n'est pas accessible en écriture" | 46 | msgstr "le fichier n'est pas accessible en écriture" |
47 | 47 | ||
48 | #: application/Cache.php:16 | 48 | #: application/History.php:178 |
49 | #, php-format | ||
50 | msgid "Cannot purge %s: no directory" | ||
51 | msgstr "Impossible de purger %s : le répertoire n'existe pas" | ||
52 | |||
53 | #: application/FeedBuilder.php:151 | ||
54 | msgid "Direct link" | ||
55 | msgstr "Liens directs" | ||
56 | |||
57 | #: application/FeedBuilder.php:153 | ||
58 | #: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:88 | ||
59 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:177 | ||
60 | msgid "Permalink" | ||
61 | msgstr "Permalien" | ||
62 | |||
63 | #: application/History.php:174 | ||
64 | msgid "History file isn't readable or writable" | 49 | msgid "History file isn't readable or writable" |
65 | msgstr "Le fichier d'historique n'est pas accessible en lecture ou en écriture" | 50 | msgstr "Le fichier d'historique n'est pas accessible en lecture ou en écriture" |
66 | 51 | ||
67 | #: application/History.php:185 | 52 | #: application/History.php:189 |
68 | msgid "Could not parse history file" | 53 | msgid "Could not parse history file" |
69 | msgstr "Format incorrect pour le fichier d'historique" | 54 | msgstr "Format incorrect pour le fichier d'historique" |
70 | 55 | ||
71 | #: application/Languages.php:177 | 56 | #: application/Languages.php:181 |
72 | msgid "Automatic" | 57 | msgid "Automatic" |
73 | msgstr "Automatique" | 58 | msgstr "Automatique" |
74 | 59 | ||
75 | #: application/Languages.php:178 | 60 | #: application/Languages.php:182 |
76 | msgid "English" | 61 | msgid "English" |
77 | msgstr "Anglais" | 62 | msgstr "Anglais" |
78 | 63 | ||
79 | #: application/Languages.php:179 | 64 | #: application/Languages.php:183 |
80 | msgid "French" | 65 | msgid "French" |
81 | msgstr "Français" | 66 | msgstr "Français" |
82 | 67 | ||
83 | #: application/Languages.php:180 | 68 | #: application/Languages.php:184 |
84 | msgid "German" | 69 | msgid "German" |
85 | msgstr "Allemand" | 70 | msgstr "Allemand" |
86 | 71 | ||
87 | #: application/LinkDB.php:136 | 72 | #: application/Thumbnailer.php:62 |
73 | msgid "" | ||
74 | "php-gd extension must be loaded to use thumbnails. Thumbnails are now " | ||
75 | "disabled. Please reload the page." | ||
76 | msgstr "" | ||
77 | "l'extension php-gd doit être chargée pour utiliser les miniatures. Les " | ||
78 | "miniatures sont désormais désactivées. Rechargez la page." | ||
79 | |||
80 | #: application/Utils.php:379 tests/UtilsTest.php:343 | ||
81 | msgid "Setting not set" | ||
82 | msgstr "Paramètre non défini" | ||
83 | |||
84 | #: application/Utils.php:386 tests/UtilsTest.php:341 tests/UtilsTest.php:342 | ||
85 | msgid "Unlimited" | ||
86 | msgstr "Illimité" | ||
87 | |||
88 | #: application/Utils.php:389 tests/UtilsTest.php:338 tests/UtilsTest.php:339 | ||
89 | #: tests/UtilsTest.php:353 | ||
90 | msgid "B" | ||
91 | msgstr "o" | ||
92 | |||
93 | #: application/Utils.php:389 tests/UtilsTest.php:332 tests/UtilsTest.php:333 | ||
94 | #: tests/UtilsTest.php:340 | ||
95 | msgid "kiB" | ||
96 | msgstr "ko" | ||
97 | |||
98 | #: application/Utils.php:389 tests/UtilsTest.php:334 tests/UtilsTest.php:335 | ||
99 | #: tests/UtilsTest.php:351 tests/UtilsTest.php:352 | ||
100 | msgid "MiB" | ||
101 | msgstr "Mo" | ||
102 | |||
103 | #: application/Utils.php:389 tests/UtilsTest.php:336 tests/UtilsTest.php:337 | ||
104 | msgid "GiB" | ||
105 | msgstr "Go" | ||
106 | |||
107 | #: application/bookmark/LinkDB.php:128 | ||
88 | msgid "You are not authorized to add a link." | 108 | msgid "You are not authorized to add a link." |
89 | msgstr "Vous n'êtes pas autorisé à ajouter un lien." | 109 | msgstr "Vous n'êtes pas autorisé à ajouter un lien." |
90 | 110 | ||
91 | #: application/LinkDB.php:139 | 111 | #: application/bookmark/LinkDB.php:131 |
92 | msgid "Internal Error: A link should always have an id and URL." | 112 | msgid "Internal Error: A link should always have an id and URL." |
93 | msgstr "Erreur interne : un lien devrait toujours avoir un ID et une URL." | 113 | msgstr "Erreur interne : un lien devrait toujours avoir un ID et une URL." |
94 | 114 | ||
95 | #: application/LinkDB.php:142 | 115 | #: application/bookmark/LinkDB.php:134 |
96 | msgid "You must specify an integer as a key." | 116 | msgid "You must specify an integer as a key." |
97 | msgstr "Vous devez utiliser un entier comme clé." | 117 | msgstr "Vous devez utiliser un entier comme clé." |
98 | 118 | ||
99 | #: application/LinkDB.php:145 | 119 | #: application/bookmark/LinkDB.php:137 |
100 | msgid "Array offset and link ID must be equal." | 120 | msgid "Array offset and link ID must be equal." |
101 | msgstr "La clé du tableau et l'ID du lien doivent être identiques." | 121 | msgstr "La clé du tableau et l'ID du lien doivent être identiques." |
102 | 122 | ||
103 | #: application/LinkDB.php:251 | 123 | #: application/bookmark/LinkDB.php:243 |
104 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:14 | 124 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 |
105 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:48 | 125 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:49 |
126 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:15 | ||
127 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:49 | ||
106 | msgid "" | 128 | msgid "" |
107 | "The personal, minimalist, super-fast, database free, bookmarking service" | 129 | "The personal, minimalist, super-fast, database free, bookmarking service" |
108 | msgstr "" | 130 | msgstr "" |
109 | "Le gestionnaire de marque-pages personnel, minimaliste, et sans base de " | 131 | "Le gestionnaire de marque-pages personnel, minimaliste, et sans base de " |
110 | "données" | 132 | "données" |
111 | 133 | ||
112 | #: application/LinkDB.php:253 | 134 | #: application/bookmark/LinkDB.php:246 |
113 | msgid "" | 135 | msgid "" |
114 | "Welcome to Shaarli! This is your first public bookmark. To edit or delete " | 136 | "Welcome to Shaarli! This is your first public bookmark. To edit or delete " |
115 | "me, you must first login.\n" | 137 | "me, you must first login.\n" |
@@ -129,34 +151,80 @@ msgstr "" | |||
129 | "Vous utilisez la version supportée par la communauté du projet original " | 151 | "Vous utilisez la version supportée par la communauté du projet original " |
130 | "Shaarli de Sébastien Sauvage." | 152 | "Shaarli de Sébastien Sauvage." |
131 | 153 | ||
132 | #: application/LinkDB.php:267 | 154 | #: application/bookmark/LinkDB.php:263 |
133 | msgid "My secret stuff... - Pastebin.com" | 155 | msgid "My secret stuff... - Pastebin.com" |
134 | msgstr "Mes trucs secrets... - Pastebin.com" | 156 | msgstr "Mes trucs secrets... - Pastebin.com" |
135 | 157 | ||
136 | #: application/LinkDB.php:269 | 158 | #: application/bookmark/LinkDB.php:265 |
137 | msgid "Shhhh! I'm a private link only YOU can see. You can delete me too." | 159 | msgid "Shhhh! I'm a private link only YOU can see. You can delete me too." |
138 | msgstr "" | 160 | msgstr "" |
139 | "Pssst ! Je suis un lien privé que VOUS êtes le seul à voir. Vous pouvez me " | 161 | "Pssst ! Je suis un lien privé que VOUS êtes le seul à voir. Vous pouvez me " |
140 | "supprimer aussi." | 162 | "supprimer aussi." |
141 | 163 | ||
142 | #: application/LinkFilter.php:452 | 164 | #: application/bookmark/exception/LinkNotFoundException.php:13 |
143 | msgid "The link you are trying to reach does not exist or has been deleted." | 165 | msgid "The link you are trying to reach does not exist or has been deleted." |
144 | msgstr "Le lien que vous essayez de consulter n'existe pas ou a été supprimé." | 166 | msgstr "Le lien que vous essayez de consulter n'existe pas ou a été supprimé." |
145 | 167 | ||
146 | #: application/NetscapeBookmarkUtils.php:35 | 168 | #: application/config/ConfigJson.php:52 application/config/ConfigPhp.php:129 |
169 | msgid "" | ||
170 | "Shaarli could not create the config file. Please make sure Shaarli has the " | ||
171 | "right to write in the folder is it installed in." | ||
172 | msgstr "" | ||
173 | "Shaarli n'a pas pu créer le fichier de configuration. Merci de vérifier que " | ||
174 | "Shaarli a les droits d'écriture dans le dossier dans lequel il est installé." | ||
175 | |||
176 | #: application/config/ConfigManager.php:135 | ||
177 | #: application/config/ConfigManager.php:162 | ||
178 | msgid "Invalid setting key parameter. String expected, got: " | ||
179 | msgstr "Clé de paramétrage invalide. Chaîne de caractères obtenue, attendu : " | ||
180 | |||
181 | #: application/config/exception/MissingFieldConfigException.php:21 | ||
182 | #, php-format | ||
183 | msgid "Configuration value is required for %s" | ||
184 | msgstr "Le paramètre %s est obligatoire" | ||
185 | |||
186 | #: application/config/exception/PluginConfigOrderException.php:15 | ||
187 | msgid "An error occurred while trying to save plugins loading order." | ||
188 | msgstr "" | ||
189 | "Une erreur s'est produite lors de la sauvegarde de l'ordre des extensions." | ||
190 | |||
191 | #: application/config/exception/UnauthorizedConfigException.php:16 | ||
192 | msgid "You are not authorized to alter config." | ||
193 | msgstr "Vous n'êtes pas autorisé à modifier la configuration." | ||
194 | |||
195 | #: application/exceptions/IOException.php:22 | ||
196 | msgid "Error accessing" | ||
197 | msgstr "Une erreur s'est produite en accédant à " | ||
198 | |||
199 | #: application/feed/Cache.php:16 | ||
200 | #, php-format | ||
201 | msgid "Cannot purge %s: no directory" | ||
202 | msgstr "Impossible de purger %s : le répertoire n'existe pas" | ||
203 | |||
204 | #: application/feed/FeedBuilder.php:155 | ||
205 | msgid "Direct link" | ||
206 | msgstr "Liens directs" | ||
207 | |||
208 | #: application/feed/FeedBuilder.php:157 | ||
209 | #: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:96 | ||
210 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:177 | ||
211 | msgid "Permalink" | ||
212 | msgstr "Permalien" | ||
213 | |||
214 | #: application/netscape/NetscapeBookmarkUtils.php:42 | ||
147 | msgid "Invalid export selection:" | 215 | msgid "Invalid export selection:" |
148 | msgstr "Sélection d'export invalide :" | 216 | msgstr "Sélection d'export invalide :" |
149 | 217 | ||
150 | #: application/NetscapeBookmarkUtils.php:81 | 218 | #: application/netscape/NetscapeBookmarkUtils.php:87 |
151 | #, php-format | 219 | #, php-format |
152 | msgid "File %s (%d bytes) " | 220 | msgid "File %s (%d bytes) " |
153 | msgstr "Le fichier %s (%d octets) " | 221 | msgstr "Le fichier %s (%d octets) " |
154 | 222 | ||
155 | #: application/NetscapeBookmarkUtils.php:83 | 223 | #: application/netscape/NetscapeBookmarkUtils.php:89 |
156 | msgid "has an unknown file format. Nothing was imported." | 224 | msgid "has an unknown file format. Nothing was imported." |
157 | msgstr "a un format inconnu. Rien n'a été importé." | 225 | msgstr "a un format inconnu. Rien n'a été importé." |
158 | 226 | ||
159 | #: application/NetscapeBookmarkUtils.php:86 | 227 | #: application/netscape/NetscapeBookmarkUtils.php:93 |
160 | #, php-format | 228 | #, php-format |
161 | msgid "" | 229 | msgid "" |
162 | "was successfully processed in %d seconds: %d links imported, %d links " | 230 | "was successfully processed in %d seconds: %d links imported, %d links " |
@@ -165,32 +233,26 @@ msgstr "" | |||
165 | "a été importé avec succès en %d secondes : %d liens importés, %d liens " | 233 | "a été importé avec succès en %d secondes : %d liens importés, %d liens " |
166 | "écrasés, %d liens ignorés." | 234 | "écrasés, %d liens ignorés." |
167 | 235 | ||
168 | #: application/PageBuilder.php:200 | 236 | #: application/plugin/exception/PluginFileNotFoundException.php:21 |
237 | #, php-format | ||
238 | msgid "Plugin \"%s\" files not found." | ||
239 | msgstr "Les fichiers de l'extension \"%s\" sont introuvables." | ||
240 | |||
241 | #: application/render/PageBuilder.php:209 | ||
169 | msgid "The page you are trying to reach does not exist or has been deleted." | 242 | msgid "The page you are trying to reach does not exist or has been deleted." |
170 | msgstr "La page que vous essayez de consulter n'existe pas ou a été supprimée." | 243 | msgstr "La page que vous essayez de consulter n'existe pas ou a été supprimée." |
171 | 244 | ||
172 | #: application/PageBuilder.php:202 | 245 | #: application/render/PageBuilder.php:211 |
173 | msgid "404 Not Found" | 246 | msgid "404 Not Found" |
174 | msgstr "404 Introuvable" | 247 | msgstr "404 Introuvable" |
175 | 248 | ||
176 | #: application/PluginManager.php:243 | 249 | #: application/updater/Updater.php:99 |
177 | #, php-format | 250 | #, fuzzy |
178 | msgid "Plugin \"%s\" files not found." | 251 | #| msgid "Couldn't retrieve Updater class methods." |
179 | msgstr "Les fichiers de l'extension \"%s\" sont introuvables." | 252 | msgid "Couldn't retrieve updater class methods." |
180 | |||
181 | #: application/Thumbnailer.php:61 | ||
182 | msgid "" | ||
183 | "php-gd extension must be loaded to use thumbnails. Thumbnails are now " | ||
184 | "disabled. Please reload the page." | ||
185 | msgstr "" | ||
186 | "l'extension php-gd doit être chargée pour utiliser les miniatures. Les " | ||
187 | "miniatures sont désormais désactivées. Rechargez la page." | ||
188 | |||
189 | #: application/Updater.php:86 | ||
190 | msgid "Couldn't retrieve Updater class methods." | ||
191 | msgstr "Impossible de récupérer les méthodes de la classe Updater." | 253 | msgstr "Impossible de récupérer les méthodes de la classe Updater." |
192 | 254 | ||
193 | #: application/Updater.php:514 index.php:1022 | 255 | #: application/updater/Updater.php:526 index.php:1034 |
194 | msgid "" | 256 | msgid "" |
195 | "You have enabled or changed thumbnails mode. <a href=\"?do=thumbs_update" | 257 | "You have enabled or changed thumbnails mode. <a href=\"?do=thumbs_update" |
196 | "\">Please synchronize them</a>." | 258 | "\">Please synchronize them</a>." |
@@ -198,110 +260,65 @@ msgstr "" | |||
198 | "Vous avez activé ou changé le mode de miniatures. <a href=\"?do=thumbs_update" | 260 | "Vous avez activé ou changé le mode de miniatures. <a href=\"?do=thumbs_update" |
199 | "\">Merci de les synchroniser</a>." | 261 | "\">Merci de les synchroniser</a>." |
200 | 262 | ||
201 | #: application/Updater.php:586 | 263 | #: application/updater/UpdaterUtils.php:32 |
202 | msgid "An error occurred while running the update " | ||
203 | msgstr "Une erreur s'est produite lors de l'exécution de la mise à jour " | ||
204 | |||
205 | #: application/Updater.php:626 | ||
206 | msgid "Updates file path is not set, can't write updates." | 264 | msgid "Updates file path is not set, can't write updates." |
207 | msgstr "" | 265 | msgstr "" |
208 | "Le chemin vers le fichier de mise à jour n'est pas défini, impossible " | 266 | "Le chemin vers le fichier de mise à jour n'est pas défini, impossible " |
209 | "d'écrire les mises à jour." | 267 | "d'écrire les mises à jour." |
210 | 268 | ||
211 | #: application/Updater.php:631 | 269 | #: application/updater/UpdaterUtils.php:37 |
212 | msgid "Unable to write updates in " | 270 | msgid "Unable to write updates in " |
213 | msgstr "Impossible d'écrire les mises à jour dans " | 271 | msgstr "Impossible d'écrire les mises à jour dans " |
214 | 272 | ||
215 | #: application/Utils.php:376 tests/UtilsTest.php:340 | 273 | #: application/updater/exception/UpdaterException.php:51 |
216 | msgid "Setting not set" | 274 | msgid "An error occurred while running the update " |
217 | msgstr "Paramètre non défini" | 275 | msgstr "Une erreur s'est produite lors de l'exécution de la mise à jour " |
218 | |||
219 | #: application/Utils.php:383 tests/UtilsTest.php:338 tests/UtilsTest.php:339 | ||
220 | msgid "Unlimited" | ||
221 | msgstr "Illimité" | ||
222 | |||
223 | #: application/Utils.php:386 tests/UtilsTest.php:335 tests/UtilsTest.php:336 | ||
224 | #: tests/UtilsTest.php:350 | ||
225 | msgid "B" | ||
226 | msgstr "o" | ||
227 | |||
228 | #: application/Utils.php:386 tests/UtilsTest.php:329 tests/UtilsTest.php:330 | ||
229 | #: tests/UtilsTest.php:337 | ||
230 | msgid "kiB" | ||
231 | msgstr "ko" | ||
232 | |||
233 | #: application/Utils.php:386 tests/UtilsTest.php:331 tests/UtilsTest.php:332 | ||
234 | #: tests/UtilsTest.php:348 tests/UtilsTest.php:349 | ||
235 | msgid "MiB" | ||
236 | msgstr "Mo" | ||
237 | |||
238 | #: application/Utils.php:386 tests/UtilsTest.php:333 tests/UtilsTest.php:334 | ||
239 | msgid "GiB" | ||
240 | msgstr "Go" | ||
241 | |||
242 | #: application/config/ConfigJson.php:52 application/config/ConfigPhp.php:121 | ||
243 | msgid "" | ||
244 | "Shaarli could not create the config file. Please make sure Shaarli has the " | ||
245 | "right to write in the folder is it installed in." | ||
246 | msgstr "" | ||
247 | "Shaarli n'a pas pu créer le fichier de configuration. Merci de vérifier que " | ||
248 | "Shaarli a les droits d'écriture dans le dossier dans lequel il est installé." | ||
249 | |||
250 | #: application/config/ConfigManager.php:135 | ||
251 | #: application/config/ConfigManager.php:162 | ||
252 | msgid "Invalid setting key parameter. String expected, got: " | ||
253 | msgstr "Clé de paramétrage invalide. Chaîne de caractères obtenue, attendu : " | ||
254 | |||
255 | #: application/config/exception/MissingFieldConfigException.php:21 | ||
256 | #, php-format | ||
257 | msgid "Configuration value is required for %s" | ||
258 | msgstr "Le paramètre %s est obligatoire" | ||
259 | |||
260 | #: application/config/exception/PluginConfigOrderException.php:15 | ||
261 | msgid "An error occurred while trying to save plugins loading order." | ||
262 | msgstr "" | ||
263 | "Une erreur s'est produite lors de la sauvegarde de l'ordre des extensions." | ||
264 | |||
265 | #: application/config/exception/UnauthorizedConfigException.php:16 | ||
266 | msgid "You are not authorized to alter config." | ||
267 | msgstr "Vous n'êtes pas autorisé à modifier la configuration." | ||
268 | |||
269 | #: application/exceptions/IOException.php:19 | ||
270 | msgid "Error accessing" | ||
271 | msgstr "Une erreur s'est produite en accédant à " | ||
272 | 276 | ||
273 | #: index.php:143 | 277 | #: index.php:145 |
274 | msgid "Shared links on " | 278 | msgid "Shared links on " |
275 | msgstr "Liens partagés sur " | 279 | msgstr "Liens partagés sur " |
276 | 280 | ||
277 | #: index.php:165 | 281 | #: index.php:167 |
278 | msgid "Insufficient permissions:" | 282 | msgid "Insufficient permissions:" |
279 | msgstr "Permissions insuffisantes :" | 283 | msgstr "Permissions insuffisantes :" |
280 | 284 | ||
281 | #: index.php:201 | 285 | #: index.php:203 |
282 | msgid "I said: NO. You are banned for the moment. Go away." | 286 | msgid "I said: NO. You are banned for the moment. Go away." |
283 | msgstr "NON. Vous êtes banni pour le moment. Revenez plus tard." | 287 | msgstr "NON. Vous êtes banni pour le moment. Revenez plus tard." |
284 | 288 | ||
285 | #: index.php:273 | 289 | #: index.php:275 |
286 | msgid "Wrong login/password." | 290 | msgid "Wrong login/password." |
287 | msgstr "Nom d'utilisateur ou mot de passe incorrect(s)." | 291 | msgstr "Nom d'utilisateur ou mot de passe incorrect(s)." |
288 | 292 | ||
289 | #: index.php:482 tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:46 | 293 | #: index.php:398 index.php:404 |
294 | msgid "Today" | ||
295 | msgstr "Aujourd'hui" | ||
296 | |||
297 | #: index.php:400 | ||
298 | msgid "Yesterday" | ||
299 | msgstr "Hier" | ||
300 | |||
301 | #: index.php:484 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46 | ||
302 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:46 | ||
290 | msgid "Daily" | 303 | msgid "Daily" |
291 | msgstr "Quotidien" | 304 | msgstr "Quotidien" |
292 | 305 | ||
293 | #: index.php:588 tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28 | 306 | #: index.php:593 tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28 |
294 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44 | 307 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44 |
308 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:75 | ||
309 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:99 | ||
295 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:75 | 310 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:75 |
296 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:99 | 311 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:99 |
297 | msgid "Login" | 312 | msgid "Login" |
298 | msgstr "Connexion" | 313 | msgstr "Connexion" |
299 | 314 | ||
300 | #: index.php:605 tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:41 | 315 | #: index.php:608 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 |
316 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:41 | ||
301 | msgid "Picture wall" | 317 | msgid "Picture wall" |
302 | msgstr "Mur d'images" | 318 | msgstr "Mur d'images" |
303 | 319 | ||
304 | #: index.php:682 tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:36 | 320 | #: index.php:683 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 |
321 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:36 | ||
305 | #: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 | 322 | #: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 |
306 | msgid "Tag cloud" | 323 | msgid "Tag cloud" |
307 | msgstr "Nuage de tags" | 324 | msgstr "Nuage de tags" |
@@ -310,88 +327,93 @@ msgstr "Nuage de tags" | |||
310 | msgid "Tag list" | 327 | msgid "Tag list" |
311 | msgstr "Liste des tags" | 328 | msgstr "Liste des tags" |
312 | 329 | ||
313 | #: index.php:940 tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:31 | 330 | #: index.php:944 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31 |
331 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:31 | ||
314 | msgid "Tools" | 332 | msgid "Tools" |
315 | msgstr "Outils" | 333 | msgstr "Outils" |
316 | 334 | ||
317 | #: index.php:949 | 335 | #: index.php:952 |
318 | msgid "You are not supposed to change a password on an Open Shaarli." | 336 | msgid "You are not supposed to change a password on an Open Shaarli." |
319 | msgstr "" | 337 | msgstr "" |
320 | "Vous n'êtes pas censé modifier le mot de passe d'un Shaarli en mode ouvert." | 338 | "Vous n'êtes pas censé modifier le mot de passe d'un Shaarli en mode ouvert." |
321 | 339 | ||
322 | #: index.php:954 index.php:996 index.php:1084 index.php:1116 index.php:1221 | 340 | #: index.php:957 index.php:1007 index.php:1094 index.php:1124 index.php:1234 |
341 | #: index.php:1281 | ||
323 | msgid "Wrong token." | 342 | msgid "Wrong token." |
324 | msgstr "Jeton invalide." | 343 | msgstr "Jeton invalide." |
325 | 344 | ||
326 | #: index.php:959 | 345 | #: index.php:966 |
327 | msgid "The old password is not correct." | 346 | msgid "The old password is not correct." |
328 | msgstr "L'ancien mot de passe est incorrect." | 347 | msgstr "L'ancien mot de passe est incorrect." |
329 | 348 | ||
330 | #: index.php:979 | 349 | #: index.php:993 |
331 | msgid "Your password has been changed" | 350 | msgid "Your password has been changed" |
332 | msgstr "Votre mot de passe a été modifié" | 351 | msgstr "Votre mot de passe a été modifié" |
333 | 352 | ||
334 | #: index.php:984 tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 | 353 | #: index.php:997 |
354 | #: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 | ||
355 | #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 | ||
335 | msgid "Change password" | 356 | msgid "Change password" |
336 | msgstr "Modifier le mot de passe" | 357 | msgstr "Modifier le mot de passe" |
337 | 358 | ||
338 | #: index.php:1042 | 359 | #: index.php:1054 |
339 | msgid "Configuration was saved." | 360 | msgid "Configuration was saved." |
340 | msgstr "La configuration a été sauvegardée." | 361 | msgstr "La configuration a été sauvegardée." |
341 | 362 | ||
342 | #: index.php:1067 tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 | 363 | #: index.php:1078 tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 |
343 | msgid "Configure" | 364 | msgid "Configure" |
344 | msgstr "Configurer" | 365 | msgstr "Configurer" |
345 | 366 | ||
346 | #: index.php:1078 tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 | 367 | #: index.php:1088 tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 |
347 | #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 | 368 | #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 |
348 | msgid "Manage tags" | 369 | msgid "Manage tags" |
349 | msgstr "Gérer les tags" | 370 | msgstr "Gérer les tags" |
350 | 371 | ||
351 | #: index.php:1097 | 372 | #: index.php:1107 |
352 | #, php-format | 373 | #, php-format |
353 | msgid "The tag was removed from %d link." | 374 | msgid "The tag was removed from %d link." |
354 | msgid_plural "The tag was removed from %d links." | 375 | msgid_plural "The tag was removed from %d links." |
355 | msgstr[0] "Le tag a été supprimé de %d lien." | 376 | msgstr[0] "Le tag a été supprimé de %d lien." |
356 | msgstr[1] "Le tag a été supprimé de %d liens." | 377 | msgstr[1] "Le tag a été supprimé de %d liens." |
357 | 378 | ||
358 | #: index.php:1098 | 379 | #: index.php:1108 |
359 | #, php-format | 380 | #, php-format |
360 | msgid "The tag was renamed in %d link." | 381 | msgid "The tag was renamed in %d link." |
361 | msgid_plural "The tag was renamed in %d links." | 382 | msgid_plural "The tag was renamed in %d links." |
362 | msgstr[0] "Le tag a été renommé dans %d lien." | 383 | msgstr[0] "Le tag a été renommé dans %d lien." |
363 | msgstr[1] "Le tag a été renommé dans %d liens." | 384 | msgstr[1] "Le tag a été renommé dans %d liens." |
364 | 385 | ||
365 | #: index.php:1106 tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 | 386 | #: index.php:1115 tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 |
366 | msgid "Shaare a new link" | 387 | msgid "Shaare a new link" |
367 | msgstr "Partager un nouveau lien" | 388 | msgstr "Partager un nouveau lien" |
368 | 389 | ||
369 | #: index.php:1281 tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 | 390 | #: index.php:1344 tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 |
370 | msgid "Edit" | 391 | msgid "Edit" |
371 | msgstr "Modifier" | 392 | msgstr "Modifier" |
372 | 393 | ||
373 | #: index.php:1281 index.php:1351 | 394 | #: index.php:1344 index.php:1416 |
395 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 | ||
374 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26 | 396 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26 |
375 | msgid "Shaare" | 397 | msgid "Shaare" |
376 | msgstr "Shaare" | 398 | msgstr "Shaare" |
377 | 399 | ||
378 | #: index.php:1320 | 400 | #: index.php:1385 |
379 | msgid "Note: " | 401 | msgid "Note: " |
380 | msgstr "Note : " | 402 | msgstr "Note : " |
381 | 403 | ||
382 | #: index.php:1359 | 404 | #: index.php:1424 |
383 | msgid "Invalid link ID provided" | 405 | msgid "Invalid link ID provided" |
384 | msgstr "" | 406 | msgstr "ID du lien non valide" |
385 | 407 | ||
386 | #: index.php:1379 | 408 | #: index.php:1444 tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65 |
387 | msgid "Export" | 409 | msgid "Export" |
388 | msgstr "Exporter" | 410 | msgstr "Exporter" |
389 | 411 | ||
390 | #: index.php:1441 | 412 | #: index.php:1506 tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:83 |
391 | msgid "Import" | 413 | msgid "Import" |
392 | msgstr "Importer" | 414 | msgstr "Importer" |
393 | 415 | ||
394 | #: index.php:1451 | 416 | #: index.php:1516 |
395 | #, php-format | 417 | #, php-format |
396 | msgid "" | 418 | msgid "" |
397 | "The file you are trying to upload is probably bigger than what this " | 419 | "The file you are trying to upload is probably bigger than what this " |
@@ -401,20 +423,20 @@ msgstr "" | |||
401 | "le serveur web peut accepter (%s). Merci de l'envoyer en parties plus " | 423 | "le serveur web peut accepter (%s). Merci de l'envoyer en parties plus " |
402 | "légères." | 424 | "légères." |
403 | 425 | ||
404 | #: index.php:1490 tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 | 426 | #: index.php:1561 tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 |
405 | #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22 | 427 | #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22 |
406 | msgid "Plugin administration" | 428 | msgid "Plugin administration" |
407 | msgstr "Administration des plugins" | 429 | msgstr "Administration des plugins" |
408 | 430 | ||
409 | #: index.php:1542 tmp/thumbnails.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 | 431 | #: index.php:1616 tmp/thumbnails.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 |
410 | msgid "Thumbnails update" | 432 | msgid "Thumbnails update" |
411 | msgstr "Mise à jour des miniatures" | 433 | msgstr "Mise à jour des miniatures" |
412 | 434 | ||
413 | #: index.php:1714 | 435 | #: index.php:1782 |
414 | msgid "Search: " | 436 | msgid "Search: " |
415 | msgstr "Recherche : " | 437 | msgstr "Recherche : " |
416 | 438 | ||
417 | #: index.php:1754 | 439 | #: index.php:1825 |
418 | #, php-format | 440 | #, php-format |
419 | msgid "" | 441 | msgid "" |
420 | "<pre>Sessions do not seem to work correctly on your server.<br>Make sure the " | 442 | "<pre>Sessions do not seem to work correctly on your server.<br>Make sure the " |
@@ -433,32 +455,58 @@ msgstr "" | |||
433 | "des cookies. Nous vous recommandons d'accéder à votre serveur depuis son " | 455 | "des cookies. Nous vous recommandons d'accéder à votre serveur depuis son " |
434 | "adresse IP ou un <em>Fully Qualified Domain Name</em>.<br>" | 456 | "adresse IP ou un <em>Fully Qualified Domain Name</em>.<br>" |
435 | 457 | ||
436 | #: index.php:1764 | 458 | #: index.php:1835 |
437 | msgid "Click to try again." | 459 | msgid "Click to try again." |
438 | msgstr "Cliquer ici pour réessayer." | 460 | msgstr "Cliquer ici pour réessayer." |
439 | 461 | ||
440 | #: plugins/addlink_toolbar/addlink_toolbar.php:29 | 462 | #: plugins/addlink_toolbar/addlink_toolbar.php:31 |
441 | msgid "URI" | 463 | msgid "URI" |
442 | msgstr "URI" | 464 | msgstr "URI" |
443 | 465 | ||
444 | #: plugins/addlink_toolbar/addlink_toolbar.php:33 | 466 | #: plugins/addlink_toolbar/addlink_toolbar.php:35 |
445 | #: tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 | 467 | #: tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:20 |
446 | msgid "Add link" | 468 | msgid "Add link" |
447 | msgstr "Shaare" | 469 | msgstr "Shaare" |
448 | 470 | ||
449 | #: plugins/addlink_toolbar/addlink_toolbar.php:50 | 471 | #: plugins/addlink_toolbar/addlink_toolbar.php:52 |
450 | msgid "Adds the addlink input on the linklist page." | 472 | msgid "Adds the addlink input on the linklist page." |
451 | msgstr "Ajoute le formulaire d'ajout de liens sur la page principale." | 473 | msgstr "Ajoute le formulaire d'ajout de liens sur la page principale." |
452 | 474 | ||
453 | #: plugins/archiveorg/archiveorg.php:23 | 475 | #: plugins/archiveorg/archiveorg.php:25 |
454 | msgid "View on archive.org" | 476 | msgid "View on archive.org" |
455 | msgstr "Voir sur archive.org" | 477 | msgstr "Voir sur archive.org" |
456 | 478 | ||
457 | #: plugins/archiveorg/archiveorg.php:36 | 479 | #: plugins/archiveorg/archiveorg.php:38 |
458 | msgid "For each link, add an Archive.org icon." | 480 | msgid "For each link, add an Archive.org icon." |
459 | msgstr "Pour chaque lien, ajoute une icône pour Archive.org." | 481 | msgstr "Pour chaque lien, ajoute une icône pour Archive.org." |
460 | 482 | ||
461 | #: plugins/demo_plugin/demo_plugin.php:465 | 483 | #: plugins/default_colors/default_colors.php:33 |
484 | msgid "" | ||
485 | "Default colors plugin error: This plugin is active and no custom color is " | ||
486 | "configured." | ||
487 | msgstr "" | ||
488 | "Erreur du plugin default colors : ce plugin est actif et aucune couleur " | ||
489 | "n'est configurée." | ||
490 | |||
491 | #: plugins/default_colors/default_colors.php:107 | ||
492 | msgid "Override default theme colors. Use any CSS valid color." | ||
493 | msgstr "" | ||
494 | "Remplacer les couleurs du thème par défaut. Utiliser n'importe quelle " | ||
495 | "couleur CSS valide." | ||
496 | |||
497 | #: plugins/default_colors/default_colors.php:108 | ||
498 | msgid "Main color (navbar green)" | ||
499 | msgstr "Couleur principale (vert de la barre de navigation)" | ||
500 | |||
501 | #: plugins/default_colors/default_colors.php:109 | ||
502 | msgid "Background color (light grey)" | ||
503 | msgstr "Couleur de fond (gris léger)" | ||
504 | |||
505 | #: plugins/default_colors/default_colors.php:110 | ||
506 | msgid "Dark main color (e.g. visited links)" | ||
507 | msgstr "Couleur principale sombre (ex : les liens visités)" | ||
508 | |||
509 | #: plugins/demo_plugin/demo_plugin.php:482 | ||
462 | msgid "" | 510 | msgid "" |
463 | "A demo plugin covering all use cases for template designers and plugin " | 511 | "A demo plugin covering all use cases for template designers and plugin " |
464 | "developers." | 512 | "developers." |
@@ -466,7 +514,15 @@ msgstr "" | |||
466 | "Une extension de démonstration couvrant tous les cas d'utilisation pour les " | 514 | "Une extension de démonstration couvrant tous les cas d'utilisation pour les " |
467 | "designers de thèmes et les développeurs d'extensions." | 515 | "designers de thèmes et les développeurs d'extensions." |
468 | 516 | ||
469 | #: plugins/isso/isso.php:20 | 517 | #: plugins/demo_plugin/demo_plugin.php:483 |
518 | msgid "This is a parameter dedicated to the demo plugin. It'll be suffixed." | ||
519 | msgstr "Ceci est un paramètre dédié au plugin de démo. Il sera suffixé." | ||
520 | |||
521 | #: plugins/demo_plugin/demo_plugin.php:484 | ||
522 | msgid "Other demo parameter" | ||
523 | msgstr "Un autre paramètre de démo" | ||
524 | |||
525 | #: plugins/isso/isso.php:22 | ||
470 | msgid "" | 526 | msgid "" |
471 | "Isso plugin error: Please define the \"ISSO_SERVER\" setting in the plugin " | 527 | "Isso plugin error: Please define the \"ISSO_SERVER\" setting in the plugin " |
472 | "administration page." | 528 | "administration page." |
@@ -474,29 +530,29 @@ msgstr "" | |||
474 | "Erreur de l'extension Isso : Merci de définir le paramètre « ISSO_SERVER » " | 530 | "Erreur de l'extension Isso : Merci de définir le paramètre « ISSO_SERVER » " |
475 | "dans la page d'administration des extensions." | 531 | "dans la page d'administration des extensions." |
476 | 532 | ||
477 | #: plugins/isso/isso.php:90 | 533 | #: plugins/isso/isso.php:92 |
478 | msgid "Let visitor comment your shaares on permalinks with Isso." | 534 | msgid "Let visitor comment your shaares on permalinks with Isso." |
479 | msgstr "" | 535 | msgstr "" |
480 | "Permettre aux visiteurs de commenter vos shaares sur les permaliens avec " | 536 | "Permettre aux visiteurs de commenter vos shaares sur les permaliens avec " |
481 | "Isso." | 537 | "Isso." |
482 | 538 | ||
483 | #: plugins/isso/isso.php:91 | 539 | #: plugins/isso/isso.php:93 |
484 | msgid "Isso server URL (without 'http://')" | 540 | msgid "Isso server URL (without 'http://')" |
485 | msgstr "URL du serveur Isso (sans 'http://')" | 541 | msgstr "URL du serveur Isso (sans 'http://')" |
486 | 542 | ||
487 | #: plugins/markdown/markdown.php:161 | 543 | #: plugins/markdown/markdown.php:163 |
488 | msgid "Description will be rendered with" | 544 | msgid "Description will be rendered with" |
489 | msgstr "La description sera générée avec" | 545 | msgstr "La description sera générée avec" |
490 | 546 | ||
491 | #: plugins/markdown/markdown.php:162 | 547 | #: plugins/markdown/markdown.php:164 |
492 | msgid "Markdown syntax documentation" | 548 | msgid "Markdown syntax documentation" |
493 | msgstr "Documentation sur la syntaxe Markdown" | 549 | msgstr "Documentation sur la syntaxe Markdown" |
494 | 550 | ||
495 | #: plugins/markdown/markdown.php:163 | 551 | #: plugins/markdown/markdown.php:165 |
496 | msgid "Markdown syntax" | 552 | msgid "Markdown syntax" |
497 | msgstr "la syntaxe Markdown" | 553 | msgstr "la syntaxe Markdown" |
498 | 554 | ||
499 | #: plugins/markdown/markdown.php:347 | 555 | #: plugins/markdown/markdown.php:361 |
500 | msgid "" | 556 | msgid "" |
501 | "Render shaare description with Markdown syntax.<br><strong>Warning</" | 557 | "Render shaare description with Markdown syntax.<br><strong>Warning</" |
502 | "strong>:\n" | 558 | "strong>:\n" |
@@ -514,7 +570,7 @@ msgstr "" | |||
514 | "Voir le <a href=\"https://github.com/shaarli/Shaarli/tree/master/plugins/" | 570 | "Voir le <a href=\"https://github.com/shaarli/Shaarli/tree/master/plugins/" |
515 | "markdown#html-rendering\">README</a>." | 571 | "markdown#html-rendering\">README</a>." |
516 | 572 | ||
517 | #: plugins/piwik/piwik.php:21 | 573 | #: plugins/piwik/piwik.php:23 |
518 | msgid "" | 574 | msgid "" |
519 | "Piwik plugin error: Please define PIWIK_URL and PIWIK_SITEID in the plugin " | 575 | "Piwik plugin error: Please define PIWIK_URL and PIWIK_SITEID in the plugin " |
520 | "administration page." | 576 | "administration page." |
@@ -522,27 +578,27 @@ msgstr "" | |||
522 | "Erreur de l'extension Piwik : Merci de définir les paramètres PIWIK_URL et " | 578 | "Erreur de l'extension Piwik : Merci de définir les paramètres PIWIK_URL et " |
523 | "PIWIK_SITEID dans la page d'administration des extensions." | 579 | "PIWIK_SITEID dans la page d'administration des extensions." |
524 | 580 | ||
525 | #: plugins/piwik/piwik.php:70 | 581 | #: plugins/piwik/piwik.php:72 |
526 | msgid "A plugin that adds Piwik tracking code to Shaarli pages." | 582 | msgid "A plugin that adds Piwik tracking code to Shaarli pages." |
527 | msgstr "Ajoute le code de traçage de Piwik sur les pages de Shaarli." | 583 | msgstr "Ajoute le code de traçage de Piwik sur les pages de Shaarli." |
528 | 584 | ||
529 | #: plugins/piwik/piwik.php:71 | 585 | #: plugins/piwik/piwik.php:73 |
530 | msgid "Piwik URL" | 586 | msgid "Piwik URL" |
531 | msgstr "URL de Piwik" | 587 | msgstr "URL de Piwik" |
532 | 588 | ||
533 | #: plugins/piwik/piwik.php:72 | 589 | #: plugins/piwik/piwik.php:74 |
534 | msgid "Piwik site ID" | 590 | msgid "Piwik site ID" |
535 | msgstr "Site ID de Piwik" | 591 | msgstr "Site ID de Piwik" |
536 | 592 | ||
537 | #: plugins/playvideos/playvideos.php:22 | 593 | #: plugins/playvideos/playvideos.php:25 |
538 | msgid "Video player" | 594 | msgid "Video player" |
539 | msgstr "Lecteur vidéo" | 595 | msgstr "Lecteur vidéo" |
540 | 596 | ||
541 | #: plugins/playvideos/playvideos.php:25 | 597 | #: plugins/playvideos/playvideos.php:28 |
542 | msgid "Play Videos" | 598 | msgid "Play Videos" |
543 | msgstr "Jouer les vidéos" | 599 | msgstr "Jouer les vidéos" |
544 | 600 | ||
545 | #: plugins/playvideos/playvideos.php:56 | 601 | #: plugins/playvideos/playvideos.php:59 |
546 | msgid "Add a button in the toolbar allowing to watch all videos." | 602 | msgid "Add a button in the toolbar allowing to watch all videos." |
547 | msgstr "" | 603 | msgstr "" |
548 | "Ajoute un bouton dans la barre de menu pour regarder toutes les vidéos." | 604 | "Ajoute un bouton dans la barre de menu pour regarder toutes les vidéos." |
@@ -551,26 +607,26 @@ msgstr "" | |||
551 | msgid "plugins/playvideos/jquery-1.11.2.min.js" | 607 | msgid "plugins/playvideos/jquery-1.11.2.min.js" |
552 | msgstr "" | 608 | msgstr "" |
553 | 609 | ||
554 | #: plugins/pubsubhubbub/pubsubhubbub.php:69 | 610 | #: plugins/pubsubhubbub/pubsubhubbub.php:72 |
555 | #, php-format | 611 | #, php-format |
556 | msgid "Could not publish to PubSubHubbub: %s" | 612 | msgid "Could not publish to PubSubHubbub: %s" |
557 | msgstr "Impossible de publier vers PubSubHubbub : %s" | 613 | msgstr "Impossible de publier vers PubSubHubbub : %s" |
558 | 614 | ||
559 | #: plugins/pubsubhubbub/pubsubhubbub.php:95 | 615 | #: plugins/pubsubhubbub/pubsubhubbub.php:99 |
560 | #, php-format | 616 | #, php-format |
561 | msgid "Could not post to %s" | 617 | msgid "Could not post to %s" |
562 | msgstr "Impossible de publier vers %s" | 618 | msgstr "Impossible de publier vers %s" |
563 | 619 | ||
564 | #: plugins/pubsubhubbub/pubsubhubbub.php:99 | 620 | #: plugins/pubsubhubbub/pubsubhubbub.php:103 |
565 | #, php-format | 621 | #, php-format |
566 | msgid "Bad response from the hub %s" | 622 | msgid "Bad response from the hub %s" |
567 | msgstr "Mauvaise réponse du hub %s" | 623 | msgstr "Mauvaise réponse du hub %s" |
568 | 624 | ||
569 | #: plugins/pubsubhubbub/pubsubhubbub.php:110 | 625 | #: plugins/pubsubhubbub/pubsubhubbub.php:114 |
570 | msgid "Enable PubSubHubbub feed publishing." | 626 | msgid "Enable PubSubHubbub feed publishing." |
571 | msgstr "Active la publication de flux vers PubSubHubbub." | 627 | msgstr "Active la publication de flux vers PubSubHubbub." |
572 | 628 | ||
573 | #: plugins/qrcode/qrcode.php:69 plugins/wallabag/wallabag.php:68 | 629 | #: plugins/qrcode/qrcode.php:72 plugins/wallabag/wallabag.php:68 |
574 | msgid "For each link, add a QRCode icon." | 630 | msgid "For each link, add a QRCode icon." |
575 | msgstr "Pour chaque lien, ajouter une icône de QRCode." | 631 | msgstr "Pour chaque lien, ajouter une icône de QRCode." |
576 | 632 | ||
@@ -595,19 +651,37 @@ msgid "Wallabag API version (1 or 2)" | |||
595 | msgstr "Version de l'API Wallabag (1 ou 2)" | 651 | msgstr "Version de l'API Wallabag (1 ou 2)" |
596 | 652 | ||
597 | #: tests/LanguagesTest.php:214 tests/LanguagesTest.php:227 | 653 | #: tests/LanguagesTest.php:214 tests/LanguagesTest.php:227 |
598 | #: tests/languages/fr/LanguagesFrTest.php:160 | 654 | #: tests/languages/fr/LanguagesFrTest.php:159 |
599 | #: tests/languages/fr/LanguagesFrTest.php:173 | 655 | #: tests/languages/fr/LanguagesFrTest.php:172 |
656 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:85 | ||
600 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:85 | 657 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:85 |
601 | msgid "Search" | 658 | msgid "Search" |
602 | msgid_plural "Search" | 659 | msgid_plural "Search" |
603 | msgstr[0] "Rechercher" | 660 | msgstr[0] "Rechercher" |
604 | msgstr[1] "Rechercher" | 661 | msgstr[1] "Rechercher" |
605 | 662 | ||
663 | #: tmp/404.b91ef64efc3688266305ea9b42e5017e.rtpl.php:12 | ||
664 | msgid "Sorry, nothing to see here." | ||
665 | msgstr "Désolé, il y a rien à voir ici." | ||
666 | |||
606 | #: tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 | 667 | #: tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 |
607 | msgid "URL or leave empty to post a note" | 668 | msgid "URL or leave empty to post a note" |
608 | msgstr "URL ou laisser vide pour créer une note" | 669 | msgstr "URL ou laisser vide pour créer une note" |
609 | 670 | ||
671 | #: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 | ||
672 | msgid "Current password" | ||
673 | msgstr "Mot de passe actuel" | ||
674 | |||
675 | #: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 | ||
676 | msgid "New password" | ||
677 | msgstr "Nouveau mot de passe" | ||
678 | |||
679 | #: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:23 | ||
680 | msgid "Change" | ||
681 | msgstr "Changer" | ||
682 | |||
610 | #: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 | 683 | #: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 |
684 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:77 | ||
611 | msgid "Tag" | 685 | msgid "Tag" |
612 | msgstr "Tag" | 686 | msgstr "Tag" |
613 | 687 | ||
@@ -626,6 +700,8 @@ msgstr "Renommer" | |||
626 | #: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:35 | 700 | #: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:35 |
627 | #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:77 | 701 | #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:77 |
628 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:171 | 702 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:171 |
703 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:145 | ||
704 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:145 | ||
629 | msgid "Delete" | 705 | msgid "Delete" |
630 | msgstr "Supprimer" | 706 | msgstr "Supprimer" |
631 | 707 | ||
@@ -638,32 +714,31 @@ msgid "tag list" | |||
638 | msgstr "liste des tags" | 714 | msgstr "liste des tags" |
639 | 715 | ||
640 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:143 | 716 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:143 |
641 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:296 | 717 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:312 |
718 | #: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31 | ||
642 | msgid "All" | 719 | msgid "All" |
643 | msgstr "Tous" | 720 | msgstr "Tous" |
644 | 721 | ||
645 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:147 | 722 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:147 |
646 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:300 | 723 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:316 |
647 | msgid "Only common media hosts" | 724 | msgid "Only common media hosts" |
648 | msgstr "Seulement les hébergeurs de média connus" | 725 | msgstr "Seulement les hébergeurs de média connus" |
649 | 726 | ||
650 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:151 | 727 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:151 |
651 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:304 | 728 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:320 |
652 | msgid "None" | 729 | msgid "None" |
653 | msgstr "Aucune" | 730 | msgstr "Aucune" |
654 | 731 | ||
655 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:158 | 732 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:158 |
656 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:281 | 733 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:297 |
657 | msgid "You need to enable the extension <code>php-gd</code> to use thumbnails." | 734 | msgid "You need to enable the extension <code>php-gd</code> to use thumbnails." |
658 | msgstr "" | 735 | msgstr "" |
659 | "Vous devez activer l'extension <code>php-gd</code> pour utiliser les " | 736 | "Vous devez activer l'extension <code>php-gd</code> pour utiliser les " |
660 | "miniatures." | 737 | "miniatures." |
661 | 738 | ||
662 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:162 | 739 | #: tmp/configure.90100d2eaf5d3705e14b9b4f78ecddc9.rtpl.php:162 |
663 | #, fuzzy | ||
664 | #| msgid "Enable thumbnails" | ||
665 | msgid "Synchonize thumbnails" | 740 | msgid "Synchonize thumbnails" |
666 | msgstr "Activer les miniatures" | 741 | msgstr "Synchroniser les miniatures" |
667 | 742 | ||
668 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 | 743 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 |
669 | msgid "title" | 744 | msgid "title" |
@@ -682,18 +757,22 @@ msgid "Theme" | |||
682 | msgstr "Thème" | 757 | msgstr "Thème" |
683 | 758 | ||
684 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:87 | 759 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:87 |
760 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:78 | ||
685 | msgid "Language" | 761 | msgid "Language" |
686 | msgstr "Langue" | 762 | msgstr "Langue" |
687 | 763 | ||
688 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:116 | 764 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:116 |
765 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:102 | ||
689 | msgid "Timezone" | 766 | msgid "Timezone" |
690 | msgstr "Fuseau horaire" | 767 | msgstr "Fuseau horaire" |
691 | 768 | ||
692 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 | 769 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 |
770 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:103 | ||
693 | msgid "Continent" | 771 | msgid "Continent" |
694 | msgstr "Continent" | 772 | msgstr "Continent" |
695 | 773 | ||
696 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 | 774 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 |
775 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:103 | ||
697 | msgid "City" | 776 | msgid "City" |
698 | msgstr "Ville" | 777 | msgstr "Ville" |
699 | 778 | ||
@@ -734,37 +813,51 @@ msgid "Do not show any links if the user is not logged in" | |||
734 | msgstr "N'afficher aucun lien sans être connecté" | 813 | msgstr "N'afficher aucun lien sans être connecté" |
735 | 814 | ||
736 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:231 | 815 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:231 |
816 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:150 | ||
737 | msgid "Check updates" | 817 | msgid "Check updates" |
738 | msgstr "Vérifier les mises à jour" | 818 | msgstr "Vérifier les mises à jour" |
739 | 819 | ||
740 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:232 | 820 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:232 |
821 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:152 | ||
741 | msgid "Notify me when a new release is ready" | 822 | msgid "Notify me when a new release is ready" |
742 | msgstr "Me notifier lorsqu'une nouvelle version est disponible" | 823 | msgstr "Me notifier lorsqu'une nouvelle version est disponible" |
743 | 824 | ||
744 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:247 | 825 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:247 |
826 | msgid "Automatically retrieve description for new bookmarks" | ||
827 | msgstr "Récupérer automatiquement la description" | ||
828 | |||
829 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:248 | ||
830 | msgid "Shaarli will try to retrieve the description from meta HTML headers" | ||
831 | msgstr "" | ||
832 | "Shaarli essaiera de récupérer la description depuis les balises HTML meta " | ||
833 | "dans les entêtes" | ||
834 | |||
835 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:263 | ||
836 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 | ||
745 | msgid "Enable REST API" | 837 | msgid "Enable REST API" |
746 | msgstr "Activer l'API REST" | 838 | msgstr "Activer l'API REST" |
747 | 839 | ||
748 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:248 | 840 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:264 |
841 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:170 | ||
749 | msgid "Allow third party software to use Shaarli such as mobile application" | 842 | msgid "Allow third party software to use Shaarli such as mobile application" |
750 | msgstr "" | 843 | msgstr "" |
751 | "Permet aux applications tierces d'utiliser Shaarli, par exemple les " | 844 | "Permet aux applications tierces d'utiliser Shaarli, par exemple les " |
752 | "applications mobiles" | 845 | "applications mobiles" |
753 | 846 | ||
754 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:263 | 847 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:279 |
755 | msgid "API secret" | 848 | msgid "API secret" |
756 | msgstr "Clé d'API secrète" | 849 | msgstr "Clé d'API secrète" |
757 | 850 | ||
758 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:277 | 851 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:293 |
759 | msgid "Enable thumbnails" | 852 | msgid "Enable thumbnails" |
760 | msgstr "Activer les miniatures" | 853 | msgstr "Activer les miniatures" |
761 | 854 | ||
762 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:285 | 855 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:301 |
763 | #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:56 | 856 | #: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:56 |
764 | msgid "Synchronize thumbnails" | 857 | msgid "Synchronize thumbnails" |
765 | msgstr "Synchroniser les miniatures" | 858 | msgstr "Synchroniser les miniatures" |
766 | 859 | ||
767 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:312 | 860 | #: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:328 |
768 | #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72 | 861 | #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72 |
769 | #: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:139 | 862 | #: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:139 |
770 | #: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199 | 863 | #: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199 |
@@ -824,6 +917,7 @@ msgid "Tags" | |||
824 | msgstr "Tags" | 917 | msgstr "Tags" |
825 | 918 | ||
826 | #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:57 | 919 | #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:57 |
920 | #: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 | ||
827 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:167 | 921 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:167 |
828 | msgid "Private" | 922 | msgid "Private" |
829 | msgstr "Privé" | 923 | msgstr "Privé" |
@@ -832,6 +926,99 @@ msgstr "Privé" | |||
832 | msgid "Apply Changes" | 926 | msgid "Apply Changes" |
833 | msgstr "Appliquer les changements" | 927 | msgstr "Appliquer les changements" |
834 | 928 | ||
929 | #: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 | ||
930 | msgid "Export Database" | ||
931 | msgstr "Exporter les données" | ||
932 | |||
933 | #: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 | ||
934 | msgid "Selection" | ||
935 | msgstr "Choisir" | ||
936 | |||
937 | #: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 | ||
938 | msgid "Public" | ||
939 | msgstr "Publics" | ||
940 | |||
941 | #: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:52 | ||
942 | msgid "Prepend note permalinks with this Shaarli instance's URL" | ||
943 | msgstr "Préfixer les liens de note avec l'URL de l'instance de Shaarli" | ||
944 | |||
945 | #: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:53 | ||
946 | msgid "Useful to import bookmarks in a web browser" | ||
947 | msgstr "Utile pour importer les marques-pages dans un navigateur" | ||
948 | |||
949 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 | ||
950 | msgid "Import Database" | ||
951 | msgstr "Importer des données" | ||
952 | |||
953 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:23 | ||
954 | msgid "Maximum size allowed:" | ||
955 | msgstr "Taille maximum autorisée :" | ||
956 | |||
957 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 | ||
958 | msgid "Visibility" | ||
959 | msgstr "Visibilité" | ||
960 | |||
961 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 | ||
962 | msgid "Use values from the imported file, default to public" | ||
963 | msgstr "" | ||
964 | "Utiliser les valeurs présentes dans le fichier d'import, public par défaut" | ||
965 | |||
966 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 | ||
967 | msgid "Import all bookmarks as private" | ||
968 | msgstr "Importer tous les liens comme privés" | ||
969 | |||
970 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46 | ||
971 | msgid "Import all bookmarks as public" | ||
972 | msgstr "Importer tous les liens comme publics" | ||
973 | |||
974 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:57 | ||
975 | msgid "Overwrite existing bookmarks" | ||
976 | msgstr "Remplacer les liens existants" | ||
977 | |||
978 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:58 | ||
979 | msgid "Duplicates based on URL" | ||
980 | msgstr "Les doublons s'appuient sur les URL" | ||
981 | |||
982 | #: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72 | ||
983 | msgid "Add default tags" | ||
984 | msgstr "Ajouter des tags par défaut" | ||
985 | |||
986 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22 | ||
987 | msgid "Install Shaarli" | ||
988 | msgstr "Installation de Shaarli" | ||
989 | |||
990 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25 | ||
991 | msgid "It looks like it's the first time you run Shaarli. Please configure it." | ||
992 | msgstr "" | ||
993 | "Il semblerait que ça soit la première fois que vous lancez Shaarli. Merci de " | ||
994 | "le configurer." | ||
995 | |||
996 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:33 | ||
997 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30 | ||
998 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:165 | ||
999 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:165 | ||
1000 | msgid "Username" | ||
1001 | msgstr "Nom d'utilisateur" | ||
1002 | |||
1003 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:48 | ||
1004 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34 | ||
1005 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:166 | ||
1006 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:166 | ||
1007 | msgid "Password" | ||
1008 | msgstr "Mot de passe" | ||
1009 | |||
1010 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:63 | ||
1011 | msgid "Shaarli title" | ||
1012 | msgstr "Titre du Shaarli" | ||
1013 | |||
1014 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:69 | ||
1015 | msgid "My links" | ||
1016 | msgstr "Mes liens" | ||
1017 | |||
1018 | #: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:182 | ||
1019 | msgid "Install" | ||
1020 | msgstr "Installer" | ||
1021 | |||
835 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 | 1022 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 |
836 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:79 | 1023 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:79 |
837 | msgid "shaare" | 1024 | msgid "shaare" |
@@ -847,11 +1034,13 @@ msgstr[0] "lien privé" | |||
847 | msgstr[1] "liens privés" | 1034 | msgstr[1] "liens privés" |
848 | 1035 | ||
849 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30 | 1036 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30 |
1037 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:121 | ||
850 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:121 | 1038 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:121 |
851 | msgid "Search text" | 1039 | msgid "Search text" |
852 | msgstr "Recherche texte" | 1040 | msgstr "Recherche texte" |
853 | 1041 | ||
854 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:37 | 1042 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:37 |
1043 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:128 | ||
855 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:128 | 1044 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:128 |
856 | #: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 | 1045 | #: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 |
857 | #: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:64 | 1046 | #: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:64 |
@@ -892,7 +1081,8 @@ msgid "without any tag" | |||
892 | msgstr "sans tag" | 1081 | msgstr "sans tag" |
893 | 1082 | ||
894 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:173 | 1083 | #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:173 |
895 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:42 | 1084 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:43 |
1085 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:43 | ||
896 | msgid "Fold" | 1086 | msgid "Fold" |
897 | msgstr "Replier" | 1087 | msgstr "Replier" |
898 | 1088 | ||
@@ -916,29 +1106,42 @@ msgstr "Changer statut épinglé" | |||
916 | msgid "Sticky" | 1106 | msgid "Sticky" |
917 | msgstr "Épinglé" | 1107 | msgstr "Épinglé" |
918 | 1108 | ||
1109 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:7 | ||
919 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:7 | 1110 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:7 |
920 | msgid "Filters" | 1111 | msgid "Filters" |
921 | msgstr "Filtres" | 1112 | msgstr "Filtres" |
922 | 1113 | ||
1114 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:12 | ||
923 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:12 | 1115 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:12 |
924 | msgid "Only display private links" | 1116 | msgid "Only display private links" |
925 | msgstr "Afficher uniquement les liens privés" | 1117 | msgstr "Afficher uniquement les liens privés" |
926 | 1118 | ||
1119 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 | ||
927 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:15 | 1120 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:15 |
928 | msgid "Only display public links" | 1121 | msgid "Only display public links" |
929 | msgstr "Afficher uniquement les liens publics" | 1122 | msgstr "Afficher uniquement les liens publics" |
930 | 1123 | ||
1124 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:20 | ||
931 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:20 | 1125 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:20 |
932 | msgid "Filter untagged links" | 1126 | msgid "Filter untagged links" |
933 | msgstr "Filtrer par liens privés" | 1127 | msgstr "Filtrer par liens privés" |
934 | 1128 | ||
1129 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 | ||
935 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:24 | 1130 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:24 |
936 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:76 | 1131 | msgid "Select all" |
937 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:43 | 1132 | msgstr "Tout sélectionner" |
1133 | |||
1134 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:27 | ||
1135 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:79 | ||
1136 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:27 | ||
1137 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:79 | ||
1138 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44 | ||
1139 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:44 | ||
938 | msgid "Fold all" | 1140 | msgid "Fold all" |
939 | msgstr "Replier tout" | 1141 | msgstr "Replier tout" |
940 | 1142 | ||
941 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:69 | 1143 | #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72 |
1144 | #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:72 | ||
942 | msgid "Links per page" | 1145 | msgid "Links per page" |
943 | msgstr "Liens par page" | 1146 | msgstr "Liens par page" |
944 | 1147 | ||
@@ -949,57 +1152,70 @@ msgstr "" | |||
949 | "Vous avez été banni après trop d'échecs d'authentification. Merci de " | 1152 | "Vous avez été banni après trop d'échecs d'authentification. Merci de " |
950 | "réessayer plus tard." | 1153 | "réessayer plus tard." |
951 | 1154 | ||
952 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30 | ||
953 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:151 | ||
954 | msgid "Username" | ||
955 | msgstr "Nom d'utilisateur" | ||
956 | |||
957 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34 | ||
958 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:152 | ||
959 | msgid "Password" | ||
960 | msgstr "Mot de passe" | ||
961 | |||
962 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 | 1155 | #: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 |
963 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:155 | 1156 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 |
1157 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:169 | ||
964 | msgid "Remember me" | 1158 | msgid "Remember me" |
965 | msgstr "Rester connecté" | 1159 | msgstr "Rester connecté" |
966 | 1160 | ||
967 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:14 | 1161 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 |
968 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:48 | 1162 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:49 |
1163 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:15 | ||
1164 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:49 | ||
969 | msgid "by the Shaarli community" | 1165 | msgid "by the Shaarli community" |
970 | msgstr "par la communauté Shaarli" | 1166 | msgstr "par la communauté Shaarli" |
971 | 1167 | ||
972 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:15 | 1168 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 |
1169 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:16 | ||
973 | msgid "Documentation" | 1170 | msgid "Documentation" |
974 | msgstr "Documentation" | 1171 | msgstr "Documentation" |
975 | 1172 | ||
976 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:44 | 1173 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:45 |
1174 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:45 | ||
977 | msgid "Expand" | 1175 | msgid "Expand" |
978 | msgstr "Déplier" | 1176 | msgstr "Déplier" |
979 | 1177 | ||
980 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:45 | 1178 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46 |
1179 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:46 | ||
981 | msgid "Expand all" | 1180 | msgid "Expand all" |
982 | msgstr "Déplier tout" | 1181 | msgstr "Déplier tout" |
983 | 1182 | ||
984 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:46 | 1183 | #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:47 |
1184 | #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:47 | ||
985 | msgid "Are you sure you want to delete this link?" | 1185 | msgid "Are you sure you want to delete this link?" |
986 | msgstr "Êtes-vous sûr de vouloir supprimer ce lien ?" | 1186 | msgstr "Êtes-vous sûr de vouloir supprimer ce lien ?" |
987 | 1187 | ||
1188 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65 | ||
1189 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:90 | ||
988 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:65 | 1190 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:65 |
989 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:90 | 1191 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:90 |
990 | msgid "RSS Feed" | 1192 | msgid "RSS Feed" |
991 | msgstr "Flux RSS" | 1193 | msgstr "Flux RSS" |
992 | 1194 | ||
1195 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:70 | ||
1196 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:106 | ||
993 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:70 | 1197 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:70 |
994 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:106 | 1198 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:106 |
995 | msgid "Logout" | 1199 | msgid "Logout" |
996 | msgstr "Déconnexion" | 1200 | msgstr "Déconnexion" |
997 | 1201 | ||
998 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:173 | 1202 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:150 |
1203 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:150 | ||
1204 | msgid "Set public" | ||
1205 | msgstr "Rendre public" | ||
1206 | |||
1207 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:155 | ||
1208 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:155 | ||
1209 | msgid "Set private" | ||
1210 | msgstr "Rendre privé" | ||
1211 | |||
1212 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:187 | ||
1213 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:187 | ||
999 | msgid "is available" | 1214 | msgid "is available" |
1000 | msgstr "est disponible" | 1215 | msgstr "est disponible" |
1001 | 1216 | ||
1002 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:180 | 1217 | #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:194 |
1218 | #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:194 | ||
1003 | msgid "Error" | 1219 | msgid "Error" |
1004 | msgstr "Erreur" | 1220 | msgstr "Erreur" |
1005 | 1221 | ||
@@ -1098,18 +1314,22 @@ msgstr "tags" | |||
1098 | msgid "List all links with those tags" | 1314 | msgid "List all links with those tags" |
1099 | msgstr "Lister tous les liens avec ces tags" | 1315 | msgstr "Lister tous les liens avec ces tags" |
1100 | 1316 | ||
1317 | #: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:3 | ||
1101 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:3 | 1318 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:3 |
1102 | msgid "Sort by:" | 1319 | msgid "Sort by:" |
1103 | msgstr "Trier par :" | 1320 | msgstr "Trier par :" |
1104 | 1321 | ||
1322 | #: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:5 | ||
1105 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:5 | 1323 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:5 |
1106 | msgid "Cloud" | 1324 | msgid "Cloud" |
1107 | msgstr "Nuage" | 1325 | msgstr "Nuage" |
1108 | 1326 | ||
1327 | #: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:6 | ||
1109 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:6 | 1328 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:6 |
1110 | msgid "Most used" | 1329 | msgid "Most used" |
1111 | msgstr "Plus utilisés" | 1330 | msgstr "Plus utilisés" |
1112 | 1331 | ||
1332 | #: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:7 | ||
1113 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:7 | 1333 | #: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:7 |
1114 | msgid "Alphabetical" | 1334 | msgid "Alphabetical" |
1115 | msgstr "Alphabétique" | 1335 | msgstr "Alphabétique" |
@@ -1237,79 +1457,6 @@ msgstr "" | |||
1237 | "Glisser ce lien dans votre barre de favoris ou cliquer droit dessus et « " | 1457 | "Glisser ce lien dans votre barre de favoris ou cliquer droit dessus et « " |
1238 | "Ajouter aux favoris »" | 1458 | "Ajouter aux favoris »" |
1239 | 1459 | ||
1240 | #~ msgid "Sorry, nothing to see here." | ||
1241 | #~ msgstr "Désolé, il y a rien à voir ici." | ||
1242 | |||
1243 | #~ msgid "Current password" | ||
1244 | #~ msgstr "Mot de passe actuel" | ||
1245 | |||
1246 | #~ msgid "New password" | ||
1247 | #~ msgstr "Nouveau mot de passe" | ||
1248 | |||
1249 | #~ msgid "Change" | ||
1250 | #~ msgstr "Changer" | ||
1251 | |||
1252 | #~ msgid "Export Database" | ||
1253 | #~ msgstr "Exporter les données" | ||
1254 | |||
1255 | #~ msgid "Selection" | ||
1256 | #~ msgstr "Choisir" | ||
1257 | |||
1258 | #~ msgid "Public" | ||
1259 | #~ msgstr "Publics" | ||
1260 | |||
1261 | #~ msgid "Prepend note permalinks with this Shaarli instance's URL" | ||
1262 | #~ msgstr "Préfixer les liens de note avec l'URL de l'instance de Shaarli" | ||
1263 | |||
1264 | #~ msgid "Useful to import bookmarks in a web browser" | ||
1265 | #~ msgstr "Utile pour importer les marques-pages dans un navigateur" | ||
1266 | |||
1267 | #~ msgid "Import Database" | ||
1268 | #~ msgstr "Importer des données" | ||
1269 | |||
1270 | #~ msgid "Maximum size allowed:" | ||
1271 | #~ msgstr "Taille maximum autorisée :" | ||
1272 | |||
1273 | #~ msgid "Visibility" | ||
1274 | #~ msgstr "Visibilité" | ||
1275 | |||
1276 | #~ msgid "Use values from the imported file, default to public" | ||
1277 | #~ msgstr "" | ||
1278 | #~ "Utiliser les valeurs présentes dans le fichier d'import, public par défaut" | ||
1279 | |||
1280 | #~ msgid "Import all bookmarks as private" | ||
1281 | #~ msgstr "Importer tous les liens comme privés" | ||
1282 | |||
1283 | #~ msgid "Import all bookmarks as public" | ||
1284 | #~ msgstr "Importer tous les liens comme publics" | ||
1285 | |||
1286 | #~ msgid "Overwrite existing bookmarks" | ||
1287 | #~ msgstr "Remplacer les liens existants" | ||
1288 | |||
1289 | #~ msgid "Duplicates based on URL" | ||
1290 | #~ msgstr "Les doublons s'appuient sur les URL" | ||
1291 | |||
1292 | #~ msgid "Add default tags" | ||
1293 | #~ msgstr "Ajouter des tags par défaut" | ||
1294 | |||
1295 | #~ msgid "Install Shaarli" | ||
1296 | #~ msgstr "Installation de Shaarli" | ||
1297 | |||
1298 | #~ msgid "" | ||
1299 | #~ "It looks like it's the first time you run Shaarli. Please configure it." | ||
1300 | #~ msgstr "" | ||
1301 | #~ "Il semblerait que ça soit la première fois que vous lancez Shaarli. Merci " | ||
1302 | #~ "de le configurer." | ||
1303 | |||
1304 | #~ msgid "Shaarli title" | ||
1305 | #~ msgstr "Titre du Shaarli" | ||
1306 | |||
1307 | #~ msgid "My links" | ||
1308 | #~ msgstr "Mes liens" | ||
1309 | |||
1310 | #~ msgid "Install" | ||
1311 | #~ msgstr "Installer" | ||
1312 | |||
1313 | #~ msgid "" | 1460 | #~ msgid "" |
1314 | #~ "You need to browse your Shaarli over <strong>HTTPS</strong> to use this " | 1461 | #~ "You need to browse your Shaarli over <strong>HTTPS</strong> to use this " |
1315 | #~ "functionality." | 1462 | #~ "functionality." |
@@ -56,31 +56,33 @@ require_once 'inc/rain.tpl.class.php'; | |||
56 | require_once __DIR__ . '/vendor/autoload.php'; | 56 | require_once __DIR__ . '/vendor/autoload.php'; |
57 | 57 | ||
58 | // Shaarli library | 58 | // Shaarli library |
59 | require_once 'application/ApplicationUtils.php'; | 59 | require_once 'application/bookmark/LinkUtils.php'; |
60 | require_once 'application/Cache.php'; | ||
61 | require_once 'application/CachedPage.php'; | ||
62 | require_once 'application/config/ConfigPlugin.php'; | 60 | require_once 'application/config/ConfigPlugin.php'; |
63 | require_once 'application/FeedBuilder.php'; | 61 | require_once 'application/feed/Cache.php'; |
62 | require_once 'application/http/HttpUtils.php'; | ||
63 | require_once 'application/http/UrlUtils.php'; | ||
64 | require_once 'application/updater/UpdaterUtils.php'; | ||
64 | require_once 'application/FileUtils.php'; | 65 | require_once 'application/FileUtils.php'; |
65 | require_once 'application/History.php'; | ||
66 | require_once 'application/HttpUtils.php'; | ||
67 | require_once 'application/LinkDB.php'; | ||
68 | require_once 'application/LinkFilter.php'; | ||
69 | require_once 'application/LinkUtils.php'; | ||
70 | require_once 'application/NetscapeBookmarkUtils.php'; | ||
71 | require_once 'application/PageBuilder.php'; | ||
72 | require_once 'application/TimeZone.php'; | 66 | require_once 'application/TimeZone.php'; |
73 | require_once 'application/Url.php'; | ||
74 | require_once 'application/Utils.php'; | 67 | require_once 'application/Utils.php'; |
75 | require_once 'application/PluginManager.php'; | 68 | |
76 | require_once 'application/Router.php'; | 69 | use \Shaarli\ApplicationUtils; |
77 | require_once 'application/Updater.php'; | 70 | use \Shaarli\Bookmark\Exception\LinkNotFoundException; |
71 | use \Shaarli\Bookmark\LinkDB; | ||
78 | use \Shaarli\Config\ConfigManager; | 72 | use \Shaarli\Config\ConfigManager; |
73 | use \Shaarli\Feed\CachedPage; | ||
74 | use \Shaarli\Feed\FeedBuilder; | ||
75 | use \Shaarli\History; | ||
79 | use \Shaarli\Languages; | 76 | use \Shaarli\Languages; |
77 | use \Shaarli\Netscape\NetscapeBookmarkUtils; | ||
78 | use \Shaarli\Plugin\PluginManager; | ||
79 | use \Shaarli\Render\PageBuilder; | ||
80 | use \Shaarli\Render\ThemeUtils; | ||
81 | use \Shaarli\Router; | ||
80 | use \Shaarli\Security\LoginManager; | 82 | use \Shaarli\Security\LoginManager; |
81 | use \Shaarli\Security\SessionManager; | 83 | use \Shaarli\Security\SessionManager; |
82 | use \Shaarli\ThemeUtils; | ||
83 | use \Shaarli\Thumbnailer; | 84 | use \Shaarli\Thumbnailer; |
85 | use \Shaarli\Updater\Updater; | ||
84 | 86 | ||
85 | // Ensure the PHP version is supported | 87 | // Ensure the PHP version is supported |
86 | try { | 88 | try { |
@@ -123,7 +125,7 @@ if (isset($_COOKIE['shaarli']) && !SessionManager::checkId($_COOKIE['shaarli'])) | |||
123 | 125 | ||
124 | $conf = new ConfigManager(); | 126 | $conf = new ConfigManager(); |
125 | $sessionManager = new SessionManager($_SESSION, $conf); | 127 | $sessionManager = new SessionManager($_SESSION, $conf); |
126 | $loginManager = new LoginManager($GLOBALS, $conf, $sessionManager); | 128 | $loginManager = new LoginManager($conf, $sessionManager); |
127 | $loginManager->generateStaySignedInToken($_SERVER['REMOTE_ADDR']); | 129 | $loginManager->generateStaySignedInToken($_SERVER['REMOTE_ADDR']); |
128 | $clientIpId = client_ip_id($_SERVER); | 130 | $clientIpId = client_ip_id($_SERVER); |
129 | 131 | ||
@@ -310,9 +312,7 @@ function showDailyRSS($conf, $loginManager) | |||
310 | $LINKSDB = new LinkDB( | 312 | $LINKSDB = new LinkDB( |
311 | $conf->get('resource.datastore'), | 313 | $conf->get('resource.datastore'), |
312 | $loginManager->isLoggedIn(), | 314 | $loginManager->isLoggedIn(), |
313 | $conf->get('privacy.hide_public_links'), | 315 | $conf->get('privacy.hide_public_links') |
314 | $conf->get('redirector.url'), | ||
315 | $conf->get('redirector.encode_url') | ||
316 | ); | 316 | ); |
317 | 317 | ||
318 | /* Some Shaarlies may have very few links, so we need to look | 318 | /* Some Shaarlies may have very few links, so we need to look |
@@ -354,13 +354,9 @@ function showDailyRSS($conf, $loginManager) | |||
354 | 354 | ||
355 | // We pre-format some fields for proper output. | 355 | // We pre-format some fields for proper output. |
356 | foreach ($links as &$link) { | 356 | foreach ($links as &$link) { |
357 | $link['formatedDescription'] = format_description( | 357 | $link['formatedDescription'] = format_description($link['description']); |
358 | $link['description'], | ||
359 | $conf->get('redirector.url'), | ||
360 | $conf->get('redirector.encode_url') | ||
361 | ); | ||
362 | $link['timestamp'] = $link['created']->getTimestamp(); | 358 | $link['timestamp'] = $link['created']->getTimestamp(); |
363 | if (startsWith($link['url'], '?')) { | 359 | if (is_note($link['url'])) { |
364 | $link['url'] = index_url($_SERVER) . $link['url']; // make permalink URL absolute | 360 | $link['url'] = index_url($_SERVER) . $link['url']; // make permalink URL absolute |
365 | } | 361 | } |
366 | } | 362 | } |
@@ -396,9 +392,16 @@ function showDailyRSS($conf, $loginManager) | |||
396 | */ | 392 | */ |
397 | function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager, $loginManager) | 393 | function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager, $loginManager) |
398 | { | 394 | { |
399 | $day = date('Ymd', strtotime('-1 day')); // Yesterday, in format YYYYMMDD. | ||
400 | if (isset($_GET['day'])) { | 395 | if (isset($_GET['day'])) { |
401 | $day = $_GET['day']; | 396 | $day = $_GET['day']; |
397 | if ($day === date('Ymd', strtotime('now'))) { | ||
398 | $pageBuilder->assign('dayDesc', t('Today')); | ||
399 | } elseif ($day === date('Ymd', strtotime('-1 days'))) { | ||
400 | $pageBuilder->assign('dayDesc', t('Yesterday')); | ||
401 | } | ||
402 | } else { | ||
403 | $day = date('Ymd', strtotime('now')); // Today, in format YYYYMMDD. | ||
404 | $pageBuilder->assign('dayDesc', t('Today')); | ||
402 | } | 405 | } |
403 | 406 | ||
404 | $days = $LINKSDB->days(); | 407 | $days = $LINKSDB->days(); |
@@ -431,11 +434,7 @@ function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager, $loginManager) | |||
431 | $taglist = explode(' ', $link['tags']); | 434 | $taglist = explode(' ', $link['tags']); |
432 | uasort($taglist, 'strcasecmp'); | 435 | uasort($taglist, 'strcasecmp'); |
433 | $linksToDisplay[$key]['taglist']=$taglist; | 436 | $linksToDisplay[$key]['taglist']=$taglist; |
434 | $linksToDisplay[$key]['formatedDescription'] = format_description( | 437 | $linksToDisplay[$key]['formatedDescription'] = format_description($link['description']); |
435 | $link['description'], | ||
436 | $conf->get('redirector.url'), | ||
437 | $conf->get('redirector.encode_url') | ||
438 | ); | ||
439 | $linksToDisplay[$key]['timestamp'] = $link['created']->getTimestamp(); | 438 | $linksToDisplay[$key]['timestamp'] = $link['created']->getTimestamp(); |
440 | } | 439 | } |
441 | 440 | ||
@@ -1016,6 +1015,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1016 | $conf->set('general.timezone', $tz); | 1015 | $conf->set('general.timezone', $tz); |
1017 | $conf->set('general.title', escape($_POST['title'])); | 1016 | $conf->set('general.title', escape($_POST['title'])); |
1018 | $conf->set('general.header_link', escape($_POST['titleLink'])); | 1017 | $conf->set('general.header_link', escape($_POST['titleLink'])); |
1018 | $conf->set('general.retrieve_description', !empty($_POST['retrieveDescription'])); | ||
1019 | $conf->set('resource.theme', escape($_POST['theme'])); | 1019 | $conf->set('resource.theme', escape($_POST['theme'])); |
1020 | $conf->set('security.session_protection_disabled', !empty($_POST['disablesessionprotection'])); | 1020 | $conf->set('security.session_protection_disabled', !empty($_POST['disablesessionprotection'])); |
1021 | $conf->set('privacy.default_private_links', !empty($_POST['privateLinkByDefault'])); | 1021 | $conf->set('privacy.default_private_links', !empty($_POST['privateLinkByDefault'])); |
@@ -1064,6 +1064,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1064 | ); | 1064 | ); |
1065 | $PAGE->assign('continents', $continents); | 1065 | $PAGE->assign('continents', $continents); |
1066 | $PAGE->assign('cities', $cities); | 1066 | $PAGE->assign('cities', $cities); |
1067 | $PAGE->assign('retrieve_description', $conf->get('general.retrieve_description')); | ||
1067 | $PAGE->assign('private_links_default', $conf->get('privacy.default_private_links', false)); | 1068 | $PAGE->assign('private_links_default', $conf->get('privacy.default_private_links', false)); |
1068 | $PAGE->assign('session_protection_disabled', $conf->get('security.session_protection_disabled', false)); | 1069 | $PAGE->assign('session_protection_disabled', $conf->get('security.session_protection_disabled', false)); |
1069 | $PAGE->assign('enable_rss_permalinks', $conf->get('feed.rss_permalinks', false)); | 1070 | $PAGE->assign('enable_rss_permalinks', $conf->get('feed.rss_permalinks', false)); |
@@ -1072,7 +1073,6 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1072 | $PAGE->assign('api_enabled', $conf->get('api.enabled', true)); | 1073 | $PAGE->assign('api_enabled', $conf->get('api.enabled', true)); |
1073 | $PAGE->assign('api_secret', $conf->get('api.secret')); | 1074 | $PAGE->assign('api_secret', $conf->get('api.secret')); |
1074 | $PAGE->assign('languages', Languages::getAvailableLanguages()); | 1075 | $PAGE->assign('languages', Languages::getAvailableLanguages()); |
1075 | $PAGE->assign('language', $conf->get('translation.language')); | ||
1076 | $PAGE->assign('gd_enabled', extension_loaded('gd')); | 1076 | $PAGE->assign('gd_enabled', extension_loaded('gd')); |
1077 | $PAGE->assign('thumbnails_mode', $conf->get('thumbnails.mode', Thumbnailer::MODE_NONE)); | 1077 | $PAGE->assign('thumbnails_mode', $conf->get('thumbnails.mode', Thumbnailer::MODE_NONE)); |
1078 | $PAGE->assign('pagetitle', t('Configure') .' - '. $conf->get('general.title', 'Shaarli')); | 1078 | $PAGE->assign('pagetitle', t('Configure') .' - '. $conf->get('general.title', 'Shaarli')); |
@@ -1126,22 +1126,24 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1126 | 1126 | ||
1127 | // lf_id should only be present if the link exists. | 1127 | // lf_id should only be present if the link exists. |
1128 | $id = isset($_POST['lf_id']) ? intval(escape($_POST['lf_id'])) : $LINKSDB->getNextId(); | 1128 | $id = isset($_POST['lf_id']) ? intval(escape($_POST['lf_id'])) : $LINKSDB->getNextId(); |
1129 | $link['id'] = $id; | ||
1129 | // Linkdate is kept here to: | 1130 | // Linkdate is kept here to: |
1130 | // - use the same permalink for notes as they're displayed when creating them | 1131 | // - use the same permalink for notes as they're displayed when creating them |
1131 | // - let users hack creation date of their posts | 1132 | // - let users hack creation date of their posts |
1132 | // See: https://shaarli.readthedocs.io/en/master/guides/various-hacks/#changing-the-timestamp-for-a-shaare | 1133 | // See: https://shaarli.readthedocs.io/en/master/guides/various-hacks/#changing-the-timestamp-for-a-shaare |
1133 | $linkdate = escape($_POST['lf_linkdate']); | 1134 | $linkdate = escape($_POST['lf_linkdate']); |
1135 | $link['created'] = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $linkdate); | ||
1134 | if (isset($LINKSDB[$id])) { | 1136 | if (isset($LINKSDB[$id])) { |
1135 | // Edit | 1137 | // Edit |
1136 | $created = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $linkdate); | 1138 | $link['updated'] = new DateTime(); |
1137 | $updated = new DateTime(); | 1139 | $link['shorturl'] = $LINKSDB[$id]['shorturl']; |
1138 | $shortUrl = $LINKSDB[$id]['shorturl']; | 1140 | $link['sticky'] = isset($LINKSDB[$id]['sticky']) ? $LINKSDB[$id]['sticky'] : false; |
1139 | $new = false; | 1141 | $new = false; |
1140 | } else { | 1142 | } else { |
1141 | // New link | 1143 | // New link |
1142 | $created = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $linkdate); | 1144 | $link['updated'] = null; |
1143 | $updated = null; | 1145 | $link['shorturl'] = link_small_hash($link['created'], $id); |
1144 | $shortUrl = link_small_hash($created, $id); | 1146 | $link['sticky'] = false; |
1145 | $new = true; | 1147 | $new = true; |
1146 | } | 1148 | } |
1147 | 1149 | ||
@@ -1157,24 +1159,22 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1157 | } | 1159 | } |
1158 | $url = whitelist_protocols(trim($_POST['lf_url']), $conf->get('security.allowed_protocols')); | 1160 | $url = whitelist_protocols(trim($_POST['lf_url']), $conf->get('security.allowed_protocols')); |
1159 | 1161 | ||
1160 | $link = array( | 1162 | $link = array_merge($link, [ |
1161 | 'id' => $id, | ||
1162 | 'title' => trim($_POST['lf_title']), | 1163 | 'title' => trim($_POST['lf_title']), |
1163 | 'url' => $url, | 1164 | 'url' => $url, |
1164 | 'description' => $_POST['lf_description'], | 1165 | 'description' => $_POST['lf_description'], |
1165 | 'private' => (isset($_POST['lf_private']) ? 1 : 0), | 1166 | 'private' => (isset($_POST['lf_private']) ? 1 : 0), |
1166 | 'created' => $created, | ||
1167 | 'updated' => $updated, | ||
1168 | 'tags' => str_replace(',', ' ', $tags), | 1167 | 'tags' => str_replace(',', ' ', $tags), |
1169 | 'shorturl' => $shortUrl, | 1168 | ]); |
1170 | ); | ||
1171 | 1169 | ||
1172 | // If title is empty, use the URL as title. | 1170 | // If title is empty, use the URL as title. |
1173 | if ($link['title'] == '') { | 1171 | if ($link['title'] == '') { |
1174 | $link['title'] = $link['url']; | 1172 | $link['title'] = $link['url']; |
1175 | } | 1173 | } |
1176 | 1174 | ||
1177 | if ($conf->get('thumbnails.mode', Thumbnailer::MODE_NONE) !== Thumbnailer::MODE_NONE) { | 1175 | if ($conf->get('thumbnails.mode', Thumbnailer::MODE_NONE) !== Thumbnailer::MODE_NONE |
1176 | && ! is_note($link['url']) | ||
1177 | ) { | ||
1178 | $thumbnailer = new Thumbnailer($conf); | 1178 | $thumbnailer = new Thumbnailer($conf); |
1179 | $link['thumbnail'] = $thumbnailer->get($url); | 1179 | $link['thumbnail'] = $thumbnailer->get($url); |
1180 | } | 1180 | } |
@@ -1273,6 +1273,51 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1273 | exit; | 1273 | exit; |
1274 | } | 1274 | } |
1275 | 1275 | ||
1276 | // -------- User clicked either "Set public" or "Set private" bulk operation | ||
1277 | if ($targetPage == Router::$PAGE_CHANGE_VISIBILITY) { | ||
1278 | if (! $sessionManager->checkToken($_GET['token'])) { | ||
1279 | die(t('Wrong token.')); | ||
1280 | } | ||
1281 | |||
1282 | $ids = trim($_GET['ids']); | ||
1283 | if (strpos($ids, ' ') !== false) { | ||
1284 | // multiple, space-separated ids provided | ||
1285 | $ids = array_values(array_filter(preg_split('/\s+/', escape($ids)))); | ||
1286 | } else { | ||
1287 | // only a single id provided | ||
1288 | $ids = [$ids]; | ||
1289 | } | ||
1290 | |||
1291 | // assert at least one id is given | ||
1292 | if (!count($ids)) { | ||
1293 | die('no id provided'); | ||
1294 | } | ||
1295 | // assert that the visibility is valid | ||
1296 | if (!isset($_GET['newVisibility']) || !in_array($_GET['newVisibility'], ['public', 'private'])) { | ||
1297 | die('invalid visibility'); | ||
1298 | } else { | ||
1299 | $private = $_GET['newVisibility'] === 'private'; | ||
1300 | } | ||
1301 | foreach ($ids as $id) { | ||
1302 | $id = (int) escape($id); | ||
1303 | $link = $LINKSDB[$id]; | ||
1304 | $link['private'] = $private; | ||
1305 | $pluginManager->executeHooks('save_link', $link); | ||
1306 | $LINKSDB[$id] = $link; | ||
1307 | } | ||
1308 | $LINKSDB->save($conf->get('resource.page_cache')); // save to disk | ||
1309 | |||
1310 | $location = '?'; | ||
1311 | if (isset($_SERVER['HTTP_REFERER'])) { | ||
1312 | $location = generateLocation( | ||
1313 | $_SERVER['HTTP_REFERER'], | ||
1314 | $_SERVER['HTTP_HOST'] | ||
1315 | ); | ||
1316 | } | ||
1317 | header('Location: ' . $location); // After deleting the link, redirect to appropriate location | ||
1318 | exit; | ||
1319 | } | ||
1320 | |||
1276 | // -------- User clicked the "EDIT" button on a link: Display link edit form. | 1321 | // -------- User clicked the "EDIT" button on a link: Display link edit form. |
1277 | if (isset($_GET['edit_link'])) { | 1322 | if (isset($_GET['edit_link'])) { |
1278 | $id = (int) escape($_GET['edit_link']); | 1323 | $id = (int) escape($_GET['edit_link']); |
@@ -1319,13 +1364,14 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1319 | // If this is an HTTP(S) link, we try go get the page to extract | 1364 | // If this is an HTTP(S) link, we try go get the page to extract |
1320 | // the title (otherwise we will to straight to the edit form.) | 1365 | // the title (otherwise we will to straight to the edit form.) |
1321 | if (empty($title) && strpos(get_url_scheme($url), 'http') !== false) { | 1366 | if (empty($title) && strpos(get_url_scheme($url), 'http') !== false) { |
1367 | $retrieveDescription = $conf->get('general.retrieve_description'); | ||
1322 | // Short timeout to keep the application responsive | 1368 | // Short timeout to keep the application responsive |
1323 | // The callback will fill $charset and $title with data from the downloaded page. | 1369 | // The callback will fill $charset and $title with data from the downloaded page. |
1324 | get_http_response( | 1370 | get_http_response( |
1325 | $url, | 1371 | $url, |
1326 | $conf->get('general.download_timeout', 30), | 1372 | $conf->get('general.download_timeout', 30), |
1327 | $conf->get('general.download_max_size', 4194304), | 1373 | $conf->get('general.download_max_size', 4194304), |
1328 | get_curl_download_callback($charset, $title) | 1374 | get_curl_download_callback($charset, $title, $description, $tags, $retrieveDescription) |
1329 | ); | 1375 | ); |
1330 | if (! empty($title) && strtolower($charset) != 'utf-8') { | 1376 | if (! empty($title) && strtolower($charset) != 'utf-8') { |
1331 | $title = mb_convert_encoding($title, 'utf-8', $charset); | 1377 | $title = mb_convert_encoding($title, 'utf-8', $charset); |
@@ -1519,6 +1565,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1519 | if ($targetPage == Router::$PAGE_SAVE_PLUGINSADMIN) { | 1565 | if ($targetPage == Router::$PAGE_SAVE_PLUGINSADMIN) { |
1520 | try { | 1566 | try { |
1521 | if (isset($_POST['parameters_form'])) { | 1567 | if (isset($_POST['parameters_form'])) { |
1568 | $pluginManager->executeHooks('save_plugin_parameters', $_POST); | ||
1522 | unset($_POST['parameters_form']); | 1569 | unset($_POST['parameters_form']); |
1523 | foreach ($_POST as $param => $value) { | 1570 | foreach ($_POST as $param => $value) { |
1524 | $conf->set('plugins.'. $param, escape($value)); | 1571 | $conf->set('plugins.'. $param, escape($value)); |
@@ -1558,7 +1605,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, | |||
1558 | $ids = []; | 1605 | $ids = []; |
1559 | foreach ($LINKSDB as $link) { | 1606 | foreach ($LINKSDB as $link) { |
1560 | // A note or not HTTP(S) | 1607 | // A note or not HTTP(S) |
1561 | if ($link['url'][0] === '?' || ! startsWith(strtolower($link['url']), 'http')) { | 1608 | if (is_note($link['url']) || ! startsWith(strtolower($link['url']), 'http')) { |
1562 | continue; | 1609 | continue; |
1563 | } | 1610 | } |
1564 | $ids[] = $link['id']; | 1611 | $ids[] = $link['id']; |
@@ -1662,11 +1709,7 @@ function buildLinkList($PAGE, $LINKSDB, $conf, $pluginManager, $loginManager) | |||
1662 | $linkDisp = array(); | 1709 | $linkDisp = array(); |
1663 | while ($i<$end && $i<count($keys)) { | 1710 | while ($i<$end && $i<count($keys)) { |
1664 | $link = $linksToDisplay[$keys[$i]]; | 1711 | $link = $linksToDisplay[$keys[$i]]; |
1665 | $link['description'] = format_description( | 1712 | $link['description'] = format_description($link['description']); |
1666 | $link['description'], | ||
1667 | $conf->get('redirector.url'), | ||
1668 | $conf->get('redirector.encode_url') | ||
1669 | ); | ||
1670 | $classLi = ($i % 2) != 0 ? '' : 'publicLinkHightLight'; | 1713 | $classLi = ($i % 2) != 0 ? '' : 'publicLinkHightLight'; |
1671 | $link['class'] = $link['private'] == 0 ? $classLi : 'private'; | 1714 | $link['class'] = $link['private'] == 0 ? $classLi : 'private'; |
1672 | $link['timestamp'] = $link['created']->getTimestamp(); | 1715 | $link['timestamp'] = $link['created']->getTimestamp(); |
@@ -1727,7 +1770,6 @@ function buildLinkList($PAGE, $LINKSDB, $conf, $pluginManager, $loginManager) | |||
1727 | 'search_term' => $searchterm, | 1770 | 'search_term' => $searchterm, |
1728 | 'search_tags' => $searchtags, | 1771 | 'search_tags' => $searchtags, |
1729 | 'visibility' => ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : '', | 1772 | 'visibility' => ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : '', |
1730 | 'redirector' => $conf->get('redirector.url'), // Optional redirector URL. | ||
1731 | 'links' => $linkDisp, | 1773 | 'links' => $linkDisp, |
1732 | ); | 1774 | ); |
1733 | 1775 | ||
@@ -1877,9 +1919,7 @@ try { | |||
1877 | $linkDb = new LinkDB( | 1919 | $linkDb = new LinkDB( |
1878 | $conf->get('resource.datastore'), | 1920 | $conf->get('resource.datastore'), |
1879 | $loginManager->isLoggedIn(), | 1921 | $loginManager->isLoggedIn(), |
1880 | $conf->get('privacy.hide_public_links'), | 1922 | $conf->get('privacy.hide_public_links') |
1881 | $conf->get('redirector.url'), | ||
1882 | $conf->get('redirector.encode_url') | ||
1883 | ); | 1923 | ); |
1884 | 1924 | ||
1885 | $container = new \Slim\Container(); | 1925 | $container = new \Slim\Container(); |
@@ -1902,7 +1942,7 @@ $app->group('/api/v1', function () { | |||
1902 | $this->put('/tags/{tagName:[\w]+}', '\Shaarli\Api\Controllers\Tags:putTag')->setName('putTag'); | 1942 | $this->put('/tags/{tagName:[\w]+}', '\Shaarli\Api\Controllers\Tags:putTag')->setName('putTag'); |
1903 | $this->delete('/tags/{tagName:[\w]+}', '\Shaarli\Api\Controllers\Tags:deleteTag')->setName('deleteTag'); | 1943 | $this->delete('/tags/{tagName:[\w]+}', '\Shaarli\Api\Controllers\Tags:deleteTag')->setName('deleteTag'); |
1904 | 1944 | ||
1905 | $this->get('/history', '\Shaarli\Api\Controllers\History:getHistory')->setName('getHistory'); | 1945 | $this->get('/history', '\Shaarli\Api\Controllers\HistoryController:getHistory')->setName('getHistory'); |
1906 | })->add('\Shaarli\Api\ApiMiddleware'); | 1946 | })->add('\Shaarli\Api\ApiMiddleware'); |
1907 | 1947 | ||
1908 | $response = $app->run(true); | 1948 | $response = $app->run(true); |
diff --git a/package.json b/package.json index 3dd1e0fc..f3d9b51e 100644 --- a/package.json +++ b/package.json | |||
@@ -6,7 +6,7 @@ | |||
6 | "dependencies": { | 6 | "dependencies": { |
7 | "awesomplete": "^1.1.2", | 7 | "awesomplete": "^1.1.2", |
8 | "blazy": "^1.8.2", | 8 | "blazy": "^1.8.2", |
9 | "font-awesome": "^4.7.0", | 9 | "fork-awesome": "^1.1.7", |
10 | "pure-extras": "^1.0.0", | 10 | "pure-extras": "^1.0.0", |
11 | "purecss": "^1.0.0" | 11 | "purecss": "^1.0.0" |
12 | }, | 12 | }, |
@@ -21,7 +21,7 @@ | |||
21 | "eslint-plugin-import": "^2.8.0", | 21 | "eslint-plugin-import": "^2.8.0", |
22 | "extract-text-webpack-plugin": "^3.0.2", | 22 | "extract-text-webpack-plugin": "^3.0.2", |
23 | "file-loader": "^1.1.6", | 23 | "file-loader": "^1.1.6", |
24 | "node-sass": "^4.7.2", | 24 | "node-sass": "^4.12.0", |
25 | "sass-lint": "^1.12.1", | 25 | "sass-lint": "^1.12.1", |
26 | "sass-loader": "^6.0.6", | 26 | "sass-loader": "^6.0.6", |
27 | "style-loader": "^0.19.1", | 27 | "style-loader": "^0.19.1", |
diff --git a/phpdoc.dist.xml b/phpdoc.dist.xml new file mode 100644 index 00000000..3878550e --- /dev/null +++ b/phpdoc.dist.xml | |||
@@ -0,0 +1,21 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
2 | <phpdoc> | ||
3 | <title><![CDATA[Shaarli API Reference]]></title> | ||
4 | <parser> | ||
5 | <encoding>utf8</encoding> | ||
6 | <markers> | ||
7 | <item>FIXME</item> | ||
8 | <item>TODO</item> | ||
9 | <item>WIP</item> | ||
10 | </markers> | ||
11 | <target>doc/phpdoc</target> | ||
12 | </parser> | ||
13 | <transformer> | ||
14 | <target>doc/phpdoc</target> | ||
15 | </transformer> | ||
16 | <files> | ||
17 | <file>index.php</file> | ||
18 | <directory>application</directory> | ||
19 | <directory>plugins</directory> | ||
20 | </files> | ||
21 | </phpdoc> | ||
diff --git a/plugins/addlink_toolbar/addlink_toolbar.php b/plugins/addlink_toolbar/addlink_toolbar.php index 8c05a231..8bf4ed46 100644 --- a/plugins/addlink_toolbar/addlink_toolbar.php +++ b/plugins/addlink_toolbar/addlink_toolbar.php | |||
@@ -5,6 +5,8 @@ | |||
5 | * Adds the addlink input on the linklist page. | 5 | * Adds the addlink input on the linklist page. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | use Shaarli\Router; | ||
9 | |||
8 | /** | 10 | /** |
9 | * When linklist is displayed, add play videos to header's toolbar. | 11 | * When linklist is displayed, add play videos to header's toolbar. |
10 | * | 12 | * |
diff --git a/plugins/archiveorg/archiveorg.php b/plugins/archiveorg/archiveorg.php index 5dcea5a6..0ee1c73c 100644 --- a/plugins/archiveorg/archiveorg.php +++ b/plugins/archiveorg/archiveorg.php | |||
@@ -5,6 +5,8 @@ | |||
5 | * Add an icon in the link list for archive.org. | 5 | * Add an icon in the link list for archive.org. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | use Shaarli\Plugin\PluginManager; | ||
9 | |||
8 | /** | 10 | /** |
9 | * Add archive.org icon to link_plugin when rendering linklist. | 11 | * Add archive.org icon to link_plugin when rendering linklist. |
10 | * | 12 | * |
diff --git a/plugins/default_colors/default_colors.css.template b/plugins/default_colors/default_colors.css.template new file mode 100644 index 00000000..87e22a08 --- /dev/null +++ b/plugins/default_colors/default_colors.css.template | |||
@@ -0,0 +1,3 @@ | |||
1 | :root { | ||
2 | %s | ||
3 | } | ||
diff --git a/plugins/default_colors/default_colors.meta b/plugins/default_colors/default_colors.meta new file mode 100644 index 00000000..108962c6 --- /dev/null +++ b/plugins/default_colors/default_colors.meta | |||
@@ -0,0 +1,5 @@ | |||
1 | description="Override default theme colors. Use any CSS valid color." | ||
2 | parameters="DEFAULT_COLORS_MAIN;DEFAULT_COLORS_BACKGROUND;DEFAULT_COLORS_DARK_MAIN" | ||
3 | parameter.DEFAULT_COLORS_MAIN="Main color (navbar green)" | ||
4 | parameter.DEFAULT_COLORS_BACKGROUND="Background color (light grey)" | ||
5 | parameter.DEFAULT_COLORS_DARK_MAIN="Dark main color (e.g. visited links)" | ||
diff --git a/plugins/default_colors/default_colors.php b/plugins/default_colors/default_colors.php new file mode 100644 index 00000000..1928cc9f --- /dev/null +++ b/plugins/default_colors/default_colors.php | |||
@@ -0,0 +1,111 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Plugin default_colors. | ||
5 | * | ||
6 | * Allow users to easily overrides colors of the default theme. | ||
7 | */ | ||
8 | |||
9 | use Shaarli\Config\ConfigManager; | ||
10 | use Shaarli\Plugin\PluginManager; | ||
11 | |||
12 | const DEFAULT_COLORS_PLACEHOLDERS = [ | ||
13 | 'DEFAULT_COLORS_MAIN', | ||
14 | 'DEFAULT_COLORS_BACKGROUND', | ||
15 | 'DEFAULT_COLORS_DARK_MAIN', | ||
16 | ]; | ||
17 | |||
18 | /** | ||
19 | * Display an error if the plugin is active a no color is configured. | ||
20 | * | ||
21 | * @param $conf ConfigManager instance | ||
22 | * | ||
23 | * @return array|null The errors array or null of there is none. | ||
24 | */ | ||
25 | function default_colors_init($conf) | ||
26 | { | ||
27 | $params = ''; | ||
28 | foreach (DEFAULT_COLORS_PLACEHOLDERS as $placeholder) { | ||
29 | $params .= trim($conf->get('plugins.'. $placeholder, '')); | ||
30 | } | ||
31 | |||
32 | if (empty($params)) { | ||
33 | $error = t('Default colors plugin error: '. | ||
34 | 'This plugin is active and no custom color is configured.'); | ||
35 | return array($error); | ||
36 | } | ||
37 | } | ||
38 | |||
39 | /** | ||
40 | * When plugin parameters are saved, we regenerate the custom CSS file with provided settings. | ||
41 | * | ||
42 | * @param array $data $_POST array | ||
43 | * | ||
44 | * @return array Updated $_POST array | ||
45 | */ | ||
46 | function hook_default_colors_save_plugin_parameters($data) | ||
47 | { | ||
48 | $file = PluginManager::$PLUGINS_PATH . '/default_colors/default_colors.css'; | ||
49 | $template = file_get_contents(PluginManager::$PLUGINS_PATH . '/default_colors/default_colors.css.template'); | ||
50 | $content = ''; | ||
51 | foreach (DEFAULT_COLORS_PLACEHOLDERS as $rule) { | ||
52 | $content .= ! empty($data[$rule]) | ||
53 | ? default_colors_format_css_rule($data, $rule) .';'. PHP_EOL | ||
54 | : ''; | ||
55 | } | ||
56 | |||
57 | if (! empty($content)) { | ||
58 | file_put_contents($file, sprintf($template, $content)); | ||
59 | } | ||
60 | |||
61 | return $data; | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * When linklist is displayed, include default_colors CSS file. | ||
66 | * | ||
67 | * @param array $data - header data. | ||
68 | * | ||
69 | * @return mixed - header data with default_colors CSS file added. | ||
70 | */ | ||
71 | function hook_default_colors_render_includes($data) | ||
72 | { | ||
73 | $file = PluginManager::$PLUGINS_PATH . '/default_colors/default_colors.css'; | ||
74 | if (file_exists($file )) { | ||
75 | $data['css_files'][] = $file ; | ||
76 | } | ||
77 | |||
78 | return $data; | ||
79 | } | ||
80 | |||
81 | /** | ||
82 | * Create a valid CSS rule from parameters settings and plugin parameter. | ||
83 | * | ||
84 | * @param array $data $_POST array | ||
85 | * @param string $parameter Plugin parameter name | ||
86 | * | ||
87 | * @return string CSS rules for the provided parameter and its matching value. | ||
88 | */ | ||
89 | function default_colors_format_css_rule($data, $parameter) | ||
90 | { | ||
91 | if (empty($data[$parameter])) { | ||
92 | return ''; | ||
93 | } | ||
94 | |||
95 | $key = str_replace('DEFAULT_COLORS_', '', $parameter); | ||
96 | $key = str_replace('_', '-', strtolower($key)) .'-color'; | ||
97 | return ' --'. $key .': '. $data[$parameter]; | ||
98 | } | ||
99 | |||
100 | |||
101 | /** | ||
102 | * This function is never called, but contains translation calls for GNU gettext extraction. | ||
103 | */ | ||
104 | function default_colors_translation() | ||
105 | { | ||
106 | // meta | ||
107 | t('Override default theme colors. Use any CSS valid color.'); | ||
108 | t('Main color (navbar green)'); | ||
109 | t('Background color (light grey)'); | ||
110 | t('Dark main color (e.g. visited links)'); | ||
111 | } | ||
diff --git a/plugins/demo_plugin/demo_plugin.meta b/plugins/demo_plugin/demo_plugin.meta index b063ecb7..cd616441 100644 --- a/plugins/demo_plugin/demo_plugin.meta +++ b/plugins/demo_plugin/demo_plugin.meta | |||
@@ -1 +1,4 @@ | |||
1 | description="A demo plugin covering all use cases for template designers and plugin developers." | 1 | description="A demo plugin covering all use cases for template designers and plugin developers." |
2 | parameters="DEMO_PLUGIN_PARAMETER;DEMO_PLUGIN_OTHER_PARAMETER" | ||
3 | parameter.DEMO_PLUGIN_PARAMETER="This is a parameter dedicated to the demo plugin. It'll be suffixed." | ||
4 | parameter.DEMO_PLUGIN_OTHER_PARAMETER="Other demo parameter" | ||
diff --git a/plugins/demo_plugin/demo_plugin.php b/plugins/demo_plugin/demo_plugin.php index ca520d15..71ba7495 100644 --- a/plugins/demo_plugin/demo_plugin.php +++ b/plugins/demo_plugin/demo_plugin.php | |||
@@ -15,6 +15,8 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | use Shaarli\Config\ConfigManager; | 17 | use Shaarli\Config\ConfigManager; |
18 | use Shaarli\Plugin\PluginManager; | ||
19 | use Shaarli\Router; | ||
18 | 20 | ||
19 | /** | 21 | /** |
20 | * In the footer hook, there is a working example of a translation extension for Shaarli. | 22 | * In the footer hook, there is a working example of a translation extension for Shaarli. |
@@ -455,10 +457,29 @@ function hook_demo_plugin_render_feed($data) | |||
455 | } | 457 | } |
456 | 458 | ||
457 | /** | 459 | /** |
460 | * When plugin parameters are saved. | ||
461 | * | ||
462 | * @param array $data $_POST array | ||
463 | * | ||
464 | * @return array Updated $_POST array | ||
465 | */ | ||
466 | function hook_demo_plugin_save_plugin_parameters($data) | ||
467 | { | ||
468 | // Here we edit the provided value, but we can use this to generate config files, etc. | ||
469 | if (! empty($data['DEMO_PLUGIN_PARAMETER']) && ! endsWith($data['DEMO_PLUGIN_PARAMETER'], '_SUFFIX')) { | ||
470 | $data['DEMO_PLUGIN_PARAMETER'] .= '_SUFFIX'; | ||
471 | } | ||
472 | |||
473 | return $data; | ||
474 | } | ||
475 | |||
476 | /** | ||
458 | * This function is never called, but contains translation calls for GNU gettext extraction. | 477 | * This function is never called, but contains translation calls for GNU gettext extraction. |
459 | */ | 478 | */ |
460 | function demo_dummy_translation() | 479 | function demo_dummy_translation() |
461 | { | 480 | { |
462 | // meta | 481 | // meta |
463 | t('A demo plugin covering all use cases for template designers and plugin developers.'); | 482 | t('A demo plugin covering all use cases for template designers and plugin developers.'); |
483 | t('This is a parameter dedicated to the demo plugin. It\'ll be suffixed.'); | ||
484 | t('Other demo parameter'); | ||
464 | } | 485 | } |
diff --git a/plugins/isso/isso.php b/plugins/isso/isso.php index 378c11af..dab75dd5 100644 --- a/plugins/isso/isso.php +++ b/plugins/isso/isso.php | |||
@@ -5,6 +5,8 @@ | |||
5 | */ | 5 | */ |
6 | 6 | ||
7 | use Shaarli\Config\ConfigManager; | 7 | use Shaarli\Config\ConfigManager; |
8 | use Shaarli\Plugin\PluginManager; | ||
9 | use Shaarli\Router; | ||
8 | 10 | ||
9 | /** | 11 | /** |
10 | * Display an error everywhere if the plugin is enabled without configuration. | 12 | * Display an error everywhere if the plugin is enabled without configuration. |
diff --git a/plugins/markdown/markdown.php b/plugins/markdown/markdown.php index 8823af91..628970d6 100644 --- a/plugins/markdown/markdown.php +++ b/plugins/markdown/markdown.php | |||
@@ -7,6 +7,8 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | use Shaarli\Config\ConfigManager; | 9 | use Shaarli\Config\ConfigManager; |
10 | use Shaarli\Plugin\PluginManager; | ||
11 | use Shaarli\Router; | ||
10 | 12 | ||
11 | /* | 13 | /* |
12 | * If this tag is used on a shaare, the description won't be processed by Parsedown. | 14 | * If this tag is used on a shaare, the description won't be processed by Parsedown. |
diff --git a/plugins/piwik/piwik.php b/plugins/piwik/piwik.php index ca00c2be..17b1aecc 100644 --- a/plugins/piwik/piwik.php +++ b/plugins/piwik/piwik.php | |||
@@ -4,6 +4,8 @@ | |||
4 | * Adds tracking code on each page. | 4 | * Adds tracking code on each page. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | use Shaarli\Plugin\PluginManager; | ||
8 | |||
7 | /** | 9 | /** |
8 | * Initialization function. | 10 | * Initialization function. |
9 | * It will be called when the plugin is loaded. | 11 | * It will be called when the plugin is loaded. |
diff --git a/plugins/playvideos/playvideos.php b/plugins/playvideos/playvideos.php index c6d6b0cc..0341ed59 100644 --- a/plugins/playvideos/playvideos.php +++ b/plugins/playvideos/playvideos.php | |||
@@ -6,6 +6,9 @@ | |||
6 | * Note: this plugin adds jQuery. | 6 | * Note: this plugin adds jQuery. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | use Shaarli\Plugin\PluginManager; | ||
10 | use Shaarli\Router; | ||
11 | |||
9 | /** | 12 | /** |
10 | * When linklist is displayed, add play videos to header's toolbar. | 13 | * When linklist is displayed, add play videos to header's toolbar. |
11 | * | 14 | * |
diff --git a/plugins/pubsubhubbub/pubsubhubbub.php b/plugins/pubsubhubbub/pubsubhubbub.php index 9f0342a3..2878c050 100644 --- a/plugins/pubsubhubbub/pubsubhubbub.php +++ b/plugins/pubsubhubbub/pubsubhubbub.php | |||
@@ -11,6 +11,9 @@ | |||
11 | 11 | ||
12 | use pubsubhubbub\publisher\Publisher; | 12 | use pubsubhubbub\publisher\Publisher; |
13 | use Shaarli\Config\ConfigManager; | 13 | use Shaarli\Config\ConfigManager; |
14 | use Shaarli\Feed\FeedBuilder; | ||
15 | use Shaarli\Plugin\PluginManager; | ||
16 | use Shaarli\Router; | ||
14 | 17 | ||
15 | /** | 18 | /** |
16 | * Plugin init function - set the hub to the default appspot one. | 19 | * Plugin init function - set the hub to the default appspot one. |
diff --git a/plugins/qrcode/qrcode.html b/plugins/qrcode/qrcode.html index dc214ed1..a21f7932 100644 --- a/plugins/qrcode/qrcode.html +++ b/plugins/qrcode/qrcode.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <div class="linkqrcode"> | 1 | <div class="linkqrcode"> |
2 | <a href="http://qrfree.kaywa.com/?l=1&s=8&d=%s" onclick="showQrCode(this); return false;" class="qrcode" data-permalink="%s"> | 2 | <a href="#" onclick="showQrCode(this); return false;" class="qrcode" data-permalink="%s"> |
3 | <img src="%s/qrcode/qrcode.png" class="linklist-plugin-icon" title="QR-Code" alt="QRCode"> | 3 | <img src="%s/qrcode/qrcode.png" class="linklist-plugin-icon" title="QR-Code" alt="QRCode"> |
4 | </a> | 4 | </a> |
5 | </div> | 5 | </div> |
diff --git a/plugins/qrcode/qrcode.php b/plugins/qrcode/qrcode.php index 4b59caa0..c1d237d5 100644 --- a/plugins/qrcode/qrcode.php +++ b/plugins/qrcode/qrcode.php | |||
@@ -5,6 +5,9 @@ | |||
5 | * Display a QRCode icon in link list. | 5 | * Display a QRCode icon in link list. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | use Shaarli\Plugin\PluginManager; | ||
9 | use Shaarli\Router; | ||
10 | |||
8 | /** | 11 | /** |
9 | * Add qrcode icon to link_plugin when rendering linklist. | 12 | * Add qrcode icon to link_plugin when rendering linklist. |
10 | * | 13 | * |
@@ -19,7 +22,6 @@ function hook_qrcode_render_linklist($data) | |||
19 | foreach ($data['links'] as &$value) { | 22 | foreach ($data['links'] as &$value) { |
20 | $qrcode = sprintf( | 23 | $qrcode = sprintf( |
21 | $qrcode_html, | 24 | $qrcode_html, |
22 | urlencode($value['url']), | ||
23 | $value['url'], | 25 | $value['url'], |
24 | PluginManager::$PLUGINS_PATH | 26 | PluginManager::$PLUGINS_PATH |
25 | ); | 27 | ); |
diff --git a/plugins/wallabag/WallabagInstance.php b/plugins/wallabag/WallabagInstance.php index eb8ab618..f4a0a92b 100644 --- a/plugins/wallabag/WallabagInstance.php +++ b/plugins/wallabag/WallabagInstance.php | |||
@@ -1,4 +1,5 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Wallabag; | ||
2 | 3 | ||
3 | /** | 4 | /** |
4 | * Class WallabagInstance. | 5 | * Class WallabagInstance. |
diff --git a/plugins/wallabag/wallabag.php b/plugins/wallabag/wallabag.php index a6476c71..bc35df08 100644 --- a/plugins/wallabag/wallabag.php +++ b/plugins/wallabag/wallabag.php | |||
@@ -1,11 +1,11 @@ | |||
1 | <?php | 1 | <?php |
2 | |||
3 | /** | 2 | /** |
4 | * Plugin Wallabag. | 3 | * Wallabag plugin |
5 | */ | 4 | */ |
6 | 5 | ||
7 | require_once 'WallabagInstance.php'; | ||
8 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
7 | use Shaarli\Plugin\PluginManager; | ||
8 | use Shaarli\Plugin\Wallabag\WallabagInstance; | ||
9 | 9 | ||
10 | /** | 10 | /** |
11 | * Init function, return an error if the server is not set. | 11 | * Init function, return an error if the server is not set. |
diff --git a/shaarli_version.php b/shaarli_version.php index 7db5053d..c8334a2f 100644 --- a/shaarli_version.php +++ b/shaarli_version.php | |||
@@ -1 +1 @@ | |||
<?php /* 0.10.4 */ ?> | <?php /* 0.11.0 */ ?> | ||
diff --git a/tests/ApplicationUtilsTest.php b/tests/ApplicationUtilsTest.php index fe5f84ce..82f8804d 100644 --- a/tests/ApplicationUtilsTest.php +++ b/tests/ApplicationUtilsTest.php | |||
@@ -1,33 +1,14 @@ | |||
1 | <?php | 1 | <?php |
2 | use Shaarli\Config\ConfigManager; | 2 | namespace Shaarli; |
3 | |||
4 | /** | ||
5 | * ApplicationUtils' tests | ||
6 | */ | ||
7 | 3 | ||
8 | require_once 'application/ApplicationUtils.php'; | 4 | use Shaarli\Config\ConfigManager; |
9 | |||
10 | /** | ||
11 | * Fake ApplicationUtils class to avoid HTTP requests | ||
12 | */ | ||
13 | class FakeApplicationUtils extends ApplicationUtils | ||
14 | { | ||
15 | public static $VERSION_CODE = ''; | ||
16 | |||
17 | /** | ||
18 | * Toggle HTTP requests, allow overriding the version code | ||
19 | */ | ||
20 | public static function getVersion($url, $timeout = 0) | ||
21 | { | ||
22 | return self::$VERSION_CODE; | ||
23 | } | ||
24 | } | ||
25 | 5 | ||
6 | require_once 'tests/utils/FakeApplicationUtils.php'; | ||
26 | 7 | ||
27 | /** | 8 | /** |
28 | * Unitary tests for Shaarli utilities | 9 | * Unitary tests for Shaarli utilities |
29 | */ | 10 | */ |
30 | class ApplicationUtilsTest extends PHPUnit_Framework_TestCase | 11 | class ApplicationUtilsTest extends \PHPUnit\Framework\TestCase |
31 | { | 12 | { |
32 | protected static $testUpdateFile = 'sandbox/update.txt'; | 13 | protected static $testUpdateFile = 'sandbox/update.txt'; |
33 | protected static $testVersion = '0.5.0'; | 14 | protected static $testVersion = '0.5.0'; |
diff --git a/tests/FileUtilsTest.php b/tests/FileUtilsTest.php index d764e495..57719175 100644 --- a/tests/FileUtilsTest.php +++ b/tests/FileUtilsTest.php | |||
@@ -1,13 +1,15 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/FileUtils.php'; | 3 | namespace Shaarli; |
4 | |||
5 | use Exception; | ||
4 | 6 | ||
5 | /** | 7 | /** |
6 | * Class FileUtilsTest | 8 | * Class FileUtilsTest |
7 | * | 9 | * |
8 | * Test file utility class. | 10 | * Test file utility class. |
9 | */ | 11 | */ |
10 | class FileUtilsTest extends PHPUnit_Framework_TestCase | 12 | class FileUtilsTest extends \PHPUnit\Framework\TestCase |
11 | { | 13 | { |
12 | /** | 14 | /** |
13 | * @var string Test file path. | 15 | * @var string Test file path. |
@@ -48,7 +50,7 @@ class FileUtilsTest extends PHPUnit_Framework_TestCase | |||
48 | /** | 50 | /** |
49 | * File not writable: raise an exception. | 51 | * File not writable: raise an exception. |
50 | * | 52 | * |
51 | * @expectedException IOException | 53 | * @expectedException Shaarli\Exceptions\IOException |
52 | * @expectedExceptionMessage Error accessing "sandbox/flat.db" | 54 | * @expectedExceptionMessage Error accessing "sandbox/flat.db" |
53 | */ | 55 | */ |
54 | public function testWriteWithoutPermission() | 56 | public function testWriteWithoutPermission() |
@@ -61,7 +63,7 @@ class FileUtilsTest extends PHPUnit_Framework_TestCase | |||
61 | /** | 63 | /** |
62 | * Folder non existent: raise an exception. | 64 | * Folder non existent: raise an exception. |
63 | * | 65 | * |
64 | * @expectedException IOException | 66 | * @expectedException Shaarli\Exceptions\IOException |
65 | * @expectedExceptionMessage Error accessing "nopefolder" | 67 | * @expectedExceptionMessage Error accessing "nopefolder" |
66 | */ | 68 | */ |
67 | public function testWriteFolderDoesNotExist() | 69 | public function testWriteFolderDoesNotExist() |
@@ -72,7 +74,7 @@ class FileUtilsTest extends PHPUnit_Framework_TestCase | |||
72 | /** | 74 | /** |
73 | * Folder non writable: raise an exception. | 75 | * Folder non writable: raise an exception. |
74 | * | 76 | * |
75 | * @expectedException IOException | 77 | * @expectedException Shaarli\Exceptions\IOException |
76 | * @expectedExceptionMessage Error accessing "sandbox" | 78 | * @expectedExceptionMessage Error accessing "sandbox" |
77 | */ | 79 | */ |
78 | public function testWriteFolderPermission() | 80 | public function testWriteFolderPermission() |
diff --git a/tests/HistoryTest.php b/tests/HistoryTest.php index d3bef5a3..8303e53a 100644 --- a/tests/HistoryTest.php +++ b/tests/HistoryTest.php | |||
@@ -1,9 +1,11 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/History.php'; | 3 | namespace Shaarli; |
4 | 4 | ||
5 | use DateTime; | ||
6 | use Exception; | ||
5 | 7 | ||
6 | class HistoryTest extends PHPUnit_Framework_TestCase | 8 | class HistoryTest extends \PHPUnit\Framework\TestCase |
7 | { | 9 | { |
8 | /** | 10 | /** |
9 | * @var string History file path | 11 | * @var string History file path |
diff --git a/tests/LanguagesTest.php b/tests/LanguagesTest.php index 4951e09a..de83f291 100644 --- a/tests/LanguagesTest.php +++ b/tests/LanguagesTest.php | |||
@@ -7,7 +7,7 @@ use Shaarli\Config\ConfigManager; | |||
7 | /** | 7 | /** |
8 | * Class LanguagesTest. | 8 | * Class LanguagesTest. |
9 | */ | 9 | */ |
10 | class LanguagesTest extends \PHPUnit_Framework_TestCase | 10 | class LanguagesTest extends \PHPUnit\Framework\TestCase |
11 | { | 11 | { |
12 | /** | 12 | /** |
13 | * @var string Config file path (without extension). | 13 | * @var string Config file path (without extension). |
diff --git a/tests/PluginManagerTest.php b/tests/PluginManagerTest.php index 01de959c..71761ac1 100644 --- a/tests/PluginManagerTest.php +++ b/tests/PluginManagerTest.php | |||
@@ -1,16 +1,12 @@ | |||
1 | <?php | 1 | <?php |
2 | use Shaarli\Config\ConfigManager; | 2 | namespace Shaarli\Plugin; |
3 | 3 | ||
4 | /** | 4 | use Shaarli\Config\ConfigManager; |
5 | * Plugin Manager tests | ||
6 | */ | ||
7 | |||
8 | require_once 'application/PluginManager.php'; | ||
9 | 5 | ||
10 | /** | 6 | /** |
11 | * Unit tests for Plugins | 7 | * Unit tests for Plugins |
12 | */ | 8 | */ |
13 | class PluginManagerTest extends PHPUnit_Framework_TestCase | 9 | class PluginManagerTest extends \PHPUnit\Framework\TestCase |
14 | { | 10 | { |
15 | /** | 11 | /** |
16 | * Path to tests plugin. | 12 | * Path to tests plugin. |
diff --git a/tests/RouterTest.php b/tests/RouterTest.php index abf1bd5f..0cd49bb8 100644 --- a/tests/RouterTest.php +++ b/tests/RouterTest.php | |||
@@ -1,15 +1,10 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | namespace Shaarli; | |
3 | /** | ||
4 | * Router tests | ||
5 | */ | ||
6 | |||
7 | require_once 'application/Router.php'; | ||
8 | 3 | ||
9 | /** | 4 | /** |
10 | * Unit tests for Router | 5 | * Unit tests for Router |
11 | */ | 6 | */ |
12 | class RouterTest extends PHPUnit_Framework_TestCase | 7 | class RouterTest extends \PHPUnit\Framework\TestCase |
13 | { | 8 | { |
14 | /** | 9 | /** |
15 | * Test findPage: login page output. | 10 | * Test findPage: login page output. |
diff --git a/tests/TimeZoneTest.php b/tests/TimeZoneTest.php index 127fdc19..02bf060f 100644 --- a/tests/TimeZoneTest.php +++ b/tests/TimeZoneTest.php | |||
@@ -8,7 +8,7 @@ require_once 'application/TimeZone.php'; | |||
8 | /** | 8 | /** |
9 | * Unitary tests for timezone utilities | 9 | * Unitary tests for timezone utilities |
10 | */ | 10 | */ |
11 | class TimeZoneTest extends PHPUnit_Framework_TestCase | 11 | class TimeZoneTest extends PHPUnit\Framework\TestCase |
12 | { | 12 | { |
13 | /** | 13 | /** |
14 | * @var array of timezones | 14 | * @var array of timezones |
diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php index d0abd996..8225d95a 100644 --- a/tests/UtilsTest.php +++ b/tests/UtilsTest.php | |||
@@ -10,7 +10,7 @@ require_once 'application/Languages.php'; | |||
10 | /** | 10 | /** |
11 | * Unitary tests for Shaarli utilities | 11 | * Unitary tests for Shaarli utilities |
12 | */ | 12 | */ |
13 | class UtilsTest extends PHPUnit_Framework_TestCase | 13 | class UtilsTest extends PHPUnit\Framework\TestCase |
14 | { | 14 | { |
15 | // Log file | 15 | // Log file |
16 | protected static $testLogFile = 'tests.log'; | 16 | protected static $testLogFile = 'tests.log'; |
diff --git a/tests/api/ApiMiddlewareTest.php b/tests/api/ApiMiddlewareTest.php index 23a56b1c..0b9b03f2 100644 --- a/tests/api/ApiMiddlewareTest.php +++ b/tests/api/ApiMiddlewareTest.php | |||
@@ -2,7 +2,6 @@ | |||
2 | namespace Shaarli\Api; | 2 | namespace Shaarli\Api; |
3 | 3 | ||
4 | use Shaarli\Config\ConfigManager; | 4 | use Shaarli\Config\ConfigManager; |
5 | |||
6 | use Slim\Container; | 5 | use Slim\Container; |
7 | use Slim\Http\Environment; | 6 | use Slim\Http\Environment; |
8 | use Slim\Http\Request; | 7 | use Slim\Http\Request; |
@@ -18,7 +17,7 @@ use Slim\Http\Response; | |||
18 | * | 17 | * |
19 | * @package Api | 18 | * @package Api |
20 | */ | 19 | */ |
21 | class ApiMiddlewareTest extends \PHPUnit_Framework_TestCase | 20 | class ApiMiddlewareTest extends \PHPUnit\Framework\TestCase |
22 | { | 21 | { |
23 | /** | 22 | /** |
24 | * @var string datastore to test write operations | 23 | * @var string datastore to test write operations |
diff --git a/tests/api/ApiUtilsTest.php b/tests/api/ApiUtilsTest.php index df4e189a..ea0ae500 100644 --- a/tests/api/ApiUtilsTest.php +++ b/tests/api/ApiUtilsTest.php | |||
@@ -2,12 +2,12 @@ | |||
2 | 2 | ||
3 | namespace Shaarli\Api; | 3 | namespace Shaarli\Api; |
4 | 4 | ||
5 | use Shaarli\Base64Url; | 5 | use Shaarli\Http\Base64Url; |
6 | 6 | ||
7 | /** | 7 | /** |
8 | * Class ApiUtilsTest | 8 | * Class ApiUtilsTest |
9 | */ | 9 | */ |
10 | class ApiUtilsTest extends \PHPUnit_Framework_TestCase | 10 | class ApiUtilsTest extends \PHPUnit\Framework\TestCase |
11 | { | 11 | { |
12 | /** | 12 | /** |
13 | * Force the timezone for ISO datetimes. | 13 | * Force the timezone for ISO datetimes. |
diff --git a/tests/api/controllers/history/HistoryTest.php b/tests/api/controllers/history/HistoryTest.php index ff34e16d..e287f239 100644 --- a/tests/api/controllers/history/HistoryTest.php +++ b/tests/api/controllers/history/HistoryTest.php | |||
@@ -1,9 +1,9 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | |||
4 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
5 | 4 | ||
6 | use Shaarli\Config\ConfigManager; | 5 | use Shaarli\Config\ConfigManager; |
6 | use Shaarli\History; | ||
7 | use Slim\Container; | 7 | use Slim\Container; |
8 | use Slim\Http\Environment; | 8 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 9 | use Slim\Http\Request; |
@@ -11,7 +11,7 @@ use Slim\Http\Response; | |||
11 | 11 | ||
12 | require_once 'tests/utils/ReferenceHistory.php'; | 12 | require_once 'tests/utils/ReferenceHistory.php'; |
13 | 13 | ||
14 | class HistoryTest extends \PHPUnit_Framework_TestCase | 14 | class HistoryTest extends \PHPUnit\Framework\TestCase |
15 | { | 15 | { |
16 | /** | 16 | /** |
17 | * @var string datastore to test write operations | 17 | * @var string datastore to test write operations |
@@ -34,7 +34,7 @@ class HistoryTest extends \PHPUnit_Framework_TestCase | |||
34 | protected $container; | 34 | protected $container; |
35 | 35 | ||
36 | /** | 36 | /** |
37 | * @var History controller instance. | 37 | * @var HistoryController controller instance. |
38 | */ | 38 | */ |
39 | protected $controller; | 39 | protected $controller; |
40 | 40 | ||
@@ -49,9 +49,9 @@ class HistoryTest extends \PHPUnit_Framework_TestCase | |||
49 | $this->container = new Container(); | 49 | $this->container = new Container(); |
50 | $this->container['conf'] = $this->conf; | 50 | $this->container['conf'] = $this->conf; |
51 | $this->container['db'] = true; | 51 | $this->container['db'] = true; |
52 | $this->container['history'] = new \History(self::$testHistory); | 52 | $this->container['history'] = new History(self::$testHistory); |
53 | 53 | ||
54 | $this->controller = new History($this->container); | 54 | $this->controller = new HistoryController($this->container); |
55 | } | 55 | } |
56 | 56 | ||
57 | /** | 57 | /** |
@@ -78,35 +78,35 @@ class HistoryTest extends \PHPUnit_Framework_TestCase | |||
78 | 78 | ||
79 | $this->assertEquals($this->refHistory->count(), count($data)); | 79 | $this->assertEquals($this->refHistory->count(), count($data)); |
80 | 80 | ||
81 | $this->assertEquals(\History::DELETED, $data[0]['event']); | 81 | $this->assertEquals(History::DELETED, $data[0]['event']); |
82 | $this->assertEquals( | 82 | $this->assertEquals( |
83 | \DateTime::createFromFormat('Ymd_His', '20170303_121216')->format(\DateTime::ATOM), | 83 | \DateTime::createFromFormat('Ymd_His', '20170303_121216')->format(\DateTime::ATOM), |
84 | $data[0]['datetime'] | 84 | $data[0]['datetime'] |
85 | ); | 85 | ); |
86 | $this->assertEquals(124, $data[0]['id']); | 86 | $this->assertEquals(124, $data[0]['id']); |
87 | 87 | ||
88 | $this->assertEquals(\History::SETTINGS, $data[1]['event']); | 88 | $this->assertEquals(History::SETTINGS, $data[1]['event']); |
89 | $this->assertEquals( | 89 | $this->assertEquals( |
90 | \DateTime::createFromFormat('Ymd_His', '20170302_121215')->format(\DateTime::ATOM), | 90 | \DateTime::createFromFormat('Ymd_His', '20170302_121215')->format(\DateTime::ATOM), |
91 | $data[1]['datetime'] | 91 | $data[1]['datetime'] |
92 | ); | 92 | ); |
93 | $this->assertNull($data[1]['id']); | 93 | $this->assertNull($data[1]['id']); |
94 | 94 | ||
95 | $this->assertEquals(\History::UPDATED, $data[2]['event']); | 95 | $this->assertEquals(History::UPDATED, $data[2]['event']); |
96 | $this->assertEquals( | 96 | $this->assertEquals( |
97 | \DateTime::createFromFormat('Ymd_His', '20170301_121214')->format(\DateTime::ATOM), | 97 | \DateTime::createFromFormat('Ymd_His', '20170301_121214')->format(\DateTime::ATOM), |
98 | $data[2]['datetime'] | 98 | $data[2]['datetime'] |
99 | ); | 99 | ); |
100 | $this->assertEquals(123, $data[2]['id']); | 100 | $this->assertEquals(123, $data[2]['id']); |
101 | 101 | ||
102 | $this->assertEquals(\History::CREATED, $data[3]['event']); | 102 | $this->assertEquals(History::CREATED, $data[3]['event']); |
103 | $this->assertEquals( | 103 | $this->assertEquals( |
104 | \DateTime::createFromFormat('Ymd_His', '20170201_121214')->format(\DateTime::ATOM), | 104 | \DateTime::createFromFormat('Ymd_His', '20170201_121214')->format(\DateTime::ATOM), |
105 | $data[3]['datetime'] | 105 | $data[3]['datetime'] |
106 | ); | 106 | ); |
107 | $this->assertEquals(124, $data[3]['id']); | 107 | $this->assertEquals(124, $data[3]['id']); |
108 | 108 | ||
109 | $this->assertEquals(\History::CREATED, $data[4]['event']); | 109 | $this->assertEquals(History::CREATED, $data[4]['event']); |
110 | $this->assertEquals( | 110 | $this->assertEquals( |
111 | \DateTime::createFromFormat('Ymd_His', '20170101_121212')->format(\DateTime::ATOM), | 111 | \DateTime::createFromFormat('Ymd_His', '20170101_121212')->format(\DateTime::ATOM), |
112 | $data[4]['datetime'] | 112 | $data[4]['datetime'] |
@@ -131,7 +131,7 @@ class HistoryTest extends \PHPUnit_Framework_TestCase | |||
131 | 131 | ||
132 | $this->assertEquals(1, count($data)); | 132 | $this->assertEquals(1, count($data)); |
133 | 133 | ||
134 | $this->assertEquals(\History::DELETED, $data[0]['event']); | 134 | $this->assertEquals(History::DELETED, $data[0]['event']); |
135 | $this->assertEquals( | 135 | $this->assertEquals( |
136 | \DateTime::createFromFormat('Ymd_His', '20170303_121216')->format(\DateTime::ATOM), | 136 | \DateTime::createFromFormat('Ymd_His', '20170303_121216')->format(\DateTime::ATOM), |
137 | $data[0]['datetime'] | 137 | $data[0]['datetime'] |
@@ -156,7 +156,7 @@ class HistoryTest extends \PHPUnit_Framework_TestCase | |||
156 | 156 | ||
157 | $this->assertEquals(1, count($data)); | 157 | $this->assertEquals(1, count($data)); |
158 | 158 | ||
159 | $this->assertEquals(\History::CREATED, $data[0]['event']); | 159 | $this->assertEquals(History::CREATED, $data[0]['event']); |
160 | $this->assertEquals( | 160 | $this->assertEquals( |
161 | \DateTime::createFromFormat('Ymd_His', '20170101_121212')->format(\DateTime::ATOM), | 161 | \DateTime::createFromFormat('Ymd_His', '20170101_121212')->format(\DateTime::ATOM), |
162 | $data[0]['datetime'] | 162 | $data[0]['datetime'] |
@@ -181,7 +181,7 @@ class HistoryTest extends \PHPUnit_Framework_TestCase | |||
181 | 181 | ||
182 | $this->assertEquals(1, count($data)); | 182 | $this->assertEquals(1, count($data)); |
183 | 183 | ||
184 | $this->assertEquals(\History::DELETED, $data[0]['event']); | 184 | $this->assertEquals(History::DELETED, $data[0]['event']); |
185 | $this->assertEquals( | 185 | $this->assertEquals( |
186 | \DateTime::createFromFormat('Ymd_His', '20170303_121216')->format(\DateTime::ATOM), | 186 | \DateTime::createFromFormat('Ymd_His', '20170303_121216')->format(\DateTime::ATOM), |
187 | $data[0]['datetime'] | 187 | $data[0]['datetime'] |
@@ -206,7 +206,7 @@ class HistoryTest extends \PHPUnit_Framework_TestCase | |||
206 | 206 | ||
207 | $this->assertEquals(1, count($data)); | 207 | $this->assertEquals(1, count($data)); |
208 | 208 | ||
209 | $this->assertEquals(\History::SETTINGS, $data[0]['event']); | 209 | $this->assertEquals(History::SETTINGS, $data[0]['event']); |
210 | $this->assertEquals( | 210 | $this->assertEquals( |
211 | \DateTime::createFromFormat('Ymd_His', '20170302_121215')->format(\DateTime::ATOM), | 211 | \DateTime::createFromFormat('Ymd_His', '20170302_121215')->format(\DateTime::ATOM), |
212 | $data[0]['datetime'] | 212 | $data[0]['datetime'] |
diff --git a/tests/api/controllers/info/InfoTest.php b/tests/api/controllers/info/InfoTest.php index e437082a..e70d371b 100644 --- a/tests/api/controllers/info/InfoTest.php +++ b/tests/api/controllers/info/InfoTest.php | |||
@@ -2,7 +2,6 @@ | |||
2 | namespace Shaarli\Api\Controllers; | 2 | namespace Shaarli\Api\Controllers; |
3 | 3 | ||
4 | use Shaarli\Config\ConfigManager; | 4 | use Shaarli\Config\ConfigManager; |
5 | |||
6 | use Slim\Container; | 5 | use Slim\Container; |
7 | use Slim\Http\Environment; | 6 | use Slim\Http\Environment; |
8 | use Slim\Http\Request; | 7 | use Slim\Http\Request; |
@@ -15,7 +14,7 @@ use Slim\Http\Response; | |||
15 | * | 14 | * |
16 | * @package Api\Controllers | 15 | * @package Api\Controllers |
17 | */ | 16 | */ |
18 | class InfoTest extends \PHPUnit_Framework_TestCase | 17 | class InfoTest extends \PHPUnit\Framework\TestCase |
19 | { | 18 | { |
20 | /** | 19 | /** |
21 | * @var string datastore to test write operations | 20 | * @var string datastore to test write operations |
@@ -53,7 +52,7 @@ class InfoTest extends \PHPUnit_Framework_TestCase | |||
53 | 52 | ||
54 | $this->container = new Container(); | 53 | $this->container = new Container(); |
55 | $this->container['conf'] = $this->conf; | 54 | $this->container['conf'] = $this->conf; |
56 | $this->container['db'] = new \LinkDB(self::$testDatastore, true, false); | 55 | $this->container['db'] = new \Shaarli\Bookmark\LinkDB(self::$testDatastore, true, false); |
57 | $this->container['history'] = null; | 56 | $this->container['history'] = null; |
58 | 57 | ||
59 | $this->controller = new Info($this->container); | 58 | $this->controller = new Info($this->container); |
diff --git a/tests/api/controllers/links/DeleteLinkTest.php b/tests/api/controllers/links/DeleteLinkTest.php index 7d797137..90193e28 100644 --- a/tests/api/controllers/links/DeleteLinkTest.php +++ b/tests/api/controllers/links/DeleteLinkTest.php | |||
@@ -3,13 +3,15 @@ | |||
3 | 3 | ||
4 | namespace Shaarli\Api\Controllers; | 4 | namespace Shaarli\Api\Controllers; |
5 | 5 | ||
6 | use Shaarli\Bookmark\LinkDB; | ||
6 | use Shaarli\Config\ConfigManager; | 7 | use Shaarli\Config\ConfigManager; |
8 | use Shaarli\History; | ||
7 | use Slim\Container; | 9 | use Slim\Container; |
8 | use Slim\Http\Environment; | 10 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 11 | use Slim\Http\Request; |
10 | use Slim\Http\Response; | 12 | use Slim\Http\Response; |
11 | 13 | ||
12 | class DeleteLinkTest extends \PHPUnit_Framework_TestCase | 14 | class DeleteLinkTest extends \PHPUnit\Framework\TestCase |
13 | { | 15 | { |
14 | /** | 16 | /** |
15 | * @var string datastore to test write operations | 17 | * @var string datastore to test write operations |
@@ -32,12 +34,12 @@ class DeleteLinkTest extends \PHPUnit_Framework_TestCase | |||
32 | protected $refDB = null; | 34 | protected $refDB = null; |
33 | 35 | ||
34 | /** | 36 | /** |
35 | * @var \LinkDB instance. | 37 | * @var LinkDB instance. |
36 | */ | 38 | */ |
37 | protected $linkDB; | 39 | protected $linkDB; |
38 | 40 | ||
39 | /** | 41 | /** |
40 | * @var \History instance. | 42 | * @var HistoryController instance. |
41 | */ | 43 | */ |
42 | protected $history; | 44 | protected $history; |
43 | 45 | ||
@@ -59,10 +61,10 @@ class DeleteLinkTest extends \PHPUnit_Framework_TestCase | |||
59 | $this->conf = new ConfigManager('tests/utils/config/configJson'); | 61 | $this->conf = new ConfigManager('tests/utils/config/configJson'); |
60 | $this->refDB = new \ReferenceLinkDB(); | 62 | $this->refDB = new \ReferenceLinkDB(); |
61 | $this->refDB->write(self::$testDatastore); | 63 | $this->refDB->write(self::$testDatastore); |
62 | $this->linkDB = new \LinkDB(self::$testDatastore, true, false); | 64 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); |
63 | $refHistory = new \ReferenceHistory(); | 65 | $refHistory = new \ReferenceHistory(); |
64 | $refHistory->write(self::$testHistory); | 66 | $refHistory->write(self::$testHistory); |
65 | $this->history = new \History(self::$testHistory); | 67 | $this->history = new History(self::$testHistory); |
66 | $this->container = new Container(); | 68 | $this->container = new Container(); |
67 | $this->container['conf'] = $this->conf; | 69 | $this->container['conf'] = $this->conf; |
68 | $this->container['db'] = $this->linkDB; | 70 | $this->container['db'] = $this->linkDB; |
@@ -96,11 +98,11 @@ class DeleteLinkTest extends \PHPUnit_Framework_TestCase | |||
96 | $this->assertEquals(204, $response->getStatusCode()); | 98 | $this->assertEquals(204, $response->getStatusCode()); |
97 | $this->assertEmpty((string) $response->getBody()); | 99 | $this->assertEmpty((string) $response->getBody()); |
98 | 100 | ||
99 | $this->linkDB = new \LinkDB(self::$testDatastore, true, false); | 101 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); |
100 | $this->assertFalse(isset($this->linkDB[$id])); | 102 | $this->assertFalse(isset($this->linkDB[$id])); |
101 | 103 | ||
102 | $historyEntry = $this->history->getHistory()[0]; | 104 | $historyEntry = $this->history->getHistory()[0]; |
103 | $this->assertEquals(\History::DELETED, $historyEntry['event']); | 105 | $this->assertEquals(History::DELETED, $historyEntry['event']); |
104 | $this->assertTrue( | 106 | $this->assertTrue( |
105 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 107 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
106 | ); | 108 | ); |
@@ -110,7 +112,7 @@ class DeleteLinkTest extends \PHPUnit_Framework_TestCase | |||
110 | /** | 112 | /** |
111 | * Test DELETE link endpoint: reach not existing ID. | 113 | * Test DELETE link endpoint: reach not existing ID. |
112 | * | 114 | * |
113 | * @expectedException Shaarli\Api\Exceptions\ApiLinkNotFoundException | 115 | * @expectedException \Shaarli\Api\Exceptions\ApiLinkNotFoundException |
114 | */ | 116 | */ |
115 | public function testDeleteLink404() | 117 | public function testDeleteLink404() |
116 | { | 118 | { |
diff --git a/tests/api/controllers/links/GetLinkIdTest.php b/tests/api/controllers/links/GetLinkIdTest.php index 57528d5a..cb9b7f6a 100644 --- a/tests/api/controllers/links/GetLinkIdTest.php +++ b/tests/api/controllers/links/GetLinkIdTest.php | |||
@@ -3,7 +3,6 @@ | |||
3 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
4 | 4 | ||
5 | use Shaarli\Config\ConfigManager; | 5 | use Shaarli\Config\ConfigManager; |
6 | |||
7 | use Slim\Container; | 6 | use Slim\Container; |
8 | use Slim\Http\Environment; | 7 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 8 | use Slim\Http\Request; |
@@ -18,7 +17,7 @@ use Slim\Http\Response; | |||
18 | * | 17 | * |
19 | * @package Shaarli\Api\Controllers | 18 | * @package Shaarli\Api\Controllers |
20 | */ | 19 | */ |
21 | class GetLinkIdTest extends \PHPUnit_Framework_TestCase | 20 | class GetLinkIdTest extends \PHPUnit\Framework\TestCase |
22 | { | 21 | { |
23 | /** | 22 | /** |
24 | * @var string datastore to test write operations | 23 | * @var string datastore to test write operations |
@@ -61,7 +60,7 @@ class GetLinkIdTest extends \PHPUnit_Framework_TestCase | |||
61 | 60 | ||
62 | $this->container = new Container(); | 61 | $this->container = new Container(); |
63 | $this->container['conf'] = $this->conf; | 62 | $this->container['conf'] = $this->conf; |
64 | $this->container['db'] = new \LinkDB(self::$testDatastore, true, false); | 63 | $this->container['db'] = new \Shaarli\Bookmark\LinkDB(self::$testDatastore, true, false); |
65 | $this->container['history'] = null; | 64 | $this->container['history'] = null; |
66 | 65 | ||
67 | $this->controller = new Links($this->container); | 66 | $this->controller = new Links($this->container); |
@@ -108,7 +107,7 @@ class GetLinkIdTest extends \PHPUnit_Framework_TestCase | |||
108 | $this->assertEquals('sTuff', $data['tags'][0]); | 107 | $this->assertEquals('sTuff', $data['tags'][0]); |
109 | $this->assertEquals(false, $data['private']); | 108 | $this->assertEquals(false, $data['private']); |
110 | $this->assertEquals( | 109 | $this->assertEquals( |
111 | \DateTime::createFromFormat(\LinkDB::LINK_DATE_FORMAT, '20150310_114651')->format(\DateTime::ATOM), | 110 | \DateTime::createFromFormat(\Shaarli\Bookmark\LinkDB::LINK_DATE_FORMAT, '20150310_114651')->format(\DateTime::ATOM), |
112 | $data['created'] | 111 | $data['created'] |
113 | ); | 112 | ); |
114 | $this->assertEmpty($data['updated']); | 113 | $this->assertEmpty($data['updated']); |
diff --git a/tests/api/controllers/links/GetLinksTest.php b/tests/api/controllers/links/GetLinksTest.php index 64f02774..711a3152 100644 --- a/tests/api/controllers/links/GetLinksTest.php +++ b/tests/api/controllers/links/GetLinksTest.php | |||
@@ -1,8 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Api\Controllers; | 2 | namespace Shaarli\Api\Controllers; |
3 | 3 | ||
4 | use Shaarli\Bookmark\LinkDB; | ||
4 | use Shaarli\Config\ConfigManager; | 5 | use Shaarli\Config\ConfigManager; |
5 | |||
6 | use Slim\Container; | 6 | use Slim\Container; |
7 | use Slim\Http\Environment; | 7 | use Slim\Http\Environment; |
8 | use Slim\Http\Request; | 8 | use Slim\Http\Request; |
@@ -17,7 +17,7 @@ use Slim\Http\Response; | |||
17 | * | 17 | * |
18 | * @package Shaarli\Api\Controllers | 18 | * @package Shaarli\Api\Controllers |
19 | */ | 19 | */ |
20 | class GetLinksTest extends \PHPUnit_Framework_TestCase | 20 | class GetLinksTest extends \PHPUnit\Framework\TestCase |
21 | { | 21 | { |
22 | /** | 22 | /** |
23 | * @var string datastore to test write operations | 23 | * @var string datastore to test write operations |
@@ -60,7 +60,7 @@ class GetLinksTest extends \PHPUnit_Framework_TestCase | |||
60 | 60 | ||
61 | $this->container = new Container(); | 61 | $this->container = new Container(); |
62 | $this->container['conf'] = $this->conf; | 62 | $this->container['conf'] = $this->conf; |
63 | $this->container['db'] = new \LinkDB(self::$testDatastore, true, false); | 63 | $this->container['db'] = new LinkDB(self::$testDatastore, true, false); |
64 | $this->container['history'] = null; | 64 | $this->container['history'] = null; |
65 | 65 | ||
66 | $this->controller = new Links($this->container); | 66 | $this->controller = new Links($this->container); |
@@ -114,7 +114,7 @@ class GetLinksTest extends \PHPUnit_Framework_TestCase | |||
114 | $this->assertEquals('sTuff', $first['tags'][0]); | 114 | $this->assertEquals('sTuff', $first['tags'][0]); |
115 | $this->assertEquals(false, $first['private']); | 115 | $this->assertEquals(false, $first['private']); |
116 | $this->assertEquals( | 116 | $this->assertEquals( |
117 | \DateTime::createFromFormat(\LinkDB::LINK_DATE_FORMAT, '20150310_114651')->format(\DateTime::ATOM), | 117 | \DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651')->format(\DateTime::ATOM), |
118 | $first['created'] | 118 | $first['created'] |
119 | ); | 119 | ); |
120 | $this->assertEmpty($first['updated']); | 120 | $this->assertEmpty($first['updated']); |
@@ -125,7 +125,7 @@ class GetLinksTest extends \PHPUnit_Framework_TestCase | |||
125 | 125 | ||
126 | // Update date | 126 | // Update date |
127 | $this->assertEquals( | 127 | $this->assertEquals( |
128 | \DateTime::createFromFormat(\LinkDB::LINK_DATE_FORMAT, '20160803_093033')->format(\DateTime::ATOM), | 128 | \DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20160803_093033')->format(\DateTime::ATOM), |
129 | $link['updated'] | 129 | $link['updated'] |
130 | ); | 130 | ); |
131 | } | 131 | } |
diff --git a/tests/api/controllers/links/PostLinkTest.php b/tests/api/controllers/links/PostLinkTest.php index 5c2b5623..d683a984 100644 --- a/tests/api/controllers/links/PostLinkTest.php +++ b/tests/api/controllers/links/PostLinkTest.php | |||
@@ -4,6 +4,7 @@ namespace Shaarli\Api\Controllers; | |||
4 | 4 | ||
5 | use PHPUnit\Framework\TestCase; | 5 | use PHPUnit\Framework\TestCase; |
6 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
7 | use Shaarli\History; | ||
7 | use Slim\Container; | 8 | use Slim\Container; |
8 | use Slim\Http\Environment; | 9 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 10 | use Slim\Http\Request; |
@@ -40,7 +41,7 @@ class PostLinkTest extends TestCase | |||
40 | protected $refDB = null; | 41 | protected $refDB = null; |
41 | 42 | ||
42 | /** | 43 | /** |
43 | * @var \History instance. | 44 | * @var HistoryController instance. |
44 | */ | 45 | */ |
45 | protected $history; | 46 | protected $history; |
46 | 47 | ||
@@ -70,12 +71,12 @@ class PostLinkTest extends TestCase | |||
70 | 71 | ||
71 | $refHistory = new \ReferenceHistory(); | 72 | $refHistory = new \ReferenceHistory(); |
72 | $refHistory->write(self::$testHistory); | 73 | $refHistory->write(self::$testHistory); |
73 | $this->history = new \History(self::$testHistory); | 74 | $this->history = new History(self::$testHistory); |
74 | 75 | ||
75 | $this->container = new Container(); | 76 | $this->container = new Container(); |
76 | $this->container['conf'] = $this->conf; | 77 | $this->container['conf'] = $this->conf; |
77 | $this->container['db'] = new \LinkDB(self::$testDatastore, true, false); | 78 | $this->container['db'] = new \Shaarli\Bookmark\LinkDB(self::$testDatastore, true, false); |
78 | $this->container['history'] = new \History(self::$testHistory); | 79 | $this->container['history'] = new History(self::$testHistory); |
79 | 80 | ||
80 | $this->controller = new Links($this->container); | 81 | $this->controller = new Links($this->container); |
81 | 82 | ||
@@ -121,7 +122,7 @@ class PostLinkTest extends TestCase | |||
121 | $data = json_decode((string) $response->getBody(), true); | 122 | $data = json_decode((string) $response->getBody(), true); |
122 | $this->assertEquals(self::NB_FIELDS_LINK, count($data)); | 123 | $this->assertEquals(self::NB_FIELDS_LINK, count($data)); |
123 | $this->assertEquals(43, $data['id']); | 124 | $this->assertEquals(43, $data['id']); |
124 | $this->assertRegExp('/[\w-_]{6}/', $data['shorturl']); | 125 | $this->assertRegExp('/[\w_-]{6}/', $data['shorturl']); |
125 | $this->assertEquals('http://domain.tld/?' . $data['shorturl'], $data['url']); | 126 | $this->assertEquals('http://domain.tld/?' . $data['shorturl'], $data['url']); |
126 | $this->assertEquals('?' . $data['shorturl'], $data['title']); | 127 | $this->assertEquals('?' . $data['shorturl'], $data['title']); |
127 | $this->assertEquals('', $data['description']); | 128 | $this->assertEquals('', $data['description']); |
@@ -133,7 +134,7 @@ class PostLinkTest extends TestCase | |||
133 | $this->assertEquals('', $data['updated']); | 134 | $this->assertEquals('', $data['updated']); |
134 | 135 | ||
135 | $historyEntry = $this->history->getHistory()[0]; | 136 | $historyEntry = $this->history->getHistory()[0]; |
136 | $this->assertEquals(\History::CREATED, $historyEntry['event']); | 137 | $this->assertEquals(History::CREATED, $historyEntry['event']); |
137 | $this->assertTrue( | 138 | $this->assertTrue( |
138 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 139 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
139 | ); | 140 | ); |
@@ -166,7 +167,7 @@ class PostLinkTest extends TestCase | |||
166 | $data = json_decode((string) $response->getBody(), true); | 167 | $data = json_decode((string) $response->getBody(), true); |
167 | $this->assertEquals(self::NB_FIELDS_LINK, count($data)); | 168 | $this->assertEquals(self::NB_FIELDS_LINK, count($data)); |
168 | $this->assertEquals(43, $data['id']); | 169 | $this->assertEquals(43, $data['id']); |
169 | $this->assertRegExp('/[\w-_]{6}/', $data['shorturl']); | 170 | $this->assertRegExp('/[\w_-]{6}/', $data['shorturl']); |
170 | $this->assertEquals('http://' . $link['url'], $data['url']); | 171 | $this->assertEquals('http://' . $link['url'], $data['url']); |
171 | $this->assertEquals($link['title'], $data['title']); | 172 | $this->assertEquals($link['title'], $data['title']); |
172 | $this->assertEquals($link['description'], $data['description']); | 173 | $this->assertEquals($link['description'], $data['description']); |
@@ -210,11 +211,11 @@ class PostLinkTest extends TestCase | |||
210 | $this->assertEquals(['gnu', 'media', 'web', '.hidden', 'hashtag'], $data['tags']); | 211 | $this->assertEquals(['gnu', 'media', 'web', '.hidden', 'hashtag'], $data['tags']); |
211 | $this->assertEquals(false, $data['private']); | 212 | $this->assertEquals(false, $data['private']); |
212 | $this->assertEquals( | 213 | $this->assertEquals( |
213 | \DateTime::createFromFormat(\LinkDB::LINK_DATE_FORMAT, '20130614_184135'), | 214 | \DateTime::createFromFormat(\Shaarli\Bookmark\LinkDB::LINK_DATE_FORMAT, '20130614_184135'), |
214 | \DateTime::createFromFormat(\DateTime::ATOM, $data['created']) | 215 | \DateTime::createFromFormat(\DateTime::ATOM, $data['created']) |
215 | ); | 216 | ); |
216 | $this->assertEquals( | 217 | $this->assertEquals( |
217 | \DateTime::createFromFormat(\LinkDB::LINK_DATE_FORMAT, '20130615_184230'), | 218 | \DateTime::createFromFormat(\Shaarli\Bookmark\LinkDB::LINK_DATE_FORMAT, '20130615_184230'), |
218 | \DateTime::createFromFormat(\DateTime::ATOM, $data['updated']) | 219 | \DateTime::createFromFormat(\DateTime::ATOM, $data['updated']) |
219 | ); | 220 | ); |
220 | } | 221 | } |
diff --git a/tests/api/controllers/links/PutLinkTest.php b/tests/api/controllers/links/PutLinkTest.php index f276b4c1..cd815b66 100644 --- a/tests/api/controllers/links/PutLinkTest.php +++ b/tests/api/controllers/links/PutLinkTest.php | |||
@@ -4,12 +4,13 @@ | |||
4 | namespace Shaarli\Api\Controllers; | 4 | namespace Shaarli\Api\Controllers; |
5 | 5 | ||
6 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
7 | use Shaarli\History; | ||
7 | use Slim\Container; | 8 | use Slim\Container; |
8 | use Slim\Http\Environment; | 9 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 10 | use Slim\Http\Request; |
10 | use Slim\Http\Response; | 11 | use Slim\Http\Response; |
11 | 12 | ||
12 | class PutLinkTest extends \PHPUnit_Framework_TestCase | 13 | class PutLinkTest extends \PHPUnit\Framework\TestCase |
13 | { | 14 | { |
14 | /** | 15 | /** |
15 | * @var string datastore to test write operations | 16 | * @var string datastore to test write operations |
@@ -32,7 +33,7 @@ class PutLinkTest extends \PHPUnit_Framework_TestCase | |||
32 | protected $refDB = null; | 33 | protected $refDB = null; |
33 | 34 | ||
34 | /** | 35 | /** |
35 | * @var \History instance. | 36 | * @var HistoryController instance. |
36 | */ | 37 | */ |
37 | protected $history; | 38 | protected $history; |
38 | 39 | ||
@@ -62,12 +63,12 @@ class PutLinkTest extends \PHPUnit_Framework_TestCase | |||
62 | 63 | ||
63 | $refHistory = new \ReferenceHistory(); | 64 | $refHistory = new \ReferenceHistory(); |
64 | $refHistory->write(self::$testHistory); | 65 | $refHistory->write(self::$testHistory); |
65 | $this->history = new \History(self::$testHistory); | 66 | $this->history = new History(self::$testHistory); |
66 | 67 | ||
67 | $this->container = new Container(); | 68 | $this->container = new Container(); |
68 | $this->container['conf'] = $this->conf; | 69 | $this->container['conf'] = $this->conf; |
69 | $this->container['db'] = new \LinkDB(self::$testDatastore, true, false); | 70 | $this->container['db'] = new \Shaarli\Bookmark\LinkDB(self::$testDatastore, true, false); |
70 | $this->container['history'] = new \History(self::$testHistory); | 71 | $this->container['history'] = new History(self::$testHistory); |
71 | 72 | ||
72 | $this->controller = new Links($this->container); | 73 | $this->controller = new Links($this->container); |
73 | 74 | ||
@@ -119,7 +120,7 @@ class PutLinkTest extends \PHPUnit_Framework_TestCase | |||
119 | ); | 120 | ); |
120 | 121 | ||
121 | $historyEntry = $this->history->getHistory()[0]; | 122 | $historyEntry = $this->history->getHistory()[0]; |
122 | $this->assertEquals(\History::UPDATED, $historyEntry['event']); | 123 | $this->assertEquals(History::UPDATED, $historyEntry['event']); |
123 | $this->assertTrue( | 124 | $this->assertTrue( |
124 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 125 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
125 | ); | 126 | ); |
@@ -198,11 +199,11 @@ class PutLinkTest extends \PHPUnit_Framework_TestCase | |||
198 | $this->assertEquals(['gnu', 'media', 'web', '.hidden', 'hashtag'], $data['tags']); | 199 | $this->assertEquals(['gnu', 'media', 'web', '.hidden', 'hashtag'], $data['tags']); |
199 | $this->assertEquals(false, $data['private']); | 200 | $this->assertEquals(false, $data['private']); |
200 | $this->assertEquals( | 201 | $this->assertEquals( |
201 | \DateTime::createFromFormat(\LinkDB::LINK_DATE_FORMAT, '20130614_184135'), | 202 | \DateTime::createFromFormat(\Shaarli\Bookmark\LinkDB::LINK_DATE_FORMAT, '20130614_184135'), |
202 | \DateTime::createFromFormat(\DateTime::ATOM, $data['created']) | 203 | \DateTime::createFromFormat(\DateTime::ATOM, $data['created']) |
203 | ); | 204 | ); |
204 | $this->assertEquals( | 205 | $this->assertEquals( |
205 | \DateTime::createFromFormat(\LinkDB::LINK_DATE_FORMAT, '20130615_184230'), | 206 | \DateTime::createFromFormat(\Shaarli\Bookmark\LinkDB::LINK_DATE_FORMAT, '20130615_184230'), |
206 | \DateTime::createFromFormat(\DateTime::ATOM, $data['updated']) | 207 | \DateTime::createFromFormat(\DateTime::ATOM, $data['updated']) |
207 | ); | 208 | ); |
208 | } | 209 | } |
diff --git a/tests/api/controllers/tags/DeleteTagTest.php b/tests/api/controllers/tags/DeleteTagTest.php index e0787ce2..84e1d56e 100644 --- a/tests/api/controllers/tags/DeleteTagTest.php +++ b/tests/api/controllers/tags/DeleteTagTest.php | |||
@@ -3,13 +3,15 @@ | |||
3 | 3 | ||
4 | namespace Shaarli\Api\Controllers; | 4 | namespace Shaarli\Api\Controllers; |
5 | 5 | ||
6 | use Shaarli\Bookmark\LinkDB; | ||
6 | use Shaarli\Config\ConfigManager; | 7 | use Shaarli\Config\ConfigManager; |
8 | use Shaarli\History; | ||
7 | use Slim\Container; | 9 | use Slim\Container; |
8 | use Slim\Http\Environment; | 10 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 11 | use Slim\Http\Request; |
10 | use Slim\Http\Response; | 12 | use Slim\Http\Response; |
11 | 13 | ||
12 | class DeleteTagTest extends \PHPUnit_Framework_TestCase | 14 | class DeleteTagTest extends \PHPUnit\Framework\TestCase |
13 | { | 15 | { |
14 | /** | 16 | /** |
15 | * @var string datastore to test write operations | 17 | * @var string datastore to test write operations |
@@ -32,12 +34,12 @@ class DeleteTagTest extends \PHPUnit_Framework_TestCase | |||
32 | protected $refDB = null; | 34 | protected $refDB = null; |
33 | 35 | ||
34 | /** | 36 | /** |
35 | * @var \LinkDB instance. | 37 | * @var LinkDB instance. |
36 | */ | 38 | */ |
37 | protected $linkDB; | 39 | protected $linkDB; |
38 | 40 | ||
39 | /** | 41 | /** |
40 | * @var \History instance. | 42 | * @var HistoryController instance. |
41 | */ | 43 | */ |
42 | protected $history; | 44 | protected $history; |
43 | 45 | ||
@@ -59,10 +61,10 @@ class DeleteTagTest extends \PHPUnit_Framework_TestCase | |||
59 | $this->conf = new ConfigManager('tests/utils/config/configJson'); | 61 | $this->conf = new ConfigManager('tests/utils/config/configJson'); |
60 | $this->refDB = new \ReferenceLinkDB(); | 62 | $this->refDB = new \ReferenceLinkDB(); |
61 | $this->refDB->write(self::$testDatastore); | 63 | $this->refDB->write(self::$testDatastore); |
62 | $this->linkDB = new \LinkDB(self::$testDatastore, true, false); | 64 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); |
63 | $refHistory = new \ReferenceHistory(); | 65 | $refHistory = new \ReferenceHistory(); |
64 | $refHistory->write(self::$testHistory); | 66 | $refHistory->write(self::$testHistory); |
65 | $this->history = new \History(self::$testHistory); | 67 | $this->history = new History(self::$testHistory); |
66 | $this->container = new Container(); | 68 | $this->container = new Container(); |
67 | $this->container['conf'] = $this->conf; | 69 | $this->container['conf'] = $this->conf; |
68 | $this->container['db'] = $this->linkDB; | 70 | $this->container['db'] = $this->linkDB; |
@@ -97,18 +99,18 @@ class DeleteTagTest extends \PHPUnit_Framework_TestCase | |||
97 | $this->assertEquals(204, $response->getStatusCode()); | 99 | $this->assertEquals(204, $response->getStatusCode()); |
98 | $this->assertEmpty((string) $response->getBody()); | 100 | $this->assertEmpty((string) $response->getBody()); |
99 | 101 | ||
100 | $this->linkDB = new \LinkDB(self::$testDatastore, true, false); | 102 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); |
101 | $tags = $this->linkDB->linksCountPerTag(); | 103 | $tags = $this->linkDB->linksCountPerTag(); |
102 | $this->assertFalse(isset($tags[$tagName])); | 104 | $this->assertFalse(isset($tags[$tagName])); |
103 | 105 | ||
104 | // 2 links affected | 106 | // 2 links affected |
105 | $historyEntry = $this->history->getHistory()[0]; | 107 | $historyEntry = $this->history->getHistory()[0]; |
106 | $this->assertEquals(\History::UPDATED, $historyEntry['event']); | 108 | $this->assertEquals(History::UPDATED, $historyEntry['event']); |
107 | $this->assertTrue( | 109 | $this->assertTrue( |
108 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 110 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
109 | ); | 111 | ); |
110 | $historyEntry = $this->history->getHistory()[1]; | 112 | $historyEntry = $this->history->getHistory()[1]; |
111 | $this->assertEquals(\History::UPDATED, $historyEntry['event']); | 113 | $this->assertEquals(History::UPDATED, $historyEntry['event']); |
112 | $this->assertTrue( | 114 | $this->assertTrue( |
113 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 115 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
114 | ); | 116 | ); |
@@ -131,13 +133,13 @@ class DeleteTagTest extends \PHPUnit_Framework_TestCase | |||
131 | $this->assertEquals(204, $response->getStatusCode()); | 133 | $this->assertEquals(204, $response->getStatusCode()); |
132 | $this->assertEmpty((string) $response->getBody()); | 134 | $this->assertEmpty((string) $response->getBody()); |
133 | 135 | ||
134 | $this->linkDB = new \LinkDB(self::$testDatastore, true, false); | 136 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); |
135 | $tags = $this->linkDB->linksCountPerTag(); | 137 | $tags = $this->linkDB->linksCountPerTag(); |
136 | $this->assertFalse(isset($tags[$tagName])); | 138 | $this->assertFalse(isset($tags[$tagName])); |
137 | $this->assertTrue($tags[strtolower($tagName)] > 0); | 139 | $this->assertTrue($tags[strtolower($tagName)] > 0); |
138 | 140 | ||
139 | $historyEntry = $this->history->getHistory()[0]; | 141 | $historyEntry = $this->history->getHistory()[0]; |
140 | $this->assertEquals(\History::UPDATED, $historyEntry['event']); | 142 | $this->assertEquals(History::UPDATED, $historyEntry['event']); |
141 | $this->assertTrue( | 143 | $this->assertTrue( |
142 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 144 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
143 | ); | 145 | ); |
diff --git a/tests/api/controllers/tags/GetTagNameTest.php b/tests/api/controllers/tags/GetTagNameTest.php index afac228e..a2525c17 100644 --- a/tests/api/controllers/tags/GetTagNameTest.php +++ b/tests/api/controllers/tags/GetTagNameTest.php | |||
@@ -2,8 +2,8 @@ | |||
2 | 2 | ||
3 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
4 | 4 | ||
5 | use Shaarli\Bookmark\LinkDB; | ||
5 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
6 | |||
7 | use Slim\Container; | 7 | use Slim\Container; |
8 | use Slim\Http\Environment; | 8 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 9 | use Slim\Http\Request; |
@@ -16,7 +16,7 @@ use Slim\Http\Response; | |||
16 | * | 16 | * |
17 | * @package Shaarli\Api\Controllers | 17 | * @package Shaarli\Api\Controllers |
18 | */ | 18 | */ |
19 | class GetTagNameTest extends \PHPUnit_Framework_TestCase | 19 | class GetTagNameTest extends \PHPUnit\Framework\TestCase |
20 | { | 20 | { |
21 | /** | 21 | /** |
22 | * @var string datastore to test write operations | 22 | * @var string datastore to test write operations |
@@ -59,7 +59,7 @@ class GetTagNameTest extends \PHPUnit_Framework_TestCase | |||
59 | 59 | ||
60 | $this->container = new Container(); | 60 | $this->container = new Container(); |
61 | $this->container['conf'] = $this->conf; | 61 | $this->container['conf'] = $this->conf; |
62 | $this->container['db'] = new \LinkDB(self::$testDatastore, true, false); | 62 | $this->container['db'] = new LinkDB(self::$testDatastore, true, false); |
63 | $this->container['history'] = null; | 63 | $this->container['history'] = null; |
64 | 64 | ||
65 | $this->controller = new Tags($this->container); | 65 | $this->controller = new Tags($this->container); |
diff --git a/tests/api/controllers/tags/GetTagsTest.php b/tests/api/controllers/tags/GetTagsTest.php index 3fab31b0..98628c98 100644 --- a/tests/api/controllers/tags/GetTagsTest.php +++ b/tests/api/controllers/tags/GetTagsTest.php | |||
@@ -1,8 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Api\Controllers; | 2 | namespace Shaarli\Api\Controllers; |
3 | 3 | ||
4 | use Shaarli\Bookmark\LinkDB; | ||
4 | use Shaarli\Config\ConfigManager; | 5 | use Shaarli\Config\ConfigManager; |
5 | |||
6 | use Slim\Container; | 6 | use Slim\Container; |
7 | use Slim\Http\Environment; | 7 | use Slim\Http\Environment; |
8 | use Slim\Http\Request; | 8 | use Slim\Http\Request; |
@@ -15,7 +15,7 @@ use Slim\Http\Response; | |||
15 | * | 15 | * |
16 | * @package Shaarli\Api\Controllers | 16 | * @package Shaarli\Api\Controllers |
17 | */ | 17 | */ |
18 | class GetTagsTest extends \PHPUnit_Framework_TestCase | 18 | class GetTagsTest extends \PHPUnit\Framework\TestCase |
19 | { | 19 | { |
20 | /** | 20 | /** |
21 | * @var string datastore to test write operations | 21 | * @var string datastore to test write operations |
@@ -38,7 +38,7 @@ class GetTagsTest extends \PHPUnit_Framework_TestCase | |||
38 | protected $container; | 38 | protected $container; |
39 | 39 | ||
40 | /** | 40 | /** |
41 | * @var \LinkDB instance. | 41 | * @var LinkDB instance. |
42 | */ | 42 | */ |
43 | protected $linkDB; | 43 | protected $linkDB; |
44 | 44 | ||
@@ -63,7 +63,7 @@ class GetTagsTest extends \PHPUnit_Framework_TestCase | |||
63 | 63 | ||
64 | $this->container = new Container(); | 64 | $this->container = new Container(); |
65 | $this->container['conf'] = $this->conf; | 65 | $this->container['conf'] = $this->conf; |
66 | $this->linkDB = new \LinkDB(self::$testDatastore, true, false); | 66 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); |
67 | $this->container['db'] = $this->linkDB; | 67 | $this->container['db'] = $this->linkDB; |
68 | $this->container['history'] = null; | 68 | $this->container['history'] = null; |
69 | 69 | ||
diff --git a/tests/api/controllers/tags/PutTagTest.php b/tests/api/controllers/tags/PutTagTest.php index 38017243..86106fc7 100644 --- a/tests/api/controllers/tags/PutTagTest.php +++ b/tests/api/controllers/tags/PutTagTest.php | |||
@@ -1,16 +1,17 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | |||
4 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
5 | 4 | ||
6 | use Shaarli\Api\Exceptions\ApiBadParametersException; | 5 | use Shaarli\Api\Exceptions\ApiBadParametersException; |
6 | use Shaarli\Bookmark\LinkDB; | ||
7 | use Shaarli\Config\ConfigManager; | 7 | use Shaarli\Config\ConfigManager; |
8 | use Shaarli\History; | ||
8 | use Slim\Container; | 9 | use Slim\Container; |
9 | use Slim\Http\Environment; | 10 | use Slim\Http\Environment; |
10 | use Slim\Http\Request; | 11 | use Slim\Http\Request; |
11 | use Slim\Http\Response; | 12 | use Slim\Http\Response; |
12 | 13 | ||
13 | class PutTagTest extends \PHPUnit_Framework_TestCase | 14 | class PutTagTest extends \PHPUnit\Framework\TestCase |
14 | { | 15 | { |
15 | /** | 16 | /** |
16 | * @var string datastore to test write operations | 17 | * @var string datastore to test write operations |
@@ -33,7 +34,7 @@ class PutTagTest extends \PHPUnit_Framework_TestCase | |||
33 | protected $refDB = null; | 34 | protected $refDB = null; |
34 | 35 | ||
35 | /** | 36 | /** |
36 | * @var \History instance. | 37 | * @var HistoryController instance. |
37 | */ | 38 | */ |
38 | protected $history; | 39 | protected $history; |
39 | 40 | ||
@@ -43,7 +44,7 @@ class PutTagTest extends \PHPUnit_Framework_TestCase | |||
43 | protected $container; | 44 | protected $container; |
44 | 45 | ||
45 | /** | 46 | /** |
46 | * @var \LinkDB instance. | 47 | * @var LinkDB instance. |
47 | */ | 48 | */ |
48 | protected $linkDB; | 49 | protected $linkDB; |
49 | 50 | ||
@@ -68,11 +69,11 @@ class PutTagTest extends \PHPUnit_Framework_TestCase | |||
68 | 69 | ||
69 | $refHistory = new \ReferenceHistory(); | 70 | $refHistory = new \ReferenceHistory(); |
70 | $refHistory->write(self::$testHistory); | 71 | $refHistory->write(self::$testHistory); |
71 | $this->history = new \History(self::$testHistory); | 72 | $this->history = new History(self::$testHistory); |
72 | 73 | ||
73 | $this->container = new Container(); | 74 | $this->container = new Container(); |
74 | $this->container['conf'] = $this->conf; | 75 | $this->container['conf'] = $this->conf; |
75 | $this->linkDB = new \LinkDB(self::$testDatastore, true, false); | 76 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); |
76 | $this->container['db'] = $this->linkDB; | 77 | $this->container['db'] = $this->linkDB; |
77 | $this->container['history'] = $this->history; | 78 | $this->container['history'] = $this->history; |
78 | 79 | ||
@@ -113,12 +114,12 @@ class PutTagTest extends \PHPUnit_Framework_TestCase | |||
113 | $this->assertEquals(2, $tags[$newName]); | 114 | $this->assertEquals(2, $tags[$newName]); |
114 | 115 | ||
115 | $historyEntry = $this->history->getHistory()[0]; | 116 | $historyEntry = $this->history->getHistory()[0]; |
116 | $this->assertEquals(\History::UPDATED, $historyEntry['event']); | 117 | $this->assertEquals(History::UPDATED, $historyEntry['event']); |
117 | $this->assertTrue( | 118 | $this->assertTrue( |
118 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 119 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
119 | ); | 120 | ); |
120 | $historyEntry = $this->history->getHistory()[1]; | 121 | $historyEntry = $this->history->getHistory()[1]; |
121 | $this->assertEquals(\History::UPDATED, $historyEntry['event']); | 122 | $this->assertEquals(History::UPDATED, $historyEntry['event']); |
122 | $this->assertTrue( | 123 | $this->assertTrue( |
123 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] | 124 | (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime'] |
124 | ); | 125 | ); |
diff --git a/tests/LinkDBTest.php b/tests/bookmark/LinkDBTest.php index c763c0cb..2990a6b5 100644 --- a/tests/LinkDBTest.php +++ b/tests/bookmark/LinkDBTest.php | |||
@@ -3,9 +3,14 @@ | |||
3 | * Link datastore tests | 3 | * Link datastore tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/Cache.php'; | 6 | namespace Shaarli\Bookmark; |
7 | require_once 'application/FileUtils.php'; | 7 | |
8 | require_once 'application/LinkDB.php'; | 8 | use DateTime; |
9 | use ReferenceLinkDB; | ||
10 | use ReflectionClass; | ||
11 | use Shaarli; | ||
12 | |||
13 | require_once 'application/feed/Cache.php'; | ||
9 | require_once 'application/Utils.php'; | 14 | require_once 'application/Utils.php'; |
10 | require_once 'tests/utils/ReferenceLinkDB.php'; | 15 | require_once 'tests/utils/ReferenceLinkDB.php'; |
11 | 16 | ||
@@ -13,7 +18,7 @@ require_once 'tests/utils/ReferenceLinkDB.php'; | |||
13 | /** | 18 | /** |
14 | * Unitary tests for LinkDB | 19 | * Unitary tests for LinkDB |
15 | */ | 20 | */ |
16 | class LinkDBTest extends PHPUnit_Framework_TestCase | 21 | class LinkDBTest extends \PHPUnit\Framework\TestCase |
17 | { | 22 | { |
18 | // datastore to test write operations | 23 | // datastore to test write operations |
19 | protected static $testDatastore = 'sandbox/datastore.php'; | 24 | protected static $testDatastore = 'sandbox/datastore.php'; |
@@ -73,7 +78,7 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
73 | */ | 78 | */ |
74 | protected static function getMethod($name) | 79 | protected static function getMethod($name) |
75 | { | 80 | { |
76 | $class = new ReflectionClass('LinkDB'); | 81 | $class = new ReflectionClass('Shaarli\Bookmark\LinkDB'); |
77 | $method = $class->getMethod($name); | 82 | $method = $class->getMethod($name); |
78 | $method->setAccessible(true); | 83 | $method->setAccessible(true); |
79 | return $method; | 84 | return $method; |
@@ -100,7 +105,7 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
100 | /** | 105 | /** |
101 | * Attempt to instantiate a LinkDB whereas the datastore is not writable | 106 | * Attempt to instantiate a LinkDB whereas the datastore is not writable |
102 | * | 107 | * |
103 | * @expectedException IOException | 108 | * @expectedException Shaarli\Exceptions\IOException |
104 | * @expectedExceptionMessageRegExp /Error accessing "null"/ | 109 | * @expectedExceptionMessageRegExp /Error accessing "null"/ |
105 | */ | 110 | */ |
106 | public function testConstructDatastoreNotWriteable() | 111 | public function testConstructDatastoreNotWriteable() |
@@ -187,12 +192,12 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
187 | 192 | ||
188 | $link = array( | 193 | $link = array( |
189 | 'id' => 42, | 194 | 'id' => 42, |
190 | 'title'=>'an additional link', | 195 | 'title' => 'an additional link', |
191 | 'url'=>'http://dum.my', | 196 | 'url' => 'http://dum.my', |
192 | 'description'=>'One more', | 197 | 'description' => 'One more', |
193 | 'private'=>0, | 198 | 'private' => 0, |
194 | 'created'=> DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150518_190000'), | 199 | 'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150518_190000'), |
195 | 'tags'=>'unit test' | 200 | 'tags' => 'unit test' |
196 | ); | 201 | ); |
197 | $testDB[$link['id']] = $link; | 202 | $testDB[$link['id']] = $link; |
198 | $testDB->save('tests'); | 203 | $testDB->save('tests'); |
@@ -357,36 +362,6 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
357 | } | 362 | } |
358 | 363 | ||
359 | /** | 364 | /** |
360 | * Test real_url without redirector. | ||
361 | */ | ||
362 | public function testLinkRealUrlWithoutRedirector() | ||
363 | { | ||
364 | $db = new LinkDB(self::$testDatastore, false, false); | ||
365 | foreach ($db as $link) { | ||
366 | $this->assertEquals($link['url'], $link['real_url']); | ||
367 | } | ||
368 | } | ||
369 | |||
370 | /** | ||
371 | * Test real_url with redirector. | ||
372 | */ | ||
373 | public function testLinkRealUrlWithRedirector() | ||
374 | { | ||
375 | $redirector = 'http://redirector.to?'; | ||
376 | $db = new LinkDB(self::$testDatastore, false, false, $redirector); | ||
377 | foreach ($db as $link) { | ||
378 | $this->assertStringStartsWith($redirector, $link['real_url']); | ||
379 | $this->assertNotFalse(strpos($link['real_url'], urlencode('://'))); | ||
380 | } | ||
381 | |||
382 | $db = new LinkDB(self::$testDatastore, false, false, $redirector, false); | ||
383 | foreach ($db as $link) { | ||
384 | $this->assertStringStartsWith($redirector, $link['real_url']); | ||
385 | $this->assertFalse(strpos($link['real_url'], urlencode('://'))); | ||
386 | } | ||
387 | } | ||
388 | |||
389 | /** | ||
390 | * Test filter with string. | 365 | * Test filter with string. |
391 | */ | 366 | */ |
392 | public function testFilterString() | 367 | public function testFilterString() |
@@ -451,7 +426,7 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
451 | /** | 426 | /** |
452 | * Test filterHash() with an invalid smallhash. | 427 | * Test filterHash() with an invalid smallhash. |
453 | * | 428 | * |
454 | * @expectedException LinkNotFoundException | 429 | * @expectedException \Shaarli\Bookmark\Exception\LinkNotFoundException |
455 | */ | 430 | */ |
456 | public function testFilterHashInValid1() | 431 | public function testFilterHashInValid1() |
457 | { | 432 | { |
@@ -462,7 +437,7 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
462 | /** | 437 | /** |
463 | * Test filterHash() with an empty smallhash. | 438 | * Test filterHash() with an empty smallhash. |
464 | * | 439 | * |
465 | * @expectedException LinkNotFoundException | 440 | * @expectedException \Shaarli\Bookmark\Exception\LinkNotFoundException |
466 | */ | 441 | */ |
467 | public function testFilterHashInValid() | 442 | public function testFilterHashInValid() |
468 | { | 443 | { |
@@ -511,7 +486,7 @@ class LinkDBTest extends PHPUnit_Framework_TestCase | |||
511 | public function testRenameTagCaseSensitive() | 486 | public function testRenameTagCaseSensitive() |
512 | { | 487 | { |
513 | self::$refDB->write(self::$testDatastore); | 488 | self::$refDB->write(self::$testDatastore); |
514 | $linkDB = new LinkDB(self::$testDatastore, true, false, ''); | 489 | $linkDB = new LinkDB(self::$testDatastore, true, false); |
515 | 490 | ||
516 | $res = $linkDB->renameTag('sTuff', 'Taz'); | 491 | $res = $linkDB->renameTag('sTuff', 'Taz'); |
517 | $this->assertEquals(1, count($res)); | 492 | $this->assertEquals(1, count($res)); |
diff --git a/tests/LinkFilterTest.php b/tests/bookmark/LinkFilterTest.php index eb54c359..808f8122 100644 --- a/tests/LinkFilterTest.php +++ b/tests/bookmark/LinkFilterTest.php | |||
@@ -1,11 +1,14 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/LinkFilter.php'; | 3 | namespace Shaarli\Bookmark; |
4 | |||
5 | use Exception; | ||
6 | use ReferenceLinkDB; | ||
4 | 7 | ||
5 | /** | 8 | /** |
6 | * Class LinkFilterTest. | 9 | * Class LinkFilterTest. |
7 | */ | 10 | */ |
8 | class LinkFilterTest extends PHPUnit_Framework_TestCase | 11 | class LinkFilterTest extends \PHPUnit\Framework\TestCase |
9 | { | 12 | { |
10 | /** | 13 | /** |
11 | * @var string Test datastore path. | 14 | * @var string Test datastore path. |
@@ -27,7 +30,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase | |||
27 | protected static $linkDB; | 30 | protected static $linkDB; |
28 | 31 | ||
29 | /** | 32 | /** |
30 | * Instanciate linkFilter with ReferenceLinkDB data. | 33 | * Instantiate linkFilter with ReferenceLinkDB data. |
31 | */ | 34 | */ |
32 | public static function setUpBeforeClass() | 35 | public static function setUpBeforeClass() |
33 | { | 36 | { |
@@ -79,10 +82,14 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase | |||
79 | count( | 82 | count( |
80 | self::$linkFilter->filter( | 83 | self::$linkFilter->filter( |
81 | LinkFilter::$FILTER_TAG, | 84 | LinkFilter::$FILTER_TAG, |
82 | /*$request=*/'', | 85 | /*$request=*/ |
83 | /*$casesensitive=*/false, | 86 | '', |
84 | /*$visibility=*/'all', | 87 | /*$casesensitive=*/ |
85 | /*$untaggedonly=*/true | 88 | false, |
89 | /*$visibility=*/ | ||
90 | 'all', | ||
91 | /*$untaggedonly=*/ | ||
92 | true | ||
86 | ) | 93 | ) |
87 | ) | 94 | ) |
88 | ); | 95 | ); |
@@ -227,7 +234,7 @@ class LinkFilterTest extends PHPUnit_Framework_TestCase | |||
227 | /** | 234 | /** |
228 | * No link for this hash | 235 | * No link for this hash |
229 | * | 236 | * |
230 | * @expectedException LinkNotFoundException | 237 | * @expectedException \Shaarli\Bookmark\Exception\LinkNotFoundException |
231 | */ | 238 | */ |
232 | public function testFilterUnknownSmallHash() | 239 | public function testFilterUnknownSmallHash() |
233 | { | 240 | { |
diff --git a/tests/LinkUtilsTest.php b/tests/bookmark/LinkUtilsTest.php index 5407159a..78cb8f2a 100644 --- a/tests/LinkUtilsTest.php +++ b/tests/bookmark/LinkUtilsTest.php | |||
@@ -1,11 +1,17 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/LinkUtils.php'; | 3 | namespace Shaarli\Bookmark; |
4 | |||
5 | use PHPUnit\Framework\TestCase; | ||
6 | use ReferenceLinkDB; | ||
7 | use Shaarli\Config\ConfigManager; | ||
8 | |||
9 | require_once 'tests/utils/CurlUtils.php'; | ||
4 | 10 | ||
5 | /** | 11 | /** |
6 | * Class LinkUtilsTest. | 12 | * Class LinkUtilsTest. |
7 | */ | 13 | */ |
8 | class LinkUtilsTest extends PHPUnit_Framework_TestCase | 14 | class LinkUtilsTest extends TestCase |
9 | { | 15 | { |
10 | /** | 16 | /** |
11 | * Test html_extract_title() when the title is found. | 17 | * Test html_extract_title() when the title is found. |
@@ -13,9 +19,9 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
13 | public function testHtmlExtractExistentTitle() | 19 | public function testHtmlExtractExistentTitle() |
14 | { | 20 | { |
15 | $title = 'Read me please.'; | 21 | $title = 'Read me please.'; |
16 | $html = '<html><meta>stuff</meta><title>'. $title .'</title></html>'; | 22 | $html = '<html><meta>stuff</meta><title>' . $title . '</title></html>'; |
17 | $this->assertEquals($title, html_extract_title($html)); | 23 | $this->assertEquals($title, html_extract_title($html)); |
18 | $html = '<html><title>'. $title .'</title>blabla<title>another</title></html>'; | 24 | $html = '<html><title>' . $title . '</title>blabla<title>another</title></html>'; |
19 | $this->assertEquals($title, html_extract_title($html)); | 25 | $this->assertEquals($title, html_extract_title($html)); |
20 | } | 26 | } |
21 | 27 | ||
@@ -34,7 +40,7 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
34 | public function testHeadersExtractExistentCharset() | 40 | public function testHeadersExtractExistentCharset() |
35 | { | 41 | { |
36 | $charset = 'x-MacCroatian'; | 42 | $charset = 'x-MacCroatian'; |
37 | $headers = 'text/html; charset='. $charset; | 43 | $headers = 'text/html; charset=' . $charset; |
38 | $this->assertEquals(strtolower($charset), header_extract_charset($headers)); | 44 | $this->assertEquals(strtolower($charset), header_extract_charset($headers)); |
39 | } | 45 | } |
40 | 46 | ||
@@ -56,7 +62,7 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
56 | public function testHtmlExtractExistentCharset() | 62 | public function testHtmlExtractExistentCharset() |
57 | { | 63 | { |
58 | $charset = 'x-MacCroatian'; | 64 | $charset = 'x-MacCroatian'; |
59 | $html = '<html><meta>stuff2</meta><meta charset="'. $charset .'"/></html>'; | 65 | $html = '<html><meta>stuff2</meta><meta charset="' . $charset . '"/></html>'; |
60 | $this->assertEquals(strtolower($charset), html_extract_charset($html)); | 66 | $this->assertEquals(strtolower($charset), html_extract_charset($html)); |
61 | } | 67 | } |
62 | 68 | ||
@@ -72,11 +78,56 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
72 | } | 78 | } |
73 | 79 | ||
74 | /** | 80 | /** |
81 | * Test html_extract_tag() when the tag <meta name= is found. | ||
82 | */ | ||
83 | public function testHtmlExtractExistentNameTag() | ||
84 | { | ||
85 | $description = 'Bob and Alice share cookies.'; | ||
86 | $html = '<html><meta>stuff2</meta><meta name="description" content="' . $description . '"/></html>'; | ||
87 | $this->assertEquals($description, html_extract_tag('description', $html)); | ||
88 | } | ||
89 | |||
90 | /** | ||
91 | * Test html_extract_tag() when the tag <meta name= is not found. | ||
92 | */ | ||
93 | public function testHtmlExtractNonExistentNameTag() | ||
94 | { | ||
95 | $html = '<html><meta>stuff2</meta><meta name="image" content="img"/></html>'; | ||
96 | $this->assertFalse(html_extract_tag('description', $html)); | ||
97 | } | ||
98 | |||
99 | /** | ||
100 | * Test html_extract_tag() when the tag <meta property="og: is found. | ||
101 | */ | ||
102 | public function testHtmlExtractExistentOgTag() | ||
103 | { | ||
104 | $description = 'Bob and Alice share cookies.'; | ||
105 | $html = '<html><meta>stuff2</meta><meta property="og:description" content="' . $description . '"/></html>'; | ||
106 | $this->assertEquals($description, html_extract_tag('description', $html)); | ||
107 | } | ||
108 | |||
109 | /** | ||
110 | * Test html_extract_tag() when the tag <meta property="og: is not found. | ||
111 | */ | ||
112 | public function testHtmlExtractNonExistentOgTag() | ||
113 | { | ||
114 | $html = '<html><meta>stuff2</meta><meta name="image" content="img"/></html>'; | ||
115 | $this->assertFalse(html_extract_tag('description', $html)); | ||
116 | } | ||
117 | |||
118 | /** | ||
75 | * Test the download callback with valid value | 119 | * Test the download callback with valid value |
76 | */ | 120 | */ |
77 | public function testCurlDownloadCallbackOk() | 121 | public function testCurlDownloadCallbackOk() |
78 | { | 122 | { |
79 | $callback = get_curl_download_callback($charset, $title, 'ut_curl_getinfo_ok'); | 123 | $callback = get_curl_download_callback( |
124 | $charset, | ||
125 | $title, | ||
126 | $desc, | ||
127 | $keywords, | ||
128 | false, | ||
129 | 'ut_curl_getinfo_ok' | ||
130 | ); | ||
80 | $data = [ | 131 | $data = [ |
81 | 'HTTP/1.1 200 OK', | 132 | 'HTTP/1.1 200 OK', |
82 | 'Server: GitHub.com', | 133 | 'Server: GitHub.com', |
@@ -84,9 +135,11 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
84 | 'Content-Type: text/html; charset=utf-8', | 135 | 'Content-Type: text/html; charset=utf-8', |
85 | 'Status: 200 OK', | 136 | 'Status: 200 OK', |
86 | 'end' => 'th=device-width">' | 137 | 'end' => 'th=device-width">' |
87 | .'<title>Refactoring · GitHub</title>' | 138 | . '<title>Refactoring · GitHub</title>' |
88 | .'<link rel="search" type="application/opensea', | 139 | . '<link rel="search" type="application/opensea', |
89 | '<title>ignored</title>', | 140 | '<title>ignored</title>' |
141 | . '<meta name="description" content="desc" />' | ||
142 | . '<meta name="keywords" content="key1,key2" />', | ||
90 | ]; | 143 | ]; |
91 | foreach ($data as $key => $line) { | 144 | foreach ($data as $key => $line) { |
92 | $ignore = null; | 145 | $ignore = null; |
@@ -98,6 +151,8 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
98 | } | 151 | } |
99 | $this->assertEquals('utf-8', $charset); | 152 | $this->assertEquals('utf-8', $charset); |
100 | $this->assertEquals('Refactoring · GitHub', $title); | 153 | $this->assertEquals('Refactoring · GitHub', $title); |
154 | $this->assertEmpty($desc); | ||
155 | $this->assertEmpty($keywords); | ||
101 | } | 156 | } |
102 | 157 | ||
103 | /** | 158 | /** |
@@ -105,13 +160,22 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
105 | */ | 160 | */ |
106 | public function testCurlDownloadCallbackOkNoCharset() | 161 | public function testCurlDownloadCallbackOkNoCharset() |
107 | { | 162 | { |
108 | $callback = get_curl_download_callback($charset, $title, 'ut_curl_getinfo_no_charset'); | 163 | $callback = get_curl_download_callback( |
164 | $charset, | ||
165 | $title, | ||
166 | $desc, | ||
167 | $keywords, | ||
168 | false, | ||
169 | 'ut_curl_getinfo_no_charset' | ||
170 | ); | ||
109 | $data = [ | 171 | $data = [ |
110 | 'HTTP/1.1 200 OK', | 172 | 'HTTP/1.1 200 OK', |
111 | 'end' => 'th=device-width">' | 173 | 'end' => 'th=device-width">' |
112 | .'<title>Refactoring · GitHub</title>' | 174 | . '<title>Refactoring · GitHub</title>' |
113 | .'<link rel="search" type="application/opensea', | 175 | . '<link rel="search" type="application/opensea', |
114 | '<title>ignored</title>', | 176 | '<title>ignored</title>' |
177 | . '<meta name="description" content="desc" />' | ||
178 | . '<meta name="keywords" content="key1,key2" />', | ||
115 | ]; | 179 | ]; |
116 | foreach ($data as $key => $line) { | 180 | foreach ($data as $key => $line) { |
117 | $ignore = null; | 181 | $ignore = null; |
@@ -119,6 +183,8 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
119 | } | 183 | } |
120 | $this->assertEmpty($charset); | 184 | $this->assertEmpty($charset); |
121 | $this->assertEquals('Refactoring · GitHub', $title); | 185 | $this->assertEquals('Refactoring · GitHub', $title); |
186 | $this->assertEmpty($desc); | ||
187 | $this->assertEmpty($keywords); | ||
122 | } | 188 | } |
123 | 189 | ||
124 | /** | 190 | /** |
@@ -126,14 +192,23 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
126 | */ | 192 | */ |
127 | public function testCurlDownloadCallbackOkHtmlCharset() | 193 | public function testCurlDownloadCallbackOkHtmlCharset() |
128 | { | 194 | { |
129 | $callback = get_curl_download_callback($charset, $title, 'ut_curl_getinfo_no_charset'); | 195 | $callback = get_curl_download_callback( |
196 | $charset, | ||
197 | $title, | ||
198 | $desc, | ||
199 | $keywords, | ||
200 | false, | ||
201 | 'ut_curl_getinfo_no_charset' | ||
202 | ); | ||
130 | $data = [ | 203 | $data = [ |
131 | 'HTTP/1.1 200 OK', | 204 | 'HTTP/1.1 200 OK', |
132 | '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />', | 205 | '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />', |
133 | 'end' => 'th=device-width">' | 206 | 'end' => 'th=device-width">' |
134 | .'<title>Refactoring · GitHub</title>' | 207 | . '<title>Refactoring · GitHub</title>' |
135 | .'<link rel="search" type="application/opensea', | 208 | . '<link rel="search" type="application/opensea', |
136 | '<title>ignored</title>', | 209 | '<title>ignored</title>' |
210 | . '<meta name="description" content="desc" />' | ||
211 | . '<meta name="keywords" content="key1,key2" />', | ||
137 | ]; | 212 | ]; |
138 | foreach ($data as $key => $line) { | 213 | foreach ($data as $key => $line) { |
139 | $ignore = null; | 214 | $ignore = null; |
@@ -145,6 +220,8 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
145 | } | 220 | } |
146 | $this->assertEquals('utf-8', $charset); | 221 | $this->assertEquals('utf-8', $charset); |
147 | $this->assertEquals('Refactoring · GitHub', $title); | 222 | $this->assertEquals('Refactoring · GitHub', $title); |
223 | $this->assertEmpty($desc); | ||
224 | $this->assertEmpty($keywords); | ||
148 | } | 225 | } |
149 | 226 | ||
150 | /** | 227 | /** |
@@ -152,7 +229,14 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
152 | */ | 229 | */ |
153 | public function testCurlDownloadCallbackOkNoTitle() | 230 | public function testCurlDownloadCallbackOkNoTitle() |
154 | { | 231 | { |
155 | $callback = get_curl_download_callback($charset, $title, 'ut_curl_getinfo_ok'); | 232 | $callback = get_curl_download_callback( |
233 | $charset, | ||
234 | $title, | ||
235 | $desc, | ||
236 | $keywords, | ||
237 | false, | ||
238 | 'ut_curl_getinfo_ok' | ||
239 | ); | ||
156 | $data = [ | 240 | $data = [ |
157 | 'HTTP/1.1 200 OK', | 241 | 'HTTP/1.1 200 OK', |
158 | 'end' => 'th=device-width">Refactoring · GitHub<link rel="search" type="application/opensea', | 242 | 'end' => 'th=device-width">Refactoring · GitHub<link rel="search" type="application/opensea', |
@@ -164,6 +248,8 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
164 | } | 248 | } |
165 | $this->assertEquals('utf-8', $charset); | 249 | $this->assertEquals('utf-8', $charset); |
166 | $this->assertEmpty($title); | 250 | $this->assertEmpty($title); |
251 | $this->assertEmpty($desc); | ||
252 | $this->assertEmpty($keywords); | ||
167 | } | 253 | } |
168 | 254 | ||
169 | /** | 255 | /** |
@@ -171,7 +257,14 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
171 | */ | 257 | */ |
172 | public function testCurlDownloadCallbackInvalidContentType() | 258 | public function testCurlDownloadCallbackInvalidContentType() |
173 | { | 259 | { |
174 | $callback = get_curl_download_callback($charset, $title, 'ut_curl_getinfo_ct_ko'); | 260 | $callback = get_curl_download_callback( |
261 | $charset, | ||
262 | $title, | ||
263 | $desc, | ||
264 | $keywords, | ||
265 | false, | ||
266 | 'ut_curl_getinfo_ct_ko' | ||
267 | ); | ||
175 | $ignore = null; | 268 | $ignore = null; |
176 | $this->assertFalse($callback($ignore, '')); | 269 | $this->assertFalse($callback($ignore, '')); |
177 | $this->assertEmpty($charset); | 270 | $this->assertEmpty($charset); |
@@ -183,7 +276,14 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
183 | */ | 276 | */ |
184 | public function testCurlDownloadCallbackInvalidResponseCode() | 277 | public function testCurlDownloadCallbackInvalidResponseCode() |
185 | { | 278 | { |
186 | $callback = get_curl_download_callback($charset, $title, 'ut_curl_getinfo_rc_ko'); | 279 | $callback = $callback = get_curl_download_callback( |
280 | $charset, | ||
281 | $title, | ||
282 | $desc, | ||
283 | $keywords, | ||
284 | false, | ||
285 | 'ut_curl_getinfo_rc_ko' | ||
286 | ); | ||
187 | $ignore = null; | 287 | $ignore = null; |
188 | $this->assertFalse($callback($ignore, '')); | 288 | $this->assertFalse($callback($ignore, '')); |
189 | $this->assertEmpty($charset); | 289 | $this->assertEmpty($charset); |
@@ -195,7 +295,14 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
195 | */ | 295 | */ |
196 | public function testCurlDownloadCallbackInvalidContentTypeAndResponseCode() | 296 | public function testCurlDownloadCallbackInvalidContentTypeAndResponseCode() |
197 | { | 297 | { |
198 | $callback = get_curl_download_callback($charset, $title, 'ut_curl_getinfo_rs_ct_ko'); | 298 | $callback = $callback = get_curl_download_callback( |
299 | $charset, | ||
300 | $title, | ||
301 | $desc, | ||
302 | $keywords, | ||
303 | false, | ||
304 | 'ut_curl_getinfo_rs_ct_ko' | ||
305 | ); | ||
199 | $ignore = null; | 306 | $ignore = null; |
200 | $this->assertFalse($callback($ignore, '')); | 307 | $this->assertFalse($callback($ignore, '')); |
201 | $this->assertEmpty($charset); | 308 | $this->assertEmpty($charset); |
@@ -203,6 +310,85 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
203 | } | 310 | } |
204 | 311 | ||
205 | /** | 312 | /** |
313 | * Test the download callback with valid value, and retrieve_description option enabled. | ||
314 | */ | ||
315 | public function testCurlDownloadCallbackOkWithDesc() | ||
316 | { | ||
317 | $callback = get_curl_download_callback( | ||
318 | $charset, | ||
319 | $title, | ||
320 | $desc, | ||
321 | $keywords, | ||
322 | true, | ||
323 | 'ut_curl_getinfo_ok' | ||
324 | ); | ||
325 | $data = [ | ||
326 | 'HTTP/1.1 200 OK', | ||
327 | 'Server: GitHub.com', | ||
328 | 'Date: Sat, 28 Oct 2017 12:01:33 GMT', | ||
329 | 'Content-Type: text/html; charset=utf-8', | ||
330 | 'Status: 200 OK', | ||
331 | 'th=device-width">' | ||
332 | . '<title>Refactoring · GitHub</title>' | ||
333 | . '<link rel="search" type="application/opensea', | ||
334 | 'end' => '<title>ignored</title>' | ||
335 | . '<meta name="description" content="link desc" />' | ||
336 | . '<meta name="keywords" content="key1,key2" />', | ||
337 | ]; | ||
338 | foreach ($data as $key => $line) { | ||
339 | $ignore = null; | ||
340 | $expected = $key !== 'end' ? strlen($line) : false; | ||
341 | $this->assertEquals($expected, $callback($ignore, $line)); | ||
342 | if ($expected === false) { | ||
343 | break; | ||
344 | } | ||
345 | } | ||
346 | $this->assertEquals('utf-8', $charset); | ||
347 | $this->assertEquals('Refactoring · GitHub', $title); | ||
348 | $this->assertEquals('link desc', $desc); | ||
349 | $this->assertEquals('key1 key2', $keywords); | ||
350 | } | ||
351 | |||
352 | /** | ||
353 | * Test the download callback with valid value, and retrieve_description option enabled, | ||
354 | * but no desc or keyword defined in the page. | ||
355 | */ | ||
356 | public function testCurlDownloadCallbackOkWithDescNotFound() | ||
357 | { | ||
358 | $callback = get_curl_download_callback( | ||
359 | $charset, | ||
360 | $title, | ||
361 | $desc, | ||
362 | $keywords, | ||
363 | true, | ||
364 | 'ut_curl_getinfo_ok' | ||
365 | ); | ||
366 | $data = [ | ||
367 | 'HTTP/1.1 200 OK', | ||
368 | 'Server: GitHub.com', | ||
369 | 'Date: Sat, 28 Oct 2017 12:01:33 GMT', | ||
370 | 'Content-Type: text/html; charset=utf-8', | ||
371 | 'Status: 200 OK', | ||
372 | 'th=device-width">' | ||
373 | . '<title>Refactoring · GitHub</title>' | ||
374 | . '<link rel="search" type="application/opensea', | ||
375 | 'end' => '<title>ignored</title>', | ||
376 | ]; | ||
377 | foreach ($data as $key => $line) { | ||
378 | $ignore = null; | ||
379 | $expected = $key !== 'end' ? strlen($line) : false; | ||
380 | $this->assertEquals($expected, $callback($ignore, $line)); | ||
381 | if ($expected === false) { | ||
382 | break; | ||
383 | } | ||
384 | } | ||
385 | $this->assertEquals('utf-8', $charset); | ||
386 | $this->assertEquals('Refactoring · GitHub', $title); | ||
387 | $this->assertEmpty($desc); | ||
388 | $this->assertEmpty($keywords); | ||
389 | } | ||
390 | |||
391 | /** | ||
206 | * Test count_private. | 392 | * Test count_private. |
207 | */ | 393 | */ |
208 | public function testCountPrivateLinks() | 394 | public function testCountPrivateLinks() |
@@ -212,56 +398,27 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
212 | } | 398 | } |
213 | 399 | ||
214 | /** | 400 | /** |
215 | * Test text2clickable without a redirector being set. | 401 | * Test text2clickable. |
216 | */ | 402 | */ |
217 | public function testText2clickableWithoutRedirector() | 403 | public function testText2clickable() |
218 | { | 404 | { |
219 | $text = 'stuff http://hello.there/is=someone#here otherstuff'; | 405 | $text = 'stuff http://hello.there/is=someone#here otherstuff'; |
220 | $expectedText = 'stuff <a href="http://hello.there/is=someone#here">' | 406 | $expectedText = 'stuff <a href="http://hello.there/is=someone#here">' |
221 | .'http://hello.there/is=someone#here</a> otherstuff'; | 407 | . 'http://hello.there/is=someone#here</a> otherstuff'; |
222 | $processedText = text2clickable($text, ''); | 408 | $processedText = text2clickable($text); |
223 | $this->assertEquals($expectedText, $processedText); | 409 | $this->assertEquals($expectedText, $processedText); |
224 | 410 | ||
225 | $text = 'stuff http://hello.there/is=someone#here(please) otherstuff'; | 411 | $text = 'stuff http://hello.there/is=someone#here(please) otherstuff'; |
226 | $expectedText = 'stuff <a href="http://hello.there/is=someone#here(please)">' | 412 | $expectedText = 'stuff <a href="http://hello.there/is=someone#here(please)">' |
227 | .'http://hello.there/is=someone#here(please)</a> otherstuff'; | 413 | . 'http://hello.there/is=someone#here(please)</a> otherstuff'; |
228 | $processedText = text2clickable($text, ''); | 414 | $processedText = text2clickable($text); |
229 | $this->assertEquals($expectedText, $processedText); | 415 | $this->assertEquals($expectedText, $processedText); |
230 | 416 | ||
231 | $text = 'stuff http://hello.there/is=someone#here(please)&no otherstuff'; | 417 | $text = 'stuff http://hello.there/is=someone#here(please)&no otherstuff'; |
418 | $text = 'stuff http://hello.there/is=someone#here(please)&no otherstuff'; | ||
232 | $expectedText = 'stuff <a href="http://hello.there/is=someone#here(please)&no">' | 419 | $expectedText = 'stuff <a href="http://hello.there/is=someone#here(please)&no">' |
233 | .'http://hello.there/is=someone#here(please)&no</a> otherstuff'; | 420 | . 'http://hello.there/is=someone#here(please)&no</a> otherstuff'; |
234 | $processedText = text2clickable($text, ''); | 421 | $processedText = text2clickable($text); |
235 | $this->assertEquals($expectedText, $processedText); | ||
236 | } | ||
237 | |||
238 | /** | ||
239 | * Test text2clickable with a redirector set. | ||
240 | */ | ||
241 | public function testText2clickableWithRedirector() | ||
242 | { | ||
243 | $text = 'stuff http://hello.there/is=someone#here otherstuff'; | ||
244 | $redirector = 'http://redirector.to'; | ||
245 | $expectedText = 'stuff <a href="'. | ||
246 | $redirector . | ||
247 | urlencode('http://hello.there/is=someone#here') . | ||
248 | '">http://hello.there/is=someone#here</a> otherstuff'; | ||
249 | $processedText = text2clickable($text, $redirector); | ||
250 | $this->assertEquals($expectedText, $processedText); | ||
251 | } | ||
252 | |||
253 | /** | ||
254 | * Test text2clickable a redirector set and without URL encode. | ||
255 | */ | ||
256 | public function testText2clickableWithRedirectorDontEncode() | ||
257 | { | ||
258 | $text = 'stuff http://hello.there/?is=someone&or=something#here otherstuff'; | ||
259 | $redirector = 'http://redirector.to'; | ||
260 | $expectedText = 'stuff <a href="'. | ||
261 | $redirector . | ||
262 | 'http://hello.there/?is=someone&or=something#here' . | ||
263 | '">http://hello.there/?is=someone&or=something#here</a> otherstuff'; | ||
264 | $processedText = text2clickable($text, $redirector, false); | ||
265 | $this->assertEquals($expectedText, $processedText); | 422 | $this->assertEquals($expectedText, $processedText); |
266 | } | 423 | } |
267 | 424 | ||
@@ -270,8 +427,8 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
270 | */ | 427 | */ |
271 | public function testSpace2nbsp() | 428 | public function testSpace2nbsp() |
272 | { | 429 | { |
273 | $text = ' Are you thrilled by flags ?'. PHP_EOL .' Really?'; | 430 | $text = ' Are you thrilled by flags ?' . PHP_EOL . ' Really?'; |
274 | $expectedText = ' Are you thrilled by flags ?'. PHP_EOL .' Really?'; | 431 | $expectedText = ' Are you thrilled by flags ?' . PHP_EOL . ' Really?'; |
275 | $processedText = space2nbsp($text); | 432 | $processedText = space2nbsp($text); |
276 | $this->assertEquals($expectedText, $processedText); | 433 | $this->assertEquals($expectedText, $processedText); |
277 | } | 434 | } |
@@ -314,108 +471,36 @@ class LinkUtilsTest extends PHPUnit_Framework_TestCase | |||
314 | } | 471 | } |
315 | 472 | ||
316 | /** | 473 | /** |
474 | * Test is_note with note URLs. | ||
475 | */ | ||
476 | public function testIsNote() | ||
477 | { | ||
478 | $this->assertTrue(is_note('?')); | ||
479 | $this->assertTrue(is_note('?abcDEf')); | ||
480 | $this->assertTrue(is_note('?_abcDEf#123')); | ||
481 | } | ||
482 | |||
483 | /** | ||
484 | * Test is_note with non note URLs. | ||
485 | */ | ||
486 | public function testIsNotNote() | ||
487 | { | ||
488 | $this->assertFalse(is_note('')); | ||
489 | $this->assertFalse(is_note('nope')); | ||
490 | $this->assertFalse(is_note('https://github.com/shaarli/Shaarli/?hi')); | ||
491 | } | ||
492 | |||
493 | /** | ||
317 | * Util function to build an hashtag link. | 494 | * Util function to build an hashtag link. |
318 | * | 495 | * |
319 | * @param string $hashtag Hashtag name. | 496 | * @param string $hashtag Hashtag name. |
320 | * @param string $index Index URL. | 497 | * @param string $index Index URL. |
321 | * | 498 | * |
322 | * @return string HTML hashtag link. | 499 | * @return string HTML hashtag link. |
323 | */ | 500 | */ |
324 | private function getHashtagLink($hashtag, $index = '') | 501 | private function getHashtagLink($hashtag, $index = '') |
325 | { | 502 | { |
326 | $hashtagLink = '<a href="'. $index .'?addtag=$1" title="Hashtag $1">#$1</a>'; | 503 | $hashtagLink = '<a href="' . $index . '?addtag=$1" title="Hashtag $1">#$1</a>'; |
327 | return str_replace('$1', $hashtag, $hashtagLink); | 504 | return str_replace('$1', $hashtag, $hashtagLink); |
328 | } | 505 | } |
329 | } | 506 | } |
330 | |||
331 | // old style mock: PHPUnit doesn't allow function mock | ||
332 | |||
333 | /** | ||
334 | * Returns code 200 or html content type. | ||
335 | * | ||
336 | * @param resource $ch cURL resource | ||
337 | * @param int $type cURL info type | ||
338 | * | ||
339 | * @return int|string 200 or 'text/html' | ||
340 | */ | ||
341 | function ut_curl_getinfo_ok($ch, $type) | ||
342 | { | ||
343 | switch ($type) { | ||
344 | case CURLINFO_RESPONSE_CODE: | ||
345 | return 200; | ||
346 | case CURLINFO_CONTENT_TYPE: | ||
347 | return 'text/html; charset=utf-8'; | ||
348 | } | ||
349 | } | ||
350 | |||
351 | /** | ||
352 | * Returns code 200 or html content type without charset. | ||
353 | * | ||
354 | * @param resource $ch cURL resource | ||
355 | * @param int $type cURL info type | ||
356 | * | ||
357 | * @return int|string 200 or 'text/html' | ||
358 | */ | ||
359 | function ut_curl_getinfo_no_charset($ch, $type) | ||
360 | { | ||
361 | switch ($type) { | ||
362 | case CURLINFO_RESPONSE_CODE: | ||
363 | return 200; | ||
364 | case CURLINFO_CONTENT_TYPE: | ||
365 | return 'text/html'; | ||
366 | } | ||
367 | } | ||
368 | |||
369 | /** | ||
370 | * Invalid response code. | ||
371 | * | ||
372 | * @param resource $ch cURL resource | ||
373 | * @param int $type cURL info type | ||
374 | * | ||
375 | * @return int|string 404 or 'text/html' | ||
376 | */ | ||
377 | function ut_curl_getinfo_rc_ko($ch, $type) | ||
378 | { | ||
379 | switch ($type) { | ||
380 | case CURLINFO_RESPONSE_CODE: | ||
381 | return 404; | ||
382 | case CURLINFO_CONTENT_TYPE: | ||
383 | return 'text/html; charset=utf-8'; | ||
384 | } | ||
385 | } | ||
386 | |||
387 | /** | ||
388 | * Invalid content type. | ||
389 | * | ||
390 | * @param resource $ch cURL resource | ||
391 | * @param int $type cURL info type | ||
392 | * | ||
393 | * @return int|string 200 or 'text/plain' | ||
394 | */ | ||
395 | function ut_curl_getinfo_ct_ko($ch, $type) | ||
396 | { | ||
397 | switch ($type) { | ||
398 | case CURLINFO_RESPONSE_CODE: | ||
399 | return 200; | ||
400 | case CURLINFO_CONTENT_TYPE: | ||
401 | return 'text/plain'; | ||
402 | } | ||
403 | } | ||
404 | |||
405 | /** | ||
406 | * Invalid response code and content type. | ||
407 | * | ||
408 | * @param resource $ch cURL resource | ||
409 | * @param int $type cURL info type | ||
410 | * | ||
411 | * @return int|string 404 or 'text/plain' | ||
412 | */ | ||
413 | function ut_curl_getinfo_rs_ct_ko($ch, $type) | ||
414 | { | ||
415 | switch ($type) { | ||
416 | case CURLINFO_RESPONSE_CODE: | ||
417 | return 404; | ||
418 | case CURLINFO_CONTENT_TYPE: | ||
419 | return 'text/plain'; | ||
420 | } | ||
421 | } | ||
diff --git a/tests/config/ConfigJsonTest.php b/tests/config/ConfigJsonTest.php index d237bc80..95ad060b 100644 --- a/tests/config/ConfigJsonTest.php +++ b/tests/config/ConfigJsonTest.php | |||
@@ -4,7 +4,7 @@ namespace Shaarli\Config; | |||
4 | /** | 4 | /** |
5 | * Class ConfigJsonTest | 5 | * Class ConfigJsonTest |
6 | */ | 6 | */ |
7 | class ConfigJsonTest extends \PHPUnit_Framework_TestCase | 7 | class ConfigJsonTest extends \PHPUnit\Framework\TestCase |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * @var ConfigJson | 10 | * @var ConfigJson |
@@ -111,7 +111,7 @@ class ConfigJsonTest extends \PHPUnit_Framework_TestCase | |||
111 | /** | 111 | /** |
112 | * Write to invalid path. | 112 | * Write to invalid path. |
113 | * | 113 | * |
114 | * @expectedException \IOException | 114 | * @expectedException \Shaarli\Exceptions\IOException |
115 | */ | 115 | */ |
116 | public function testWriteInvalidArray() | 116 | public function testWriteInvalidArray() |
117 | { | 117 | { |
@@ -122,7 +122,7 @@ class ConfigJsonTest extends \PHPUnit_Framework_TestCase | |||
122 | /** | 122 | /** |
123 | * Write to invalid path. | 123 | * Write to invalid path. |
124 | * | 124 | * |
125 | * @expectedException \IOException | 125 | * @expectedException \Shaarli\Exceptions\IOException |
126 | */ | 126 | */ |
127 | public function testWriteInvalidBlank() | 127 | public function testWriteInvalidBlank() |
128 | { | 128 | { |
diff --git a/tests/config/ConfigManagerTest.php b/tests/config/ConfigManagerTest.php index 4a4e94ac..33830bc9 100644 --- a/tests/config/ConfigManagerTest.php +++ b/tests/config/ConfigManagerTest.php | |||
@@ -7,7 +7,7 @@ namespace Shaarli\Config; | |||
7 | * Note: it only test the manager with ConfigJson, | 7 | * Note: it only test the manager with ConfigJson, |
8 | * ConfigPhp is only a workaround to handle the transition to JSON type. | 8 | * ConfigPhp is only a workaround to handle the transition to JSON type. |
9 | */ | 9 | */ |
10 | class ConfigManagerTest extends \PHPUnit_Framework_TestCase | 10 | class ConfigManagerTest extends \PHPUnit\Framework\TestCase |
11 | { | 11 | { |
12 | /** | 12 | /** |
13 | * @var ConfigManager | 13 | * @var ConfigManager |
diff --git a/tests/config/ConfigPhpTest.php b/tests/config/ConfigPhpTest.php index be23eea1..67d878ce 100644 --- a/tests/config/ConfigPhpTest.php +++ b/tests/config/ConfigPhpTest.php | |||
@@ -4,7 +4,7 @@ namespace Shaarli\Config; | |||
4 | /** | 4 | /** |
5 | * Class ConfigPhpTest | 5 | * Class ConfigPhpTest |
6 | */ | 6 | */ |
7 | class ConfigPhpTest extends \PHPUnit_Framework_TestCase | 7 | class ConfigPhpTest extends \PHPUnit\Framework\TestCase |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * @var ConfigPhp | 10 | * @var ConfigPhp |
diff --git a/tests/config/ConfigPluginTest.php b/tests/config/ConfigPluginTest.php index deb02c9e..d7a70e68 100644 --- a/tests/config/ConfigPluginTest.php +++ b/tests/config/ConfigPluginTest.php | |||
@@ -8,7 +8,7 @@ require_once 'application/config/ConfigPlugin.php'; | |||
8 | /** | 8 | /** |
9 | * Unitary tests for Shaarli config related functions | 9 | * Unitary tests for Shaarli config related functions |
10 | */ | 10 | */ |
11 | class ConfigPluginTest extends \PHPUnit_Framework_TestCase | 11 | class ConfigPluginTest extends \PHPUnit\Framework\TestCase |
12 | { | 12 | { |
13 | /** | 13 | /** |
14 | * Test save_plugin_config with valid data. | 14 | * Test save_plugin_config with valid data. |
diff --git a/tests/CacheTest.php b/tests/feed/CacheTest.php index f60fad91..c0a9f26f 100644 --- a/tests/CacheTest.php +++ b/tests/feed/CacheTest.php | |||
@@ -2,16 +2,17 @@ | |||
2 | /** | 2 | /** |
3 | * Cache tests | 3 | * Cache tests |
4 | */ | 4 | */ |
5 | namespace Shaarli\Feed; | ||
5 | 6 | ||
6 | // required to access $_SESSION array | 7 | // required to access $_SESSION array |
7 | session_start(); | 8 | session_start(); |
8 | 9 | ||
9 | require_once 'application/Cache.php'; | 10 | require_once 'application/feed/Cache.php'; |
10 | 11 | ||
11 | /** | 12 | /** |
12 | * Unitary tests for cached pages | 13 | * Unitary tests for cached pages |
13 | */ | 14 | */ |
14 | class CacheTest extends PHPUnit_Framework_TestCase | 15 | class CacheTest extends \PHPUnit\Framework\TestCase |
15 | { | 16 | { |
16 | // test cache directory | 17 | // test cache directory |
17 | protected static $testCacheDir = 'sandbox/dummycache'; | 18 | protected static $testCacheDir = 'sandbox/dummycache'; |
@@ -25,16 +26,16 @@ class CacheTest extends PHPUnit_Framework_TestCase | |||
25 | */ | 26 | */ |
26 | public function setUp() | 27 | public function setUp() |
27 | { | 28 | { |
28 | if (! is_dir(self::$testCacheDir)) { | 29 | if (!is_dir(self::$testCacheDir)) { |
29 | mkdir(self::$testCacheDir); | 30 | mkdir(self::$testCacheDir); |
30 | } else { | 31 | } else { |
31 | array_map('unlink', glob(self::$testCacheDir.'/*')); | 32 | array_map('unlink', glob(self::$testCacheDir . '/*')); |
32 | } | 33 | } |
33 | 34 | ||
34 | foreach (self::$pages as $page) { | 35 | foreach (self::$pages as $page) { |
35 | file_put_contents(self::$testCacheDir.'/'.$page.'.cache', $page); | 36 | file_put_contents(self::$testCacheDir . '/' . $page . '.cache', $page); |
36 | } | 37 | } |
37 | file_put_contents(self::$testCacheDir.'/intru.der', 'ShouldNotBeThere'); | 38 | file_put_contents(self::$testCacheDir . '/intru.der', 'ShouldNotBeThere'); |
38 | } | 39 | } |
39 | 40 | ||
40 | /** | 41 | /** |
@@ -42,7 +43,7 @@ class CacheTest extends PHPUnit_Framework_TestCase | |||
42 | */ | 43 | */ |
43 | public function tearDown() | 44 | public function tearDown() |
44 | { | 45 | { |
45 | array_map('unlink', glob(self::$testCacheDir.'/*')); | 46 | array_map('unlink', glob(self::$testCacheDir . '/*')); |
46 | rmdir(self::$testCacheDir); | 47 | rmdir(self::$testCacheDir); |
47 | } | 48 | } |
48 | 49 | ||
@@ -53,10 +54,10 @@ class CacheTest extends PHPUnit_Framework_TestCase | |||
53 | { | 54 | { |
54 | purgeCachedPages(self::$testCacheDir); | 55 | purgeCachedPages(self::$testCacheDir); |
55 | foreach (self::$pages as $page) { | 56 | foreach (self::$pages as $page) { |
56 | $this->assertFileNotExists(self::$testCacheDir.'/'.$page.'.cache'); | 57 | $this->assertFileNotExists(self::$testCacheDir . '/' . $page . '.cache'); |
57 | } | 58 | } |
58 | 59 | ||
59 | $this->assertFileExists(self::$testCacheDir.'/intru.der'); | 60 | $this->assertFileExists(self::$testCacheDir . '/intru.der'); |
60 | } | 61 | } |
61 | 62 | ||
62 | /** | 63 | /** |
@@ -68,7 +69,7 @@ class CacheTest extends PHPUnit_Framework_TestCase | |||
68 | ini_set('error_log', '/dev/null'); | 69 | ini_set('error_log', '/dev/null'); |
69 | $this->assertEquals( | 70 | $this->assertEquals( |
70 | 'Cannot purge sandbox/dummycache_missing: no directory', | 71 | 'Cannot purge sandbox/dummycache_missing: no directory', |
71 | purgeCachedPages(self::$testCacheDir.'_missing') | 72 | purgeCachedPages(self::$testCacheDir . '_missing') |
72 | ); | 73 | ); |
73 | ini_set('error_log', $oldlog); | 74 | ini_set('error_log', $oldlog); |
74 | } | 75 | } |
@@ -83,7 +84,7 @@ class CacheTest extends PHPUnit_Framework_TestCase | |||
83 | 84 | ||
84 | invalidateCaches(self::$testCacheDir); | 85 | invalidateCaches(self::$testCacheDir); |
85 | foreach (self::$pages as $page) { | 86 | foreach (self::$pages as $page) { |
86 | $this->assertFileNotExists(self::$testCacheDir.'/'.$page.'.cache'); | 87 | $this->assertFileNotExists(self::$testCacheDir . '/' . $page . '.cache'); |
87 | } | 88 | } |
88 | 89 | ||
89 | $this->assertArrayNotHasKey('tags', $_SESSION); | 90 | $this->assertArrayNotHasKey('tags', $_SESSION); |
diff --git a/tests/CachedPageTest.php b/tests/feed/CachedPageTest.php index 51565cd6..0bcc1442 100644 --- a/tests/CachedPageTest.php +++ b/tests/feed/CachedPageTest.php | |||
@@ -2,13 +2,12 @@ | |||
2 | /** | 2 | /** |
3 | * PageCache tests | 3 | * PageCache tests |
4 | */ | 4 | */ |
5 | 5 | namespace Shaarli\Feed; | |
6 | require_once 'application/CachedPage.php'; | ||
7 | 6 | ||
8 | /** | 7 | /** |
9 | * Unitary tests for cached pages | 8 | * Unitary tests for cached pages |
10 | */ | 9 | */ |
11 | class CachedPageTest extends PHPUnit_Framework_TestCase | 10 | class CachedPageTest extends \PHPUnit\Framework\TestCase |
12 | { | 11 | { |
13 | // test cache directory | 12 | // test cache directory |
14 | protected static $testCacheDir = 'sandbox/pagecache'; | 13 | protected static $testCacheDir = 'sandbox/pagecache'; |
@@ -20,10 +19,10 @@ class CachedPageTest extends PHPUnit_Framework_TestCase | |||
20 | */ | 19 | */ |
21 | public static function setUpBeforeClass() | 20 | public static function setUpBeforeClass() |
22 | { | 21 | { |
23 | if (! is_dir(self::$testCacheDir)) { | 22 | if (!is_dir(self::$testCacheDir)) { |
24 | mkdir(self::$testCacheDir); | 23 | mkdir(self::$testCacheDir); |
25 | } | 24 | } |
26 | self::$filename = self::$testCacheDir.'/'.sha1(self::$url).'.cache'; | 25 | self::$filename = self::$testCacheDir . '/' . sha1(self::$url) . '.cache'; |
27 | } | 26 | } |
28 | 27 | ||
29 | /** | 28 | /** |
diff --git a/tests/FeedBuilderTest.php b/tests/feed/FeedBuilderTest.php index 4ca58e5a..b496cb4c 100644 --- a/tests/FeedBuilderTest.php +++ b/tests/feed/FeedBuilderTest.php | |||
@@ -1,14 +1,17 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/FeedBuilder.php'; | 3 | namespace Shaarli\Feed; |
4 | require_once 'application/LinkDB.php'; | 4 | |
5 | use DateTime; | ||
6 | use ReferenceLinkDB; | ||
7 | use Shaarli\Bookmark\LinkDB; | ||
5 | 8 | ||
6 | /** | 9 | /** |
7 | * FeedBuilderTest class. | 10 | * FeedBuilderTest class. |
8 | * | 11 | * |
9 | * Unit tests for FeedBuilder. | 12 | * Unit tests for FeedBuilder. |
10 | */ | 13 | */ |
11 | class FeedBuilderTest extends PHPUnit_Framework_TestCase | 14 | class FeedBuilderTest extends \PHPUnit\Framework\TestCase |
12 | { | 15 | { |
13 | /** | 16 | /** |
14 | * @var string locale Basque (Spain). | 17 | * @var string locale Basque (Spain). |
@@ -90,7 +93,7 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
90 | $this->assertEquals('http://host.tld/?WDWyig', $link['url']); | 93 | $this->assertEquals('http://host.tld/?WDWyig', $link['url']); |
91 | $this->assertRegExp('/Tue, 10 Mar 2015 11:46:51 \+\d{4}/', $link['pub_iso_date']); | 94 | $this->assertRegExp('/Tue, 10 Mar 2015 11:46:51 \+\d{4}/', $link['pub_iso_date']); |
92 | $pub = DateTime::createFromFormat(DateTime::RSS, $link['pub_iso_date']); | 95 | $pub = DateTime::createFromFormat(DateTime::RSS, $link['pub_iso_date']); |
93 | $up = DateTime::createFromFormat(DateTime::ATOM, $link['up_iso_date']); | 96 | $up = DateTime::createFromFormat(DateTime::ATOM, $link['up_iso_date']); |
94 | $this->assertEquals($pub, $up); | 97 | $this->assertEquals($pub, $up); |
95 | $this->assertContains('Stallman has a beard', $link['description']); | 98 | $this->assertContains('Stallman has a beard', $link['description']); |
96 | $this->assertContains('Permalink', $link['description']); | 99 | $this->assertContains('Permalink', $link['description']); |
diff --git a/tests/HttpUtils/ClientIpIdTest.php b/tests/http/HttpUtils/ClientIpIdTest.php index c15ac5cc..982e57e0 100644 --- a/tests/HttpUtils/ClientIpIdTest.php +++ b/tests/http/HttpUtils/ClientIpIdTest.php | |||
@@ -3,12 +3,14 @@ | |||
3 | * HttpUtils' tests | 3 | * HttpUtils' tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/HttpUtils.php'; | 6 | namespace Shaarli\Http; |
7 | |||
8 | require_once 'application/http/HttpUtils.php'; | ||
7 | 9 | ||
8 | /** | 10 | /** |
9 | * Unitary tests for client_ip_id() | 11 | * Unitary tests for client_ip_id() |
10 | */ | 12 | */ |
11 | class ClientIpIdTest extends PHPUnit_Framework_TestCase | 13 | class ClientIpIdTest extends \PHPUnit\Framework\TestCase |
12 | { | 14 | { |
13 | /** | 15 | /** |
14 | * Get a remote client ID based on its IP | 16 | * Get a remote client ID based on its IP |
diff --git a/tests/HttpUtils/GetHttpUrlTest.php b/tests/http/HttpUtils/GetHttpUrlTest.php index ea53de5f..3dc5bc9b 100644 --- a/tests/HttpUtils/GetHttpUrlTest.php +++ b/tests/http/HttpUtils/GetHttpUrlTest.php | |||
@@ -3,12 +3,14 @@ | |||
3 | * HttpUtils' tests | 3 | * HttpUtils' tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/HttpUtils.php'; | 6 | namespace Shaarli\Http; |
7 | |||
8 | require_once 'application/http/HttpUtils.php'; | ||
7 | 9 | ||
8 | /** | 10 | /** |
9 | * Unitary tests for get_http_response() | 11 | * Unitary tests for get_http_response() |
10 | */ | 12 | */ |
11 | class GetHttpUrlTest extends PHPUnit_Framework_TestCase | 13 | class GetHttpUrlTest extends \PHPUnit\Framework\TestCase |
12 | { | 14 | { |
13 | /** | 15 | /** |
14 | * Get an invalid local URL | 16 | * Get an invalid local URL |
@@ -17,12 +19,12 @@ class GetHttpUrlTest extends PHPUnit_Framework_TestCase | |||
17 | { | 19 | { |
18 | // Local | 20 | // Local |
19 | list($headers, $content) = get_http_response('/non/existent', 1); | 21 | list($headers, $content) = get_http_response('/non/existent', 1); |
20 | $this->assertEquals('Invalid HTTP Url', $headers[0]); | 22 | $this->assertEquals('Invalid HTTP UrlUtils', $headers[0]); |
21 | $this->assertFalse($content); | 23 | $this->assertFalse($content); |
22 | 24 | ||
23 | // Non HTTP | 25 | // Non HTTP |
24 | list($headers, $content) = get_http_response('ftp://save.tld/mysave', 1); | 26 | list($headers, $content) = get_http_response('ftp://save.tld/mysave', 1); |
25 | $this->assertEquals('Invalid HTTP Url', $headers[0]); | 27 | $this->assertEquals('Invalid HTTP UrlUtils', $headers[0]); |
26 | $this->assertFalse($content); | 28 | $this->assertFalse($content); |
27 | } | 29 | } |
28 | 30 | ||
diff --git a/tests/HttpUtils/GetIpAdressFromProxyTest.php b/tests/http/HttpUtils/GetIpAdressFromProxyTest.php index 7af5bd9d..fe3a639e 100644 --- a/tests/HttpUtils/GetIpAdressFromProxyTest.php +++ b/tests/http/HttpUtils/GetIpAdressFromProxyTest.php | |||
@@ -1,11 +1,13 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/HttpUtils.php'; | 3 | namespace Shaarli\Http; |
4 | |||
5 | require_once 'application/http/HttpUtils.php'; | ||
4 | 6 | ||
5 | /** | 7 | /** |
6 | * Unitary tests for getIpAddressFromProxy() | 8 | * Unitary tests for getIpAddressFromProxy() |
7 | */ | 9 | */ |
8 | class GetIpAdressFromProxyTest extends PHPUnit_Framework_TestCase | 10 | class GetIpAdressFromProxyTest extends \PHPUnit\Framework\TestCase |
9 | { | 11 | { |
10 | 12 | ||
11 | /** | 13 | /** |
diff --git a/tests/HttpUtils/IndexUrlTest.php b/tests/http/HttpUtils/IndexUrlTest.php index 337dcab0..bcbe59cb 100644 --- a/tests/HttpUtils/IndexUrlTest.php +++ b/tests/http/HttpUtils/IndexUrlTest.php | |||
@@ -3,12 +3,14 @@ | |||
3 | * HttpUtils' tests | 3 | * HttpUtils' tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/HttpUtils.php'; | 6 | namespace Shaarli\Http; |
7 | |||
8 | require_once 'application/http/HttpUtils.php'; | ||
7 | 9 | ||
8 | /** | 10 | /** |
9 | * Unitary tests for index_url() | 11 | * Unitary tests for index_url() |
10 | */ | 12 | */ |
11 | class IndexUrlTest extends PHPUnit_Framework_TestCase | 13 | class IndexUrlTest extends \PHPUnit\Framework\TestCase |
12 | { | 14 | { |
13 | /** | 15 | /** |
14 | * If on the main page, remove "index.php" from the URL resource | 16 | * If on the main page, remove "index.php" from the URL resource |
diff --git a/tests/HttpUtils/IsHttpsTest.php b/tests/http/HttpUtils/IsHttpsTest.php index 097f2bcf..348956c6 100644 --- a/tests/HttpUtils/IsHttpsTest.php +++ b/tests/http/HttpUtils/IsHttpsTest.php | |||
@@ -1,12 +1,15 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Shaarli\Http; | ||
4 | |||
5 | require_once 'application/http/HttpUtils.php'; | ||
3 | 6 | ||
4 | /** | 7 | /** |
5 | * Class IsHttpsTest | 8 | * Class IsHttpsTest |
6 | * | 9 | * |
7 | * Test class for is_https() function. | 10 | * Test class for is_https() function. |
8 | */ | 11 | */ |
9 | class IsHttpsTest extends PHPUnit_Framework_TestCase | 12 | class IsHttpsTest extends \PHPUnit\Framework\TestCase |
10 | { | 13 | { |
11 | 14 | ||
12 | /** | 15 | /** |
diff --git a/tests/HttpUtils/PageUrlTest.php b/tests/http/HttpUtils/PageUrlTest.php index 4dbbe9cf..f1991716 100644 --- a/tests/HttpUtils/PageUrlTest.php +++ b/tests/http/HttpUtils/PageUrlTest.php | |||
@@ -3,12 +3,14 @@ | |||
3 | * HttpUtils' tests | 3 | * HttpUtils' tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/HttpUtils.php'; | 6 | namespace Shaarli\Http; |
7 | |||
8 | require_once 'application/http/HttpUtils.php'; | ||
7 | 9 | ||
8 | /** | 10 | /** |
9 | * Unitary tests for page_url() | 11 | * Unitary tests for page_url() |
10 | */ | 12 | */ |
11 | class PageUrlTest extends PHPUnit_Framework_TestCase | 13 | class PageUrlTest extends \PHPUnit\Framework\TestCase |
12 | { | 14 | { |
13 | /** | 15 | /** |
14 | * If on the main page, remove "index.php" from the URL resource | 16 | * If on the main page, remove "index.php" from the URL resource |
diff --git a/tests/HttpUtils/ServerUrlTest.php b/tests/http/HttpUtils/ServerUrlTest.php index 324b827a..9caf1049 100644 --- a/tests/HttpUtils/ServerUrlTest.php +++ b/tests/http/HttpUtils/ServerUrlTest.php | |||
@@ -3,12 +3,14 @@ | |||
3 | * HttpUtils' tests | 3 | * HttpUtils' tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/HttpUtils.php'; | 6 | namespace Shaarli\Http; |
7 | |||
8 | require_once 'application/http/HttpUtils.php'; | ||
7 | 9 | ||
8 | /** | 10 | /** |
9 | * Unitary tests for server_url() | 11 | * Unitary tests for server_url() |
10 | */ | 12 | */ |
11 | class ServerUrlTest extends PHPUnit_Framework_TestCase | 13 | class ServerUrlTest extends \PHPUnit\Framework\TestCase |
12 | { | 14 | { |
13 | /** | 15 | /** |
14 | * Detect if the server uses SSL | 16 | * Detect if the server uses SSL |
diff --git a/tests/Url/UrlTest.php b/tests/http/UrlTest.php index db229ce0..ae92f73a 100644 --- a/tests/Url/UrlTest.php +++ b/tests/http/UrlTest.php | |||
@@ -1,14 +1,14 @@ | |||
1 | <?php | 1 | <?php |
2 | /** | 2 | /** |
3 | * Url's tests | 3 | * UrlUtils's tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/Url.php'; | 6 | namespace Shaarli\Http; |
7 | 7 | ||
8 | /** | 8 | /** |
9 | * Unitary tests for URL utilities | 9 | * Unitary tests for URL utilities |
10 | */ | 10 | */ |
11 | class UrlTest extends PHPUnit_Framework_TestCase | 11 | class UrlTest extends \PHPUnit\Framework\TestCase |
12 | { | 12 | { |
13 | // base URL for tests | 13 | // base URL for tests |
14 | protected static $baseUrl = 'http://domain.tld:3000'; | 14 | protected static $baseUrl = 'http://domain.tld:3000'; |
@@ -18,7 +18,7 @@ class UrlTest extends PHPUnit_Framework_TestCase | |||
18 | */ | 18 | */ |
19 | private function assertUrlIsCleaned($query = '', $fragment = '') | 19 | private function assertUrlIsCleaned($query = '', $fragment = '') |
20 | { | 20 | { |
21 | $url = new Url(self::$baseUrl.$query.$fragment); | 21 | $url = new Url(self::$baseUrl . $query . $fragment); |
22 | $url->cleanup(); | 22 | $url->cleanup(); |
23 | $this->assertEquals(self::$baseUrl, $url->toString()); | 23 | $this->assertEquals(self::$baseUrl, $url->toString()); |
24 | } | 24 | } |
@@ -38,7 +38,7 @@ class UrlTest extends PHPUnit_Framework_TestCase | |||
38 | public function testConstruct() | 38 | public function testConstruct() |
39 | { | 39 | { |
40 | $ref = 'http://username:password@hostname:9090/path' | 40 | $ref = 'http://username:password@hostname:9090/path' |
41 | .'?arg1=value1&arg2=value2#anchor'; | 41 | . '?arg1=value1&arg2=value2#anchor'; |
42 | $url = new Url($ref); | 42 | $url = new Url($ref); |
43 | $this->assertEquals($ref, $url->toString()); | 43 | $this->assertEquals($ref, $url->toString()); |
44 | } | 44 | } |
@@ -52,7 +52,7 @@ class UrlTest extends PHPUnit_Framework_TestCase | |||
52 | $this->assertUrlIsCleaned(); | 52 | $this->assertUrlIsCleaned(); |
53 | 53 | ||
54 | // URL with no annoying elements | 54 | // URL with no annoying elements |
55 | $ref = self::$baseUrl.'?p1=val1&p2=1234#edit'; | 55 | $ref = self::$baseUrl . '?p1=val1&p2=1234#edit'; |
56 | $url = new Url($ref); | 56 | $url = new Url($ref); |
57 | $this->assertEquals($ref, $url->cleanup()); | 57 | $this->assertEquals($ref, $url->cleanup()); |
58 | } | 58 | } |
@@ -115,26 +115,26 @@ class UrlTest extends PHPUnit_Framework_TestCase | |||
115 | // ditch annoying query params and fragment, keep useful params | 115 | // ditch annoying query params and fragment, keep useful params |
116 | $url = new Url( | 116 | $url = new Url( |
117 | self::$baseUrl | 117 | self::$baseUrl |
118 | .'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#tk.rss_all' | 118 | . '?fb=zomg&my=stuff&utm_medium=numnum&is=kept#tk.rss_all' |
119 | ); | 119 | ); |
120 | $this->assertEquals(self::$baseUrl.'?my=stuff&is=kept', $url->cleanup()); | 120 | $this->assertEquals(self::$baseUrl . '?my=stuff&is=kept', $url->cleanup()); |
121 | 121 | ||
122 | 122 | ||
123 | // ditch annoying query params, keep useful params and fragment | 123 | // ditch annoying query params, keep useful params and fragment |
124 | $url = new Url( | 124 | $url = new Url( |
125 | self::$baseUrl | 125 | self::$baseUrl |
126 | .'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#again' | 126 | . '?fb=zomg&my=stuff&utm_medium=numnum&is=kept#again' |
127 | ); | 127 | ); |
128 | $this->assertEquals( | 128 | $this->assertEquals( |
129 | self::$baseUrl.'?my=stuff&is=kept#again', | 129 | self::$baseUrl . '?my=stuff&is=kept#again', |
130 | $url->cleanup() | 130 | $url->cleanup() |
131 | ); | 131 | ); |
132 | 132 | ||
133 | // test firefox reader url | 133 | // test firefox reader url |
134 | $url = new Url( | 134 | $url = new Url( |
135 | 'about://reader?url=' . urlencode(self::$baseUrl .'?my=stuff&is=kept') | 135 | 'about://reader?url=' . urlencode(self::$baseUrl . '?my=stuff&is=kept') |
136 | ); | 136 | ); |
137 | $this->assertEquals(self::$baseUrl.'?my=stuff&is=kept', $url->cleanup()); | 137 | $this->assertEquals(self::$baseUrl . '?my=stuff&is=kept', $url->cleanup()); |
138 | } | 138 | } |
139 | 139 | ||
140 | /** | 140 | /** |
diff --git a/tests/Url/CleanupUrlTest.php b/tests/http/UrlUtils/CleanupUrlTest.php index 24791948..6c4d124b 100644 --- a/tests/Url/CleanupUrlTest.php +++ b/tests/http/UrlUtils/CleanupUrlTest.php | |||
@@ -3,9 +3,11 @@ | |||
3 | * Unitary tests for cleanup_url() | 3 | * Unitary tests for cleanup_url() |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/Url.php'; | 6 | namespace Shaarli\Http; |
7 | 7 | ||
8 | class CleanupUrlTest extends PHPUnit_Framework_TestCase | 8 | require_once 'application/http/UrlUtils.php'; |
9 | |||
10 | class CleanupUrlTest extends \PHPUnit\Framework\TestCase | ||
9 | { | 11 | { |
10 | /** | 12 | /** |
11 | * @var string reference URL | 13 | * @var string reference URL |
diff --git a/tests/Url/GetUrlSchemeTest.php b/tests/http/UrlUtils/GetUrlSchemeTest.php index 18b932d6..2b97f7be 100644 --- a/tests/Url/GetUrlSchemeTest.php +++ b/tests/http/UrlUtils/GetUrlSchemeTest.php | |||
@@ -3,12 +3,14 @@ | |||
3 | * Unitary tests for get_url_scheme() | 3 | * Unitary tests for get_url_scheme() |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/Url.php'; | 6 | namespace Shaarli\Http; |
7 | 7 | ||
8 | class GetUrlSchemeTest extends PHPUnit_Framework_TestCase | 8 | require_once 'application/http/UrlUtils.php'; |
9 | |||
10 | class GetUrlSchemeTest extends \PHPUnit\Framework\TestCase | ||
9 | { | 11 | { |
10 | /** | 12 | /** |
11 | * Get empty scheme string for empty Url | 13 | * Get empty scheme string for empty UrlUtils |
12 | */ | 14 | */ |
13 | public function testGetUrlSchemeEmpty() | 15 | public function testGetUrlSchemeEmpty() |
14 | { | 16 | { |
@@ -16,7 +18,7 @@ class GetUrlSchemeTest extends PHPUnit_Framework_TestCase | |||
16 | } | 18 | } |
17 | 19 | ||
18 | /** | 20 | /** |
19 | * Get normal scheme of Url | 21 | * Get normal scheme of UrlUtils |
20 | */ | 22 | */ |
21 | public function testGetUrlScheme() | 23 | public function testGetUrlScheme() |
22 | { | 24 | { |
diff --git a/tests/Url/UnparseUrlTest.php b/tests/http/UrlUtils/UnparseUrlTest.php index e314b484..040d8c54 100644 --- a/tests/Url/UnparseUrlTest.php +++ b/tests/http/UrlUtils/UnparseUrlTest.php | |||
@@ -1,14 +1,16 @@ | |||
1 | <?php | 1 | <?php |
2 | /** | 2 | /** |
3 | * Unpares Url's tests | 3 | * Unpares UrlUtils's tests |
4 | */ | 4 | */ |
5 | 5 | ||
6 | require_once 'application/Url.php'; | 6 | namespace Shaarli\Http; |
7 | |||
8 | require_once 'application/http/UrlUtils.php'; | ||
7 | 9 | ||
8 | /** | 10 | /** |
9 | * Unitary tests for unparse_url() | 11 | * Unitary tests for unparse_url() |
10 | */ | 12 | */ |
11 | class UnparseUrlTest extends PHPUnit_Framework_TestCase | 13 | class UnparseUrlTest extends \PHPUnit\Framework\TestCase |
12 | { | 14 | { |
13 | /** | 15 | /** |
14 | * Thanks for building nothing | 16 | * Thanks for building nothing |
diff --git a/tests/Url/WhitelistProtocolsTest.php b/tests/http/UrlUtils/WhitelistProtocolsTest.php index a3156804..69512dbd 100644 --- a/tests/Url/WhitelistProtocolsTest.php +++ b/tests/http/UrlUtils/WhitelistProtocolsTest.php | |||
@@ -1,15 +1,15 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/Url.php'; | 3 | namespace Shaarli\Http; |
4 | 4 | ||
5 | use Shaarli\Config\ConfigManager; | 5 | require_once 'application/http/UrlUtils.php'; |
6 | 6 | ||
7 | /** | 7 | /** |
8 | * Class WhitelistProtocolsTest | 8 | * Class WhitelistProtocolsTest |
9 | * | 9 | * |
10 | * Test whitelist_protocols() function of Url. | 10 | * Test whitelist_protocols() function of UrlUtils. |
11 | */ | 11 | */ |
12 | class WhitelistProtocolsTest extends PHPUnit_Framework_TestCase | 12 | class WhitelistProtocolsTest extends \PHPUnit\Framework\TestCase |
13 | { | 13 | { |
14 | /** | 14 | /** |
15 | * Test whitelist_protocols() on a note (relative URL). | 15 | * Test whitelist_protocols() on a note (relative URL). |
diff --git a/tests/languages/fr/LanguagesFrTest.php b/tests/languages/fr/LanguagesFrTest.php index 38347de1..b8b7ca3a 100644 --- a/tests/languages/fr/LanguagesFrTest.php +++ b/tests/languages/fr/LanguagesFrTest.php | |||
@@ -12,7 +12,7 @@ use Shaarli\Config\ConfigManager; | |||
12 | * | 12 | * |
13 | * @package Shaarli | 13 | * @package Shaarli |
14 | */ | 14 | */ |
15 | class LanguagesFrTest extends \PHPUnit_Framework_TestCase | 15 | class LanguagesFrTest extends \PHPUnit\Framework\TestCase |
16 | { | 16 | { |
17 | /** | 17 | /** |
18 | * @var string Config file path (without extension). | 18 | * @var string Config file path (without extension). |
diff --git a/tests/NetscapeBookmarkUtils/BookmarkExportTest.php b/tests/netscape/BookmarkExportTest.php index 77fbd5f3..6de9876d 100644 --- a/tests/NetscapeBookmarkUtils/BookmarkExportTest.php +++ b/tests/netscape/BookmarkExportTest.php | |||
@@ -1,11 +1,14 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Netscape; | ||
2 | 3 | ||
3 | require_once 'application/NetscapeBookmarkUtils.php'; | 4 | use Shaarli\Bookmark\LinkDB; |
5 | |||
6 | require_once 'tests/utils/ReferenceLinkDB.php'; | ||
4 | 7 | ||
5 | /** | 8 | /** |
6 | * Netscape bookmark export | 9 | * Netscape bookmark export |
7 | */ | 10 | */ |
8 | class BookmarkExportTest extends PHPUnit_Framework_TestCase | 11 | class BookmarkExportTest extends \PHPUnit\Framework\TestCase |
9 | { | 12 | { |
10 | /** | 13 | /** |
11 | * @var string datastore to test write operations | 14 | * @var string datastore to test write operations |
@@ -13,7 +16,7 @@ class BookmarkExportTest extends PHPUnit_Framework_TestCase | |||
13 | protected static $testDatastore = 'sandbox/datastore.php'; | 16 | protected static $testDatastore = 'sandbox/datastore.php'; |
14 | 17 | ||
15 | /** | 18 | /** |
16 | * @var ReferenceLinkDB instance. | 19 | * @var \ReferenceLinkDB instance. |
17 | */ | 20 | */ |
18 | protected static $refDb = null; | 21 | protected static $refDb = null; |
19 | 22 | ||
@@ -27,7 +30,7 @@ class BookmarkExportTest extends PHPUnit_Framework_TestCase | |||
27 | */ | 30 | */ |
28 | public static function setUpBeforeClass() | 31 | public static function setUpBeforeClass() |
29 | { | 32 | { |
30 | self::$refDb = new ReferenceLinkDB(); | 33 | self::$refDb = new \ReferenceLinkDB(); |
31 | self::$refDb->write(self::$testDatastore); | 34 | self::$refDb->write(self::$testDatastore); |
32 | self::$linkDb = new LinkDB(self::$testDatastore, true, false); | 35 | self::$linkDb = new LinkDB(self::$testDatastore, true, false); |
33 | } | 36 | } |
diff --git a/tests/NetscapeBookmarkUtils/BookmarkImportTest.php b/tests/netscape/BookmarkImportTest.php index f0a958cb..ccafc161 100644 --- a/tests/NetscapeBookmarkUtils/BookmarkImportTest.php +++ b/tests/netscape/BookmarkImportTest.php | |||
@@ -1,8 +1,10 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Netscape; | ||
2 | 3 | ||
3 | require_once 'application/NetscapeBookmarkUtils.php'; | 4 | use DateTime; |
4 | 5 | use Shaarli\Bookmark\LinkDB; | |
5 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
7 | use Shaarli\History; | ||
6 | 8 | ||
7 | /** | 9 | /** |
8 | * Utility function to load a file's metadata in a $_FILES-like array | 10 | * Utility function to load a file's metadata in a $_FILES-like array |
@@ -26,7 +28,7 @@ function file2array($filename) | |||
26 | /** | 28 | /** |
27 | * Netscape bookmark import | 29 | * Netscape bookmark import |
28 | */ | 30 | */ |
29 | class BookmarkImportTest extends PHPUnit_Framework_TestCase | 31 | class BookmarkImportTest extends \PHPUnit\Framework\TestCase |
30 | { | 32 | { |
31 | /** | 33 | /** |
32 | * @var string datastore to test write operations | 34 | * @var string datastore to test write operations |
diff --git a/tests/NetscapeBookmarkUtils/input/empty.htm b/tests/netscape/input/empty.htm index e69de29b..e69de29b 100644 --- a/tests/NetscapeBookmarkUtils/input/empty.htm +++ b/tests/netscape/input/empty.htm | |||
diff --git a/tests/NetscapeBookmarkUtils/input/internet_explorer_encoding.htm b/tests/netscape/input/internet_explorer_encoding.htm index 18703cf6..18703cf6 100644 --- a/tests/NetscapeBookmarkUtils/input/internet_explorer_encoding.htm +++ b/tests/netscape/input/internet_explorer_encoding.htm | |||
diff --git a/tests/NetscapeBookmarkUtils/input/lowercase_doctype.htm b/tests/netscape/input/lowercase_doctype.htm index 8911ad19..8911ad19 100644 --- a/tests/NetscapeBookmarkUtils/input/lowercase_doctype.htm +++ b/tests/netscape/input/lowercase_doctype.htm | |||
diff --git a/tests/NetscapeBookmarkUtils/input/netscape_basic.htm b/tests/netscape/input/netscape_basic.htm index affe0cf8..affe0cf8 100644 --- a/tests/NetscapeBookmarkUtils/input/netscape_basic.htm +++ b/tests/netscape/input/netscape_basic.htm | |||
diff --git a/tests/NetscapeBookmarkUtils/input/netscape_nested.htm b/tests/netscape/input/netscape_nested.htm index b486fe18..b486fe18 100644 --- a/tests/NetscapeBookmarkUtils/input/netscape_nested.htm +++ b/tests/netscape/input/netscape_nested.htm | |||
diff --git a/tests/NetscapeBookmarkUtils/input/no_doctype.htm b/tests/netscape/input/no_doctype.htm index 766d398b..766d398b 100644 --- a/tests/NetscapeBookmarkUtils/input/no_doctype.htm +++ b/tests/netscape/input/no_doctype.htm | |||
diff --git a/tests/NetscapeBookmarkUtils/input/same_date.htm b/tests/netscape/input/same_date.htm index 9d58a582..9d58a582 100644 --- a/tests/NetscapeBookmarkUtils/input/same_date.htm +++ b/tests/netscape/input/same_date.htm | |||
diff --git a/tests/plugins/PluginAddlinkTest.php b/tests/plugins/PluginAddlinkTest.php index b6239e7f..d052f8b9 100644 --- a/tests/plugins/PluginAddlinkTest.php +++ b/tests/plugins/PluginAddlinkTest.php | |||
@@ -1,17 +1,15 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Addlink; | ||
2 | 3 | ||
3 | /** | 4 | use Shaarli\Plugin\PluginManager; |
4 | * PluginPlayvideosTest.php | 5 | use Shaarli\Router; |
5 | */ | ||
6 | 6 | ||
7 | require_once 'plugins/addlink_toolbar/addlink_toolbar.php'; | 7 | require_once 'plugins/addlink_toolbar/addlink_toolbar.php'; |
8 | require_once 'application/Router.php'; | ||
9 | 8 | ||
10 | /** | 9 | /** |
11 | * Class PluginAddlinkTest | ||
12 | * Unit test for the Addlink toolbar plugin | 10 | * Unit test for the Addlink toolbar plugin |
13 | */ | 11 | */ |
14 | class PluginAddlinkTest extends PHPUnit_Framework_TestCase | 12 | class PluginAddlinkTest extends \PHPUnit\Framework\TestCase |
15 | { | 13 | { |
16 | /** | 14 | /** |
17 | * Reset plugin path. | 15 | * Reset plugin path. |
diff --git a/tests/plugins/PluginArchiveorgTest.php b/tests/plugins/PluginArchiveorgTest.php index fecd5f2c..510288bb 100644 --- a/tests/plugins/PluginArchiveorgTest.php +++ b/tests/plugins/PluginArchiveorgTest.php | |||
@@ -1,16 +1,19 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Archiveorg; | ||
2 | 3 | ||
3 | /** | 4 | /** |
4 | * PluginArchiveorgTest.php | 5 | * PluginArchiveorgTest.php |
5 | */ | 6 | */ |
6 | 7 | ||
8 | use Shaarli\Plugin\PluginManager; | ||
9 | |||
7 | require_once 'plugins/archiveorg/archiveorg.php'; | 10 | require_once 'plugins/archiveorg/archiveorg.php'; |
8 | 11 | ||
9 | /** | 12 | /** |
10 | * Class PluginArchiveorgTest | 13 | * Class PluginArchiveorgTest |
11 | * Unit test for the archiveorg plugin | 14 | * Unit test for the archiveorg plugin |
12 | */ | 15 | */ |
13 | class PluginArchiveorgTest extends PHPUnit_Framework_TestCase | 16 | class PluginArchiveorgTest extends \PHPUnit\Framework\TestCase |
14 | { | 17 | { |
15 | /** | 18 | /** |
16 | * Reset plugin path | 19 | * Reset plugin path |
diff --git a/tests/plugins/PluginDefaultColorsTest.php b/tests/plugins/PluginDefaultColorsTest.php new file mode 100644 index 00000000..b9951cca --- /dev/null +++ b/tests/plugins/PluginDefaultColorsTest.php | |||
@@ -0,0 +1,195 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Shaarli\Plugin\DefaultColors; | ||
4 | |||
5 | use DateTime; | ||
6 | use PHPUnit\Framework\TestCase; | ||
7 | use Shaarli\Bookmark\LinkDB; | ||
8 | use Shaarli\Config\ConfigManager; | ||
9 | use Shaarli\Plugin\PluginManager; | ||
10 | |||
11 | require_once 'plugins/default_colors/default_colors.php'; | ||
12 | |||
13 | /** | ||
14 | * Class PluginDefaultColorsTest | ||
15 | * | ||
16 | * Test the DefaultColors plugin (allowing to override default template colors). | ||
17 | */ | ||
18 | class PluginDefaultColorsTest extends TestCase | ||
19 | { | ||
20 | /** | ||
21 | * Reset plugin path | ||
22 | */ | ||
23 | public function setUp() | ||
24 | { | ||
25 | PluginManager::$PLUGINS_PATH = 'sandbox'; | ||
26 | mkdir(PluginManager::$PLUGINS_PATH . '/default_colors/'); | ||
27 | copy( | ||
28 | 'plugins/default_colors/default_colors.css.template', | ||
29 | PluginManager::$PLUGINS_PATH . '/default_colors/default_colors.css.template' | ||
30 | ); | ||
31 | } | ||
32 | |||
33 | /** | ||
34 | * Remove sandbox files and folder | ||
35 | */ | ||
36 | public function tearDown() | ||
37 | { | ||
38 | if (file_exists('sandbox/default_colors/default_colors.css.template')) { | ||
39 | unlink('sandbox/default_colors/default_colors.css.template'); | ||
40 | } | ||
41 | |||
42 | if (file_exists('sandbox/default_colors/default_colors.css')) { | ||
43 | unlink('sandbox/default_colors/default_colors.css'); | ||
44 | } | ||
45 | |||
46 | if (is_dir('sandbox/default_colors')) { | ||
47 | rmdir('sandbox/default_colors'); | ||
48 | } | ||
49 | } | ||
50 | |||
51 | /** | ||
52 | * Test DefaultColors init without errors. | ||
53 | */ | ||
54 | public function testDefaultColorsInitNoError() | ||
55 | { | ||
56 | $conf = new ConfigManager(''); | ||
57 | $conf->set('plugins.DEFAULT_COLORS_BACKGROUND', 'value'); | ||
58 | $errors = default_colors_init($conf); | ||
59 | $this->assertEmpty($errors); | ||
60 | } | ||
61 | |||
62 | /** | ||
63 | * Test DefaultColors init with errors. | ||
64 | */ | ||
65 | public function testDefaultColorsInitError() | ||
66 | { | ||
67 | $conf = new ConfigManager(''); | ||
68 | $errors = default_colors_init($conf); | ||
69 | $this->assertNotEmpty($errors); | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * Test the save plugin parameters hook with all colors specified. | ||
74 | */ | ||
75 | public function testSavePluginParametersAll() | ||
76 | { | ||
77 | $post = [ | ||
78 | 'other1' => true, | ||
79 | 'DEFAULT_COLORS_MAIN' => 'blue', | ||
80 | 'DEFAULT_COLORS_BACKGROUND' => 'pink', | ||
81 | 'other2' => ['yep'], | ||
82 | 'DEFAULT_COLORS_DARK_MAIN' => 'green', | ||
83 | ]; | ||
84 | |||
85 | hook_default_colors_save_plugin_parameters($post); | ||
86 | $this->assertFileExists($file = 'sandbox/default_colors/default_colors.css'); | ||
87 | $content = file_get_contents($file); | ||
88 | $expected = ':root { | ||
89 | --main-color: blue; | ||
90 | --background-color: pink; | ||
91 | --dark-main-color: green; | ||
92 | |||
93 | } | ||
94 | '; | ||
95 | $this->assertEquals($expected, $content); | ||
96 | } | ||
97 | |||
98 | /** | ||
99 | * Test the save plugin parameters hook with only one color specified. | ||
100 | */ | ||
101 | public function testSavePluginParametersSingle() | ||
102 | { | ||
103 | $post = [ | ||
104 | 'other1' => true, | ||
105 | 'DEFAULT_COLORS_BACKGROUND' => 'pink', | ||
106 | 'other2' => ['yep'], | ||
107 | 'DEFAULT_COLORS_DARK_MAIN' => '', | ||
108 | ]; | ||
109 | |||
110 | hook_default_colors_save_plugin_parameters($post); | ||
111 | $this->assertFileExists($file = 'sandbox/default_colors/default_colors.css'); | ||
112 | $content = file_get_contents($file); | ||
113 | $expected = ':root { | ||
114 | --background-color: pink; | ||
115 | |||
116 | } | ||
117 | '; | ||
118 | $this->assertEquals($expected, $content); | ||
119 | } | ||
120 | |||
121 | /** | ||
122 | * Test the save plugin parameters hook with no color specified. | ||
123 | */ | ||
124 | public function testSavePluginParametersNone() | ||
125 | { | ||
126 | hook_default_colors_save_plugin_parameters([]); | ||
127 | $this->assertFileNotExists($file = 'sandbox/default_colors/default_colors.css'); | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * Make sure that the CSS is properly included by the include hook. | ||
132 | */ | ||
133 | public function testIncludeWithFile() | ||
134 | { | ||
135 | $data = [ | ||
136 | 'css_files' => ['file1'], | ||
137 | 'js_files' => ['file2'], | ||
138 | ]; | ||
139 | touch($file = 'sandbox/default_colors/default_colors.css'); | ||
140 | $processedData = hook_default_colors_render_includes($data); | ||
141 | |||
142 | $this->assertCount(2, $processedData['css_files']); | ||
143 | $this->assertEquals($file, $processedData['css_files'][1]); | ||
144 | $this->assertCount(1, $processedData['js_files']); | ||
145 | } | ||
146 | |||
147 | /** | ||
148 | * Make sure that the CSS is not included by the include hook if the CSS file does not exist. | ||
149 | */ | ||
150 | public function testIncludeWithoutFile() | ||
151 | { | ||
152 | $data = [ | ||
153 | 'css_files' => ['file1'], | ||
154 | 'js_files' => ['file2'], | ||
155 | ]; | ||
156 | $processedData = hook_default_colors_render_includes($data); | ||
157 | |||
158 | $this->assertEquals($data, $processedData); | ||
159 | } | ||
160 | |||
161 | /** | ||
162 | * Test helper function which generates CSS rules with valid input. | ||
163 | */ | ||
164 | public function testFormatCssRuleValid() | ||
165 | { | ||
166 | $data = [ | ||
167 | 'other1' => true, | ||
168 | 'DEFAULT_COLORS_BLIP_BLOP' => 'shinyColor', | ||
169 | 'other2' => ['yep'], | ||
170 | ]; | ||
171 | $result = default_colors_format_css_rule($data, 'DEFAULT_COLORS_BLIP_BLOP'); | ||
172 | $this->assertEquals(' --blip-blop-color: shinyColor', $result); | ||
173 | |||
174 | $data = ['unknown-parameter' => true]; | ||
175 | $result = default_colors_format_css_rule($data, 'unknown-parameter'); | ||
176 | $this->assertEquals(' --unknown-parameter-color: 1', $result); | ||
177 | } | ||
178 | |||
179 | /** | ||
180 | * Test helper function which generates CSS rules with invalid input. | ||
181 | */ | ||
182 | public function testFormatCssRuleInvalid() | ||
183 | { | ||
184 | $result = default_colors_format_css_rule([], 'DEFAULT_COLORS_BLIP_BLOP'); | ||
185 | $this->assertEmpty($result); | ||
186 | |||
187 | $data = [ | ||
188 | 'other1' => true, | ||
189 | 'DEFAULT_COLORS_BLIP_BLOP' => 'shinyColor', | ||
190 | 'other2' => ['yep'], | ||
191 | ]; | ||
192 | $result = default_colors_format_css_rule($data, ''); | ||
193 | $this->assertEmpty($result); | ||
194 | } | ||
195 | } | ||
diff --git a/tests/plugins/PluginIssoTest.php b/tests/plugins/PluginIssoTest.php index 2c9efbcd..bdfab439 100644 --- a/tests/plugins/PluginIssoTest.php +++ b/tests/plugins/PluginIssoTest.php | |||
@@ -1,5 +1,10 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Isso; | ||
3 | |||
4 | use DateTime; | ||
5 | use Shaarli\Bookmark\LinkDB; | ||
2 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
7 | use Shaarli\Plugin\PluginManager; | ||
3 | 8 | ||
4 | require_once 'plugins/isso/isso.php'; | 9 | require_once 'plugins/isso/isso.php'; |
5 | 10 | ||
@@ -8,7 +13,7 @@ require_once 'plugins/isso/isso.php'; | |||
8 | * | 13 | * |
9 | * Test the Isso plugin (comment system). | 14 | * Test the Isso plugin (comment system). |
10 | */ | 15 | */ |
11 | class PluginIssoTest extends PHPUnit_Framework_TestCase | 16 | class PluginIssoTest extends \PHPUnit\Framework\TestCase |
12 | { | 17 | { |
13 | /** | 18 | /** |
14 | * Reset plugin path | 19 | * Reset plugin path |
diff --git a/tests/plugins/PluginMarkdownTest.php b/tests/plugins/PluginMarkdownTest.php index 44364b05..9ddbc558 100644 --- a/tests/plugins/PluginMarkdownTest.php +++ b/tests/plugins/PluginMarkdownTest.php | |||
@@ -1,10 +1,14 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Markdown; | ||
3 | |||
2 | use Shaarli\Config\ConfigManager; | 4 | use Shaarli\Config\ConfigManager; |
5 | use Shaarli\Plugin\PluginManager; | ||
3 | 6 | ||
4 | /** | 7 | /** |
5 | * PluginMarkdownTest.php | 8 | * PluginMarkdownTest.php |
6 | */ | 9 | */ |
7 | 10 | ||
11 | require_once 'application/bookmark/LinkUtils.php'; | ||
8 | require_once 'application/Utils.php'; | 12 | require_once 'application/Utils.php'; |
9 | require_once 'plugins/markdown/markdown.php'; | 13 | require_once 'plugins/markdown/markdown.php'; |
10 | 14 | ||
@@ -12,7 +16,7 @@ require_once 'plugins/markdown/markdown.php'; | |||
12 | * Class PluginMarkdownTest | 16 | * Class PluginMarkdownTest |
13 | * Unit test for the Markdown plugin | 17 | * Unit test for the Markdown plugin |
14 | */ | 18 | */ |
15 | class PluginMarkdownTest extends PHPUnit_Framework_TestCase | 19 | class PluginMarkdownTest extends \PHPUnit\Framework\TestCase |
16 | { | 20 | { |
17 | /** | 21 | /** |
18 | * @var ConfigManager instance. | 22 | * @var ConfigManager instance. |
@@ -103,7 +107,7 @@ class PluginMarkdownTest extends PHPUnit_Framework_TestCase | |||
103 | public function testReverseText2clickable() | 107 | public function testReverseText2clickable() |
104 | { | 108 | { |
105 | $text = 'stuff http://hello.there/is=someone#here otherstuff'; | 109 | $text = 'stuff http://hello.there/is=someone#here otherstuff'; |
106 | $clickableText = text2clickable($text, ''); | 110 | $clickableText = text2clickable($text); |
107 | $reversedText = reverse_text2clickable($clickableText); | 111 | $reversedText = reverse_text2clickable($clickableText); |
108 | $this->assertEquals($text, $reversedText); | 112 | $this->assertEquals($text, $reversedText); |
109 | } | 113 | } |
diff --git a/tests/plugins/PluginPlayvideosTest.php b/tests/plugins/PluginPlayvideosTest.php index 29ad047f..51472617 100644 --- a/tests/plugins/PluginPlayvideosTest.php +++ b/tests/plugins/PluginPlayvideosTest.php | |||
@@ -1,17 +1,20 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Playvideos; | ||
2 | 3 | ||
3 | /** | 4 | /** |
4 | * PluginPlayvideosTest.php | 5 | * PluginPlayvideosTest.php |
5 | */ | 6 | */ |
6 | 7 | ||
8 | use Shaarli\Plugin\PluginManager; | ||
9 | use Shaarli\Router; | ||
10 | |||
7 | require_once 'plugins/playvideos/playvideos.php'; | 11 | require_once 'plugins/playvideos/playvideos.php'; |
8 | require_once 'application/Router.php'; | ||
9 | 12 | ||
10 | /** | 13 | /** |
11 | * Class PluginPlayvideosTest | 14 | * Class PluginPlayvideosTest |
12 | * Unit test for the PlayVideos plugin | 15 | * Unit test for the PlayVideos plugin |
13 | */ | 16 | */ |
14 | class PluginPlayvideosTest extends PHPUnit_Framework_TestCase | 17 | class PluginPlayvideosTest extends \PHPUnit\Framework\TestCase |
15 | { | 18 | { |
16 | /** | 19 | /** |
17 | * Reset plugin path | 20 | * Reset plugin path |
diff --git a/tests/plugins/PluginPubsubhubbubTest.php b/tests/plugins/PluginPubsubhubbubTest.php index 69d00936..a7bd8fc9 100644 --- a/tests/plugins/PluginPubsubhubbubTest.php +++ b/tests/plugins/PluginPubsubhubbubTest.php | |||
@@ -1,14 +1,17 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Pubsubhubbub; | ||
3 | |||
2 | use Shaarli\Config\ConfigManager; | 4 | use Shaarli\Config\ConfigManager; |
5 | use Shaarli\Plugin\PluginManager; | ||
6 | use Shaarli\Router; | ||
3 | 7 | ||
4 | require_once 'plugins/pubsubhubbub/pubsubhubbub.php'; | 8 | require_once 'plugins/pubsubhubbub/pubsubhubbub.php'; |
5 | require_once 'application/Router.php'; | ||
6 | 9 | ||
7 | /** | 10 | /** |
8 | * Class PluginPubsubhubbubTest | 11 | * Class PluginPubsubhubbubTest |
9 | * Unit test for the pubsubhubbub plugin | 12 | * Unit test for the pubsubhubbub plugin |
10 | */ | 13 | */ |
11 | class PluginPubsubhubbubTest extends PHPUnit_Framework_TestCase | 14 | class PluginPubsubhubbubTest extends \PHPUnit\Framework\TestCase |
12 | { | 15 | { |
13 | /** | 16 | /** |
14 | * @var string Config file path (without extension). | 17 | * @var string Config file path (without extension). |
diff --git a/tests/plugins/PluginQrcodeTest.php b/tests/plugins/PluginQrcodeTest.php index dd632eee..0c61e14a 100644 --- a/tests/plugins/PluginQrcodeTest.php +++ b/tests/plugins/PluginQrcodeTest.php | |||
@@ -1,16 +1,20 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Plugin\Qrcode; | ||
3 | |||
2 | /** | 4 | /** |
3 | * PluginQrcodeTest.php | 5 | * PluginQrcodeTest.php |
4 | */ | 6 | */ |
5 | 7 | ||
8 | use Shaarli\Plugin\PluginManager; | ||
9 | use Shaarli\Router; | ||
10 | |||
6 | require_once 'plugins/qrcode/qrcode.php'; | 11 | require_once 'plugins/qrcode/qrcode.php'; |
7 | require_once 'application/Router.php'; | ||
8 | 12 | ||
9 | /** | 13 | /** |
10 | * Class PluginQrcodeTest | 14 | * Class PluginQrcodeTest |
11 | * Unit test for the QR-Code plugin | 15 | * Unit test for the QR-Code plugin |
12 | */ | 16 | */ |
13 | class PluginQrcodeTest extends PHPUnit_Framework_TestCase | 17 | class PluginQrcodeTest extends \PHPUnit\Framework\TestCase |
14 | { | 18 | { |
15 | /** | 19 | /** |
16 | * Reset plugin path | 20 | * Reset plugin path |
diff --git a/tests/plugins/PluginWallabagTest.php b/tests/plugins/PluginWallabagTest.php index 76b7887e..79751921 100644 --- a/tests/plugins/PluginWallabagTest.php +++ b/tests/plugins/PluginWallabagTest.php | |||
@@ -1,9 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | use Shaarli\Config\ConfigManager; | 2 | namespace Shaarli\Plugin\Wallabag; |
3 | 3 | ||
4 | /** | 4 | use Shaarli\Config\ConfigManager; |
5 | * PluginWallabagTest.php.php | 5 | use Shaarli\Plugin\PluginManager; |
6 | */ | ||
7 | 6 | ||
8 | require_once 'plugins/wallabag/wallabag.php'; | 7 | require_once 'plugins/wallabag/wallabag.php'; |
9 | 8 | ||
@@ -11,7 +10,7 @@ require_once 'plugins/wallabag/wallabag.php'; | |||
11 | * Class PluginWallabagTest | 10 | * Class PluginWallabagTest |
12 | * Unit test for the Wallabag plugin | 11 | * Unit test for the Wallabag plugin |
13 | */ | 12 | */ |
14 | class PluginWallabagTest extends PHPUnit_Framework_TestCase | 13 | class PluginWallabagTest extends \PHPUnit\Framework\TestCase |
15 | { | 14 | { |
16 | /** | 15 | /** |
17 | * Reset plugin path | 16 | * Reset plugin path |
diff --git a/tests/plugins/WallabagInstanceTest.php b/tests/plugins/WallabagInstanceTest.php index 2c466871..a3cd9076 100644 --- a/tests/plugins/WallabagInstanceTest.php +++ b/tests/plugins/WallabagInstanceTest.php | |||
@@ -1,11 +1,10 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | namespace Shaarli\Plugin\Wallabag; | |
3 | require_once 'plugins/wallabag/WallabagInstance.php'; | ||
4 | 3 | ||
5 | /** | 4 | /** |
6 | * Class WallabagInstanceTest | 5 | * Class WallabagInstanceTest |
7 | */ | 6 | */ |
8 | class WallabagInstanceTest extends PHPUnit_Framework_TestCase | 7 | class WallabagInstanceTest extends \PHPUnit\Framework\TestCase |
9 | { | 8 | { |
10 | /** | 9 | /** |
11 | * @var string wallabag url. | 10 | * @var string wallabag url. |
diff --git a/tests/ThemeUtilsTest.php b/tests/render/ThemeUtilsTest.php index e44564be..58e3426b 100644 --- a/tests/ThemeUtilsTest.php +++ b/tests/render/ThemeUtilsTest.php | |||
@@ -1,13 +1,13 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Shaarli; | 3 | namespace Shaarli\Render; |
4 | 4 | ||
5 | /** | 5 | /** |
6 | * Class ThemeUtilsTest | 6 | * Class ThemeUtilsTest |
7 | * | 7 | * |
8 | * @package Shaarli | 8 | * @package Shaarli |
9 | */ | 9 | */ |
10 | class ThemeUtilsTest extends \PHPUnit_Framework_TestCase | 10 | class ThemeUtilsTest extends \PHPUnit\Framework\TestCase |
11 | { | 11 | { |
12 | /** | 12 | /** |
13 | * Test getThemes() with existing theme directories. | 13 | * Test getThemes() with existing theme directories. |
diff --git a/tests/security/BanManagerTest.php b/tests/security/BanManagerTest.php new file mode 100644 index 00000000..bba7c8ad --- /dev/null +++ b/tests/security/BanManagerTest.php | |||
@@ -0,0 +1,393 @@ | |||
1 | <?php | ||
2 | |||
3 | |||
4 | namespace Shaarli\Security; | ||
5 | |||
6 | use PHPUnit\Framework\TestCase; | ||
7 | use Shaarli\FileUtils; | ||
8 | |||
9 | /** | ||
10 | * Test coverage for BanManager | ||
11 | */ | ||
12 | class BanManagerTest extends TestCase | ||
13 | { | ||
14 | /** @var BanManager Ban Manager instance */ | ||
15 | protected $banManager; | ||
16 | |||
17 | /** @var string Banned IP filename */ | ||
18 | protected $banFile = 'sandbox/ipbans.php'; | ||
19 | |||
20 | /** @var string Log filename */ | ||
21 | protected $logFile = 'sandbox/shaarli.log'; | ||
22 | |||
23 | /** @var string Local client IP address */ | ||
24 | protected $ipAddr = '127.0.0.1'; | ||
25 | |||
26 | /** @var string Trusted proxy IP address */ | ||
27 | protected $trustedProxy = '10.1.1.100'; | ||
28 | |||
29 | /** @var array Simulates the $_SERVER array */ | ||
30 | protected $server = []; | ||
31 | |||
32 | /** | ||
33 | * Prepare or reset test resources | ||
34 | */ | ||
35 | public function setUp() | ||
36 | { | ||
37 | if (file_exists($this->banFile)) { | ||
38 | unlink($this->banFile); | ||
39 | } | ||
40 | |||
41 | $this->banManager = $this->getNewBanManagerInstance(); | ||
42 | $this->server['REMOTE_ADDR'] = $this->ipAddr; | ||
43 | } | ||
44 | |||
45 | /** | ||
46 | * Test constructor with initial file. | ||
47 | */ | ||
48 | public function testInstantiateFromFile() | ||
49 | { | ||
50 | $time = time() + 10; | ||
51 | FileUtils::writeFlatDB( | ||
52 | $this->banFile, | ||
53 | [ | ||
54 | 'failures' => [ | ||
55 | $this->ipAddr => 2, | ||
56 | $ip = '1.2.3.4' => 1, | ||
57 | ], | ||
58 | 'bans' => [ | ||
59 | $ip2 = '8.8.8.8' => $time, | ||
60 | $ip3 = '1.1.1.1' => $time + 1, | ||
61 | ], | ||
62 | ] | ||
63 | ); | ||
64 | $this->banManager = $this->getNewBanManagerInstance(); | ||
65 | |||
66 | $this->assertCount(2, $this->banManager->getFailures()); | ||
67 | $this->assertEquals(2, $this->banManager->getFailures()[$this->ipAddr]); | ||
68 | $this->assertEquals(1, $this->banManager->getFailures()[$ip]); | ||
69 | $this->assertCount(2, $this->banManager->getBans()); | ||
70 | $this->assertEquals($time, $this->banManager->getBans()[$ip2]); | ||
71 | $this->assertEquals($time + 1, $this->banManager->getBans()[$ip3]); | ||
72 | } | ||
73 | |||
74 | /** | ||
75 | * Test constructor with initial file with invalid values | ||
76 | */ | ||
77 | public function testInstantiateFromCrappyFile() | ||
78 | { | ||
79 | FileUtils::writeFlatDB($this->banFile, 'plop'); | ||
80 | $this->banManager = $this->getNewBanManagerInstance(); | ||
81 | |||
82 | $this->assertEquals([], $this->banManager->getFailures()); | ||
83 | $this->assertEquals([], $this->banManager->getBans()); | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * Test failed attempt with a direct IP. | ||
88 | */ | ||
89 | public function testHandleFailedAttempt() | ||
90 | { | ||
91 | $this->assertCount(0, $this->banManager->getFailures()); | ||
92 | |||
93 | $this->banManager->handleFailedAttempt($this->server); | ||
94 | $this->assertCount(1, $this->banManager->getFailures()); | ||
95 | $this->assertEquals(1, $this->banManager->getFailures()[$this->ipAddr]); | ||
96 | |||
97 | $this->banManager->handleFailedAttempt($this->server); | ||
98 | $this->assertCount(1, $this->banManager->getFailures()); | ||
99 | $this->assertEquals(2, $this->banManager->getFailures()[$this->ipAddr]); | ||
100 | } | ||
101 | |||
102 | /** | ||
103 | * Test failed attempt behind a trusted proxy IP (with proper IP forwarding). | ||
104 | */ | ||
105 | public function testHandleFailedAttemptBehingProxy() | ||
106 | { | ||
107 | $server = [ | ||
108 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
109 | 'HTTP_X_FORWARDED_FOR' => $this->ipAddr, | ||
110 | ]; | ||
111 | $this->assertCount(0, $this->banManager->getFailures()); | ||
112 | |||
113 | $this->banManager->handleFailedAttempt($server); | ||
114 | $this->assertCount(1, $this->banManager->getFailures()); | ||
115 | $this->assertEquals(1, $this->banManager->getFailures()[$this->ipAddr]); | ||
116 | |||
117 | $this->banManager->handleFailedAttempt($server); | ||
118 | $this->assertCount(1, $this->banManager->getFailures()); | ||
119 | $this->assertEquals(2, $this->banManager->getFailures()[$this->ipAddr]); | ||
120 | } | ||
121 | |||
122 | /** | ||
123 | * Test failed attempt behind a trusted proxy IP but without IP forwarding. | ||
124 | */ | ||
125 | public function testHandleFailedAttemptBehindNotConfiguredProxy() | ||
126 | { | ||
127 | $server = [ | ||
128 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
129 | ]; | ||
130 | $this->assertCount(0, $this->banManager->getFailures()); | ||
131 | |||
132 | $this->banManager->handleFailedAttempt($server); | ||
133 | $this->assertCount(0, $this->banManager->getFailures()); | ||
134 | |||
135 | $this->banManager->handleFailedAttempt($server); | ||
136 | $this->assertCount(0, $this->banManager->getFailures()); | ||
137 | } | ||
138 | |||
139 | /** | ||
140 | * Test failed attempts with multiple direct IP. | ||
141 | */ | ||
142 | public function testHandleFailedAttemptMultipleIp() | ||
143 | { | ||
144 | $this->assertCount(0, $this->banManager->getFailures()); | ||
145 | $this->banManager->handleFailedAttempt($this->server); | ||
146 | $this->server['REMOTE_ADDR'] = '1.2.3.4'; | ||
147 | $this->banManager->handleFailedAttempt($this->server); | ||
148 | $this->banManager->handleFailedAttempt($this->server); | ||
149 | $this->assertCount(2, $this->banManager->getFailures()); | ||
150 | $this->assertEquals(1, $this->banManager->getFailures()[$this->ipAddr]); | ||
151 | $this->assertEquals(2, $this->banManager->getFailures()[$this->server['REMOTE_ADDR']]); | ||
152 | } | ||
153 | |||
154 | /** | ||
155 | * Test clear failure for provided IP without any additional data. | ||
156 | */ | ||
157 | public function testClearFailuresEmpty() | ||
158 | { | ||
159 | $this->assertCount(0, $this->banManager->getFailures()); | ||
160 | $this->banManager->clearFailures($this->server); | ||
161 | $this->assertCount(0, $this->banManager->getFailures()); | ||
162 | } | ||
163 | |||
164 | /** | ||
165 | * Test clear failure for provided IP with failed attempts. | ||
166 | */ | ||
167 | public function testClearFailuresFromFile() | ||
168 | { | ||
169 | FileUtils::writeFlatDB( | ||
170 | $this->banFile, | ||
171 | [ | ||
172 | 'failures' => [ | ||
173 | $this->ipAddr => 2, | ||
174 | $ip = '1.2.3.4' => 1, | ||
175 | ] | ||
176 | ] | ||
177 | ); | ||
178 | $this->banManager = $this->getNewBanManagerInstance(); | ||
179 | |||
180 | $this->assertCount(2, $this->banManager->getFailures()); | ||
181 | $this->banManager->clearFailures($this->server); | ||
182 | $this->assertCount(1, $this->banManager->getFailures()); | ||
183 | $this->assertEquals(1, $this->banManager->getFailures()[$ip]); | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * Test clear failure for provided IP with failed attempts, behind a reverse proxy. | ||
188 | */ | ||
189 | public function testClearFailuresFromFileBehindProxy() | ||
190 | { | ||
191 | $server = [ | ||
192 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
193 | 'HTTP_X_FORWARDED_FOR' => $this->ipAddr, | ||
194 | ]; | ||
195 | |||
196 | FileUtils::writeFlatDB( | ||
197 | $this->banFile, | ||
198 | [ | ||
199 | 'failures' => [ | ||
200 | $this->ipAddr => 2, | ||
201 | $ip = '1.2.3.4' => 1, | ||
202 | ] | ||
203 | ] | ||
204 | ); | ||
205 | $this->banManager = $this->getNewBanManagerInstance(); | ||
206 | |||
207 | $this->assertCount(2, $this->banManager->getFailures()); | ||
208 | $this->banManager->clearFailures($server); | ||
209 | $this->assertCount(1, $this->banManager->getFailures()); | ||
210 | $this->assertEquals(1, $this->banManager->getFailures()[$ip]); | ||
211 | } | ||
212 | |||
213 | /** | ||
214 | * Test clear failure for provided IP with failed attempts, | ||
215 | * behind a reverse proxy without forwarding. | ||
216 | */ | ||
217 | public function testClearFailuresFromFileBehindNotConfiguredProxy() | ||
218 | { | ||
219 | $server = [ | ||
220 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
221 | ]; | ||
222 | |||
223 | FileUtils::writeFlatDB( | ||
224 | $this->banFile, | ||
225 | [ | ||
226 | 'failures' => [ | ||
227 | $this->ipAddr => 2, | ||
228 | $ip = '1.2.3.4' => 1, | ||
229 | ] | ||
230 | ] | ||
231 | ); | ||
232 | $this->banManager = $this->getNewBanManagerInstance(); | ||
233 | |||
234 | $this->assertCount(2, $this->banManager->getFailures()); | ||
235 | $this->banManager->clearFailures($server); | ||
236 | $this->assertCount(2, $this->banManager->getFailures()); | ||
237 | } | ||
238 | |||
239 | /** | ||
240 | * Test isBanned without any data | ||
241 | */ | ||
242 | public function testIsBannedEmpty() | ||
243 | { | ||
244 | $this->assertFalse($this->banManager->isBanned($this->server)); | ||
245 | } | ||
246 | |||
247 | /** | ||
248 | * Test isBanned with banned IP from file data | ||
249 | */ | ||
250 | public function testBannedFromFile() | ||
251 | { | ||
252 | FileUtils::writeFlatDB( | ||
253 | $this->banFile, | ||
254 | [ | ||
255 | 'bans' => [ | ||
256 | $this->ipAddr => time() + 10, | ||
257 | ] | ||
258 | ] | ||
259 | ); | ||
260 | $this->banManager = $this->getNewBanManagerInstance(); | ||
261 | |||
262 | $this->assertCount(1, $this->banManager->getBans()); | ||
263 | $this->assertTrue($this->banManager->isBanned($this->server)); | ||
264 | } | ||
265 | |||
266 | /** | ||
267 | * Test isBanned with banned IP from file data behind a reverse proxy | ||
268 | */ | ||
269 | public function testBannedFromFileBehindProxy() | ||
270 | { | ||
271 | $server = [ | ||
272 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
273 | 'HTTP_X_FORWARDED_FOR' => $this->ipAddr, | ||
274 | ]; | ||
275 | FileUtils::writeFlatDB( | ||
276 | $this->banFile, | ||
277 | [ | ||
278 | 'bans' => [ | ||
279 | $this->ipAddr => time() + 10, | ||
280 | ] | ||
281 | ] | ||
282 | ); | ||
283 | $this->banManager = $this->getNewBanManagerInstance(); | ||
284 | |||
285 | $this->assertCount(1, $this->banManager->getBans()); | ||
286 | $this->assertTrue($this->banManager->isBanned($server)); | ||
287 | } | ||
288 | |||
289 | /** | ||
290 | * Test isBanned with banned IP from file data behind a reverse proxy, | ||
291 | * without IP forwarding | ||
292 | */ | ||
293 | public function testBannedFromFileBehindNotConfiguredProxy() | ||
294 | { | ||
295 | $server = [ | ||
296 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
297 | ]; | ||
298 | FileUtils::writeFlatDB( | ||
299 | $this->banFile, | ||
300 | [ | ||
301 | 'bans' => [ | ||
302 | $this->ipAddr => time() + 10, | ||
303 | ] | ||
304 | ] | ||
305 | ); | ||
306 | $this->banManager = $this->getNewBanManagerInstance(); | ||
307 | |||
308 | $this->assertCount(1, $this->banManager->getBans()); | ||
309 | $this->assertFalse($this->banManager->isBanned($server)); | ||
310 | } | ||
311 | |||
312 | /** | ||
313 | * Test isBanned with an expired ban | ||
314 | */ | ||
315 | public function testLiftBan() | ||
316 | { | ||
317 | FileUtils::writeFlatDB( | ||
318 | $this->banFile, | ||
319 | [ | ||
320 | 'bans' => [ | ||
321 | $this->ipAddr => time() - 10, | ||
322 | ] | ||
323 | ] | ||
324 | ); | ||
325 | $this->banManager = $this->getNewBanManagerInstance(); | ||
326 | |||
327 | $this->assertCount(1, $this->banManager->getBans()); | ||
328 | $this->assertFalse($this->banManager->isBanned($this->server)); | ||
329 | } | ||
330 | |||
331 | /** | ||
332 | * Test isBanned with an expired ban behind a reverse proxy | ||
333 | */ | ||
334 | public function testLiftBanBehindProxy() | ||
335 | { | ||
336 | $server = [ | ||
337 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
338 | 'HTTP_X_FORWARDED_FOR' => $this->ipAddr, | ||
339 | ]; | ||
340 | |||
341 | FileUtils::writeFlatDB( | ||
342 | $this->banFile, | ||
343 | [ | ||
344 | 'bans' => [ | ||
345 | $this->ipAddr => time() - 10, | ||
346 | ] | ||
347 | ] | ||
348 | ); | ||
349 | $this->banManager = $this->getNewBanManagerInstance(); | ||
350 | |||
351 | $this->assertCount(1, $this->banManager->getBans()); | ||
352 | $this->assertFalse($this->banManager->isBanned($server)); | ||
353 | } | ||
354 | |||
355 | /** | ||
356 | * Test isBanned with an expired ban behind a reverse proxy | ||
357 | */ | ||
358 | public function testLiftBanBehindNotConfiguredProxy() | ||
359 | { | ||
360 | $server = [ | ||
361 | 'REMOTE_ADDR' => $this->trustedProxy, | ||
362 | ]; | ||
363 | |||
364 | FileUtils::writeFlatDB( | ||
365 | $this->banFile, | ||
366 | [ | ||
367 | 'bans' => [ | ||
368 | $this->ipAddr => time() - 10, | ||
369 | ] | ||
370 | ] | ||
371 | ); | ||
372 | $this->banManager = $this->getNewBanManagerInstance(); | ||
373 | |||
374 | $this->assertCount(1, $this->banManager->getBans()); | ||
375 | $this->assertFalse($this->banManager->isBanned($server)); | ||
376 | } | ||
377 | |||
378 | /** | ||
379 | * Build a new instance of BanManager, which will reread the ban file. | ||
380 | * | ||
381 | * @return BanManager instance | ||
382 | */ | ||
383 | protected function getNewBanManagerInstance() | ||
384 | { | ||
385 | return new BanManager( | ||
386 | [$this->trustedProxy], | ||
387 | 3, | ||
388 | 1800, | ||
389 | $this->banFile, | ||
390 | $this->logFile | ||
391 | ); | ||
392 | } | ||
393 | } | ||
diff --git a/tests/security/LoginManagerTest.php b/tests/security/LoginManagerTest.php index f26cd1eb..eef0f22a 100644 --- a/tests/security/LoginManagerTest.php +++ b/tests/security/LoginManagerTest.php | |||
@@ -2,7 +2,8 @@ | |||
2 | namespace Shaarli\Security; | 2 | namespace Shaarli\Security; |
3 | 3 | ||
4 | require_once 'tests/utils/FakeConfigManager.php'; | 4 | require_once 'tests/utils/FakeConfigManager.php'; |
5 | use \PHPUnit\Framework\TestCase; | 5 | |
6 | use PHPUnit\Framework\TestCase; | ||
6 | 7 | ||
7 | /** | 8 | /** |
8 | * Test coverage for LoginManager | 9 | * Test coverage for LoginManager |
@@ -74,54 +75,27 @@ class LoginManagerTest extends TestCase | |||
74 | 'credentials.salt' => $this->salt, | 75 | 'credentials.salt' => $this->salt, |
75 | 'resource.ban_file' => $this->banFile, | 76 | 'resource.ban_file' => $this->banFile, |
76 | 'resource.log' => $this->logFile, | 77 | 'resource.log' => $this->logFile, |
77 | 'security.ban_after' => 4, | 78 | 'security.ban_after' => 2, |
78 | 'security.ban_duration' => 3600, | 79 | 'security.ban_duration' => 3600, |
79 | 'security.trusted_proxies' => [$this->trustedProxy], | 80 | 'security.trusted_proxies' => [$this->trustedProxy], |
80 | ]); | 81 | ]); |
81 | 82 | ||
82 | $this->cookie = []; | 83 | $this->cookie = []; |
83 | |||
84 | $this->globals = &$GLOBALS; | ||
85 | unset($this->globals['IPBANS']); | ||
86 | |||
87 | $this->session = []; | 84 | $this->session = []; |
88 | 85 | ||
89 | $this->sessionManager = new SessionManager($this->session, $this->configManager); | 86 | $this->sessionManager = new SessionManager($this->session, $this->configManager); |
90 | $this->loginManager = new LoginManager($this->globals, $this->configManager, $this->sessionManager); | 87 | $this->loginManager = new LoginManager($this->configManager, $this->sessionManager); |
91 | $this->server['REMOTE_ADDR'] = $this->ipAddr; | 88 | $this->server['REMOTE_ADDR'] = $this->ipAddr; |
92 | } | 89 | } |
93 | 90 | ||
94 | /** | 91 | /** |
95 | * Wipe test resources | ||
96 | */ | ||
97 | public function tearDown() | ||
98 | { | ||
99 | unset($this->globals['IPBANS']); | ||
100 | } | ||
101 | |||
102 | /** | ||
103 | * Instantiate a LoginManager and load ban records | ||
104 | */ | ||
105 | public function testReadBanFile() | ||
106 | { | ||
107 | file_put_contents( | ||
108 | $this->banFile, | ||
109 | "<?php\n\$GLOBALS['IPBANS']=array('FAILURES' => array('127.0.0.1' => 99));\n?>" | ||
110 | ); | ||
111 | new LoginManager($this->globals, $this->configManager, null); | ||
112 | $this->assertEquals(99, $this->globals['IPBANS']['FAILURES']['127.0.0.1']); | ||
113 | } | ||
114 | |||
115 | /** | ||
116 | * Record a failed login attempt | 92 | * Record a failed login attempt |
117 | */ | 93 | */ |
118 | public function testHandleFailedLogin() | 94 | public function testHandleFailedLogin() |
119 | { | 95 | { |
120 | $this->loginManager->handleFailedLogin($this->server); | 96 | $this->loginManager->handleFailedLogin($this->server); |
121 | $this->assertEquals(1, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
122 | |||
123 | $this->loginManager->handleFailedLogin($this->server); | 97 | $this->loginManager->handleFailedLogin($this->server); |
124 | $this->assertEquals(2, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | 98 | $this->assertFalse($this->loginManager->canLogin($this->server)); |
125 | } | 99 | } |
126 | 100 | ||
127 | /** | 101 | /** |
@@ -134,10 +108,8 @@ class LoginManagerTest extends TestCase | |||
134 | 'HTTP_X_FORWARDED_FOR' => $this->ipAddr, | 108 | 'HTTP_X_FORWARDED_FOR' => $this->ipAddr, |
135 | ]; | 109 | ]; |
136 | $this->loginManager->handleFailedLogin($server); | 110 | $this->loginManager->handleFailedLogin($server); |
137 | $this->assertEquals(1, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
138 | |||
139 | $this->loginManager->handleFailedLogin($server); | 111 | $this->loginManager->handleFailedLogin($server); |
140 | $this->assertEquals(2, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | 112 | $this->assertFalse($this->loginManager->canLogin($server)); |
141 | } | 113 | } |
142 | 114 | ||
143 | /** | 115 | /** |
@@ -149,39 +121,8 @@ class LoginManagerTest extends TestCase | |||
149 | 'REMOTE_ADDR' => $this->trustedProxy, | 121 | 'REMOTE_ADDR' => $this->trustedProxy, |
150 | ]; | 122 | ]; |
151 | $this->loginManager->handleFailedLogin($server); | 123 | $this->loginManager->handleFailedLogin($server); |
152 | $this->assertFalse(isset($this->globals['IPBANS']['FAILURES'][$this->ipAddr])); | ||
153 | |||
154 | $this->loginManager->handleFailedLogin($server); | 124 | $this->loginManager->handleFailedLogin($server); |
155 | $this->assertFalse(isset($this->globals['IPBANS']['FAILURES'][$this->ipAddr])); | 125 | $this->assertTrue($this->loginManager->canLogin($server)); |
156 | } | ||
157 | |||
158 | /** | ||
159 | * Record a failed login attempt and ban the IP after too many failures | ||
160 | */ | ||
161 | public function testHandleFailedLoginBanIp() | ||
162 | { | ||
163 | $this->loginManager->handleFailedLogin($this->server); | ||
164 | $this->assertEquals(1, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
165 | $this->assertTrue($this->loginManager->canLogin($this->server)); | ||
166 | |||
167 | $this->loginManager->handleFailedLogin($this->server); | ||
168 | $this->assertEquals(2, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
169 | $this->assertTrue($this->loginManager->canLogin($this->server)); | ||
170 | |||
171 | $this->loginManager->handleFailedLogin($this->server); | ||
172 | $this->assertEquals(3, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
173 | $this->assertTrue($this->loginManager->canLogin($this->server)); | ||
174 | |||
175 | $this->loginManager->handleFailedLogin($this->server); | ||
176 | $this->assertEquals(4, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
177 | $this->assertFalse($this->loginManager->canLogin($this->server)); | ||
178 | |||
179 | // handleFailedLogin is not supposed to be called at this point: | ||
180 | // - no login form should be displayed once an IP has been banned | ||
181 | // - yet this could happen when using custom templates / scripts | ||
182 | $this->loginManager->handleFailedLogin($this->server); | ||
183 | $this->assertEquals(5, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
184 | $this->assertFalse($this->loginManager->canLogin($this->server)); | ||
185 | } | 126 | } |
186 | 127 | ||
187 | /** | 128 | /** |
@@ -201,14 +142,11 @@ class LoginManagerTest extends TestCase | |||
201 | public function testHandleSuccessfulLoginAfterFailure() | 142 | public function testHandleSuccessfulLoginAfterFailure() |
202 | { | 143 | { |
203 | $this->loginManager->handleFailedLogin($this->server); | 144 | $this->loginManager->handleFailedLogin($this->server); |
204 | $this->loginManager->handleFailedLogin($this->server); | ||
205 | $this->assertEquals(2, $this->globals['IPBANS']['FAILURES'][$this->ipAddr]); | ||
206 | $this->assertTrue($this->loginManager->canLogin($this->server)); | 145 | $this->assertTrue($this->loginManager->canLogin($this->server)); |
207 | 146 | ||
208 | $this->loginManager->handleSuccessfulLogin($this->server); | 147 | $this->loginManager->handleSuccessfulLogin($this->server); |
148 | $this->loginManager->handleFailedLogin($this->server); | ||
209 | $this->assertTrue($this->loginManager->canLogin($this->server)); | 149 | $this->assertTrue($this->loginManager->canLogin($this->server)); |
210 | $this->assertFalse(isset($this->globals['IPBANS']['FAILURES'][$this->ipAddr])); | ||
211 | $this->assertFalse(isset($this->globals['IPBANS']['BANS'][$this->ipAddr])); | ||
212 | } | 150 | } |
213 | 151 | ||
214 | /** | 152 | /** |
@@ -220,41 +158,28 @@ class LoginManagerTest extends TestCase | |||
220 | } | 158 | } |
221 | 159 | ||
222 | /** | 160 | /** |
223 | * The IP is banned | 161 | * Generate a token depending on the user credentials and client IP |
224 | */ | ||
225 | public function testCanLoginIpBanned() | ||
226 | { | ||
227 | // ban the IP for an hour | ||
228 | $this->globals['IPBANS']['FAILURES'][$this->ipAddr] = 10; | ||
229 | $this->globals['IPBANS']['BANS'][$this->ipAddr] = time() + 3600; | ||
230 | |||
231 | $this->assertFalse($this->loginManager->canLogin($this->server)); | ||
232 | } | ||
233 | |||
234 | /** | ||
235 | * The IP is banned, and the ban duration is over | ||
236 | */ | 162 | */ |
237 | public function testCanLoginIpBanExpired() | 163 | public function testGenerateStaySignedInToken() |
238 | { | 164 | { |
239 | // ban the IP for an hour | 165 | $this->loginManager->generateStaySignedInToken($this->clientIpAddress); |
240 | $this->globals['IPBANS']['FAILURES'][$this->ipAddr] = 10; | ||
241 | $this->globals['IPBANS']['BANS'][$this->ipAddr] = time() + 3600; | ||
242 | $this->assertFalse($this->loginManager->canLogin($this->server)); | ||
243 | 166 | ||
244 | // lift the ban | 167 | $this->assertEquals( |
245 | $this->globals['IPBANS']['BANS'][$this->ipAddr] = time() - 3600; | 168 | sha1($this->passwordHash . $this->clientIpAddress . $this->salt), |
246 | $this->assertTrue($this->loginManager->canLogin($this->server)); | 169 | $this->loginManager->getStaySignedInToken() |
170 | ); | ||
247 | } | 171 | } |
248 | 172 | ||
249 | /** | 173 | /** |
250 | * Generate a token depending on the user credentials and client IP | 174 | * Generate a token depending on the user credentials with session protected disabled |
251 | */ | 175 | */ |
252 | public function testGenerateStaySignedInToken() | 176 | public function testGenerateStaySignedInTokenSessionProtectionDisabled() |
253 | { | 177 | { |
178 | $this->configManager->set('security.session_protection_disabled', true); | ||
254 | $this->loginManager->generateStaySignedInToken($this->clientIpAddress); | 179 | $this->loginManager->generateStaySignedInToken($this->clientIpAddress); |
255 | 180 | ||
256 | $this->assertEquals( | 181 | $this->assertEquals( |
257 | sha1($this->passwordHash . $this->clientIpAddress . $this->salt), | 182 | sha1($this->passwordHash . $this->salt), |
258 | $this->loginManager->getStaySignedInToken() | 183 | $this->loginManager->getStaySignedInToken() |
259 | ); | 184 | ); |
260 | } | 185 | } |
@@ -267,7 +192,7 @@ class LoginManagerTest extends TestCase | |||
267 | $configManager = new \FakeConfigManager([ | 192 | $configManager = new \FakeConfigManager([ |
268 | 'resource.ban_file' => $this->banFile, | 193 | 'resource.ban_file' => $this->banFile, |
269 | ]); | 194 | ]); |
270 | $loginManager = new LoginManager($this->globals, $configManager, null); | 195 | $loginManager = new LoginManager($configManager, null); |
271 | $loginManager->checkLoginState([], ''); | 196 | $loginManager->checkLoginState([], ''); |
272 | 197 | ||
273 | $this->assertFalse($loginManager->isLoggedIn()); | 198 | $this->assertFalse($loginManager->isLoggedIn()); |
diff --git a/tests/security/SessionManagerTest.php b/tests/security/SessionManagerTest.php index 7961e771..f264505e 100644 --- a/tests/security/SessionManagerTest.php +++ b/tests/security/SessionManagerTest.php | |||
@@ -5,8 +5,8 @@ require_once 'tests/utils/FakeConfigManager.php'; | |||
5 | require_once 'tests/utils/ReferenceSessionIdHashes.php'; | 5 | require_once 'tests/utils/ReferenceSessionIdHashes.php'; |
6 | ReferenceSessionIdHashes::genAllHashes(); | 6 | ReferenceSessionIdHashes::genAllHashes(); |
7 | 7 | ||
8 | use \Shaarli\Security\SessionManager; | 8 | use PHPUnit\Framework\TestCase; |
9 | use \PHPUnit\Framework\TestCase; | 9 | use Shaarli\Security\SessionManager; |
10 | 10 | ||
11 | /** | 11 | /** |
12 | * Test coverage for SessionManager | 12 | * Test coverage for SessionManager |
diff --git a/tests/Updater/DummyUpdater.php b/tests/updater/DummyUpdater.php index a805ab5e..9e866f1f 100644 --- a/tests/Updater/DummyUpdater.php +++ b/tests/updater/DummyUpdater.php | |||
@@ -1,10 +1,15 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Updater; | ||
2 | 3 | ||
3 | require_once 'application/Updater.php'; | 4 | use Exception; |
5 | use ReflectionClass; | ||
6 | use ReflectionMethod; | ||
7 | use Shaarli\Bookmark\LinkDB; | ||
8 | use Shaarli\Config\ConfigManager; | ||
4 | 9 | ||
5 | /** | 10 | /** |
6 | * Class DummyUpdater. | 11 | * Class DummyUpdater. |
7 | * Extends Updater to add update method designed for unit tests. | 12 | * Extends updater to add update method designed for unit tests. |
8 | */ | 13 | */ |
9 | class DummyUpdater extends Updater | 14 | class DummyUpdater extends Updater |
10 | { | 15 | { |
diff --git a/tests/Updater/UpdaterTest.php b/tests/updater/UpdaterTest.php index c4a6e7ef..93bc86c1 100644 --- a/tests/Updater/UpdaterTest.php +++ b/tests/updater/UpdaterTest.php | |||
@@ -1,17 +1,24 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Updater; | ||
3 | |||
4 | use DateTime; | ||
5 | use Exception; | ||
6 | use Shaarli\Bookmark\LinkDB; | ||
2 | use Shaarli\Config\ConfigJson; | 7 | use Shaarli\Config\ConfigJson; |
3 | use Shaarli\Config\ConfigManager; | 8 | use Shaarli\Config\ConfigManager; |
4 | use Shaarli\Config\ConfigPhp; | 9 | use Shaarli\Config\ConfigPhp; |
5 | use Shaarli\Thumbnailer; | 10 | use Shaarli\Thumbnailer; |
6 | 11 | ||
7 | require_once 'tests/Updater/DummyUpdater.php'; | 12 | require_once 'application/updater/UpdaterUtils.php'; |
13 | require_once 'tests/updater/DummyUpdater.php'; | ||
14 | require_once 'tests/utils/ReferenceLinkDB.php'; | ||
8 | require_once 'inc/rain.tpl.class.php'; | 15 | require_once 'inc/rain.tpl.class.php'; |
9 | 16 | ||
10 | /** | 17 | /** |
11 | * Class UpdaterTest. | 18 | * Class UpdaterTest. |
12 | * Runs unit tests against the Updater class. | 19 | * Runs unit tests against the updater class. |
13 | */ | 20 | */ |
14 | class UpdaterTest extends PHPUnit_Framework_TestCase | 21 | class UpdaterTest extends \PHPUnit\Framework\TestCase |
15 | { | 22 | { |
16 | /** | 23 | /** |
17 | * @var string Path to test datastore. | 24 | * @var string Path to test datastore. |
@@ -153,7 +160,7 @@ class UpdaterTest extends PHPUnit_Framework_TestCase | |||
153 | /** | 160 | /** |
154 | * Test Update failed. | 161 | * Test Update failed. |
155 | * | 162 | * |
156 | * @expectedException UpdaterException | 163 | * @expectedException \Exception |
157 | */ | 164 | */ |
158 | public function testUpdateFailed() | 165 | public function testUpdateFailed() |
159 | { | 166 | { |
@@ -179,17 +186,17 @@ class UpdaterTest extends PHPUnit_Framework_TestCase | |||
179 | $this->conf->setConfigFile('tests/utils/config/configPhp'); | 186 | $this->conf->setConfigFile('tests/utils/config/configPhp'); |
180 | $this->conf->reset(); | 187 | $this->conf->reset(); |
181 | 188 | ||
182 | $optionsFile = 'tests/Updater/options.php'; | 189 | $optionsFile = 'tests/updater/options.php'; |
183 | $options = '<?php | 190 | $options = '<?php |
184 | $GLOBALS[\'privateLinkByDefault\'] = true;'; | 191 | $GLOBALS[\'privateLinkByDefault\'] = true;'; |
185 | file_put_contents($optionsFile, $options); | 192 | file_put_contents($optionsFile, $options); |
186 | 193 | ||
187 | // tmp config file. | 194 | // tmp config file. |
188 | $this->conf->setConfigFile('tests/Updater/config'); | 195 | $this->conf->setConfigFile('tests/updater/config'); |
189 | 196 | ||
190 | // merge configs | 197 | // merge configs |
191 | $updater = new Updater(array(), array(), $this->conf, true); | 198 | $updater = new Updater(array(), array(), $this->conf, true); |
192 | // This writes a new config file in tests/Updater/config.php | 199 | // This writes a new config file in tests/updater/config.php |
193 | $updater->updateMethodMergeDeprecatedConfigFile(); | 200 | $updater->updateMethodMergeDeprecatedConfigFile(); |
194 | 201 | ||
195 | // make sure updated field is changed | 202 | // make sure updated field is changed |
@@ -216,7 +223,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
216 | */ | 223 | */ |
217 | public function testRenameDashTags() | 224 | public function testRenameDashTags() |
218 | { | 225 | { |
219 | $refDB = new ReferenceLinkDB(); | 226 | $refDB = new \ReferenceLinkDB(); |
220 | $refDB->write(self::$testDatastore); | 227 | $refDB->write(self::$testDatastore); |
221 | $linkDB = new LinkDB(self::$testDatastore, true, false); | 228 | $linkDB = new LinkDB(self::$testDatastore, true, false); |
222 | 229 | ||
@@ -280,17 +287,14 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
280 | $this->conf = new ConfigManager($sandbox); | 287 | $this->conf = new ConfigManager($sandbox); |
281 | $title = '<script>alert("title");</script>'; | 288 | $title = '<script>alert("title");</script>'; |
282 | $headerLink = '<script>alert("header_link");</script>'; | 289 | $headerLink = '<script>alert("header_link");</script>'; |
283 | $redirectorUrl = '<script>alert("redirector");</script>'; | ||
284 | $this->conf->set('general.title', $title); | 290 | $this->conf->set('general.title', $title); |
285 | $this->conf->set('general.header_link', $headerLink); | 291 | $this->conf->set('general.header_link', $headerLink); |
286 | $this->conf->set('redirector.url', $redirectorUrl); | ||
287 | $updater = new Updater(array(), array(), $this->conf, true); | 292 | $updater = new Updater(array(), array(), $this->conf, true); |
288 | $done = $updater->updateMethodEscapeUnescapedConfig(); | 293 | $done = $updater->updateMethodEscapeUnescapedConfig(); |
289 | $this->assertTrue($done); | 294 | $this->assertTrue($done); |
290 | $this->conf->reload(); | 295 | $this->conf->reload(); |
291 | $this->assertEquals(escape($title), $this->conf->get('general.title')); | 296 | $this->assertEquals(escape($title), $this->conf->get('general.title')); |
292 | $this->assertEquals(escape($headerLink), $this->conf->get('general.header_link')); | 297 | $this->assertEquals(escape($headerLink), $this->conf->get('general.header_link')); |
293 | $this->assertEquals(escape($redirectorUrl), $this->conf->get('redirector.url')); | ||
294 | unlink($sandbox . '.json.php'); | 298 | unlink($sandbox . '.json.php'); |
295 | } | 299 | } |
296 | 300 | ||
@@ -362,7 +366,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
362 | 'private' => true, | 366 | 'private' => true, |
363 | ), | 367 | ), |
364 | ); | 368 | ); |
365 | $refDB = new ReferenceLinkDB(); | 369 | $refDB = new \ReferenceLinkDB(); |
366 | $refDB->setLinks($links); | 370 | $refDB->setLinks($links); |
367 | $refDB->write(self::$testDatastore); | 371 | $refDB->write(self::$testDatastore); |
368 | $linkDB = new LinkDB(self::$testDatastore, true, false); | 372 | $linkDB = new LinkDB(self::$testDatastore, true, false); |
@@ -426,7 +430,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
426 | */ | 430 | */ |
427 | public function testDatastoreIdsNothingToDo() | 431 | public function testDatastoreIdsNothingToDo() |
428 | { | 432 | { |
429 | $refDB = new ReferenceLinkDB(); | 433 | $refDB = new \ReferenceLinkDB(); |
430 | $refDB->write(self::$testDatastore); | 434 | $refDB->write(self::$testDatastore); |
431 | $linkDB = new LinkDB(self::$testDatastore, true, false); | 435 | $linkDB = new LinkDB(self::$testDatastore, true, false); |
432 | 436 | ||
@@ -700,7 +704,6 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
700 | } | 704 | } |
701 | 705 | ||
702 | /** | 706 | /** |
703 | <<<<<<< HEAD | ||
704 | * Test updateMethodWebThumbnailer with thumbnails enabled. | 707 | * Test updateMethodWebThumbnailer with thumbnails enabled. |
705 | */ | 708 | */ |
706 | public function testUpdateMethodWebThumbnailerEnabled() | 709 | public function testUpdateMethodWebThumbnailerEnabled() |
@@ -763,7 +766,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
763 | 1 => ['id' => 1] + $blank, | 766 | 1 => ['id' => 1] + $blank, |
764 | 2 => ['id' => 2] + $blank, | 767 | 2 => ['id' => 2] + $blank, |
765 | ]; | 768 | ]; |
766 | $refDB = new ReferenceLinkDB(); | 769 | $refDB = new \ReferenceLinkDB(); |
767 | $refDB->setLinks($links); | 770 | $refDB->setLinks($links); |
768 | $refDB->write(self::$testDatastore); | 771 | $refDB->write(self::$testDatastore); |
769 | $linkDB = new LinkDB(self::$testDatastore, true, false); | 772 | $linkDB = new LinkDB(self::$testDatastore, true, false); |
@@ -794,7 +797,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
794 | 1 => ['id' => 1, 'sticky' => true] + $blank, | 797 | 1 => ['id' => 1, 'sticky' => true] + $blank, |
795 | 2 => ['id' => 2] + $blank, | 798 | 2 => ['id' => 2] + $blank, |
796 | ]; | 799 | ]; |
797 | $refDB = new ReferenceLinkDB(); | 800 | $refDB = new \ReferenceLinkDB(); |
798 | $refDB->setLinks($links); | 801 | $refDB->setLinks($links); |
799 | $refDB->write(self::$testDatastore); | 802 | $refDB->write(self::$testDatastore); |
800 | $linkDB = new LinkDB(self::$testDatastore, true, false); | 803 | $linkDB = new LinkDB(self::$testDatastore, true, false); |
@@ -805,4 +808,19 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
805 | $linkDB = new LinkDB(self::$testDatastore, true, false); | 808 | $linkDB = new LinkDB(self::$testDatastore, true, false); |
806 | $this->assertTrue($linkDB[1]['sticky']); | 809 | $this->assertTrue($linkDB[1]['sticky']); |
807 | } | 810 | } |
811 | |||
812 | /** | ||
813 | * Test updateMethodRemoveRedirector(). | ||
814 | */ | ||
815 | public function testUpdateRemoveRedirector() | ||
816 | { | ||
817 | $sandboxConf = 'sandbox/config'; | ||
818 | copy(self::$configFile . '.json.php', $sandboxConf . '.json.php'); | ||
819 | $this->conf = new ConfigManager($sandboxConf); | ||
820 | $updater = new Updater([], null, $this->conf, true); | ||
821 | $this->assertTrue($updater->updateMethodRemoveRedirector()); | ||
822 | $this->assertFalse($this->conf->exists('redirector')); | ||
823 | $this->conf = new ConfigManager($sandboxConf); | ||
824 | $this->assertFalse($this->conf->exists('redirector')); | ||
825 | } | ||
808 | } | 826 | } |
diff --git a/tests/utils/CurlUtils.php b/tests/utils/CurlUtils.php new file mode 100644 index 00000000..1cc4907e --- /dev/null +++ b/tests/utils/CurlUtils.php | |||
@@ -0,0 +1,94 @@ | |||
1 | <?php | ||
2 | /** | ||
3 | * Old-style mock for cURL, as PHPUnit doesn't allow to mock global functions | ||
4 | */ | ||
5 | |||
6 | /** | ||
7 | * Returns code 200 or html content type. | ||
8 | * | ||
9 | * @param resource $ch cURL resource | ||
10 | * @param int $type cURL info type | ||
11 | * | ||
12 | * @return int|string 200 or 'text/html' | ||
13 | */ | ||
14 | function ut_curl_getinfo_ok($ch, $type) | ||
15 | { | ||
16 | switch ($type) { | ||
17 | case CURLINFO_RESPONSE_CODE: | ||
18 | return 200; | ||
19 | case CURLINFO_CONTENT_TYPE: | ||
20 | return 'text/html; charset=utf-8'; | ||
21 | } | ||
22 | } | ||
23 | |||
24 | /** | ||
25 | * Returns code 200 or html content type without charset. | ||
26 | * | ||
27 | * @param resource $ch cURL resource | ||
28 | * @param int $type cURL info type | ||
29 | * | ||
30 | * @return int|string 200 or 'text/html' | ||
31 | */ | ||
32 | function ut_curl_getinfo_no_charset($ch, $type) | ||
33 | { | ||
34 | switch ($type) { | ||
35 | case CURLINFO_RESPONSE_CODE: | ||
36 | return 200; | ||
37 | case CURLINFO_CONTENT_TYPE: | ||
38 | return 'text/html'; | ||
39 | } | ||
40 | } | ||
41 | |||
42 | /** | ||
43 | * Invalid response code. | ||
44 | * | ||
45 | * @param resource $ch cURL resource | ||
46 | * @param int $type cURL info type | ||
47 | * | ||
48 | * @return int|string 404 or 'text/html' | ||
49 | */ | ||
50 | function ut_curl_getinfo_rc_ko($ch, $type) | ||
51 | { | ||
52 | switch ($type) { | ||
53 | case CURLINFO_RESPONSE_CODE: | ||
54 | return 404; | ||
55 | case CURLINFO_CONTENT_TYPE: | ||
56 | return 'text/html; charset=utf-8'; | ||
57 | } | ||
58 | } | ||
59 | |||
60 | /** | ||
61 | * Invalid content type. | ||
62 | * | ||
63 | * @param resource $ch cURL resource | ||
64 | * @param int $type cURL info type | ||
65 | * | ||
66 | * @return int|string 200 or 'text/plain' | ||
67 | */ | ||
68 | function ut_curl_getinfo_ct_ko($ch, $type) | ||
69 | { | ||
70 | switch ($type) { | ||
71 | case CURLINFO_RESPONSE_CODE: | ||
72 | return 200; | ||
73 | case CURLINFO_CONTENT_TYPE: | ||
74 | return 'text/plain'; | ||
75 | } | ||
76 | } | ||
77 | |||
78 | /** | ||
79 | * Invalid response code and content type. | ||
80 | * | ||
81 | * @param resource $ch cURL resource | ||
82 | * @param int $type cURL info type | ||
83 | * | ||
84 | * @return int|string 404 or 'text/plain' | ||
85 | */ | ||
86 | function ut_curl_getinfo_rs_ct_ko($ch, $type) | ||
87 | { | ||
88 | switch ($type) { | ||
89 | case CURLINFO_RESPONSE_CODE: | ||
90 | return 404; | ||
91 | case CURLINFO_CONTENT_TYPE: | ||
92 | return 'text/plain'; | ||
93 | } | ||
94 | } | ||
diff --git a/tests/utils/FakeApplicationUtils.php b/tests/utils/FakeApplicationUtils.php new file mode 100644 index 00000000..de83d598 --- /dev/null +++ b/tests/utils/FakeApplicationUtils.php | |||
@@ -0,0 +1,19 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Shaarli; | ||
4 | |||
5 | /** | ||
6 | * Fake ApplicationUtils class to avoid HTTP requests | ||
7 | */ | ||
8 | class FakeApplicationUtils extends ApplicationUtils | ||
9 | { | ||
10 | public static $VERSION_CODE = ''; | ||
11 | |||
12 | /** | ||
13 | * Toggle HTTP requests, allow overriding the version code | ||
14 | */ | ||
15 | public static function getVersion($url, $timeout = 0) | ||
16 | { | ||
17 | return self::$VERSION_CODE; | ||
18 | } | ||
19 | } | ||
diff --git a/tests/utils/ReferenceHistory.php b/tests/utils/ReferenceHistory.php index 75cbb326..e411c417 100644 --- a/tests/utils/ReferenceHistory.php +++ b/tests/utils/ReferenceHistory.php | |||
@@ -1,5 +1,8 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use Shaarli\FileUtils; | ||
4 | use Shaarli\History; | ||
5 | |||
3 | /** | 6 | /** |
4 | * Populates a reference history | 7 | * Populates a reference history |
5 | */ | 8 | */ |
diff --git a/tests/utils/ReferenceLinkDB.php b/tests/utils/ReferenceLinkDB.php index 59679e38..c12bcb67 100644 --- a/tests/utils/ReferenceLinkDB.php +++ b/tests/utils/ReferenceLinkDB.php | |||
@@ -1,4 +1,7 @@ | |||
1 | <?php | 1 | <?php |
2 | |||
3 | use Shaarli\Bookmark\LinkDB; | ||
4 | |||
2 | /** | 5 | /** |
3 | * Populates a reference datastore to test LinkDB | 6 | * Populates a reference datastore to test LinkDB |
4 | */ | 7 | */ |
diff --git a/tests/utils/config/configPhp.php b/tests/utils/config/configPhp.php index 34b11fcd..7dc81e22 100644 --- a/tests/utils/config/configPhp.php +++ b/tests/utils/config/configPhp.php | |||
@@ -8,7 +8,7 @@ $GLOBALS['titleLink'] = 'titleLink'; | |||
8 | $GLOBALS['redirector'] = 'lala'; | 8 | $GLOBALS['redirector'] = 'lala'; |
9 | $GLOBALS['disablesessionprotection'] = false; | 9 | $GLOBALS['disablesessionprotection'] = false; |
10 | $GLOBALS['privateLinkByDefault'] = false; | 10 | $GLOBALS['privateLinkByDefault'] = false; |
11 | $GLOBALS['config']['DATADIR'] = 'tests/Updater'; | 11 | $GLOBALS['config']['DATADIR'] = 'tests/updater'; |
12 | $GLOBALS['config']['PAGECACHE'] = 'sandbox/pagecache'; | 12 | $GLOBALS['config']['PAGECACHE'] = 'sandbox/pagecache'; |
13 | $GLOBALS['config']['DATASTORE'] = 'data/datastore.php'; | 13 | $GLOBALS['config']['DATASTORE'] = 'data/datastore.php'; |
14 | $GLOBALS['plugins']['WALLABAG_VERSION'] = '1'; | 14 | $GLOBALS['plugins']['WALLABAG_VERSION'] = '1'; |
diff --git a/tpl/default/404.html b/tpl/default/404.html index fd337cad..472566a6 100644 --- a/tpl/default/404.html +++ b/tpl/default/404.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
@@ -8,7 +8,7 @@ | |||
8 | {include="page.header"} | 8 | {include="page.header"} |
9 | <div class="center" id="page404" class="page404-container"> | 9 | <div class="center" id="page404" class="page404-container"> |
10 | <h2>{'Sorry, nothing to see here.'|t}</h2> | 10 | <h2>{'Sorry, nothing to see here.'|t}</h2> |
11 | <img src="img/sad_star.png"> | 11 | <img src="img/sad_star.png" alt=""> |
12 | <p>{$error_message}</p> | 12 | <p>{$error_message}</p> |
13 | </div> | 13 | </div> |
14 | {include="page.footer"} | 14 | {include="page.footer"} |
diff --git a/tpl/default/addlink.html b/tpl/default/addlink.html index 55864a02..b4b4a0ec 100644 --- a/tpl/default/addlink.html +++ b/tpl/default/addlink.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/changepassword.html b/tpl/default/changepassword.html index 2d15c92a..ab579433 100644 --- a/tpl/default/changepassword.html +++ b/tpl/default/changepassword.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
@@ -11,10 +11,10 @@ | |||
11 | <h2 class="window-title">{"Change password"|t}</h2> | 11 | <h2 class="window-title">{"Change password"|t}</h2> |
12 | <form method="POST" action="#" name="changepasswordform" id="changepasswordform"> | 12 | <form method="POST" action="#" name="changepasswordform" id="changepasswordform"> |
13 | <div> | 13 | <div> |
14 | <input type="password" name="oldpassword" placeholder="{'Current password'|t}" class="autofocus"> | 14 | <input type="password" name="oldpassword" aria-label="{'Current password'|t}" placeholder="{'Current password'|t}" class="autofocus"> |
15 | </div> | 15 | </div> |
16 | <div> | 16 | <div> |
17 | <input type="password" name="setpassword" placeholder="{'New password'|t}"> | 17 | <input type="password" name="setpassword" aria-label="{'New password'|t}" placeholder="{'New password'|t}"> |
18 | </div> | 18 | </div> |
19 | <input type="hidden" name="token" value="{$token}"> | 19 | <input type="hidden" name="token" value="{$token}"> |
20 | <div> | 20 | <div> |
diff --git a/tpl/default/changetag.html b/tpl/default/changetag.html index 6606c4fa..ec6e0b46 100644 --- a/tpl/default/changetag.html +++ b/tpl/default/changetag.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
@@ -11,20 +11,20 @@ | |||
11 | <h2 class="window-title">{"Manage tags"|t}</h2> | 11 | <h2 class="window-title">{"Manage tags"|t}</h2> |
12 | <form method="POST" action="#" name="changetag" id="changetag"> | 12 | <form method="POST" action="#" name="changetag" id="changetag"> |
13 | <div> | 13 | <div> |
14 | <input type="text" name="fromtag" placeholder="{'Tag'|t}" value="{$fromtag}" | 14 | <input type="text" name="fromtag" aria-label="{'Tag'|t}" placeholder="{'Tag'|t}" value="{$fromtag}" |
15 | list="tagsList" autocomplete="off" class="awesomplete autofocus" data-minChars="1"> | 15 | list="tagsList" autocomplete="off" class="awesomplete autofocus" data-minChars="1"> |
16 | <datalist id="tagsList"> | 16 | <datalist id="tagsList"> |
17 | {loop="$tags"}<option>{$key}</option>{/loop} | 17 | {loop="$tags"}<option>{$key}</option>{/loop} |
18 | </datalist> | 18 | </datalist> |
19 | </div> | 19 | </div> |
20 | <div> | 20 | <div> |
21 | <input type="text" name="totag" placeholder="{'New name'|t}" | 21 | <input type="text" name="totag" aria-label="{'New name'|t}" placeholder="{'New name'|t}" |
22 | list="toTagsList" autocomplete="off" class="awesomplete" data-minChars="1"> | 22 | list="toTagsList" autocomplete="off" class="awesomplete" data-minChars="1"> |
23 | <datalist id="toTagsList"> | 23 | <datalist id="toTagsList"> |
24 | {loop="$tags"}<option>{$key}</option>{/loop} | 24 | {loop="$tags"}<option>{$key}</option>{/loop} |
25 | </datalist> | 25 | </datalist> |
26 | </div> | 26 | </div> |
27 | <div><i class="fa fa-info-circle"></i> {'Case sensitive'|t}</div> | 27 | <div><i class="fa fa-info-circle" aria-hidden="true"></i> {'Case sensitive'|t}</div> |
28 | <input type="hidden" name="token" value="{$token}"> | 28 | <input type="hidden" name="token" value="{$token}"> |
29 | <div> | 29 | <div> |
30 | <input type="submit" value="{'Rename'|t}" name="renametag"> | 30 | <input type="submit" value="{'Rename'|t}" name="renametag"> |
diff --git a/tpl/default/configure.html b/tpl/default/configure.html index 42e32230..83033624 100644 --- a/tpl/default/configure.html +++ b/tpl/default/configure.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
@@ -215,6 +215,22 @@ | |||
215 | <div class="pure-g"> | 215 | <div class="pure-g"> |
216 | <div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile}"> | 216 | <div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile}"> |
217 | <div class="form-label"> | 217 | <div class="form-label"> |
218 | <label for="retrieveDescription"> | ||
219 | <span class="label-name">{'Automatically retrieve description for new bookmarks'|t}</span><br> | ||
220 | <span class="label-desc">{'Shaarli will try to retrieve the description from meta HTML headers'|t}</span> | ||
221 | </label> | ||
222 | </div> | ||
223 | </div> | ||
224 | <div class="pure-u-lg-{$ratioInput} pure-u-{$ratioInputMobile}"> | ||
225 | <div class="form-input"> | ||
226 | <input type="checkbox" name="retrieveDescription" id="retrieveDescription" | ||
227 | {if="$retrieve_description"}checked{/if}/> | ||
228 | </div> | ||
229 | </div> | ||
230 | </div> | ||
231 | <div class="pure-g"> | ||
232 | <div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile}"> | ||
233 | <div class="form-label"> | ||
218 | <label for="enableApi"> | 234 | <label for="enableApi"> |
219 | <span class="label-name">{'Enable REST API'|t}</span><br> | 235 | <span class="label-name">{'Enable REST API'|t}</span><br> |
220 | <span class="label-desc">{'Allow third party software to use Shaarli such as mobile application'|t}</span> | 236 | <span class="label-desc">{'Allow third party software to use Shaarli such as mobile application'|t}</span> |
diff --git a/tpl/default/daily.html b/tpl/default/daily.html index 2c409478..6b5103a4 100644 --- a/tpl/default/daily.html +++ b/tpl/default/daily.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
@@ -44,7 +44,12 @@ | |||
44 | </div> | 44 | </div> |
45 | </div> | 45 | </div> |
46 | <div> | 46 | <div> |
47 | <h3 class="window-subtitle">{function="format_date($dayDate, false)"}</h3> | 47 | <h3 class="window-subtitle"> |
48 | {if="!empty($dayDesc)"} | ||
49 | {$dayDesc} - | ||
50 | {/if} | ||
51 | {function="format_date($dayDate, false)"} | ||
52 | </h3> | ||
48 | 53 | ||
49 | <div id="plugin_zone_about_daily" class="plugin_zone"> | 54 | <div id="plugin_zone_about_daily" class="plugin_zone"> |
50 | {loop="$daily_about_plugin"} | 55 | {loop="$daily_about_plugin"} |
diff --git a/tpl/default/editlink.html b/tpl/default/editlink.html index d8c57155..df14535d 100644 --- a/tpl/default/editlink.html +++ b/tpl/default/editlink.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/export.html b/tpl/default/export.html index af1d6e33..99c01b11 100644 --- a/tpl/default/export.html +++ b/tpl/default/export.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/import.html b/tpl/default/import.html index bdc9086e..20f854d1 100644 --- a/tpl/default/import.html +++ b/tpl/default/import.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/install.html b/tpl/default/install.html index 6199b33d..f0e7040e 100644 --- a/tpl/default/install.html +++ b/tpl/default/install.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/linklist.html b/tpl/default/linklist.html index ed78f40a..a025d53c 100644 --- a/tpl/default/linklist.html +++ b/tpl/default/linklist.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
@@ -52,7 +52,7 @@ | |||
52 | {/loop} | 52 | {/loop} |
53 | 53 | ||
54 | <div id="linklist"> | 54 | <div id="linklist"> |
55 | <div id="link-count-block" class="pure-g"> | 55 | <div id="link-count-block" class="pure-g link-count-block"> |
56 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> | 56 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> |
57 | <div id="link-count-content" class="pure-u-lg-20-24 pure-u-22-24"> | 57 | <div id="link-count-content" class="pure-u-lg-20-24 pure-u-22-24"> |
58 | <div class="linkcount pure-u-lg-0 center"> | 58 | <div class="linkcount pure-u-lg-0 center"> |
@@ -94,7 +94,7 @@ | |||
94 | {'tagged'|t} | 94 | {'tagged'|t} |
95 | {loop="$exploded_tags"} | 95 | {loop="$exploded_tags"} |
96 | <span class="label label-tag" title="{'Remove tag'|t}"> | 96 | <span class="label label-tag" title="{'Remove tag'|t}"> |
97 | <a href="?removetag={function="urlencode($value)"}">{$value}<span class="remove"><i class="fa fa-times"></i></span></a> | 97 | <a href="?removetag={function="urlencode($value)"}">{$value}<span class="remove"><i class="fa fa-times" aria-hidden="true"></i></span></a> |
98 | </span> | 98 | </span> |
99 | {/loop} | 99 | {/loop} |
100 | {/if} | 100 | {/if} |
@@ -146,13 +146,14 @@ | |||
146 | </div> | 146 | </div> |
147 | {/if} | 147 | {/if} |
148 | 148 | ||
149 | {if="$is_logged_in"} | 149 | <div class="linklist-item-editbuttons"> |
150 | <div class="linklist-item-editbuttons"> | 150 | {if="$value.sticky"} |
151 | {if="$value.private"} | 151 | <span class="label label-sticky">{$strSticky}</span> |
152 | <span class="label label-private">{$strPrivate}</span> | 152 | {/if} |
153 | {/if} | 153 | {if="$value.private"} |
154 | </div> | 154 | <span class="label label-private">{$strPrivate}</span> |
155 | {/if} | 155 | {/if} |
156 | </div> | ||
156 | 157 | ||
157 | <h2> | 158 | <h2> |
158 | <a href="{$value.real_url}"> | 159 | <a href="{$value.real_url}"> |
@@ -195,18 +196,18 @@ | |||
195 | <input type="checkbox" class="link-checkbox" value="{$value.id}"> | 196 | <input type="checkbox" class="link-checkbox" value="{$value.id}"> |
196 | </span> | 197 | </span> |
197 | <span class="linklist-item-infos-controls-item ctrl-edit"> | 198 | <span class="linklist-item-infos-controls-item ctrl-edit"> |
198 | <a href="?edit_link={$value.id}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link"></i></a> | 199 | <a href="?edit_link={$value.id}" aria-label="{$strEdit}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link" aria-hidden="true"></i></a> |
199 | </span> | 200 | </span> |
200 | <span class="linklist-item-infos-controls-item ctrl-delete"> | 201 | <span class="linklist-item-infos-controls-item ctrl-delete"> |
201 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" | 202 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" aria-label="{$strDelete}" |
202 | title="{$strDelete}" class="delete-link pure-u-0 pure-u-lg-visible confirm-delete"> | 203 | title="{$strDelete}" class="delete-link pure-u-0 pure-u-lg-visible confirm-delete"> |
203 | <i class="fa fa-trash"></i> | 204 | <i class="fa fa-trash" aria-hidden="true"></i> |
204 | </a> | 205 | </a> |
205 | </span> | 206 | </span> |
206 | <span class="linklist-item-infos-controls-item ctrl-pin"> | 207 | <span class="linklist-item-infos-controls-item ctrl-pin"> |
207 | <a href="?do=pin&id={$value.id}&token={$token}" | 208 | <a href="?do=pin&id={$value.id}&token={$token}" |
208 | title="{$strToggleSticky}" class="pin-link {if="$value.sticky"}pinned-link{/if} pure-u-0 pure-u-lg-visible"> | 209 | title="{$strToggleSticky}" aria-label="{$strToggleSticky}" class="pin-link {if="$value.sticky"}pinned-link{/if} pure-u-0 pure-u-lg-visible"> |
209 | <i class="fa fa-thumb-tack"></i> | 210 | <i class="fa fa-thumb-tack" aria-hidden="true"></i> |
210 | </a> | 211 | </a> |
211 | </span> | 212 | </span> |
212 | </div> | 213 | </div> |
@@ -248,10 +249,10 @@ | |||
248 | {ignore}do not add space or line break between these div - Firefox issue{/ignore} | 249 | {ignore}do not add space or line break between these div - Firefox issue{/ignore} |
249 | class="linklist-item-infos-url pure-u-lg-5-12 pure-u-1"> | 250 | class="linklist-item-infos-url pure-u-lg-5-12 pure-u-1"> |
250 | <a href="{$value.real_url}" title="{$value.title}"> | 251 | <a href="{$value.real_url}" title="{$value.title}"> |
251 | <i class="fa fa-link"></i> {$value.url} | 252 | <i class="fa fa-link" aria-hidden="true"></i> {$value.url} |
252 | </a> | 253 | </a> |
253 | <div class="linklist-item-buttons pure-u-0 pure-u-lg-visible"> | 254 | <div class="linklist-item-buttons pure-u-0 pure-u-lg-visible"> |
254 | <a href="#" title="{$strFold}" class="fold-button"><i class="fa fa-chevron-up"></i></a> | 255 | <a href="#" aria-label="{$strFold}" title="{$strFold}" class="fold-button"><i class="fa fa-chevron-up" aria-hidden="true"></i></a> |
255 | </div> | 256 | </div> |
256 | </div> | 257 | </div> |
257 | <div class="mobile-buttons pure-u-1 pure-u-lg-0"> | 258 | <div class="mobile-buttons pure-u-1 pure-u-lg-0"> |
@@ -264,12 +265,12 @@ | |||
264 | {/if} | 265 | {/if} |
265 | {if="$is_logged_in"} | 266 | {if="$is_logged_in"} |
266 | · | 267 | · |
267 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" | 268 | <a href="?delete_link&lf_linkdate={$value.id}&token={$token}" aria-label="{$strDelete}" |
268 | title="{$strDelete}" class="delete-link confirm-delete"> | 269 | title="{$strDelete}" class="delete-link confirm-delete"> |
269 | <i class="fa fa-trash"></i> | 270 | <i class="fa fa-trash" aria-hidden="true"></i> |
270 | </a> | 271 | </a> |
271 | · | 272 | · |
272 | <a href="?edit_link={$value.id}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link"></i></a> | 273 | <a href="?edit_link={$value.id}" aria-label="{$strEdit}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link" aria-hidden="true"></i></a> |
273 | {/if} | 274 | {/if} |
274 | </div> | 275 | </div> |
275 | </div> | 276 | </div> |
@@ -286,7 +287,7 @@ | |||
286 | {/loop} | 287 | {/loop} |
287 | </div> | 288 | </div> |
288 | 289 | ||
289 | <div id="linklist-paging-bottom-block" class="pure-g"> | 290 | <div id="linklist-paging-bottom-block" class="pure-g link-count-block"> |
290 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> | 291 | <div class="pure-u-lg-2-24 pure-u-1-24"></div> |
291 | <div id="linklist-paging-bottom-content" class="pure-u-lg-20-24 pure-u-22-24"> | 292 | <div id="linklist-paging-bottom-content" class="pure-u-lg-20-24 pure-u-22-24"> |
292 | {include="linklist.paging"} | 293 | {include="linklist.paging"} |
diff --git a/tpl/default/linklist.paging.html b/tpl/default/linklist.paging.html index fe665a84..68947f92 100644 --- a/tpl/default/linklist.paging.html +++ b/tpl/default/linklist.paging.html | |||
@@ -6,21 +6,21 @@ | |||
6 | {'Filters'|t} | 6 | {'Filters'|t} |
7 | </span> | 7 | </span> |
8 | {if="$is_logged_in"} | 8 | {if="$is_logged_in"} |
9 | <a href="?visibility=private" title="{'Only display private links'|t}" | 9 | <a href="?visibility=private" aria-label="{'Only display private links'|t}" title="{'Only display private links'|t}" |
10 | class="{if="$visibility==='private'"}filter-on{else}filter-off{/if}" | 10 | class="{if="$visibility==='private'"}filter-on{else}filter-off{/if}" |
11 | ><i class="fa fa-user-secret"></i></a> | 11 | ><i class="fa fa-user-secret" aria-hidden="true"></i></a> |
12 | <a href="?visibility=public" title="{'Only display public links'|t}" | 12 | <a href="?visibility=public" aria-label="{'Only display public links'|t}" title="{'Only display public links'|t}" |
13 | class="{if="$visibility==='public'"}filter-on{else}filter-off{/if}" | 13 | class="{if="$visibility==='public'"}filter-on{else}filter-off{/if}" |
14 | ><i class="fa fa-globe"></i></a> | 14 | ><i class="fa fa-globe" aria-hidden="true"></i></a> |
15 | {/if} | 15 | {/if} |
16 | <a href="?untaggedonly" title="{'Filter untagged links'|t}" | 16 | <a href="?untaggedonly" aria-label="{'Filter untagged links'|t}" title="{'Filter untagged links'|t}" |
17 | class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if} | 17 | class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if} |
18 | ><i class="fa fa-tag"></i></a> | 18 | ><i class="fa fa-tag" aria-hidden="true"></i></a> |
19 | <a href="#" title="{'Select all'|t}" | 19 | <a href="#" aria-label="{'Select all'|t}" title="{'Select all'|t}" |
20 | class="filter-off select-all-button" | 20 | class="filter-off select-all-button pure-u-0 pure-u-lg-visible" |
21 | ><i class="fa fa-check-square-o"></i></a> | 21 | ><i class="fa fa-check-square-o" aria-hidden="true"></i></a> |
22 | <a href="#" class="filter-off fold-all pure-u-lg-0" title="{'Fold all'|t}"> | 22 | <a href="#" class="filter-off fold-all pure-u-lg-0" aria-label="{'Fold all'|t}" title="{'Fold all'|t}"> |
23 | <i class="fa fa-chevron-up"></i> | 23 | <i class="fa fa-chevron-up" aria-hidden="true"></i> |
24 | </a> | 24 | </a> |
25 | {loop="$action_plugin"} | 25 | {loop="$action_plugin"} |
26 | {$value.attr.class=isset($value.attr.class) ? $value.attr.class : ''} | 26 | {$value.attr.class=isset($value.attr.class) ? $value.attr.class : ''} |
@@ -59,8 +59,8 @@ | |||
59 | <form method="GET" class="pure-u-0 pure-u-lg-visible"> | 59 | <form method="GET" class="pure-u-0 pure-u-lg-visible"> |
60 | <input type="text" name="linksperpage" placeholder="133"> | 60 | <input type="text" name="linksperpage" placeholder="133"> |
61 | </form> | 61 | </form> |
62 | <a href="#" class="filter-off fold-all pure-u-0 pure-u-lg-visible" title="{'Fold all'|t}"> | 62 | <a href="#" class="filter-off fold-all pure-u-0 pure-u-lg-visible" aria-label="{'Fold all'|t}" title="{'Fold all'|t}"> |
63 | <i class="fa fa-chevron-up"></i> | 63 | <i class="fa fa-chevron-up" aria-hidden="true"></i> |
64 | </a> | 64 | </a> |
65 | </div> | 65 | </div> |
66 | </div> | 66 | </div> |
diff --git a/tpl/default/loginform.html b/tpl/default/loginform.html index 3cdab65a..761aec0c 100644 --- a/tpl/default/loginform.html +++ b/tpl/default/loginform.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
@@ -9,7 +9,7 @@ | |||
9 | <div class="pure-g pure-alert pure-alert-error pure-alert-closable center"> | 9 | <div class="pure-g pure-alert pure-alert-error pure-alert-closable center"> |
10 | <div class="pure-u-2-24"></div> | 10 | <div class="pure-u-2-24"></div> |
11 | <div class="pure-u-20-24"> | 11 | <div class="pure-u-20-24"> |
12 | {'You have been banned after too many failed login attempts. Try again later.'|t} | 12 | <p>{'You have been banned after too many failed login attempts. Try again later.'|t}</p> |
13 | </div> | 13 | </div> |
14 | <div class="pure-u-2-24"> | 14 | <div class="pure-u-2-24"> |
15 | <i class="fa fa-times pure-alert-close"></i> | 15 | <i class="fa fa-times pure-alert-close"></i> |
@@ -22,20 +22,19 @@ | |||
22 | <form method="post" name="loginform"> | 22 | <form method="post" name="loginform"> |
23 | <h2 class="window-title">{'Login'|t}</h2> | 23 | <h2 class="window-title">{'Login'|t}</h2> |
24 | <div> | 24 | <div> |
25 | <input type="text" name="login" placeholder="{'Username'|t}" | 25 | <input type="text" name="login" aria-label="{'Username'|t}" placeholder="{'Username'|t}" |
26 | {if="!empty($username)"}value="{$username}"{/if} class="autofocus" tabindex="20"> | 26 | {if="!empty($username)"}value="{$username}"{/if} class="autofocus"> |
27 | </div> | 27 | </div> |
28 | <div> | 28 | <div> |
29 | <input type="password" name="password" placeholder="{'Password'|t}" class="autofocus" tabindex="21"> | 29 | <input type="password" name="password" aria-label="{'Password'|t}" placeholder="{'Password'|t}" class="autofocus"> |
30 | </div> | 30 | </div> |
31 | <div class="remember-me"> | 31 | <div class="remember-me"> |
32 | <input type="checkbox" name="longlastingsession" id="longlastingsessionform" | 32 | <input type="checkbox" name="longlastingsession" id="longlastingsessionform" |
33 | {if="$remember_user_default"}checked="checked"{/if} | 33 | {if="$remember_user_default"}checked="checked"{/if}> |
34 | tabindex="22"> | ||
35 | <label for="longlastingsessionform">{'Remember me'|t}</label> | 34 | <label for="longlastingsessionform">{'Remember me'|t}</label> |
36 | </div> | 35 | </div> |
37 | <div> | 36 | <div> |
38 | <input type="submit" value="{'Login'|t}" class="bigbutton" tabindex="23"> | 37 | <input type="submit" value="{'Login'|t}" class="bigbutton"> |
39 | </div> | 38 | </div> |
40 | <input type="hidden" name="token" value="{$token}"> | 39 | <input type="hidden" name="token" value="{$token}"> |
41 | {if="$returnurl"}<input type="hidden" name="returnurl" value="{$returnurl}">{/if} | 40 | {if="$returnurl"}<input type="hidden" name="returnurl" value="{$returnurl}">{/if} |
@@ -48,4 +47,3 @@ | |||
48 | {include="page.footer"} | 47 | {include="page.footer"} |
49 | </body> | 48 | </body> |
50 | </html> | 49 | </html> |
51 | |||
diff --git a/tpl/default/page.footer.html b/tpl/default/page.footer.html index 5af39be7..ce858e8c 100644 --- a/tpl/default/page.footer.html +++ b/tpl/default/page.footer.html | |||
@@ -2,7 +2,8 @@ | |||
2 | 2 | ||
3 | <div class="pure-g"> | 3 | <div class="pure-g"> |
4 | <div class="pure-u-2-24"></div> | 4 | <div class="pure-u-2-24"></div> |
5 | <div id="footer" class="pure-u-20-24 footer-container"> | 5 | <footer id="footer" class="pure-u-20-24 footer-container" role="contentinfo"> |
6 | <i class="fa fa-shaarli" aria-hidden="true"></i> | ||
6 | <strong><a href="https://github.com/shaarli/Shaarli">Shaarli</a></strong> | 7 | <strong><a href="https://github.com/shaarli/Shaarli">Shaarli</a></strong> |
7 | {if="$is_logged_in===true"} | 8 | {if="$is_logged_in===true"} |
8 | {$version} | 9 | {$version} |
@@ -13,7 +14,7 @@ | |||
13 | {loop="$plugins_footer.text"} | 14 | {loop="$plugins_footer.text"} |
14 | {$value} | 15 | {$value} |
15 | {/loop} | 16 | {/loop} |
16 | </div> | 17 | </footer> |
17 | <div class="pure-u-2-24"></div> | 18 | <div class="pure-u-2-24"></div> |
18 | </div> | 19 | </div> |
19 | 20 | ||
diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html index 4f6dd4d8..0ba1993f 100644 --- a/tpl/default/page.header.html +++ b/tpl/default/page.header.html | |||
@@ -1,11 +1,13 @@ | |||
1 | <div class="shaarli-menu pure-g" id="shaarli-menu"> | 1 | <div class="shaarli-menu pure-g" id="shaarli-menu"> |
2 | <div class="pure-u-lg-0 pure-u-1"> | 2 | <div class="pure-u-lg-0 pure-u-1"> |
3 | <div class="pure-menu"> | 3 | <div class="pure-menu"> |
4 | <header role="banner"> | ||
4 | <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-mobile"> | 5 | <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-mobile"> |
5 | <img src="img/icon.png" width="16" height="16" class="head-logo" alt="" /> | 6 | <i class="fa fa-shaarli" aria-hidden="true"></i> |
6 | {$shaarlititle} | 7 | {$shaarlititle} |
7 | </a> | 8 | </a> |
8 | <a href="#" class="menu-toggle" id="menu-toggle"><s class="bar"></s><s class="bar"></s></a> | 9 | </header> |
10 | <a href="#" class="menu-toggle" id="menu-toggle" aria-label="Menu"><s class="bar" aria-hidden="true"></s><s class="bar" aria-hidden="true"></s></a> | ||
9 | </div> | 11 | </div> |
10 | </div> | 12 | </div> |
11 | <div class="pure-u-1"> | 13 | <div class="pure-u-1"> |
@@ -13,14 +15,14 @@ | |||
13 | <ul class="pure-menu-list pure-u-lg-5-6 pure-u-1"> | 15 | <ul class="pure-menu-list pure-u-lg-5-6 pure-u-1"> |
14 | <li class="pure-menu-item pure-u-0 pure-u-lg-visible"> | 16 | <li class="pure-menu-item pure-u-0 pure-u-lg-visible"> |
15 | <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-desktop"> | 17 | <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-desktop"> |
16 | <img src="img/icon.png" width="16" height="16" class="head-logo" alt="" /> | 18 | <i class="fa fa-shaarli" aria-hidden="true"></i> |
17 | {$shaarlititle} | 19 | {$shaarlititle} |
18 | </a> | 20 | </a> |
19 | </li> | 21 | </li> |
20 | {if="$is_logged_in || $openshaarli"} | 22 | {if="$is_logged_in || $openshaarli"} |
21 | <li class="pure-menu-item"> | 23 | <li class="pure-menu-item"> |
22 | <a href="?do=addlink" class="pure-menu-link" id="shaarli-menu-shaare"> | 24 | <a href="?do=addlink" class="pure-menu-link" id="shaarli-menu-shaare"> |
23 | <i class="fa fa-plus" ></i> {'Shaare'|t} | 25 | <i class="fa fa-plus" aria-hidden="true"></i> {'Shaare'|t} |
24 | </a> | 26 | </a> |
25 | </li> | 27 | </li> |
26 | <li class="pure-menu-item" id="shaarli-menu-tools"> | 28 | <li class="pure-menu-item" id="shaarli-menu-tools"> |
@@ -67,27 +69,27 @@ | |||
67 | <li class="pure-menu-item" id="shaarli-menu-desktop-search"> | 69 | <li class="pure-menu-item" id="shaarli-menu-desktop-search"> |
68 | <a href="#" class="pure-menu-link subheader-opener" | 70 | <a href="#" class="pure-menu-link subheader-opener" |
69 | data-open-id="search" | 71 | data-open-id="search" |
70 | id="search-button" title="{'Search'|t}"> | 72 | id="search-button" aria-label="{'Search'|t}" title="{'Search'|t}"> |
71 | <i class="fa fa-search"></i> | 73 | <i class="fa fa-search" aria-hidden="true"></i> |
72 | </a> | 74 | </a> |
73 | </li> | 75 | </li> |
74 | <li class="pure-menu-item" id="shaarli-menu-desktop-rss"> | 76 | <li class="pure-menu-item" id="shaarli-menu-desktop-rss"> |
75 | <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}"> | 77 | <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}" aria-label="{'RSS Feed'|t}"> |
76 | <i class="fa fa-rss"></i> | 78 | <i class="fa fa-rss" aria-hidden="true"></i> |
77 | </a> | 79 | </a> |
78 | </li> | 80 | </li> |
79 | {if="!$is_logged_in"} | 81 | {if="!$is_logged_in"} |
80 | <li class="pure-menu-item" id="shaarli-menu-desktop-login"> | 82 | <li class="pure-menu-item" id="shaarli-menu-desktop-login"> |
81 | <a href="?do=login" class="pure-menu-link" | 83 | <a href="?do=login" class="pure-menu-link" |
82 | data-open-id="header-login-form" | 84 | data-open-id="header-login-form" |
83 | id="login-button" title="{'Login'|t}"> | 85 | id="login-button" aria-label="{'Login'|t}" title="{'Login'|t}"> |
84 | <i class="fa fa-user"></i> | 86 | <i class="fa fa-user" aria-hidden="true"></i> |
85 | </a> | 87 | </a> |
86 | </li> | 88 | </li> |
87 | {else} | 89 | {else} |
88 | <li class="pure-menu-item" id="shaarli-menu-desktop-logout"> | 90 | <li class="pure-menu-item" id="shaarli-menu-desktop-logout"> |
89 | <a href="?do=logout" class="pure-menu-link" title="{'Logout'|t}"> | 91 | <a href="?do=logout" class="pure-menu-link" aria-label="{'Logout'|t}" title="{'Logout'|t}"> |
90 | <i class="fa fa-sign-out"></i> | 92 | <i class="fa fa-sign-out" aria-hidden="true"></i> |
91 | </a> | 93 | </a> |
92 | </li> | 94 | </li> |
93 | {/if} | 95 | {/if} |
@@ -118,7 +120,18 @@ | |||
118 | <div id="actions" class="subheader-form"> | 120 | <div id="actions" class="subheader-form"> |
119 | <div class="pure-g"> | 121 | <div class="pure-g"> |
120 | <div class="pure-u-1"> | 122 | <div class="pure-u-1"> |
121 | <a href="" id="actions-delete" class="button">{'Delete'|t}</a> | 123 | <a href="" id="actions-delete" class="button"> |
124 | <i class="fa fa-trash"></i> | ||
125 | {'Delete'|t} | ||
126 | </a> | ||
127 | <a href="" class="actions-change-visibility button" data-visibility="public"> | ||
128 | <i class="fa fa-globe"></i> | ||
129 | {'Set public'|t} | ||
130 | </a> | ||
131 | <a href="" class="actions-change-visibility button" data-visibility="private"> | ||
132 | <i class="fa fa-user-secret"></i> | ||
133 | {'Set private'|t} | ||
134 | </a> | ||
122 | </div> | 135 | </div> |
123 | </div> | 136 | </div> |
124 | </div> | 137 | </div> |
diff --git a/tpl/default/picwall.html b/tpl/default/picwall.html index 4c325487..5a959244 100644 --- a/tpl/default/picwall.html +++ b/tpl/default/picwall.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/pluginsadmin.html b/tpl/default/pluginsadmin.html index 82041972..4bfaa934 100644 --- a/tpl/default/pluginsadmin.html +++ b/tpl/default/pluginsadmin.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/tag.cloud.html b/tpl/default/tag.cloud.html index 9e52158d..bedf3f8c 100644 --- a/tpl/default/tag.cloud.html +++ b/tpl/default/tag.cloud.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/tag.list.html b/tpl/default/tag.list.html index bcddcd56..41eab246 100644 --- a/tpl/default/tag.list.html +++ b/tpl/default/tag.list.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/tag.sort.html b/tpl/default/tag.sort.html index 89acda0d..d24c9f64 100644 --- a/tpl/default/tag.sort.html +++ b/tpl/default/tag.sort.html | |||
@@ -1,8 +1,8 @@ | |||
1 | <div class="pure-g"> | 1 | <div class="pure-g"> |
2 | <div class="pure-u-1 pure-alert pure-alert-success tag-sort"> | 2 | <div class="pure-u-1 pure-alert pure-alert-success tag-sort"> |
3 | {'Sort by:'|t} | 3 | {'Sort by:'|t} |
4 | <a href="?do=tagcloud" title="cloud">{'Cloud'|t}</a> · | 4 | <a href="?do=tagcloud">{'Cloud'|t}</a> · |
5 | <a href="?do=taglist&sort=usage" title="cloud">{'Most used'|t}</a> · | 5 | <a href="?do=taglist&sort=usage">{'Most used'|t}</a> · |
6 | <a href="?do=taglist&sort=alpha" title="cloud">{'Alphabetical'|t}</a> | 6 | <a href="?do=taglist&sort=alpha">{'Alphabetical'|t}</a> |
7 | </div> | 7 | </div> |
8 | </div> \ No newline at end of file | 8 | </div> \ No newline at end of file |
diff --git a/tpl/default/thumbnails.html b/tpl/default/thumbnails.html index a8cf904e..f1939798 100644 --- a/tpl/default/thumbnails.html +++ b/tpl/default/thumbnails.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/default/tools.html b/tpl/default/tools.html index c9ce1eaf..20d0c893 100644 --- a/tpl/default/tools.html +++ b/tpl/default/tools.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html{if="$language !== 'auto'"} lang="{$language}"{/if}> |
3 | <head> | 3 | <head> |
4 | {include="includes"} | 4 | {include="includes"} |
5 | </head> | 5 | </head> |
diff --git a/tpl/vintage/configure.html b/tpl/vintage/configure.html index f1892fa1..160286a5 100644 --- a/tpl/vintage/configure.html +++ b/tpl/vintage/configure.html | |||
@@ -107,6 +107,14 @@ | |||
107 | </td> | 107 | </td> |
108 | </tr> | 108 | </tr> |
109 | <tr> | 109 | <tr> |
110 | <td valign="top"><b>Automatically retrieve description for new bookmarks:</b></td> | ||
111 | <td> | ||
112 | <input type="checkbox" name="retrieveDescription" id="retrieveDescription" | ||
113 | {if="$retrieve_description"}checked{/if}/> | ||
114 | <label for="retrieveDescription"> Shaarli will try to retrieve the description from meta HTML headers</label> | ||
115 | </td> | ||
116 | </tr> | ||
117 | <tr> | ||
110 | <td valign="top"><b>Enable REST API</b></td> | 118 | <td valign="top"><b>Enable REST API</b></td> |
111 | <td> | 119 | <td> |
112 | <input type="checkbox" name="enableApi" id="enableApi" | 120 | <input type="checkbox" name="enableApi" id="enableApi" |
diff --git a/tpl/vintage/daily.html b/tpl/vintage/daily.html index 71d84475..00f18e26 100644 --- a/tpl/vintage/daily.html +++ b/tpl/vintage/daily.html | |||
@@ -35,6 +35,9 @@ | |||
35 | 35 | ||
36 | <div class="dailyDate"> | 36 | <div class="dailyDate"> |
37 | <span class="nomobile">———————————</span> | 37 | <span class="nomobile">———————————</span> |
38 | {if="!empty($dayDesc)"} | ||
39 | {$dayDesc} - | ||
40 | {/if} | ||
38 | {function="strftime('%A %d, %B %Y', $day)"} | 41 | {function="strftime('%A %d, %B %Y', $day)"} |
39 | <span class="nomobile">———————————</span> | 42 | <span class="nomobile">———————————</span> |
40 | </div> | 43 | </div> |
@@ -5,62 +5,84 @@ | |||
5 | abbrev@1: | 5 | abbrev@1: |
6 | version "1.1.1" | 6 | version "1.1.1" |
7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" | 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" |
8 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== | ||
8 | 9 | ||
9 | acorn-dynamic-import@^2.0.0: | 10 | acorn-dynamic-import@^2.0.0: |
10 | version "2.0.2" | 11 | version "2.0.2" |
11 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" | 12 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" |
13 | integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ= | ||
12 | dependencies: | 14 | dependencies: |
13 | acorn "^4.0.3" | 15 | acorn "^4.0.3" |
14 | 16 | ||
15 | acorn-jsx@^3.0.0: | 17 | acorn-jsx@^3.0.0: |
16 | version "3.0.1" | 18 | version "3.0.1" |
17 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" | 19 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" |
20 | integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= | ||
18 | dependencies: | 21 | dependencies: |
19 | acorn "^3.0.4" | 22 | acorn "^3.0.4" |
20 | 23 | ||
21 | acorn@^3.0.4: | 24 | acorn@^3.0.4: |
22 | version "3.3.0" | 25 | version "3.3.0" |
23 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" | 26 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" |
27 | integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= | ||
24 | 28 | ||
25 | acorn@^4.0.3: | 29 | acorn@^4.0.3: |
26 | version "4.0.13" | 30 | version "4.0.13" |
27 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" | 31 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" |
32 | integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= | ||
28 | 33 | ||
29 | acorn@^5.0.0, acorn@^5.4.0: | 34 | acorn@^5.0.0, acorn@^5.5.0: |
30 | version "5.4.1" | 35 | version "5.7.3" |
31 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" | 36 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" |
32 | 37 | integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== | |
33 | acorn@^5.5.0: | ||
34 | version "5.5.3" | ||
35 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" | ||
36 | 38 | ||
37 | ajv-keywords@^1.0.0: | 39 | ajv-keywords@^1.0.0: |
38 | version "1.5.1" | 40 | version "1.5.1" |
39 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" | 41 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" |
42 | integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= | ||
40 | 43 | ||
41 | ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: | 44 | ajv-keywords@^2.1.0: |
42 | version "2.1.1" | 45 | version "2.1.1" |
43 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" | 46 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" |
47 | integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= | ||
48 | |||
49 | ajv-keywords@^3.1.0: | ||
50 | version "3.4.0" | ||
51 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" | ||
52 | integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== | ||
44 | 53 | ||
45 | ajv@^4.7.0, ajv@^4.9.1: | 54 | ajv@^4.7.0: |
46 | version "4.11.8" | 55 | version "4.11.8" |
47 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" | 56 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" |
57 | integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= | ||
48 | dependencies: | 58 | dependencies: |
49 | co "^4.6.0" | 59 | co "^4.6.0" |
50 | json-stable-stringify "^1.0.1" | 60 | json-stable-stringify "^1.0.1" |
51 | 61 | ||
52 | ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3, ajv@^5.3.0: | 62 | ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: |
53 | version "5.5.2" | 63 | version "5.5.2" |
54 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" | 64 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" |
65 | integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= | ||
55 | dependencies: | 66 | dependencies: |
56 | co "^4.6.0" | 67 | co "^4.6.0" |
57 | fast-deep-equal "^1.0.0" | 68 | fast-deep-equal "^1.0.0" |
58 | fast-json-stable-stringify "^2.0.0" | 69 | fast-json-stable-stringify "^2.0.0" |
59 | json-schema-traverse "^0.3.0" | 70 | json-schema-traverse "^0.3.0" |
60 | 71 | ||
72 | ajv@^6.1.0, ajv@^6.5.5: | ||
73 | version "6.10.0" | ||
74 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" | ||
75 | integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== | ||
76 | dependencies: | ||
77 | fast-deep-equal "^2.0.1" | ||
78 | fast-json-stable-stringify "^2.0.0" | ||
79 | json-schema-traverse "^0.4.1" | ||
80 | uri-js "^4.2.2" | ||
81 | |||
61 | align-text@^0.1.1, align-text@^0.1.3: | 82 | align-text@^0.1.1, align-text@^0.1.3: |
62 | version "0.1.4" | 83 | version "0.1.4" |
63 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" | 84 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" |
85 | integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= | ||
64 | dependencies: | 86 | dependencies: |
65 | kind-of "^3.0.2" | 87 | kind-of "^3.0.2" |
66 | longest "^1.0.1" | 88 | longest "^1.0.1" |
@@ -69,140 +91,171 @@ align-text@^0.1.1, align-text@^0.1.3: | |||
69 | alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: | 91 | alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: |
70 | version "1.0.2" | 92 | version "1.0.2" |
71 | resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" | 93 | resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" |
94 | integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= | ||
72 | 95 | ||
73 | amdefine@>=0.0.4: | 96 | amdefine@>=0.0.4: |
74 | version "1.0.1" | 97 | version "1.0.1" |
75 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" | 98 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" |
99 | integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= | ||
76 | 100 | ||
77 | ansi-escapes@^1.1.0: | 101 | ansi-escapes@^1.1.0: |
78 | version "1.4.0" | 102 | version "1.4.0" |
79 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" | 103 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" |
104 | integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= | ||
80 | 105 | ||
81 | ansi-escapes@^3.0.0: | 106 | ansi-escapes@^3.0.0: |
82 | version "3.0.0" | 107 | version "3.2.0" |
83 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" | 108 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" |
109 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== | ||
84 | 110 | ||
85 | ansi-regex@^2.0.0: | 111 | ansi-regex@^2.0.0: |
86 | version "2.1.1" | 112 | version "2.1.1" |
87 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" | 113 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" |
114 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= | ||
88 | 115 | ||
89 | ansi-regex@^3.0.0: | 116 | ansi-regex@^3.0.0: |
90 | version "3.0.0" | 117 | version "3.0.0" |
91 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" | 118 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" |
119 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= | ||
92 | 120 | ||
93 | ansi-styles@^2.2.1: | 121 | ansi-styles@^2.2.1: |
94 | version "2.2.1" | 122 | version "2.2.1" |
95 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" | 123 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" |
124 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= | ||
96 | 125 | ||
97 | ansi-styles@^3.1.0: | 126 | ansi-styles@^3.2.1: |
98 | version "3.2.0" | 127 | version "3.2.1" |
99 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" | 128 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" |
129 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== | ||
100 | dependencies: | 130 | dependencies: |
101 | color-convert "^1.9.0" | 131 | color-convert "^1.9.0" |
102 | 132 | ||
103 | anymatch@^1.3.0: | 133 | anymatch@^2.0.0: |
104 | version "1.3.2" | 134 | version "2.0.0" |
105 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" | 135 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" |
136 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== | ||
106 | dependencies: | 137 | dependencies: |
107 | micromatch "^2.1.5" | 138 | micromatch "^3.1.4" |
108 | normalize-path "^2.0.0" | 139 | normalize-path "^2.1.1" |
109 | 140 | ||
110 | aproba@^1.0.3: | 141 | aproba@^1.0.3: |
111 | version "1.2.0" | 142 | version "1.2.0" |
112 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" | 143 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" |
144 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== | ||
113 | 145 | ||
114 | are-we-there-yet@~1.1.2: | 146 | are-we-there-yet@~1.1.2: |
115 | version "1.1.4" | 147 | version "1.1.5" |
116 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" | 148 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" |
149 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== | ||
117 | dependencies: | 150 | dependencies: |
118 | delegates "^1.0.0" | 151 | delegates "^1.0.0" |
119 | readable-stream "^2.0.6" | 152 | readable-stream "^2.0.6" |
120 | 153 | ||
121 | argparse@^1.0.7: | 154 | argparse@^1.0.7: |
122 | version "1.0.9" | 155 | version "1.0.10" |
123 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" | 156 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" |
157 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== | ||
124 | dependencies: | 158 | dependencies: |
125 | sprintf-js "~1.0.2" | 159 | sprintf-js "~1.0.2" |
126 | 160 | ||
127 | arr-diff@^2.0.0: | 161 | arr-diff@^4.0.0: |
128 | version "2.0.0" | 162 | version "4.0.0" |
129 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" | 163 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" |
130 | dependencies: | 164 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= |
131 | arr-flatten "^1.0.1" | ||
132 | 165 | ||
133 | arr-flatten@^1.0.1: | 166 | arr-flatten@^1.1.0: |
134 | version "1.1.0" | 167 | version "1.1.0" |
135 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" | 168 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" |
169 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== | ||
170 | |||
171 | arr-union@^3.1.0: | ||
172 | version "3.1.0" | ||
173 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" | ||
174 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= | ||
136 | 175 | ||
137 | array-find-index@^1.0.1: | 176 | array-find-index@^1.0.1: |
138 | version "1.0.2" | 177 | version "1.0.2" |
139 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" | 178 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" |
179 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= | ||
140 | 180 | ||
141 | array-union@^1.0.1: | 181 | array-includes@^3.0.3: |
142 | version "1.0.2" | 182 | version "3.0.3" |
143 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" | 183 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" |
184 | integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= | ||
144 | dependencies: | 185 | dependencies: |
145 | array-uniq "^1.0.1" | 186 | define-properties "^1.1.2" |
187 | es-abstract "^1.7.0" | ||
146 | 188 | ||
147 | array-uniq@^1.0.1: | 189 | array-unique@^0.3.2: |
148 | version "1.0.3" | 190 | version "0.3.2" |
149 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" | 191 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" |
150 | 192 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= | |
151 | array-unique@^0.2.1: | ||
152 | version "0.2.1" | ||
153 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" | ||
154 | |||
155 | arrify@^1.0.0: | ||
156 | version "1.0.1" | ||
157 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" | ||
158 | 193 | ||
159 | asn1.js@^4.0.0: | 194 | asn1.js@^4.0.0: |
160 | version "4.9.2" | 195 | version "4.10.1" |
161 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" | 196 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" |
197 | integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== | ||
162 | dependencies: | 198 | dependencies: |
163 | bn.js "^4.0.0" | 199 | bn.js "^4.0.0" |
164 | inherits "^2.0.1" | 200 | inherits "^2.0.1" |
165 | minimalistic-assert "^1.0.0" | 201 | minimalistic-assert "^1.0.0" |
166 | 202 | ||
167 | asn1@~0.2.3: | 203 | asn1@~0.2.3: |
168 | version "0.2.3" | 204 | version "0.2.4" |
169 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" | 205 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" |
206 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== | ||
207 | dependencies: | ||
208 | safer-buffer "~2.1.0" | ||
170 | 209 | ||
171 | assert-plus@1.0.0, assert-plus@^1.0.0: | 210 | assert-plus@1.0.0, assert-plus@^1.0.0: |
172 | version "1.0.0" | 211 | version "1.0.0" |
173 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" | 212 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" |
174 | 213 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= | |
175 | assert-plus@^0.2.0: | ||
176 | version "0.2.0" | ||
177 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" | ||
178 | 214 | ||
179 | assert@^1.1.1: | 215 | assert@^1.1.1: |
180 | version "1.4.1" | 216 | version "1.5.0" |
181 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" | 217 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" |
218 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== | ||
182 | dependencies: | 219 | dependencies: |
220 | object-assign "^4.1.1" | ||
183 | util "0.10.3" | 221 | util "0.10.3" |
184 | 222 | ||
185 | async-each@^1.0.0: | 223 | assign-symbols@^1.0.0: |
186 | version "1.0.1" | 224 | version "1.0.0" |
187 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" | 225 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" |
226 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= | ||
227 | |||
228 | async-each@^1.0.1: | ||
229 | version "1.0.3" | ||
230 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" | ||
231 | integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== | ||
188 | 232 | ||
189 | async-foreach@^0.1.3: | 233 | async-foreach@^0.1.3: |
190 | version "0.1.3" | 234 | version "0.1.3" |
191 | resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" | 235 | resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" |
236 | integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= | ||
192 | 237 | ||
193 | async@^2.1.2, async@^2.1.5, async@^2.4.1: | 238 | async@^2.1.2, async@^2.4.1: |
194 | version "2.6.0" | 239 | version "2.6.2" |
195 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" | 240 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" |
241 | integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== | ||
196 | dependencies: | 242 | dependencies: |
197 | lodash "^4.14.0" | 243 | lodash "^4.17.11" |
198 | 244 | ||
199 | asynckit@^0.4.0: | 245 | asynckit@^0.4.0: |
200 | version "0.4.0" | 246 | version "0.4.0" |
201 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" | 247 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" |
248 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= | ||
249 | |||
250 | atob@^2.1.1: | ||
251 | version "2.1.2" | ||
252 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" | ||
253 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== | ||
202 | 254 | ||
203 | autoprefixer@^6.3.1: | 255 | autoprefixer@^6.3.1: |
204 | version "6.7.7" | 256 | version "6.7.7" |
205 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" | 257 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" |
258 | integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= | ||
206 | dependencies: | 259 | dependencies: |
207 | browserslist "^1.7.6" | 260 | browserslist "^1.7.6" |
208 | caniuse-db "^1.0.30000634" | 261 | caniuse-db "^1.0.30000634" |
@@ -212,32 +265,33 @@ autoprefixer@^6.3.1: | |||
212 | postcss-value-parser "^3.2.3" | 265 | postcss-value-parser "^3.2.3" |
213 | 266 | ||
214 | awesomplete@^1.1.2: | 267 | awesomplete@^1.1.2: |
215 | version "1.1.2" | 268 | version "1.1.4" |
216 | resolved "https://registry.yarnpkg.com/awesomplete/-/awesomplete-1.1.2.tgz#b6e253f73474e46278bba5ae7f81d4262160fb75" | 269 | resolved "https://registry.yarnpkg.com/awesomplete/-/awesomplete-1.1.4.tgz#cdfcbbb2391857ff3a3340b5b1ebde7701b355e6" |
217 | 270 | integrity sha512-AgYrODNlVD3ZJ6Em54YesLnOSusuVCjoRAt0l5bi3L1Oiv5r5dkPdxVPJaG3/wnPlxRUmGcpGnK02VK7N02kCg== | |
218 | aws-sign2@~0.6.0: | ||
219 | version "0.6.0" | ||
220 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" | ||
221 | 271 | ||
222 | aws-sign2@~0.7.0: | 272 | aws-sign2@~0.7.0: |
223 | version "0.7.0" | 273 | version "0.7.0" |
224 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" | 274 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" |
275 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= | ||
225 | 276 | ||
226 | aws4@^1.2.1, aws4@^1.6.0: | 277 | aws4@^1.8.0: |
227 | version "1.6.0" | 278 | version "1.8.0" |
228 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" | 279 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" |
280 | integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== | ||
229 | 281 | ||
230 | babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: | 282 | babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: |
231 | version "6.26.0" | 283 | version "6.26.0" |
232 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" | 284 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" |
285 | integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= | ||
233 | dependencies: | 286 | dependencies: |
234 | chalk "^1.1.3" | 287 | chalk "^1.1.3" |
235 | esutils "^2.0.2" | 288 | esutils "^2.0.2" |
236 | js-tokens "^3.0.2" | 289 | js-tokens "^3.0.2" |
237 | 290 | ||
238 | babel-core@^6.24.1, babel-core@^6.26.0: | 291 | babel-core@^6.24.1, babel-core@^6.26.0: |
239 | version "6.26.0" | 292 | version "6.26.3" |
240 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" | 293 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" |
294 | integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== | ||
241 | dependencies: | 295 | dependencies: |
242 | babel-code-frame "^6.26.0" | 296 | babel-code-frame "^6.26.0" |
243 | babel-generator "^6.26.0" | 297 | babel-generator "^6.26.0" |
@@ -249,19 +303,20 @@ babel-core@^6.24.1, babel-core@^6.26.0: | |||
249 | babel-traverse "^6.26.0" | 303 | babel-traverse "^6.26.0" |
250 | babel-types "^6.26.0" | 304 | babel-types "^6.26.0" |
251 | babylon "^6.18.0" | 305 | babylon "^6.18.0" |
252 | convert-source-map "^1.5.0" | 306 | convert-source-map "^1.5.1" |
253 | debug "^2.6.8" | 307 | debug "^2.6.9" |
254 | json5 "^0.5.1" | 308 | json5 "^0.5.1" |
255 | lodash "^4.17.4" | 309 | lodash "^4.17.4" |
256 | minimatch "^3.0.4" | 310 | minimatch "^3.0.4" |
257 | path-is-absolute "^1.0.1" | 311 | path-is-absolute "^1.0.1" |
258 | private "^0.1.7" | 312 | private "^0.1.8" |
259 | slash "^1.0.0" | 313 | slash "^1.0.0" |
260 | source-map "^0.5.6" | 314 | source-map "^0.5.7" |
261 | 315 | ||
262 | babel-generator@^6.26.0: | 316 | babel-generator@^6.26.0: |
263 | version "6.26.1" | 317 | version "6.26.1" |
264 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" | 318 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" |
319 | integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== | ||
265 | dependencies: | 320 | dependencies: |
266 | babel-messages "^6.23.0" | 321 | babel-messages "^6.23.0" |
267 | babel-runtime "^6.26.0" | 322 | babel-runtime "^6.26.0" |
@@ -275,6 +330,7 @@ babel-generator@^6.26.0: | |||
275 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: | 330 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: |
276 | version "6.24.1" | 331 | version "6.24.1" |
277 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" | 332 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" |
333 | integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= | ||
278 | dependencies: | 334 | dependencies: |
279 | babel-helper-explode-assignable-expression "^6.24.1" | 335 | babel-helper-explode-assignable-expression "^6.24.1" |
280 | babel-runtime "^6.22.0" | 336 | babel-runtime "^6.22.0" |
@@ -283,6 +339,7 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: | |||
283 | babel-helper-call-delegate@^6.24.1: | 339 | babel-helper-call-delegate@^6.24.1: |
284 | version "6.24.1" | 340 | version "6.24.1" |
285 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" | 341 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" |
342 | integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= | ||
286 | dependencies: | 343 | dependencies: |
287 | babel-helper-hoist-variables "^6.24.1" | 344 | babel-helper-hoist-variables "^6.24.1" |
288 | babel-runtime "^6.22.0" | 345 | babel-runtime "^6.22.0" |
@@ -292,6 +349,7 @@ babel-helper-call-delegate@^6.24.1: | |||
292 | babel-helper-define-map@^6.24.1: | 349 | babel-helper-define-map@^6.24.1: |
293 | version "6.26.0" | 350 | version "6.26.0" |
294 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" | 351 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" |
352 | integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= | ||
295 | dependencies: | 353 | dependencies: |
296 | babel-helper-function-name "^6.24.1" | 354 | babel-helper-function-name "^6.24.1" |
297 | babel-runtime "^6.26.0" | 355 | babel-runtime "^6.26.0" |
@@ -301,10 +359,12 @@ babel-helper-define-map@^6.24.1: | |||
301 | babel-helper-evaluate-path@^0.2.0: | 359 | babel-helper-evaluate-path@^0.2.0: |
302 | version "0.2.0" | 360 | version "0.2.0" |
303 | resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.2.0.tgz#0bb2eb01996c0cef53c5e8405e999fe4a0244c08" | 361 | resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.2.0.tgz#0bb2eb01996c0cef53c5e8405e999fe4a0244c08" |
362 | integrity sha512-0EK9TUKMxHL549hWDPkQoS7R0Ozg1CDLheVBHYds2B2qoAvmr9ejY3zOXFsrICK73TN7bPhU14PBeKc8jcBTwg== | ||
304 | 363 | ||
305 | babel-helper-explode-assignable-expression@^6.24.1: | 364 | babel-helper-explode-assignable-expression@^6.24.1: |
306 | version "6.24.1" | 365 | version "6.24.1" |
307 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" | 366 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" |
367 | integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= | ||
308 | dependencies: | 368 | dependencies: |
309 | babel-runtime "^6.22.0" | 369 | babel-runtime "^6.22.0" |
310 | babel-traverse "^6.24.1" | 370 | babel-traverse "^6.24.1" |
@@ -313,10 +373,12 @@ babel-helper-explode-assignable-expression@^6.24.1: | |||
313 | babel-helper-flip-expressions@^0.2.0: | 373 | babel-helper-flip-expressions@^0.2.0: |
314 | version "0.2.0" | 374 | version "0.2.0" |
315 | resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.2.0.tgz#160d2090a3d9f9c64a750905321a0bc218f884ec" | 375 | resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.2.0.tgz#160d2090a3d9f9c64a750905321a0bc218f884ec" |
376 | integrity sha512-rAsPA1pWBc7e2E6HepkP2e1sXugT+Oq/VCqhyuHJ8aJ2d/ifwnJfd4Qxjm21qlW43AN8tqaeByagKK6wECFMSw== | ||
316 | 377 | ||
317 | babel-helper-function-name@^6.24.1: | 378 | babel-helper-function-name@^6.24.1: |
318 | version "6.24.1" | 379 | version "6.24.1" |
319 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" | 380 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" |
381 | integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= | ||
320 | dependencies: | 382 | dependencies: |
321 | babel-helper-get-function-arity "^6.24.1" | 383 | babel-helper-get-function-arity "^6.24.1" |
322 | babel-runtime "^6.22.0" | 384 | babel-runtime "^6.22.0" |
@@ -327,6 +389,7 @@ babel-helper-function-name@^6.24.1: | |||
327 | babel-helper-get-function-arity@^6.24.1: | 389 | babel-helper-get-function-arity@^6.24.1: |
328 | version "6.24.1" | 390 | version "6.24.1" |
329 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" | 391 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" |
392 | integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= | ||
330 | dependencies: | 393 | dependencies: |
331 | babel-runtime "^6.22.0" | 394 | babel-runtime "^6.22.0" |
332 | babel-types "^6.24.1" | 395 | babel-types "^6.24.1" |
@@ -334,6 +397,7 @@ babel-helper-get-function-arity@^6.24.1: | |||
334 | babel-helper-hoist-variables@^6.24.1: | 397 | babel-helper-hoist-variables@^6.24.1: |
335 | version "6.24.1" | 398 | version "6.24.1" |
336 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" | 399 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" |
400 | integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= | ||
337 | dependencies: | 401 | dependencies: |
338 | babel-runtime "^6.22.0" | 402 | babel-runtime "^6.22.0" |
339 | babel-types "^6.24.1" | 403 | babel-types "^6.24.1" |
@@ -341,18 +405,22 @@ babel-helper-hoist-variables@^6.24.1: | |||
341 | babel-helper-is-nodes-equiv@^0.0.1: | 405 | babel-helper-is-nodes-equiv@^0.0.1: |
342 | version "0.0.1" | 406 | version "0.0.1" |
343 | resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" | 407 | resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" |
408 | integrity sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ= | ||
344 | 409 | ||
345 | babel-helper-is-void-0@^0.2.0: | 410 | babel-helper-is-void-0@^0.2.0: |
346 | version "0.2.0" | 411 | version "0.2.0" |
347 | resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.2.0.tgz#6ed0ada8a9b1c5b6e88af6b47c1b3b5c080860eb" | 412 | resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.2.0.tgz#6ed0ada8a9b1c5b6e88af6b47c1b3b5c080860eb" |
413 | integrity sha512-Axj1AYuD0E3Dl7nT3KxROP7VekEofz3XtEljzURf3fABalLpr8PamtgLFt+zuxtaCxRf9iuZmbAMMYWri5Bazw== | ||
348 | 414 | ||
349 | babel-helper-mark-eval-scopes@^0.2.0: | 415 | babel-helper-mark-eval-scopes@^0.2.0: |
350 | version "0.2.0" | 416 | version "0.2.0" |
351 | resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.2.0.tgz#7648aaf2ec92aae9b09a20ad91e8df5e1fcc94b2" | 417 | resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.2.0.tgz#7648aaf2ec92aae9b09a20ad91e8df5e1fcc94b2" |
418 | integrity sha512-KJuwrOUcHbvbh6he4xRXZFLaivK9DF9o3CrvpWnK1Wp0B+1ANYABXBMgwrnNFIDK/AvicxQ9CNr8wsgivlp4Aw== | ||
352 | 419 | ||
353 | babel-helper-optimise-call-expression@^6.24.1: | 420 | babel-helper-optimise-call-expression@^6.24.1: |
354 | version "6.24.1" | 421 | version "6.24.1" |
355 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" | 422 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" |
423 | integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= | ||
356 | dependencies: | 424 | dependencies: |
357 | babel-runtime "^6.22.0" | 425 | babel-runtime "^6.22.0" |
358 | babel-types "^6.24.1" | 426 | babel-types "^6.24.1" |
@@ -360,6 +428,7 @@ babel-helper-optimise-call-expression@^6.24.1: | |||
360 | babel-helper-regex@^6.24.1: | 428 | babel-helper-regex@^6.24.1: |
361 | version "6.26.0" | 429 | version "6.26.0" |
362 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" | 430 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" |
431 | integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= | ||
363 | dependencies: | 432 | dependencies: |
364 | babel-runtime "^6.26.0" | 433 | babel-runtime "^6.26.0" |
365 | babel-types "^6.26.0" | 434 | babel-types "^6.26.0" |
@@ -368,6 +437,7 @@ babel-helper-regex@^6.24.1: | |||
368 | babel-helper-remap-async-to-generator@^6.24.1: | 437 | babel-helper-remap-async-to-generator@^6.24.1: |
369 | version "6.24.1" | 438 | version "6.24.1" |
370 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" | 439 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" |
440 | integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= | ||
371 | dependencies: | 441 | dependencies: |
372 | babel-helper-function-name "^6.24.1" | 442 | babel-helper-function-name "^6.24.1" |
373 | babel-runtime "^6.22.0" | 443 | babel-runtime "^6.22.0" |
@@ -378,10 +448,12 @@ babel-helper-remap-async-to-generator@^6.24.1: | |||
378 | babel-helper-remove-or-void@^0.2.0: | 448 | babel-helper-remove-or-void@^0.2.0: |
379 | version "0.2.0" | 449 | version "0.2.0" |
380 | resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.2.0.tgz#8e46ad5b30560d57d7510b3fd93f332ee7c67386" | 450 | resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.2.0.tgz#8e46ad5b30560d57d7510b3fd93f332ee7c67386" |
451 | integrity sha512-1Z41upf/XR+PwY7Nd+F15Jo5BiQi5205ZXUuKed3yoyQgDkMyoM7vAdjEJS/T+M6jy32sXjskMUgms4zeiVtRA== | ||
381 | 452 | ||
382 | babel-helper-replace-supers@^6.24.1: | 453 | babel-helper-replace-supers@^6.24.1: |
383 | version "6.24.1" | 454 | version "6.24.1" |
384 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" | 455 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" |
456 | integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= | ||
385 | dependencies: | 457 | dependencies: |
386 | babel-helper-optimise-call-expression "^6.24.1" | 458 | babel-helper-optimise-call-expression "^6.24.1" |
387 | babel-messages "^6.23.0" | 459 | babel-messages "^6.23.0" |
@@ -393,17 +465,20 @@ babel-helper-replace-supers@^6.24.1: | |||
393 | babel-helper-to-multiple-sequence-expressions@^0.2.0: | 465 | babel-helper-to-multiple-sequence-expressions@^0.2.0: |
394 | version "0.2.0" | 466 | version "0.2.0" |
395 | resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.2.0.tgz#d1a419634c6cb301f27858c659167cfee0a9d318" | 467 | resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.2.0.tgz#d1a419634c6cb301f27858c659167cfee0a9d318" |
468 | integrity sha512-ij9lpfdP3+Zc/7kNwa+NXbTrUlsYEWPwt/ugmQO0qflzLrveTIkbfOqQztvitk81aG5NblYDQXDlRohzu3oa8Q== | ||
396 | 469 | ||
397 | babel-helpers@^6.24.1: | 470 | babel-helpers@^6.24.1: |
398 | version "6.24.1" | 471 | version "6.24.1" |
399 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" | 472 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" |
473 | integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= | ||
400 | dependencies: | 474 | dependencies: |
401 | babel-runtime "^6.22.0" | 475 | babel-runtime "^6.22.0" |
402 | babel-template "^6.24.1" | 476 | babel-template "^6.24.1" |
403 | 477 | ||
404 | babel-loader@^7.1.2: | 478 | babel-loader@^7.1.2: |
405 | version "7.1.2" | 479 | version "7.1.5" |
406 | resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" | 480 | resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68" |
481 | integrity sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw== | ||
407 | dependencies: | 482 | dependencies: |
408 | find-cache-dir "^1.0.0" | 483 | find-cache-dir "^1.0.0" |
409 | loader-utils "^1.0.2" | 484 | loader-utils "^1.0.2" |
@@ -412,12 +487,14 @@ babel-loader@^7.1.2: | |||
412 | babel-messages@^6.23.0: | 487 | babel-messages@^6.23.0: |
413 | version "6.23.0" | 488 | version "6.23.0" |
414 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" | 489 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" |
490 | integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= | ||
415 | dependencies: | 491 | dependencies: |
416 | babel-runtime "^6.22.0" | 492 | babel-runtime "^6.22.0" |
417 | 493 | ||
418 | babel-minify-webpack-plugin@^0.2.0: | 494 | babel-minify-webpack-plugin@^0.2.0: |
419 | version "0.2.0" | 495 | version "0.2.0" |
420 | resolved "https://registry.yarnpkg.com/babel-minify-webpack-plugin/-/babel-minify-webpack-plugin-0.2.0.tgz#ef9694d11a1b8ab8f3204d89f5c9278dd28fc2a9" | 496 | resolved "https://registry.yarnpkg.com/babel-minify-webpack-plugin/-/babel-minify-webpack-plugin-0.2.0.tgz#ef9694d11a1b8ab8f3204d89f5c9278dd28fc2a9" |
497 | integrity sha512-+5G5Qqm+DIVl7gY4rkHqlFRkaf1FZtz0imzu/Dy9+88AfOIuy7D5MQjkNgQr5gU6/YSZ+rImgxDqFcWkvvrjkQ== | ||
421 | dependencies: | 498 | dependencies: |
422 | babel-core "^6.24.1" | 499 | babel-core "^6.24.1" |
423 | babel-preset-minify "^0.2.0" | 500 | babel-preset-minify "^0.2.0" |
@@ -426,24 +503,28 @@ babel-minify-webpack-plugin@^0.2.0: | |||
426 | babel-plugin-check-es2015-constants@^6.22.0: | 503 | babel-plugin-check-es2015-constants@^6.22.0: |
427 | version "6.22.0" | 504 | version "6.22.0" |
428 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" | 505 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" |
506 | integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= | ||
429 | dependencies: | 507 | dependencies: |
430 | babel-runtime "^6.22.0" | 508 | babel-runtime "^6.22.0" |
431 | 509 | ||
432 | babel-plugin-minify-builtins@^0.2.0: | 510 | babel-plugin-minify-builtins@^0.2.0: |
433 | version "0.2.0" | 511 | version "0.2.0" |
434 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz#317f824b0907210b6348671bb040ca072e2e0c82" | 512 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz#317f824b0907210b6348671bb040ca072e2e0c82" |
513 | integrity sha512-4i+8ntaS8gwVUcOz5y+zE+55OVOl2nTbmHV51D4wAIiKcRI8U5K//ip1GHfhsgk/NJrrHK7h97Oy5jpqt0Iixg== | ||
435 | dependencies: | 514 | dependencies: |
436 | babel-helper-evaluate-path "^0.2.0" | 515 | babel-helper-evaluate-path "^0.2.0" |
437 | 516 | ||
438 | babel-plugin-minify-constant-folding@^0.2.0: | 517 | babel-plugin-minify-constant-folding@^0.2.0: |
439 | version "0.2.0" | 518 | version "0.2.0" |
440 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.2.0.tgz#8c70b528b2eb7c13e94d95c8789077d4cdbc3970" | 519 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.2.0.tgz#8c70b528b2eb7c13e94d95c8789077d4cdbc3970" |
520 | integrity sha512-B3ffQBEUQ8ydlIkYv2MkZtTCbV7FAkWAV7NkyhcXlGpD10PaCxNGQ/B9oguXGowR1m16Q5nGhvNn8Pkn1MO6Hw== | ||
441 | dependencies: | 521 | dependencies: |
442 | babel-helper-evaluate-path "^0.2.0" | 522 | babel-helper-evaluate-path "^0.2.0" |
443 | 523 | ||
444 | babel-plugin-minify-dead-code-elimination@^0.2.0: | 524 | babel-plugin-minify-dead-code-elimination@^0.2.0: |
445 | version "0.2.0" | 525 | version "0.2.0" |
446 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.2.0.tgz#e8025ee10a1e5e4f202633a6928ce892c33747e3" | 526 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.2.0.tgz#e8025ee10a1e5e4f202633a6928ce892c33747e3" |
527 | integrity sha512-zE7y3pRyzA4zK5nBou0kTcwUTSQ/AiFrynt1cIEYN7vcO2gS9ZFZoI0aO9JYLUdct5fsC1vfB35408yrzTyVfg== | ||
447 | dependencies: | 528 | dependencies: |
448 | babel-helper-evaluate-path "^0.2.0" | 529 | babel-helper-evaluate-path "^0.2.0" |
449 | babel-helper-mark-eval-scopes "^0.2.0" | 530 | babel-helper-mark-eval-scopes "^0.2.0" |
@@ -453,36 +534,43 @@ babel-plugin-minify-dead-code-elimination@^0.2.0: | |||
453 | babel-plugin-minify-flip-comparisons@^0.2.0: | 534 | babel-plugin-minify-flip-comparisons@^0.2.0: |
454 | version "0.2.0" | 535 | version "0.2.0" |
455 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.2.0.tgz#0c9c8e93155c8f09dedad8118b634c259f709ef5" | 536 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.2.0.tgz#0c9c8e93155c8f09dedad8118b634c259f709ef5" |
537 | integrity sha512-QOqXSEmD/LhT3LpM1WCyzAGcQZYYKJF7oOHvS6QbpomHenydrV53DMdPX2mK01icBExKZcJAHF209wvDBa+CSg== | ||
456 | dependencies: | 538 | dependencies: |
457 | babel-helper-is-void-0 "^0.2.0" | 539 | babel-helper-is-void-0 "^0.2.0" |
458 | 540 | ||
459 | babel-plugin-minify-guarded-expressions@^0.2.0: | 541 | babel-plugin-minify-guarded-expressions@^0.2.0: |
460 | version "0.2.0" | 542 | version "0.2.0" |
461 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.2.0.tgz#8a8c950040fce3e258a12e6eb21eab94ad7235ab" | 543 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.2.0.tgz#8a8c950040fce3e258a12e6eb21eab94ad7235ab" |
544 | integrity sha512-5+NSPdRQ9mnrHaA+zFj+D5OzmSiv90EX5zGH6cWQgR/OUqmCHSDqgTRPFvOctgpo8MJyO7Rt7ajs2UfLnlAwYg== | ||
462 | dependencies: | 545 | dependencies: |
463 | babel-helper-flip-expressions "^0.2.0" | 546 | babel-helper-flip-expressions "^0.2.0" |
464 | 547 | ||
465 | babel-plugin-minify-infinity@^0.2.0: | 548 | babel-plugin-minify-infinity@^0.2.0: |
466 | version "0.2.0" | 549 | version "0.2.0" |
467 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.2.0.tgz#30960c615ddbc657c045bb00a1d8eb4af257cf03" | 550 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.2.0.tgz#30960c615ddbc657c045bb00a1d8eb4af257cf03" |
551 | integrity sha512-U694vrla1lN6vDHWGrR832t3a/A2eh+kyl019LxEE2+sS4VTydyOPRsAOIYAdJegWRA4cMX1lm9azAN0cLIr8g== | ||
468 | 552 | ||
469 | babel-plugin-minify-mangle-names@^0.2.0: | 553 | babel-plugin-minify-mangle-names@^0.2.0: |
470 | version "0.2.0" | 554 | version "0.2.0" |
471 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.2.0.tgz#719892297ff0106a6ec1a4b0fc062f1f8b6a8529" | 555 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.2.0.tgz#719892297ff0106a6ec1a4b0fc062f1f8b6a8529" |
556 | integrity sha512-Gixuak1/CO7VCdjn15/8Bxe/QsAtDG4zPbnsNoe1mIJGCIH/kcmSjFhMlGJtXDQZd6EKzeMfA5WmX9+jvGRefw== | ||
472 | dependencies: | 557 | dependencies: |
473 | babel-helper-mark-eval-scopes "^0.2.0" | 558 | babel-helper-mark-eval-scopes "^0.2.0" |
474 | 559 | ||
475 | babel-plugin-minify-numeric-literals@^0.2.0: | 560 | babel-plugin-minify-numeric-literals@^0.2.0: |
476 | version "0.2.0" | 561 | version "0.2.0" |
477 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.2.0.tgz#5746e851700167a380c05e93f289a7070459a0d1" | 562 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.2.0.tgz#5746e851700167a380c05e93f289a7070459a0d1" |
563 | integrity sha512-VcLpb+r1YS7+RIOXdRsFVLLqoh22177USpHf+JM/g1nZbzdqENmfd5v534MLAbRErhbz6SyK+NQViVzVtBxu8g== | ||
478 | 564 | ||
479 | babel-plugin-minify-replace@^0.2.0: | 565 | babel-plugin-minify-replace@^0.2.0: |
480 | version "0.2.0" | 566 | version "0.2.0" |
481 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.2.0.tgz#3c1f06bc4e6d3e301eacb763edc1be611efc39b0" | 567 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.2.0.tgz#3c1f06bc4e6d3e301eacb763edc1be611efc39b0" |
568 | integrity sha512-SEW6zoSVxh3OH6E1LCgyhhTWMnCv+JIRu5h5IlJDA11tU4ZeSF7uPQcO4vN/o52+FssRB26dmzJ/8D+z0QPg5Q== | ||
482 | 569 | ||
483 | babel-plugin-minify-simplify@^0.2.0: | 570 | babel-plugin-minify-simplify@^0.2.0: |
484 | version "0.2.0" | 571 | version "0.2.0" |
485 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.2.0.tgz#21ceec4857100c5476d7cef121f351156e5c9bc0" | 572 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.2.0.tgz#21ceec4857100c5476d7cef121f351156e5c9bc0" |
573 | integrity sha512-Mj3Mwy2zVosMfXDWXZrQH5/uMAyfJdmDQ1NVqit+ArbHC3LlXVzptuyC1JxTyai/wgFvjLaichm/7vSUshkWqw== | ||
486 | dependencies: | 574 | dependencies: |
487 | babel-helper-flip-expressions "^0.2.0" | 575 | babel-helper-flip-expressions "^0.2.0" |
488 | babel-helper-is-nodes-equiv "^0.0.1" | 576 | babel-helper-is-nodes-equiv "^0.0.1" |
@@ -491,24 +579,29 @@ babel-plugin-minify-simplify@^0.2.0: | |||
491 | babel-plugin-minify-type-constructors@^0.2.0: | 579 | babel-plugin-minify-type-constructors@^0.2.0: |
492 | version "0.2.0" | 580 | version "0.2.0" |
493 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.2.0.tgz#7f3b6458be0863cfd59e9985bed6d134aa7a2e17" | 581 | resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.2.0.tgz#7f3b6458be0863cfd59e9985bed6d134aa7a2e17" |
582 | integrity sha512-NiOvvA9Pq6bki6nP4BayXwT5GZadw7DJFDDzHmkpnOQpENWe8RtHtKZM44MG1R6EQ5XxgbLdsdhswIzTkFlO5g== | ||
494 | dependencies: | 583 | dependencies: |
495 | babel-helper-is-void-0 "^0.2.0" | 584 | babel-helper-is-void-0 "^0.2.0" |
496 | 585 | ||
497 | babel-plugin-syntax-async-functions@^6.8.0: | 586 | babel-plugin-syntax-async-functions@^6.8.0: |
498 | version "6.13.0" | 587 | version "6.13.0" |
499 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" | 588 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" |
589 | integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= | ||
500 | 590 | ||
501 | babel-plugin-syntax-exponentiation-operator@^6.8.0: | 591 | babel-plugin-syntax-exponentiation-operator@^6.8.0: |
502 | version "6.13.0" | 592 | version "6.13.0" |
503 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" | 593 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" |
594 | integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= | ||
504 | 595 | ||
505 | babel-plugin-syntax-trailing-function-commas@^6.22.0: | 596 | babel-plugin-syntax-trailing-function-commas@^6.22.0: |
506 | version "6.22.0" | 597 | version "6.22.0" |
507 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" | 598 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" |
599 | integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= | ||
508 | 600 | ||
509 | babel-plugin-transform-async-to-generator@^6.22.0: | 601 | babel-plugin-transform-async-to-generator@^6.22.0: |
510 | version "6.24.1" | 602 | version "6.24.1" |
511 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" | 603 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" |
604 | integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= | ||
512 | dependencies: | 605 | dependencies: |
513 | babel-helper-remap-async-to-generator "^6.24.1" | 606 | babel-helper-remap-async-to-generator "^6.24.1" |
514 | babel-plugin-syntax-async-functions "^6.8.0" | 607 | babel-plugin-syntax-async-functions "^6.8.0" |
@@ -517,18 +610,21 @@ babel-plugin-transform-async-to-generator@^6.22.0: | |||
517 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: | 610 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: |
518 | version "6.22.0" | 611 | version "6.22.0" |
519 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" | 612 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" |
613 | integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= | ||
520 | dependencies: | 614 | dependencies: |
521 | babel-runtime "^6.22.0" | 615 | babel-runtime "^6.22.0" |
522 | 616 | ||
523 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: | 617 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: |
524 | version "6.22.0" | 618 | version "6.22.0" |
525 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" | 619 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" |
620 | integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= | ||
526 | dependencies: | 621 | dependencies: |
527 | babel-runtime "^6.22.0" | 622 | babel-runtime "^6.22.0" |
528 | 623 | ||
529 | babel-plugin-transform-es2015-block-scoping@^6.23.0: | 624 | babel-plugin-transform-es2015-block-scoping@^6.23.0: |
530 | version "6.26.0" | 625 | version "6.26.0" |
531 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" | 626 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" |
627 | integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= | ||
532 | dependencies: | 628 | dependencies: |
533 | babel-runtime "^6.26.0" | 629 | babel-runtime "^6.26.0" |
534 | babel-template "^6.26.0" | 630 | babel-template "^6.26.0" |
@@ -539,6 +635,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0: | |||
539 | babel-plugin-transform-es2015-classes@^6.23.0: | 635 | babel-plugin-transform-es2015-classes@^6.23.0: |
540 | version "6.24.1" | 636 | version "6.24.1" |
541 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" | 637 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" |
638 | integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= | ||
542 | dependencies: | 639 | dependencies: |
543 | babel-helper-define-map "^6.24.1" | 640 | babel-helper-define-map "^6.24.1" |
544 | babel-helper-function-name "^6.24.1" | 641 | babel-helper-function-name "^6.24.1" |
@@ -553,6 +650,7 @@ babel-plugin-transform-es2015-classes@^6.23.0: | |||
553 | babel-plugin-transform-es2015-computed-properties@^6.22.0: | 650 | babel-plugin-transform-es2015-computed-properties@^6.22.0: |
554 | version "6.24.1" | 651 | version "6.24.1" |
555 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" | 652 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" |
653 | integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= | ||
556 | dependencies: | 654 | dependencies: |
557 | babel-runtime "^6.22.0" | 655 | babel-runtime "^6.22.0" |
558 | babel-template "^6.24.1" | 656 | babel-template "^6.24.1" |
@@ -560,12 +658,14 @@ babel-plugin-transform-es2015-computed-properties@^6.22.0: | |||
560 | babel-plugin-transform-es2015-destructuring@^6.23.0: | 658 | babel-plugin-transform-es2015-destructuring@^6.23.0: |
561 | version "6.23.0" | 659 | version "6.23.0" |
562 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" | 660 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" |
661 | integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= | ||
563 | dependencies: | 662 | dependencies: |
564 | babel-runtime "^6.22.0" | 663 | babel-runtime "^6.22.0" |
565 | 664 | ||
566 | babel-plugin-transform-es2015-duplicate-keys@^6.22.0: | 665 | babel-plugin-transform-es2015-duplicate-keys@^6.22.0: |
567 | version "6.24.1" | 666 | version "6.24.1" |
568 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" | 667 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" |
668 | integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= | ||
569 | dependencies: | 669 | dependencies: |
570 | babel-runtime "^6.22.0" | 670 | babel-runtime "^6.22.0" |
571 | babel-types "^6.24.1" | 671 | babel-types "^6.24.1" |
@@ -573,12 +673,14 @@ babel-plugin-transform-es2015-duplicate-keys@^6.22.0: | |||
573 | babel-plugin-transform-es2015-for-of@^6.23.0: | 673 | babel-plugin-transform-es2015-for-of@^6.23.0: |
574 | version "6.23.0" | 674 | version "6.23.0" |
575 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" | 675 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" |
676 | integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= | ||
576 | dependencies: | 677 | dependencies: |
577 | babel-runtime "^6.22.0" | 678 | babel-runtime "^6.22.0" |
578 | 679 | ||
579 | babel-plugin-transform-es2015-function-name@^6.22.0: | 680 | babel-plugin-transform-es2015-function-name@^6.22.0: |
580 | version "6.24.1" | 681 | version "6.24.1" |
581 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" | 682 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" |
683 | integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= | ||
582 | dependencies: | 684 | dependencies: |
583 | babel-helper-function-name "^6.24.1" | 685 | babel-helper-function-name "^6.24.1" |
584 | babel-runtime "^6.22.0" | 686 | babel-runtime "^6.22.0" |
@@ -587,20 +689,23 @@ babel-plugin-transform-es2015-function-name@^6.22.0: | |||
587 | babel-plugin-transform-es2015-literals@^6.22.0: | 689 | babel-plugin-transform-es2015-literals@^6.22.0: |
588 | version "6.22.0" | 690 | version "6.22.0" |
589 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" | 691 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" |
692 | integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= | ||
590 | dependencies: | 693 | dependencies: |
591 | babel-runtime "^6.22.0" | 694 | babel-runtime "^6.22.0" |
592 | 695 | ||
593 | babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: | 696 | babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: |
594 | version "6.24.1" | 697 | version "6.24.1" |
595 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" | 698 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" |
699 | integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= | ||
596 | dependencies: | 700 | dependencies: |
597 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" | 701 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" |
598 | babel-runtime "^6.22.0" | 702 | babel-runtime "^6.22.0" |
599 | babel-template "^6.24.1" | 703 | babel-template "^6.24.1" |
600 | 704 | ||
601 | babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: | 705 | babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: |
602 | version "6.26.0" | 706 | version "6.26.2" |
603 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" | 707 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" |
708 | integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== | ||
604 | dependencies: | 709 | dependencies: |
605 | babel-plugin-transform-strict-mode "^6.24.1" | 710 | babel-plugin-transform-strict-mode "^6.24.1" |
606 | babel-runtime "^6.26.0" | 711 | babel-runtime "^6.26.0" |
@@ -610,6 +715,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-e | |||
610 | babel-plugin-transform-es2015-modules-systemjs@^6.23.0: | 715 | babel-plugin-transform-es2015-modules-systemjs@^6.23.0: |
611 | version "6.24.1" | 716 | version "6.24.1" |
612 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" | 717 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" |
718 | integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= | ||
613 | dependencies: | 719 | dependencies: |
614 | babel-helper-hoist-variables "^6.24.1" | 720 | babel-helper-hoist-variables "^6.24.1" |
615 | babel-runtime "^6.22.0" | 721 | babel-runtime "^6.22.0" |
@@ -618,6 +724,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0: | |||
618 | babel-plugin-transform-es2015-modules-umd@^6.23.0: | 724 | babel-plugin-transform-es2015-modules-umd@^6.23.0: |
619 | version "6.24.1" | 725 | version "6.24.1" |
620 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" | 726 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" |
727 | integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= | ||
621 | dependencies: | 728 | dependencies: |
622 | babel-plugin-transform-es2015-modules-amd "^6.24.1" | 729 | babel-plugin-transform-es2015-modules-amd "^6.24.1" |
623 | babel-runtime "^6.22.0" | 730 | babel-runtime "^6.22.0" |
@@ -626,6 +733,7 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0: | |||
626 | babel-plugin-transform-es2015-object-super@^6.22.0: | 733 | babel-plugin-transform-es2015-object-super@^6.22.0: |
627 | version "6.24.1" | 734 | version "6.24.1" |
628 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" | 735 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" |
736 | integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= | ||
629 | dependencies: | 737 | dependencies: |
630 | babel-helper-replace-supers "^6.24.1" | 738 | babel-helper-replace-supers "^6.24.1" |
631 | babel-runtime "^6.22.0" | 739 | babel-runtime "^6.22.0" |
@@ -633,6 +741,7 @@ babel-plugin-transform-es2015-object-super@^6.22.0: | |||
633 | babel-plugin-transform-es2015-parameters@^6.23.0: | 741 | babel-plugin-transform-es2015-parameters@^6.23.0: |
634 | version "6.24.1" | 742 | version "6.24.1" |
635 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" | 743 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" |
744 | integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= | ||
636 | dependencies: | 745 | dependencies: |
637 | babel-helper-call-delegate "^6.24.1" | 746 | babel-helper-call-delegate "^6.24.1" |
638 | babel-helper-get-function-arity "^6.24.1" | 747 | babel-helper-get-function-arity "^6.24.1" |
@@ -644,6 +753,7 @@ babel-plugin-transform-es2015-parameters@^6.23.0: | |||
644 | babel-plugin-transform-es2015-shorthand-properties@^6.22.0: | 753 | babel-plugin-transform-es2015-shorthand-properties@^6.22.0: |
645 | version "6.24.1" | 754 | version "6.24.1" |
646 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" | 755 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" |
756 | integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= | ||
647 | dependencies: | 757 | dependencies: |
648 | babel-runtime "^6.22.0" | 758 | babel-runtime "^6.22.0" |
649 | babel-types "^6.24.1" | 759 | babel-types "^6.24.1" |
@@ -651,12 +761,14 @@ babel-plugin-transform-es2015-shorthand-properties@^6.22.0: | |||
651 | babel-plugin-transform-es2015-spread@^6.22.0: | 761 | babel-plugin-transform-es2015-spread@^6.22.0: |
652 | version "6.22.0" | 762 | version "6.22.0" |
653 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" | 763 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" |
764 | integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= | ||
654 | dependencies: | 765 | dependencies: |
655 | babel-runtime "^6.22.0" | 766 | babel-runtime "^6.22.0" |
656 | 767 | ||
657 | babel-plugin-transform-es2015-sticky-regex@^6.22.0: | 768 | babel-plugin-transform-es2015-sticky-regex@^6.22.0: |
658 | version "6.24.1" | 769 | version "6.24.1" |
659 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" | 770 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" |
771 | integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= | ||
660 | dependencies: | 772 | dependencies: |
661 | babel-helper-regex "^6.24.1" | 773 | babel-helper-regex "^6.24.1" |
662 | babel-runtime "^6.22.0" | 774 | babel-runtime "^6.22.0" |
@@ -665,18 +777,21 @@ babel-plugin-transform-es2015-sticky-regex@^6.22.0: | |||
665 | babel-plugin-transform-es2015-template-literals@^6.22.0: | 777 | babel-plugin-transform-es2015-template-literals@^6.22.0: |
666 | version "6.22.0" | 778 | version "6.22.0" |
667 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" | 779 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" |
780 | integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= | ||
668 | dependencies: | 781 | dependencies: |
669 | babel-runtime "^6.22.0" | 782 | babel-runtime "^6.22.0" |
670 | 783 | ||
671 | babel-plugin-transform-es2015-typeof-symbol@^6.23.0: | 784 | babel-plugin-transform-es2015-typeof-symbol@^6.23.0: |
672 | version "6.23.0" | 785 | version "6.23.0" |
673 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" | 786 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" |
787 | integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= | ||
674 | dependencies: | 788 | dependencies: |
675 | babel-runtime "^6.22.0" | 789 | babel-runtime "^6.22.0" |
676 | 790 | ||
677 | babel-plugin-transform-es2015-unicode-regex@^6.22.0: | 791 | babel-plugin-transform-es2015-unicode-regex@^6.22.0: |
678 | version "6.24.1" | 792 | version "6.24.1" |
679 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" | 793 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" |
794 | integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= | ||
680 | dependencies: | 795 | dependencies: |
681 | babel-helper-regex "^6.24.1" | 796 | babel-helper-regex "^6.24.1" |
682 | babel-runtime "^6.22.0" | 797 | babel-runtime "^6.22.0" |
@@ -685,6 +800,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0: | |||
685 | babel-plugin-transform-exponentiation-operator@^6.22.0: | 800 | babel-plugin-transform-exponentiation-operator@^6.22.0: |
686 | version "6.24.1" | 801 | version "6.24.1" |
687 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" | 802 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" |
803 | integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= | ||
688 | dependencies: | 804 | dependencies: |
689 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" | 805 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" |
690 | babel-plugin-syntax-exponentiation-operator "^6.8.0" | 806 | babel-plugin-syntax-exponentiation-operator "^6.8.0" |
@@ -693,67 +809,81 @@ babel-plugin-transform-exponentiation-operator@^6.22.0: | |||
693 | babel-plugin-transform-inline-consecutive-adds@^0.2.0: | 809 | babel-plugin-transform-inline-consecutive-adds@^0.2.0: |
694 | version "0.2.0" | 810 | version "0.2.0" |
695 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz#15dae78921057f4004f8eafd79e15ddc5f12f426" | 811 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz#15dae78921057f4004f8eafd79e15ddc5f12f426" |
812 | integrity sha512-GlhOuLOQ28ua9prg0hT33HslCrEmz9xWXy9ZNZSACppCyRxxRW+haYtRgm7uYXCcd0q8ggCWD2pfWEJp5iiZfQ== | ||
696 | 813 | ||
697 | babel-plugin-transform-member-expression-literals@^6.8.5: | 814 | babel-plugin-transform-member-expression-literals@^6.8.5: |
698 | version "6.9.0" | 815 | version "6.9.4" |
699 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.0.tgz#ab07ad52a11ff7d2528c71388e8f901a4499c2b2" | 816 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" |
817 | integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= | ||
700 | 818 | ||
701 | babel-plugin-transform-merge-sibling-variables@^6.8.6: | 819 | babel-plugin-transform-merge-sibling-variables@^6.8.6: |
702 | version "6.9.0" | 820 | version "6.9.4" |
703 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.0.tgz#140017e305f8eb4f60d2f2db61154fbd71a9fcdd" | 821 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" |
822 | integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= | ||
704 | 823 | ||
705 | babel-plugin-transform-minify-booleans@^6.8.3: | 824 | babel-plugin-transform-minify-booleans@^6.8.3: |
706 | version "6.9.0" | 825 | version "6.9.4" |
707 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.0.tgz#e36ceaa49aadcae70ec98bd9dbccb660719a667a" | 826 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" |
827 | integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= | ||
708 | 828 | ||
709 | babel-plugin-transform-property-literals@^6.8.5: | 829 | babel-plugin-transform-property-literals@^6.8.5: |
710 | version "6.9.0" | 830 | version "6.9.4" |
711 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.0.tgz#4ddc12ada888927eacab4daff8a535ebc5de5a61" | 831 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" |
832 | integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= | ||
712 | dependencies: | 833 | dependencies: |
713 | esutils "^2.0.2" | 834 | esutils "^2.0.2" |
714 | 835 | ||
715 | babel-plugin-transform-regenerator@^6.22.0: | 836 | babel-plugin-transform-regenerator@^6.22.0: |
716 | version "6.26.0" | 837 | version "6.26.0" |
717 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" | 838 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" |
839 | integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= | ||
718 | dependencies: | 840 | dependencies: |
719 | regenerator-transform "^0.10.0" | 841 | regenerator-transform "^0.10.0" |
720 | 842 | ||
721 | babel-plugin-transform-regexp-constructors@^0.2.0: | 843 | babel-plugin-transform-regexp-constructors@^0.2.0: |
722 | version "0.2.0" | 844 | version "0.2.0" |
723 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz#6aa5dd0acc515db4be929bbcec4ed4c946c534a3" | 845 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz#6aa5dd0acc515db4be929bbcec4ed4c946c534a3" |
846 | integrity sha512-7IsQ6aQx6LAaOqy97/PthTf+5Nx9grZww3r6E62IdWe76Yr8KsuwVjxzqSPQvESJqTE3EMADQ9S0RtwWDGNG9Q== | ||
724 | 847 | ||
725 | babel-plugin-transform-remove-console@^6.8.5: | 848 | babel-plugin-transform-remove-console@^6.8.5: |
726 | version "6.9.0" | 849 | version "6.9.4" |
727 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.0.tgz#a7b671aab050dd30ef7cf2142b61a7d10efb327f" | 850 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" |
851 | integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= | ||
728 | 852 | ||
729 | babel-plugin-transform-remove-debugger@^6.8.5: | 853 | babel-plugin-transform-remove-debugger@^6.8.5: |
730 | version "6.9.0" | 854 | version "6.9.4" |
731 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.0.tgz#b465e74b3fbe1970da561fb1331e30aefac3f1fe" | 855 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" |
856 | integrity sha1-QrcnYxyXl44estGZp67IShgznvI= | ||
732 | 857 | ||
733 | babel-plugin-transform-remove-undefined@^0.2.0: | 858 | babel-plugin-transform-remove-undefined@^0.2.0: |
734 | version "0.2.0" | 859 | version "0.2.0" |
735 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.2.0.tgz#94f052062054c707e8d094acefe79416b63452b1" | 860 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.2.0.tgz#94f052062054c707e8d094acefe79416b63452b1" |
861 | integrity sha512-O8v57tPMHkp89kA4ZfQEYds/pzgvz/QYerBJjIuL5/Jc7RnvMVRA5gJY9zFKP7WayW8WOSBV4vh8Y8FJRio+ow== | ||
736 | dependencies: | 862 | dependencies: |
737 | babel-helper-evaluate-path "^0.2.0" | 863 | babel-helper-evaluate-path "^0.2.0" |
738 | 864 | ||
739 | babel-plugin-transform-simplify-comparison-operators@^6.8.5: | 865 | babel-plugin-transform-simplify-comparison-operators@^6.8.5: |
740 | version "6.9.0" | 866 | version "6.9.4" |
741 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.0.tgz#586252fea023cb13f2400a09c0ab178dc0844f0a" | 867 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" |
868 | integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= | ||
742 | 869 | ||
743 | babel-plugin-transform-strict-mode@^6.24.1: | 870 | babel-plugin-transform-strict-mode@^6.24.1: |
744 | version "6.24.1" | 871 | version "6.24.1" |
745 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" | 872 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" |
873 | integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= | ||
746 | dependencies: | 874 | dependencies: |
747 | babel-runtime "^6.22.0" | 875 | babel-runtime "^6.22.0" |
748 | babel-types "^6.24.1" | 876 | babel-types "^6.24.1" |
749 | 877 | ||
750 | babel-plugin-transform-undefined-to-void@^6.8.3: | 878 | babel-plugin-transform-undefined-to-void@^6.8.3: |
751 | version "6.9.0" | 879 | version "6.9.4" |
752 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.0.tgz#eb5db0554caffe9ded0206468ec0c6c3b332b9d2" | 880 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" |
881 | integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= | ||
753 | 882 | ||
754 | babel-preset-env@^1.6.1: | 883 | babel-preset-env@^1.6.1: |
755 | version "1.6.1" | 884 | version "1.7.0" |
756 | resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" | 885 | resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" |
886 | integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== | ||
757 | dependencies: | 887 | dependencies: |
758 | babel-plugin-check-es2015-constants "^6.22.0" | 888 | babel-plugin-check-es2015-constants "^6.22.0" |
759 | babel-plugin-syntax-trailing-function-commas "^6.22.0" | 889 | babel-plugin-syntax-trailing-function-commas "^6.22.0" |
@@ -782,13 +912,14 @@ babel-preset-env@^1.6.1: | |||
782 | babel-plugin-transform-es2015-unicode-regex "^6.22.0" | 912 | babel-plugin-transform-es2015-unicode-regex "^6.22.0" |
783 | babel-plugin-transform-exponentiation-operator "^6.22.0" | 913 | babel-plugin-transform-exponentiation-operator "^6.22.0" |
784 | babel-plugin-transform-regenerator "^6.22.0" | 914 | babel-plugin-transform-regenerator "^6.22.0" |
785 | browserslist "^2.1.2" | 915 | browserslist "^3.2.6" |
786 | invariant "^2.2.2" | 916 | invariant "^2.2.2" |
787 | semver "^5.3.0" | 917 | semver "^5.3.0" |
788 | 918 | ||
789 | babel-preset-minify@^0.2.0: | 919 | babel-preset-minify@^0.2.0: |
790 | version "0.2.0" | 920 | version "0.2.0" |
791 | resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.2.0.tgz#006566552d9b83834472273f306c0131062a0acc" | 921 | resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.2.0.tgz#006566552d9b83834472273f306c0131062a0acc" |
922 | integrity sha512-mR8Q44RmMzm18bM2Lqd9uiPopzk5GDCtVuquNbLFmX6lOKnqWoenaNBxnWW0UhBFC75lEHTIgNGCbnsRI0pJVw== | ||
792 | dependencies: | 923 | dependencies: |
793 | babel-plugin-minify-builtins "^0.2.0" | 924 | babel-plugin-minify-builtins "^0.2.0" |
794 | babel-plugin-minify-constant-folding "^0.2.0" | 925 | babel-plugin-minify-constant-folding "^0.2.0" |
@@ -817,6 +948,7 @@ babel-preset-minify@^0.2.0: | |||
817 | babel-register@^6.26.0: | 948 | babel-register@^6.26.0: |
818 | version "6.26.0" | 949 | version "6.26.0" |
819 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" | 950 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" |
951 | integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= | ||
820 | dependencies: | 952 | dependencies: |
821 | babel-core "^6.26.0" | 953 | babel-core "^6.26.0" |
822 | babel-runtime "^6.26.0" | 954 | babel-runtime "^6.26.0" |
@@ -829,6 +961,7 @@ babel-register@^6.26.0: | |||
829 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: | 961 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: |
830 | version "6.26.0" | 962 | version "6.26.0" |
831 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" | 963 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" |
964 | integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= | ||
832 | dependencies: | 965 | dependencies: |
833 | core-js "^2.4.0" | 966 | core-js "^2.4.0" |
834 | regenerator-runtime "^0.11.0" | 967 | regenerator-runtime "^0.11.0" |
@@ -836,6 +969,7 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: | |||
836 | babel-template@^6.24.1, babel-template@^6.26.0: | 969 | babel-template@^6.24.1, babel-template@^6.26.0: |
837 | version "6.26.0" | 970 | version "6.26.0" |
838 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" | 971 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" |
972 | integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= | ||
839 | dependencies: | 973 | dependencies: |
840 | babel-runtime "^6.26.0" | 974 | babel-runtime "^6.26.0" |
841 | babel-traverse "^6.26.0" | 975 | babel-traverse "^6.26.0" |
@@ -846,6 +980,7 @@ babel-template@^6.24.1, babel-template@^6.26.0: | |||
846 | babel-traverse@^6.24.1, babel-traverse@^6.26.0: | 980 | babel-traverse@^6.24.1, babel-traverse@^6.26.0: |
847 | version "6.26.0" | 981 | version "6.26.0" |
848 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" | 982 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" |
983 | integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= | ||
849 | dependencies: | 984 | dependencies: |
850 | babel-code-frame "^6.26.0" | 985 | babel-code-frame "^6.26.0" |
851 | babel-messages "^6.23.0" | 986 | babel-messages "^6.23.0" |
@@ -860,6 +995,7 @@ babel-traverse@^6.24.1, babel-traverse@^6.26.0: | |||
860 | babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: | 995 | babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: |
861 | version "6.26.0" | 996 | version "6.26.0" |
862 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" | 997 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" |
998 | integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= | ||
863 | dependencies: | 999 | dependencies: |
864 | babel-runtime "^6.26.0" | 1000 | babel-runtime "^6.26.0" |
865 | esutils "^2.0.2" | 1001 | esutils "^2.0.2" |
@@ -869,87 +1005,103 @@ babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: | |||
869 | babylon@^6.18.0: | 1005 | babylon@^6.18.0: |
870 | version "6.18.0" | 1006 | version "6.18.0" |
871 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" | 1007 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" |
1008 | integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== | ||
872 | 1009 | ||
873 | balanced-match@^0.4.2: | 1010 | balanced-match@^0.4.2: |
874 | version "0.4.2" | 1011 | version "0.4.2" |
875 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" | 1012 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" |
1013 | integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= | ||
876 | 1014 | ||
877 | balanced-match@^1.0.0: | 1015 | balanced-match@^1.0.0: |
878 | version "1.0.0" | 1016 | version "1.0.0" |
879 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" | 1017 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" |
1018 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= | ||
880 | 1019 | ||
881 | base64-js@^1.0.2: | 1020 | base64-js@^1.0.2: |
882 | version "1.2.1" | 1021 | version "1.3.0" |
883 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" | 1022 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" |
1023 | integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== | ||
1024 | |||
1025 | base@^0.11.1: | ||
1026 | version "0.11.2" | ||
1027 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" | ||
1028 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== | ||
1029 | dependencies: | ||
1030 | cache-base "^1.0.1" | ||
1031 | class-utils "^0.3.5" | ||
1032 | component-emitter "^1.2.1" | ||
1033 | define-property "^1.0.0" | ||
1034 | isobject "^3.0.1" | ||
1035 | mixin-deep "^1.2.0" | ||
1036 | pascalcase "^0.1.1" | ||
884 | 1037 | ||
885 | bcrypt-pbkdf@^1.0.0: | 1038 | bcrypt-pbkdf@^1.0.0: |
886 | version "1.0.1" | 1039 | version "1.0.2" |
887 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" | 1040 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" |
1041 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= | ||
888 | dependencies: | 1042 | dependencies: |
889 | tweetnacl "^0.14.3" | 1043 | tweetnacl "^0.14.3" |
890 | 1044 | ||
891 | big.js@^3.1.3: | 1045 | big.js@^5.2.2: |
892 | version "3.2.0" | 1046 | version "5.2.2" |
893 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" | 1047 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" |
1048 | integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== | ||
894 | 1049 | ||
895 | binary-extensions@^1.0.0: | 1050 | binary-extensions@^1.0.0: |
896 | version "1.11.0" | 1051 | version "1.13.1" |
897 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" | 1052 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" |
1053 | integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== | ||
898 | 1054 | ||
899 | blazy@^1.8.2: | 1055 | blazy@^1.8.2: |
900 | version "1.8.2" | 1056 | version "1.8.2" |
901 | resolved "https://registry.yarnpkg.com/blazy/-/blazy-1.8.2.tgz#50dfd638baaf9003efd6eb3a836aca54184ab6da" | 1057 | resolved "https://registry.yarnpkg.com/blazy/-/blazy-1.8.2.tgz#50dfd638baaf9003efd6eb3a836aca54184ab6da" |
1058 | integrity sha1-UN/WOLqvkAPv1us6g2rKVBhKtto= | ||
902 | 1059 | ||
903 | block-stream@*: | 1060 | block-stream@*: |
904 | version "0.0.9" | 1061 | version "0.0.9" |
905 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" | 1062 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" |
1063 | integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= | ||
906 | dependencies: | 1064 | dependencies: |
907 | inherits "~2.0.0" | 1065 | inherits "~2.0.0" |
908 | 1066 | ||
909 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: | 1067 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: |
910 | version "4.11.8" | 1068 | version "4.11.8" |
911 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" | 1069 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" |
912 | 1070 | integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== | |
913 | boom@2.x.x: | ||
914 | version "2.10.1" | ||
915 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" | ||
916 | dependencies: | ||
917 | hoek "2.x.x" | ||
918 | |||
919 | boom@4.x.x: | ||
920 | version "4.3.1" | ||
921 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" | ||
922 | dependencies: | ||
923 | hoek "4.x.x" | ||
924 | |||
925 | boom@5.x.x: | ||
926 | version "5.2.0" | ||
927 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" | ||
928 | dependencies: | ||
929 | hoek "4.x.x" | ||
930 | 1071 | ||
931 | brace-expansion@^1.1.7: | 1072 | brace-expansion@^1.1.7: |
932 | version "1.1.8" | 1073 | version "1.1.11" |
933 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" | 1074 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" |
1075 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== | ||
934 | dependencies: | 1076 | dependencies: |
935 | balanced-match "^1.0.0" | 1077 | balanced-match "^1.0.0" |
936 | concat-map "0.0.1" | 1078 | concat-map "0.0.1" |
937 | 1079 | ||
938 | braces@^1.8.2: | 1080 | braces@^2.3.1, braces@^2.3.2: |
939 | version "1.8.5" | 1081 | version "2.3.2" |
940 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" | 1082 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" |
1083 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== | ||
941 | dependencies: | 1084 | dependencies: |
942 | expand-range "^1.8.1" | 1085 | arr-flatten "^1.1.0" |
943 | preserve "^0.2.0" | 1086 | array-unique "^0.3.2" |
1087 | extend-shallow "^2.0.1" | ||
1088 | fill-range "^4.0.0" | ||
1089 | isobject "^3.0.1" | ||
944 | repeat-element "^1.1.2" | 1090 | repeat-element "^1.1.2" |
1091 | snapdragon "^0.8.1" | ||
1092 | snapdragon-node "^2.0.1" | ||
1093 | split-string "^3.0.2" | ||
1094 | to-regex "^3.0.1" | ||
945 | 1095 | ||
946 | brorand@^1.0.1: | 1096 | brorand@^1.0.1: |
947 | version "1.1.0" | 1097 | version "1.1.0" |
948 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" | 1098 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" |
1099 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= | ||
949 | 1100 | ||
950 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: | 1101 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: |
951 | version "1.1.1" | 1102 | version "1.2.0" |
952 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" | 1103 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" |
1104 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== | ||
953 | dependencies: | 1105 | dependencies: |
954 | buffer-xor "^1.0.3" | 1106 | buffer-xor "^1.0.3" |
955 | cipher-base "^1.0.0" | 1107 | cipher-base "^1.0.0" |
@@ -959,24 +1111,28 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: | |||
959 | safe-buffer "^5.0.1" | 1111 | safe-buffer "^5.0.1" |
960 | 1112 | ||
961 | browserify-cipher@^1.0.0: | 1113 | browserify-cipher@^1.0.0: |
962 | version "1.0.0" | 1114 | version "1.0.1" |
963 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" | 1115 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" |
1116 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== | ||
964 | dependencies: | 1117 | dependencies: |
965 | browserify-aes "^1.0.4" | 1118 | browserify-aes "^1.0.4" |
966 | browserify-des "^1.0.0" | 1119 | browserify-des "^1.0.0" |
967 | evp_bytestokey "^1.0.0" | 1120 | evp_bytestokey "^1.0.0" |
968 | 1121 | ||
969 | browserify-des@^1.0.0: | 1122 | browserify-des@^1.0.0: |
970 | version "1.0.0" | 1123 | version "1.0.2" |
971 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" | 1124 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" |
1125 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== | ||
972 | dependencies: | 1126 | dependencies: |
973 | cipher-base "^1.0.1" | 1127 | cipher-base "^1.0.1" |
974 | des.js "^1.0.0" | 1128 | des.js "^1.0.0" |
975 | inherits "^2.0.1" | 1129 | inherits "^2.0.1" |
1130 | safe-buffer "^5.1.2" | ||
976 | 1131 | ||
977 | browserify-rsa@^4.0.0: | 1132 | browserify-rsa@^4.0.0: |
978 | version "4.0.1" | 1133 | version "4.0.1" |
979 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" | 1134 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" |
1135 | integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= | ||
980 | dependencies: | 1136 | dependencies: |
981 | bn.js "^4.1.0" | 1137 | bn.js "^4.1.0" |
982 | randombytes "^2.0.1" | 1138 | randombytes "^2.0.1" |
@@ -984,6 +1140,7 @@ browserify-rsa@^4.0.0: | |||
984 | browserify-sign@^4.0.0: | 1140 | browserify-sign@^4.0.0: |
985 | version "4.0.4" | 1141 | version "4.0.4" |
986 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" | 1142 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" |
1143 | integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= | ||
987 | dependencies: | 1144 | dependencies: |
988 | bn.js "^4.1.1" | 1145 | bn.js "^4.1.1" |
989 | browserify-rsa "^4.0.0" | 1146 | browserify-rsa "^4.0.0" |
@@ -996,60 +1153,81 @@ browserify-sign@^4.0.0: | |||
996 | browserify-zlib@^0.2.0: | 1153 | browserify-zlib@^0.2.0: |
997 | version "0.2.0" | 1154 | version "0.2.0" |
998 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" | 1155 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" |
1156 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== | ||
999 | dependencies: | 1157 | dependencies: |
1000 | pako "~1.0.5" | 1158 | pako "~1.0.5" |
1001 | 1159 | ||
1002 | browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: | 1160 | browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: |
1003 | version "1.7.7" | 1161 | version "1.7.7" |
1004 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" | 1162 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" |
1163 | integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= | ||
1005 | dependencies: | 1164 | dependencies: |
1006 | caniuse-db "^1.0.30000639" | 1165 | caniuse-db "^1.0.30000639" |
1007 | electron-to-chromium "^1.2.7" | 1166 | electron-to-chromium "^1.2.7" |
1008 | 1167 | ||
1009 | browserslist@^2.1.2: | 1168 | browserslist@^3.2.6: |
1010 | version "2.11.3" | 1169 | version "3.2.8" |
1011 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" | 1170 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" |
1171 | integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== | ||
1012 | dependencies: | 1172 | dependencies: |
1013 | caniuse-lite "^1.0.30000792" | 1173 | caniuse-lite "^1.0.30000844" |
1014 | electron-to-chromium "^1.3.30" | 1174 | electron-to-chromium "^1.3.47" |
1015 | 1175 | ||
1016 | buffer-from@^1.0.0: | 1176 | buffer-from@^1.0.0: |
1017 | version "1.0.0" | 1177 | version "1.1.1" |
1018 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" | 1178 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" |
1179 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== | ||
1019 | 1180 | ||
1020 | buffer-xor@^1.0.3: | 1181 | buffer-xor@^1.0.3: |
1021 | version "1.0.3" | 1182 | version "1.0.3" |
1022 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" | 1183 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" |
1184 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= | ||
1023 | 1185 | ||
1024 | buffer@^4.3.0: | 1186 | buffer@^4.3.0: |
1025 | version "4.9.1" | 1187 | version "4.9.1" |
1026 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" | 1188 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" |
1189 | integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= | ||
1027 | dependencies: | 1190 | dependencies: |
1028 | base64-js "^1.0.2" | 1191 | base64-js "^1.0.2" |
1029 | ieee754 "^1.1.4" | 1192 | ieee754 "^1.1.4" |
1030 | isarray "^1.0.0" | 1193 | isarray "^1.0.0" |
1031 | 1194 | ||
1032 | builtin-modules@^1.0.0, builtin-modules@^1.1.1: | ||
1033 | version "1.1.1" | ||
1034 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" | ||
1035 | |||
1036 | builtin-status-codes@^3.0.0: | 1195 | builtin-status-codes@^3.0.0: |
1037 | version "3.0.0" | 1196 | version "3.0.0" |
1038 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" | 1197 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" |
1198 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= | ||
1199 | |||
1200 | cache-base@^1.0.1: | ||
1201 | version "1.0.1" | ||
1202 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" | ||
1203 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== | ||
1204 | dependencies: | ||
1205 | collection-visit "^1.0.0" | ||
1206 | component-emitter "^1.2.1" | ||
1207 | get-value "^2.0.6" | ||
1208 | has-value "^1.0.0" | ||
1209 | isobject "^3.0.1" | ||
1210 | set-value "^2.0.0" | ||
1211 | to-object-path "^0.3.0" | ||
1212 | union-value "^1.0.0" | ||
1213 | unset-value "^1.0.0" | ||
1039 | 1214 | ||
1040 | caller-path@^0.1.0: | 1215 | caller-path@^0.1.0: |
1041 | version "0.1.0" | 1216 | version "0.1.0" |
1042 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" | 1217 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" |
1218 | integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= | ||
1043 | dependencies: | 1219 | dependencies: |
1044 | callsites "^0.2.0" | 1220 | callsites "^0.2.0" |
1045 | 1221 | ||
1046 | callsites@^0.2.0: | 1222 | callsites@^0.2.0: |
1047 | version "0.2.0" | 1223 | version "0.2.0" |
1048 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" | 1224 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" |
1225 | integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= | ||
1049 | 1226 | ||
1050 | camelcase-keys@^2.0.0: | 1227 | camelcase-keys@^2.0.0: |
1051 | version "2.1.0" | 1228 | version "2.1.0" |
1052 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" | 1229 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" |
1230 | integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= | ||
1053 | dependencies: | 1231 | dependencies: |
1054 | camelcase "^2.0.0" | 1232 | camelcase "^2.0.0" |
1055 | map-obj "^1.0.0" | 1233 | map-obj "^1.0.0" |
@@ -1057,22 +1235,27 @@ camelcase-keys@^2.0.0: | |||
1057 | camelcase@^1.0.2: | 1235 | camelcase@^1.0.2: |
1058 | version "1.2.1" | 1236 | version "1.2.1" |
1059 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" | 1237 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" |
1238 | integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= | ||
1060 | 1239 | ||
1061 | camelcase@^2.0.0: | 1240 | camelcase@^2.0.0: |
1062 | version "2.1.1" | 1241 | version "2.1.1" |
1063 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" | 1242 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" |
1243 | integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= | ||
1064 | 1244 | ||
1065 | camelcase@^3.0.0: | 1245 | camelcase@^3.0.0: |
1066 | version "3.0.0" | 1246 | version "3.0.0" |
1067 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" | 1247 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" |
1248 | integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= | ||
1068 | 1249 | ||
1069 | camelcase@^4.1.0: | 1250 | camelcase@^4.1.0: |
1070 | version "4.1.0" | 1251 | version "4.1.0" |
1071 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" | 1252 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" |
1253 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= | ||
1072 | 1254 | ||
1073 | caniuse-api@^1.5.2: | 1255 | caniuse-api@^1.5.2: |
1074 | version "1.6.1" | 1256 | version "1.6.1" |
1075 | resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" | 1257 | resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" |
1258 | integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw= | ||
1076 | dependencies: | 1259 | dependencies: |
1077 | browserslist "^1.3.6" | 1260 | browserslist "^1.3.6" |
1078 | caniuse-db "^1.0.30000529" | 1261 | caniuse-db "^1.0.30000529" |
@@ -1080,24 +1263,24 @@ caniuse-api@^1.5.2: | |||
1080 | lodash.uniq "^4.5.0" | 1263 | lodash.uniq "^4.5.0" |
1081 | 1264 | ||
1082 | caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: | 1265 | caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: |
1083 | version "1.0.30000801" | 1266 | version "1.0.30000969" |
1084 | resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000801.tgz#a1d49def94c4e5aca5ccf1d58812e4668fac19d4" | 1267 | resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000969.tgz#e6aeca9b1bac88865990913a0b041f587180cd59" |
1085 | 1268 | integrity sha512-ttrmwpIXvEL/kg0JSg6Q+xEbMxAEcjZOOgZMGPcMe5JMYgi20Nvs9bqMRGfyIOQtd1jYa6yRWODIR6apj3xPQw== | |
1086 | caniuse-lite@^1.0.30000792: | ||
1087 | version "1.0.30000792" | ||
1088 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz#d0cea981f8118f3961471afbb43c9a1e5bbf0332" | ||
1089 | 1269 | ||
1090 | caseless@~0.11.0: | 1270 | caniuse-lite@^1.0.30000844: |
1091 | version "0.11.0" | 1271 | version "1.0.30000969" |
1092 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" | 1272 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000969.tgz#7664f571f2072657bde70b00a1fc1ba41f1942a9" |
1273 | integrity sha512-Kus0yxkoAJgVc0bax7S4gLSlFifCa7MnSZL9p9VuS/HIKEL4seaqh28KIQAAO50cD/rJ5CiJkJFapkdDAlhFxQ== | ||
1093 | 1274 | ||
1094 | caseless@~0.12.0: | 1275 | caseless@~0.12.0: |
1095 | version "0.12.0" | 1276 | version "0.12.0" |
1096 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" | 1277 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" |
1278 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= | ||
1097 | 1279 | ||
1098 | center-align@^0.1.1: | 1280 | center-align@^0.1.1: |
1099 | version "0.1.3" | 1281 | version "0.1.3" |
1100 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" | 1282 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" |
1283 | integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= | ||
1101 | dependencies: | 1284 | dependencies: |
1102 | align-text "^0.1.3" | 1285 | align-text "^0.1.3" |
1103 | lazy-cache "^1.0.3" | 1286 | lazy-cache "^1.0.3" |
@@ -1105,6 +1288,7 @@ center-align@^0.1.1: | |||
1105 | chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: | 1288 | chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: |
1106 | version "1.1.3" | 1289 | version "1.1.3" |
1107 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" | 1290 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" |
1291 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= | ||
1108 | dependencies: | 1292 | dependencies: |
1109 | ansi-styles "^2.2.1" | 1293 | ansi-styles "^2.2.1" |
1110 | escape-string-regexp "^1.0.2" | 1294 | escape-string-regexp "^1.0.2" |
@@ -1112,36 +1296,48 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: | |||
1112 | strip-ansi "^3.0.0" | 1296 | strip-ansi "^3.0.0" |
1113 | supports-color "^2.0.0" | 1297 | supports-color "^2.0.0" |
1114 | 1298 | ||
1115 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: | 1299 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1: |
1116 | version "2.3.0" | 1300 | version "2.4.2" |
1117 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" | 1301 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" |
1302 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== | ||
1118 | dependencies: | 1303 | dependencies: |
1119 | ansi-styles "^3.1.0" | 1304 | ansi-styles "^3.2.1" |
1120 | escape-string-regexp "^1.0.5" | 1305 | escape-string-regexp "^1.0.5" |
1121 | supports-color "^4.0.0" | 1306 | supports-color "^5.3.0" |
1122 | 1307 | ||
1123 | chardet@^0.4.0: | 1308 | chardet@^0.4.0: |
1124 | version "0.4.2" | 1309 | version "0.4.2" |
1125 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" | 1310 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" |
1311 | integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= | ||
1126 | 1312 | ||
1127 | chokidar@^1.7.0: | 1313 | chokidar@^2.0.2: |
1128 | version "1.7.0" | 1314 | version "2.1.6" |
1129 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" | 1315 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" |
1316 | integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== | ||
1130 | dependencies: | 1317 | dependencies: |
1131 | anymatch "^1.3.0" | 1318 | anymatch "^2.0.0" |
1132 | async-each "^1.0.0" | 1319 | async-each "^1.0.1" |
1133 | glob-parent "^2.0.0" | 1320 | braces "^2.3.2" |
1134 | inherits "^2.0.1" | 1321 | glob-parent "^3.1.0" |
1322 | inherits "^2.0.3" | ||
1135 | is-binary-path "^1.0.0" | 1323 | is-binary-path "^1.0.0" |
1136 | is-glob "^2.0.0" | 1324 | is-glob "^4.0.0" |
1325 | normalize-path "^3.0.0" | ||
1137 | path-is-absolute "^1.0.0" | 1326 | path-is-absolute "^1.0.0" |
1138 | readdirp "^2.0.0" | 1327 | readdirp "^2.2.1" |
1328 | upath "^1.1.1" | ||
1139 | optionalDependencies: | 1329 | optionalDependencies: |
1140 | fsevents "^1.0.0" | 1330 | fsevents "^1.2.7" |
1331 | |||
1332 | chownr@^1.1.1: | ||
1333 | version "1.1.1" | ||
1334 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" | ||
1335 | integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== | ||
1141 | 1336 | ||
1142 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: | 1337 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: |
1143 | version "1.0.4" | 1338 | version "1.0.4" |
1144 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" | 1339 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" |
1340 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== | ||
1145 | dependencies: | 1341 | dependencies: |
1146 | inherits "^2.0.1" | 1342 | inherits "^2.0.1" |
1147 | safe-buffer "^5.0.1" | 1343 | safe-buffer "^5.0.1" |
@@ -1149,32 +1345,48 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: | |||
1149 | circular-json@^0.3.1: | 1345 | circular-json@^0.3.1: |
1150 | version "0.3.3" | 1346 | version "0.3.3" |
1151 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" | 1347 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" |
1348 | integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== | ||
1152 | 1349 | ||
1153 | clap@^1.0.9: | 1350 | clap@^1.0.9: |
1154 | version "1.2.3" | 1351 | version "1.2.3" |
1155 | resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" | 1352 | resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" |
1353 | integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== | ||
1156 | dependencies: | 1354 | dependencies: |
1157 | chalk "^1.1.3" | 1355 | chalk "^1.1.3" |
1158 | 1356 | ||
1357 | class-utils@^0.3.5: | ||
1358 | version "0.3.6" | ||
1359 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" | ||
1360 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== | ||
1361 | dependencies: | ||
1362 | arr-union "^3.1.0" | ||
1363 | define-property "^0.2.5" | ||
1364 | isobject "^3.0.0" | ||
1365 | static-extend "^0.1.1" | ||
1366 | |||
1159 | cli-cursor@^1.0.1: | 1367 | cli-cursor@^1.0.1: |
1160 | version "1.0.2" | 1368 | version "1.0.2" |
1161 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" | 1369 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" |
1370 | integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= | ||
1162 | dependencies: | 1371 | dependencies: |
1163 | restore-cursor "^1.0.1" | 1372 | restore-cursor "^1.0.1" |
1164 | 1373 | ||
1165 | cli-cursor@^2.1.0: | 1374 | cli-cursor@^2.1.0: |
1166 | version "2.1.0" | 1375 | version "2.1.0" |
1167 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" | 1376 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" |
1377 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= | ||
1168 | dependencies: | 1378 | dependencies: |
1169 | restore-cursor "^2.0.0" | 1379 | restore-cursor "^2.0.0" |
1170 | 1380 | ||
1171 | cli-width@^2.0.0: | 1381 | cli-width@^2.0.0: |
1172 | version "2.2.0" | 1382 | version "2.2.0" |
1173 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" | 1383 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" |
1384 | integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= | ||
1174 | 1385 | ||
1175 | cliui@^2.1.0: | 1386 | cliui@^2.1.0: |
1176 | version "2.1.0" | 1387 | version "2.1.0" |
1177 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" | 1388 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" |
1389 | integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= | ||
1178 | dependencies: | 1390 | dependencies: |
1179 | center-align "^0.1.1" | 1391 | center-align "^0.1.1" |
1180 | right-align "^0.1.1" | 1392 | right-align "^0.1.1" |
@@ -1183,57 +1395,80 @@ cliui@^2.1.0: | |||
1183 | cliui@^3.2.0: | 1395 | cliui@^3.2.0: |
1184 | version "3.2.0" | 1396 | version "3.2.0" |
1185 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" | 1397 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" |
1398 | integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= | ||
1186 | dependencies: | 1399 | dependencies: |
1187 | string-width "^1.0.1" | 1400 | string-width "^1.0.1" |
1188 | strip-ansi "^3.0.1" | 1401 | strip-ansi "^3.0.1" |
1189 | wrap-ansi "^2.0.0" | 1402 | wrap-ansi "^2.0.0" |
1190 | 1403 | ||
1191 | clone-deep@^0.3.0: | 1404 | clone-deep@^2.0.1: |
1192 | version "0.3.0" | 1405 | version "2.0.2" |
1193 | resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8" | 1406 | resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" |
1407 | integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ== | ||
1194 | dependencies: | 1408 | dependencies: |
1195 | for-own "^1.0.0" | 1409 | for-own "^1.0.0" |
1196 | is-plain-object "^2.0.1" | 1410 | is-plain-object "^2.0.4" |
1197 | kind-of "^3.2.2" | 1411 | kind-of "^6.0.0" |
1198 | shallow-clone "^0.1.2" | 1412 | shallow-clone "^1.0.0" |
1199 | 1413 | ||
1200 | clone@^1.0.2: | 1414 | clone@^1.0.2: |
1201 | version "1.0.3" | 1415 | version "1.0.4" |
1202 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" | 1416 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" |
1417 | integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= | ||
1203 | 1418 | ||
1204 | co@^4.6.0: | 1419 | co@^4.6.0: |
1205 | version "4.6.0" | 1420 | version "4.6.0" |
1206 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" | 1421 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" |
1422 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= | ||
1207 | 1423 | ||
1208 | coa@~1.0.1: | 1424 | coa@~1.0.1: |
1209 | version "1.0.4" | 1425 | version "1.0.4" |
1210 | resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" | 1426 | resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" |
1427 | integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= | ||
1211 | dependencies: | 1428 | dependencies: |
1212 | q "^1.1.2" | 1429 | q "^1.1.2" |
1213 | 1430 | ||
1214 | code-point-at@^1.0.0: | 1431 | code-point-at@^1.0.0: |
1215 | version "1.1.0" | 1432 | version "1.1.0" |
1216 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" | 1433 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" |
1434 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= | ||
1435 | |||
1436 | collection-visit@^1.0.0: | ||
1437 | version "1.0.0" | ||
1438 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" | ||
1439 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= | ||
1440 | dependencies: | ||
1441 | map-visit "^1.0.0" | ||
1442 | object-visit "^1.0.0" | ||
1217 | 1443 | ||
1218 | color-convert@^1.3.0, color-convert@^1.9.0: | 1444 | color-convert@^1.3.0, color-convert@^1.9.0: |
1219 | version "1.9.1" | 1445 | version "1.9.3" |
1220 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" | 1446 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" |
1447 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== | ||
1221 | dependencies: | 1448 | dependencies: |
1222 | color-name "^1.1.1" | 1449 | color-name "1.1.3" |
1223 | 1450 | ||
1224 | color-name@^1.0.0, color-name@^1.1.1: | 1451 | color-name@1.1.3: |
1225 | version "1.1.3" | 1452 | version "1.1.3" |
1226 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" | 1453 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" |
1454 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= | ||
1455 | |||
1456 | color-name@^1.0.0: | ||
1457 | version "1.1.4" | ||
1458 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" | ||
1459 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== | ||
1227 | 1460 | ||
1228 | color-string@^0.3.0: | 1461 | color-string@^0.3.0: |
1229 | version "0.3.0" | 1462 | version "0.3.0" |
1230 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" | 1463 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" |
1464 | integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= | ||
1231 | dependencies: | 1465 | dependencies: |
1232 | color-name "^1.0.0" | 1466 | color-name "^1.0.0" |
1233 | 1467 | ||
1234 | color@^0.11.0: | 1468 | color@^0.11.0: |
1235 | version "0.11.4" | 1469 | version "0.11.4" |
1236 | resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" | 1470 | resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" |
1471 | integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= | ||
1237 | dependencies: | 1472 | dependencies: |
1238 | clone "^1.0.2" | 1473 | clone "^1.0.2" |
1239 | color-convert "^1.3.0" | 1474 | color-convert "^1.3.0" |
@@ -1242,6 +1477,7 @@ color@^0.11.0: | |||
1242 | colormin@^1.0.5: | 1477 | colormin@^1.0.5: |
1243 | version "1.1.2" | 1478 | version "1.1.2" |
1244 | resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" | 1479 | resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" |
1480 | integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM= | ||
1245 | dependencies: | 1481 | dependencies: |
1246 | color "^0.11.0" | 1482 | color "^0.11.0" |
1247 | css-color-names "0.0.4" | 1483 | css-color-names "0.0.4" |
@@ -1250,95 +1486,112 @@ colormin@^1.0.5: | |||
1250 | colors@~1.1.2: | 1486 | colors@~1.1.2: |
1251 | version "1.1.2" | 1487 | version "1.1.2" |
1252 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" | 1488 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" |
1489 | integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= | ||
1253 | 1490 | ||
1254 | combined-stream@^1.0.5, combined-stream@~1.0.5: | 1491 | combined-stream@^1.0.6, combined-stream@~1.0.6: |
1255 | version "1.0.5" | 1492 | version "1.0.8" |
1256 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" | 1493 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" |
1494 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== | ||
1257 | dependencies: | 1495 | dependencies: |
1258 | delayed-stream "~1.0.0" | 1496 | delayed-stream "~1.0.0" |
1259 | 1497 | ||
1260 | commander@^2.8.1: | 1498 | commander@^2.8.1: |
1261 | version "2.15.1" | 1499 | version "2.20.0" |
1262 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" | 1500 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" |
1263 | 1501 | integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== | |
1264 | commander@^2.9.0: | ||
1265 | version "2.13.0" | ||
1266 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" | ||
1267 | 1502 | ||
1268 | commondir@^1.0.1: | 1503 | commondir@^1.0.1: |
1269 | version "1.0.1" | 1504 | version "1.0.1" |
1270 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" | 1505 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" |
1506 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= | ||
1507 | |||
1508 | component-emitter@^1.2.1: | ||
1509 | version "1.3.0" | ||
1510 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" | ||
1511 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== | ||
1271 | 1512 | ||
1272 | concat-map@0.0.1: | 1513 | concat-map@0.0.1: |
1273 | version "0.0.1" | 1514 | version "0.0.1" |
1274 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" | 1515 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" |
1516 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= | ||
1275 | 1517 | ||
1276 | concat-stream@^1.4.6: | 1518 | concat-stream@^1.4.6, concat-stream@^1.6.0: |
1277 | version "1.6.2" | 1519 | version "1.6.2" |
1278 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" | 1520 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" |
1521 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== | ||
1279 | dependencies: | 1522 | dependencies: |
1280 | buffer-from "^1.0.0" | 1523 | buffer-from "^1.0.0" |
1281 | inherits "^2.0.3" | 1524 | inherits "^2.0.3" |
1282 | readable-stream "^2.2.2" | 1525 | readable-stream "^2.2.2" |
1283 | typedarray "^0.0.6" | 1526 | typedarray "^0.0.6" |
1284 | 1527 | ||
1285 | concat-stream@^1.6.0: | ||
1286 | version "1.6.0" | ||
1287 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" | ||
1288 | dependencies: | ||
1289 | inherits "^2.0.3" | ||
1290 | readable-stream "^2.2.2" | ||
1291 | typedarray "^0.0.6" | ||
1292 | |||
1293 | console-browserify@^1.1.0: | 1528 | console-browserify@^1.1.0: |
1294 | version "1.1.0" | 1529 | version "1.1.0" |
1295 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" | 1530 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" |
1531 | integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= | ||
1296 | dependencies: | 1532 | dependencies: |
1297 | date-now "^0.1.4" | 1533 | date-now "^0.1.4" |
1298 | 1534 | ||
1299 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: | 1535 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: |
1300 | version "1.1.0" | 1536 | version "1.1.0" |
1301 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" | 1537 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" |
1538 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= | ||
1302 | 1539 | ||
1303 | constants-browserify@^1.0.0: | 1540 | constants-browserify@^1.0.0: |
1304 | version "1.0.0" | 1541 | version "1.0.0" |
1305 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" | 1542 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" |
1543 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= | ||
1306 | 1544 | ||
1307 | contains-path@^0.1.0: | 1545 | contains-path@^0.1.0: |
1308 | version "0.1.0" | 1546 | version "0.1.0" |
1309 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" | 1547 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" |
1548 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= | ||
1310 | 1549 | ||
1311 | convert-source-map@^1.5.0: | 1550 | convert-source-map@^1.5.1: |
1312 | version "1.5.1" | 1551 | version "1.6.0" |
1313 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" | 1552 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" |
1553 | integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== | ||
1554 | dependencies: | ||
1555 | safe-buffer "~5.1.1" | ||
1556 | |||
1557 | copy-descriptor@^0.1.0: | ||
1558 | version "0.1.1" | ||
1559 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" | ||
1560 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= | ||
1314 | 1561 | ||
1315 | core-js@^2.4.0, core-js@^2.5.0: | 1562 | core-js@^2.4.0, core-js@^2.5.0: |
1316 | version "2.5.3" | 1563 | version "2.6.5" |
1317 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" | 1564 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" |
1565 | integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== | ||
1318 | 1566 | ||
1319 | core-util-is@1.0.2, core-util-is@~1.0.0: | 1567 | core-util-is@1.0.2, core-util-is@~1.0.0: |
1320 | version "1.0.2" | 1568 | version "1.0.2" |
1321 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" | 1569 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" |
1570 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= | ||
1322 | 1571 | ||
1323 | create-ecdh@^4.0.0: | 1572 | create-ecdh@^4.0.0: |
1324 | version "4.0.0" | 1573 | version "4.0.3" |
1325 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" | 1574 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" |
1575 | integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== | ||
1326 | dependencies: | 1576 | dependencies: |
1327 | bn.js "^4.1.0" | 1577 | bn.js "^4.1.0" |
1328 | elliptic "^6.0.0" | 1578 | elliptic "^6.0.0" |
1329 | 1579 | ||
1330 | create-hash@^1.1.0, create-hash@^1.1.2: | 1580 | create-hash@^1.1.0, create-hash@^1.1.2: |
1331 | version "1.1.3" | 1581 | version "1.2.0" |
1332 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" | 1582 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" |
1583 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== | ||
1333 | dependencies: | 1584 | dependencies: |
1334 | cipher-base "^1.0.1" | 1585 | cipher-base "^1.0.1" |
1335 | inherits "^2.0.1" | 1586 | inherits "^2.0.1" |
1336 | ripemd160 "^2.0.0" | 1587 | md5.js "^1.3.4" |
1588 | ripemd160 "^2.0.1" | ||
1337 | sha.js "^2.4.0" | 1589 | sha.js "^2.4.0" |
1338 | 1590 | ||
1339 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: | 1591 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: |
1340 | version "1.1.6" | 1592 | version "1.1.7" |
1341 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" | 1593 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" |
1594 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== | ||
1342 | dependencies: | 1595 | dependencies: |
1343 | cipher-base "^1.0.3" | 1596 | cipher-base "^1.0.3" |
1344 | create-hash "^1.1.0" | 1597 | create-hash "^1.1.0" |
@@ -1350,6 +1603,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: | |||
1350 | cross-spawn@^3.0.0: | 1603 | cross-spawn@^3.0.0: |
1351 | version "3.0.1" | 1604 | version "3.0.1" |
1352 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" | 1605 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" |
1606 | integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= | ||
1353 | dependencies: | 1607 | dependencies: |
1354 | lru-cache "^4.0.1" | 1608 | lru-cache "^4.0.1" |
1355 | which "^1.2.9" | 1609 | which "^1.2.9" |
@@ -1357,26 +1611,16 @@ cross-spawn@^3.0.0: | |||
1357 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: | 1611 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: |
1358 | version "5.1.0" | 1612 | version "5.1.0" |
1359 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" | 1613 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" |
1614 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= | ||
1360 | dependencies: | 1615 | dependencies: |
1361 | lru-cache "^4.0.1" | 1616 | lru-cache "^4.0.1" |
1362 | shebang-command "^1.2.0" | 1617 | shebang-command "^1.2.0" |
1363 | which "^1.2.9" | 1618 | which "^1.2.9" |
1364 | 1619 | ||
1365 | cryptiles@2.x.x: | ||
1366 | version "2.0.5" | ||
1367 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" | ||
1368 | dependencies: | ||
1369 | boom "2.x.x" | ||
1370 | |||
1371 | cryptiles@3.x.x: | ||
1372 | version "3.1.2" | ||
1373 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" | ||
1374 | dependencies: | ||
1375 | boom "5.x.x" | ||
1376 | |||
1377 | crypto-browserify@^3.11.0: | 1620 | crypto-browserify@^3.11.0: |
1378 | version "3.12.0" | 1621 | version "3.12.0" |
1379 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" | 1622 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" |
1623 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== | ||
1380 | dependencies: | 1624 | dependencies: |
1381 | browserify-cipher "^1.0.0" | 1625 | browserify-cipher "^1.0.0" |
1382 | browserify-sign "^4.0.0" | 1626 | browserify-sign "^4.0.0" |
@@ -1393,10 +1637,12 @@ crypto-browserify@^3.11.0: | |||
1393 | css-color-names@0.0.4: | 1637 | css-color-names@0.0.4: |
1394 | version "0.0.4" | 1638 | version "0.0.4" |
1395 | resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" | 1639 | resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" |
1640 | integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= | ||
1396 | 1641 | ||
1397 | css-loader@^0.28.9: | 1642 | css-loader@^0.28.9: |
1398 | version "0.28.9" | 1643 | version "0.28.11" |
1399 | resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.9.tgz#68064b85f4e271d7ce4c48a58300928e535d1c95" | 1644 | resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" |
1645 | integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg== | ||
1400 | dependencies: | 1646 | dependencies: |
1401 | babel-code-frame "^6.26.0" | 1647 | babel-code-frame "^6.26.0" |
1402 | css-selector-tokenizer "^0.7.0" | 1648 | css-selector-tokenizer "^0.7.0" |
@@ -1414,8 +1660,9 @@ css-loader@^0.28.9: | |||
1414 | source-list-map "^2.0.0" | 1660 | source-list-map "^2.0.0" |
1415 | 1661 | ||
1416 | css-selector-tokenizer@^0.7.0: | 1662 | css-selector-tokenizer@^0.7.0: |
1417 | version "0.7.0" | 1663 | version "0.7.1" |
1418 | resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" | 1664 | resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" |
1665 | integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== | ||
1419 | dependencies: | 1666 | dependencies: |
1420 | cssesc "^0.1.0" | 1667 | cssesc "^0.1.0" |
1421 | fastparse "^1.1.1" | 1668 | fastparse "^1.1.1" |
@@ -1424,10 +1671,12 @@ css-selector-tokenizer@^0.7.0: | |||
1424 | cssesc@^0.1.0: | 1671 | cssesc@^0.1.0: |
1425 | version "0.1.0" | 1672 | version "0.1.0" |
1426 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" | 1673 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" |
1674 | integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= | ||
1427 | 1675 | ||
1428 | cssnano@^3.10.0: | 1676 | cssnano@^3.10.0: |
1429 | version "3.10.0" | 1677 | version "3.10.0" |
1430 | resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" | 1678 | resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" |
1679 | integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg= | ||
1431 | dependencies: | 1680 | dependencies: |
1432 | autoprefixer "^6.3.1" | 1681 | autoprefixer "^6.3.1" |
1433 | decamelize "^1.1.2" | 1682 | decamelize "^1.1.2" |
@@ -1465,6 +1714,7 @@ cssnano@^3.10.0: | |||
1465 | csso@~2.3.1: | 1714 | csso@~2.3.1: |
1466 | version "2.3.2" | 1715 | version "2.3.2" |
1467 | resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" | 1716 | resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" |
1717 | integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= | ||
1468 | dependencies: | 1718 | dependencies: |
1469 | clap "^1.0.9" | 1719 | clap "^1.0.9" |
1470 | source-map "^0.5.3" | 1720 | source-map "^0.5.3" |
@@ -1472,76 +1722,111 @@ csso@~2.3.1: | |||
1472 | currently-unhandled@^0.4.1: | 1722 | currently-unhandled@^0.4.1: |
1473 | version "0.4.1" | 1723 | version "0.4.1" |
1474 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" | 1724 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" |
1725 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= | ||
1475 | dependencies: | 1726 | dependencies: |
1476 | array-find-index "^1.0.1" | 1727 | array-find-index "^1.0.1" |
1477 | 1728 | ||
1478 | d@1: | 1729 | d@1: |
1479 | version "1.0.0" | 1730 | version "1.0.0" |
1480 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" | 1731 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" |
1732 | integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8= | ||
1481 | dependencies: | 1733 | dependencies: |
1482 | es5-ext "^0.10.9" | 1734 | es5-ext "^0.10.9" |
1483 | 1735 | ||
1484 | dashdash@^1.12.0: | 1736 | dashdash@^1.12.0: |
1485 | version "1.14.1" | 1737 | version "1.14.1" |
1486 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" | 1738 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" |
1739 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= | ||
1487 | dependencies: | 1740 | dependencies: |
1488 | assert-plus "^1.0.0" | 1741 | assert-plus "^1.0.0" |
1489 | 1742 | ||
1490 | date-now@^0.1.4: | 1743 | date-now@^0.1.4: |
1491 | version "0.1.4" | 1744 | version "0.1.4" |
1492 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" | 1745 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" |
1746 | integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= | ||
1493 | 1747 | ||
1494 | debug@^2.1.1, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: | 1748 | debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: |
1495 | version "2.6.9" | 1749 | version "2.6.9" |
1496 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" | 1750 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" |
1751 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== | ||
1497 | dependencies: | 1752 | dependencies: |
1498 | ms "2.0.0" | 1753 | ms "2.0.0" |
1499 | 1754 | ||
1500 | debug@^3.1.0: | 1755 | debug@^3.1.0, debug@^3.2.6: |
1501 | version "3.1.0" | 1756 | version "3.2.6" |
1502 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" | 1757 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" |
1758 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== | ||
1503 | dependencies: | 1759 | dependencies: |
1504 | ms "2.0.0" | 1760 | ms "^2.1.1" |
1505 | 1761 | ||
1506 | decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: | 1762 | decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: |
1507 | version "1.2.0" | 1763 | version "1.2.0" |
1508 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" | 1764 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" |
1765 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= | ||
1509 | 1766 | ||
1510 | deep-extend@~0.4.0: | 1767 | decode-uri-component@^0.2.0: |
1511 | version "0.4.2" | 1768 | version "0.2.0" |
1512 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" | 1769 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" |
1770 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= | ||
1771 | |||
1772 | deep-extend@^0.6.0: | ||
1773 | version "0.6.0" | ||
1774 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" | ||
1775 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== | ||
1513 | 1776 | ||
1514 | deep-is@~0.1.3: | 1777 | deep-is@~0.1.3: |
1515 | version "0.1.3" | 1778 | version "0.1.3" |
1516 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" | 1779 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" |
1780 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= | ||
1517 | 1781 | ||
1518 | defined@^1.0.0: | 1782 | define-properties@^1.1.2: |
1783 | version "1.1.3" | ||
1784 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" | ||
1785 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== | ||
1786 | dependencies: | ||
1787 | object-keys "^1.0.12" | ||
1788 | |||
1789 | define-property@^0.2.5: | ||
1790 | version "0.2.5" | ||
1791 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" | ||
1792 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= | ||
1793 | dependencies: | ||
1794 | is-descriptor "^0.1.0" | ||
1795 | |||
1796 | define-property@^1.0.0: | ||
1519 | version "1.0.0" | 1797 | version "1.0.0" |
1520 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" | 1798 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" |
1799 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= | ||
1800 | dependencies: | ||
1801 | is-descriptor "^1.0.0" | ||
1521 | 1802 | ||
1522 | del@^2.0.2: | 1803 | define-property@^2.0.2: |
1523 | version "2.2.2" | 1804 | version "2.0.2" |
1524 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" | 1805 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" |
1806 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== | ||
1525 | dependencies: | 1807 | dependencies: |
1526 | globby "^5.0.0" | 1808 | is-descriptor "^1.0.2" |
1527 | is-path-cwd "^1.0.0" | 1809 | isobject "^3.0.1" |
1528 | is-path-in-cwd "^1.0.0" | 1810 | |
1529 | object-assign "^4.0.1" | 1811 | defined@^1.0.0: |
1530 | pify "^2.0.0" | 1812 | version "1.0.0" |
1531 | pinkie-promise "^2.0.0" | 1813 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" |
1532 | rimraf "^2.2.8" | 1814 | integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= |
1533 | 1815 | ||
1534 | delayed-stream@~1.0.0: | 1816 | delayed-stream@~1.0.0: |
1535 | version "1.0.0" | 1817 | version "1.0.0" |
1536 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" | 1818 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" |
1819 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= | ||
1537 | 1820 | ||
1538 | delegates@^1.0.0: | 1821 | delegates@^1.0.0: |
1539 | version "1.0.0" | 1822 | version "1.0.0" |
1540 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" | 1823 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" |
1824 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= | ||
1541 | 1825 | ||
1542 | des.js@^1.0.0: | 1826 | des.js@^1.0.0: |
1543 | version "1.0.0" | 1827 | version "1.0.0" |
1544 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" | 1828 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" |
1829 | integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= | ||
1545 | dependencies: | 1830 | dependencies: |
1546 | inherits "^2.0.1" | 1831 | inherits "^2.0.1" |
1547 | minimalistic-assert "^1.0.0" | 1832 | minimalistic-assert "^1.0.0" |
@@ -1549,16 +1834,19 @@ des.js@^1.0.0: | |||
1549 | detect-indent@^4.0.0: | 1834 | detect-indent@^4.0.0: |
1550 | version "4.0.0" | 1835 | version "4.0.0" |
1551 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" | 1836 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" |
1837 | integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= | ||
1552 | dependencies: | 1838 | dependencies: |
1553 | repeating "^2.0.0" | 1839 | repeating "^2.0.0" |
1554 | 1840 | ||
1555 | detect-libc@^1.0.2: | 1841 | detect-libc@^1.0.2: |
1556 | version "1.0.3" | 1842 | version "1.0.3" |
1557 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" | 1843 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" |
1844 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= | ||
1558 | 1845 | ||
1559 | diffie-hellman@^5.0.0: | 1846 | diffie-hellman@^5.0.0: |
1560 | version "5.0.2" | 1847 | version "5.0.3" |
1561 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" | 1848 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" |
1849 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== | ||
1562 | dependencies: | 1850 | dependencies: |
1563 | bn.js "^4.1.0" | 1851 | bn.js "^4.1.0" |
1564 | miller-rabin "^4.0.0" | 1852 | miller-rabin "^4.0.0" |
@@ -1567,6 +1855,7 @@ diffie-hellman@^5.0.0: | |||
1567 | doctrine@1.5.0, doctrine@^1.2.2: | 1855 | doctrine@1.5.0, doctrine@^1.2.2: |
1568 | version "1.5.0" | 1856 | version "1.5.0" |
1569 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" | 1857 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" |
1858 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= | ||
1570 | dependencies: | 1859 | dependencies: |
1571 | esutils "^2.0.2" | 1860 | esutils "^2.0.2" |
1572 | isarray "^1.0.0" | 1861 | isarray "^1.0.0" |
@@ -1574,26 +1863,32 @@ doctrine@1.5.0, doctrine@^1.2.2: | |||
1574 | doctrine@^2.1.0: | 1863 | doctrine@^2.1.0: |
1575 | version "2.1.0" | 1864 | version "2.1.0" |
1576 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" | 1865 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" |
1866 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== | ||
1577 | dependencies: | 1867 | dependencies: |
1578 | esutils "^2.0.2" | 1868 | esutils "^2.0.2" |
1579 | 1869 | ||
1580 | domain-browser@^1.1.1: | 1870 | domain-browser@^1.1.1: |
1581 | version "1.2.0" | 1871 | version "1.2.0" |
1582 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" | 1872 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" |
1873 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== | ||
1583 | 1874 | ||
1584 | ecc-jsbn@~0.1.1: | 1875 | ecc-jsbn@~0.1.1: |
1585 | version "0.1.1" | 1876 | version "0.1.2" |
1586 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" | 1877 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" |
1878 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= | ||
1587 | dependencies: | 1879 | dependencies: |
1588 | jsbn "~0.1.0" | 1880 | jsbn "~0.1.0" |
1881 | safer-buffer "^2.1.0" | ||
1589 | 1882 | ||
1590 | electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: | 1883 | electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.47: |
1591 | version "1.3.32" | 1884 | version "1.3.135" |
1592 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.32.tgz#11d0684c0840e003c4be8928f8ac5f35dbc2b4e6" | 1885 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.135.tgz#f5799b95f2bcd8de17cde47d63392d83a4477041" |
1886 | integrity sha512-xXLNstRdVsisPF3pL3H9TVZo2XkMILfqtD6RiWIUmDK2sFX1Bjwqmd8LBp0Kuo2FgKO63JXPoEVGm8WyYdwP0Q== | ||
1593 | 1887 | ||
1594 | elliptic@^6.0.0: | 1888 | elliptic@^6.0.0: |
1595 | version "6.4.0" | 1889 | version "6.4.1" |
1596 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" | 1890 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" |
1891 | integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== | ||
1597 | dependencies: | 1892 | dependencies: |
1598 | bn.js "^4.4.0" | 1893 | bn.js "^4.4.0" |
1599 | brorand "^1.0.1" | 1894 | brorand "^1.0.1" |
@@ -1606,10 +1901,12 @@ elliptic@^6.0.0: | |||
1606 | emojis-list@^2.0.0: | 1901 | emojis-list@^2.0.0: |
1607 | version "2.1.0" | 1902 | version "2.1.0" |
1608 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" | 1903 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" |
1904 | integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= | ||
1609 | 1905 | ||
1610 | enhanced-resolve@^3.4.0: | 1906 | enhanced-resolve@^3.4.0: |
1611 | version "3.4.1" | 1907 | version "3.4.1" |
1612 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" | 1908 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" |
1909 | integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= | ||
1613 | dependencies: | 1910 | dependencies: |
1614 | graceful-fs "^4.1.2" | 1911 | graceful-fs "^4.1.2" |
1615 | memory-fs "^0.4.0" | 1912 | memory-fs "^0.4.0" |
@@ -1617,27 +1914,53 @@ enhanced-resolve@^3.4.0: | |||
1617 | tapable "^0.2.7" | 1914 | tapable "^0.2.7" |
1618 | 1915 | ||
1619 | errno@^0.1.3: | 1916 | errno@^0.1.3: |
1620 | version "0.1.6" | 1917 | version "0.1.7" |
1621 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" | 1918 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" |
1919 | integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== | ||
1622 | dependencies: | 1920 | dependencies: |
1623 | prr "~1.0.1" | 1921 | prr "~1.0.1" |
1624 | 1922 | ||
1625 | error-ex@^1.2.0: | 1923 | error-ex@^1.2.0: |
1626 | version "1.3.1" | 1924 | version "1.3.2" |
1627 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" | 1925 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" |
1926 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== | ||
1628 | dependencies: | 1927 | dependencies: |
1629 | is-arrayish "^0.2.1" | 1928 | is-arrayish "^0.2.1" |
1630 | 1929 | ||
1930 | es-abstract@^1.7.0: | ||
1931 | version "1.13.0" | ||
1932 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" | ||
1933 | integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== | ||
1934 | dependencies: | ||
1935 | es-to-primitive "^1.2.0" | ||
1936 | function-bind "^1.1.1" | ||
1937 | has "^1.0.3" | ||
1938 | is-callable "^1.1.4" | ||
1939 | is-regex "^1.0.4" | ||
1940 | object-keys "^1.0.12" | ||
1941 | |||
1942 | es-to-primitive@^1.2.0: | ||
1943 | version "1.2.0" | ||
1944 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" | ||
1945 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== | ||
1946 | dependencies: | ||
1947 | is-callable "^1.1.4" | ||
1948 | is-date-object "^1.0.1" | ||
1949 | is-symbol "^1.0.2" | ||
1950 | |||
1631 | es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: | 1951 | es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: |
1632 | version "0.10.38" | 1952 | version "0.10.50" |
1633 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3" | 1953 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" |
1954 | integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== | ||
1634 | dependencies: | 1955 | dependencies: |
1635 | es6-iterator "~2.0.3" | 1956 | es6-iterator "~2.0.3" |
1636 | es6-symbol "~3.1.1" | 1957 | es6-symbol "~3.1.1" |
1958 | next-tick "^1.0.0" | ||
1637 | 1959 | ||
1638 | es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: | 1960 | es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: |
1639 | version "2.0.3" | 1961 | version "2.0.3" |
1640 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" | 1962 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" |
1963 | integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= | ||
1641 | dependencies: | 1964 | dependencies: |
1642 | d "1" | 1965 | d "1" |
1643 | es5-ext "^0.10.35" | 1966 | es5-ext "^0.10.35" |
@@ -1646,6 +1969,7 @@ es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: | |||
1646 | es6-map@^0.1.3: | 1969 | es6-map@^0.1.3: |
1647 | version "0.1.5" | 1970 | version "0.1.5" |
1648 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" | 1971 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" |
1972 | integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= | ||
1649 | dependencies: | 1973 | dependencies: |
1650 | d "1" | 1974 | d "1" |
1651 | es5-ext "~0.10.14" | 1975 | es5-ext "~0.10.14" |
@@ -1657,6 +1981,7 @@ es6-map@^0.1.3: | |||
1657 | es6-set@~0.1.5: | 1981 | es6-set@~0.1.5: |
1658 | version "0.1.5" | 1982 | version "0.1.5" |
1659 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" | 1983 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" |
1984 | integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= | ||
1660 | dependencies: | 1985 | dependencies: |
1661 | d "1" | 1986 | d "1" |
1662 | es5-ext "~0.10.14" | 1987 | es5-ext "~0.10.14" |
@@ -1667,6 +1992,7 @@ es6-set@~0.1.5: | |||
1667 | es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: | 1992 | es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: |
1668 | version "3.1.1" | 1993 | version "3.1.1" |
1669 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" | 1994 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" |
1995 | integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= | ||
1670 | dependencies: | 1996 | dependencies: |
1671 | d "1" | 1997 | d "1" |
1672 | es5-ext "~0.10.14" | 1998 | es5-ext "~0.10.14" |
@@ -1674,6 +2000,7 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: | |||
1674 | es6-weak-map@^2.0.1: | 2000 | es6-weak-map@^2.0.1: |
1675 | version "2.0.2" | 2001 | version "2.0.2" |
1676 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" | 2002 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" |
2003 | integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8= | ||
1677 | dependencies: | 2004 | dependencies: |
1678 | d "1" | 2005 | d "1" |
1679 | es5-ext "^0.10.14" | 2006 | es5-ext "^0.10.14" |
@@ -1683,10 +2010,12 @@ es6-weak-map@^2.0.1: | |||
1683 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: | 2010 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: |
1684 | version "1.0.5" | 2011 | version "1.0.5" |
1685 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" | 2012 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" |
2013 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= | ||
1686 | 2014 | ||
1687 | escope@^3.6.0: | 2015 | escope@^3.6.0: |
1688 | version "3.6.0" | 2016 | version "3.6.0" |
1689 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" | 2017 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" |
2018 | integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= | ||
1690 | dependencies: | 2019 | dependencies: |
1691 | es6-map "^0.1.3" | 2020 | es6-map "^0.1.3" |
1692 | es6-weak-map "^2.0.1" | 2021 | es6-weak-map "^2.0.1" |
@@ -1696,45 +2025,52 @@ escope@^3.6.0: | |||
1696 | eslint-config-airbnb-base@^12.1.0: | 2025 | eslint-config-airbnb-base@^12.1.0: |
1697 | version "12.1.0" | 2026 | version "12.1.0" |
1698 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" | 2027 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" |
2028 | integrity sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA== | ||
1699 | dependencies: | 2029 | dependencies: |
1700 | eslint-restricted-globals "^0.1.1" | 2030 | eslint-restricted-globals "^0.1.1" |
1701 | 2031 | ||
1702 | eslint-import-resolver-node@^0.3.1: | 2032 | eslint-import-resolver-node@^0.3.2: |
1703 | version "0.3.2" | 2033 | version "0.3.2" |
1704 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" | 2034 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" |
2035 | integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== | ||
1705 | dependencies: | 2036 | dependencies: |
1706 | debug "^2.6.9" | 2037 | debug "^2.6.9" |
1707 | resolve "^1.5.0" | 2038 | resolve "^1.5.0" |
1708 | 2039 | ||
1709 | eslint-module-utils@^2.1.1: | 2040 | eslint-module-utils@^2.4.0: |
1710 | version "2.1.1" | 2041 | version "2.4.0" |
1711 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" | 2042 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" |
2043 | integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== | ||
1712 | dependencies: | 2044 | dependencies: |
1713 | debug "^2.6.8" | 2045 | debug "^2.6.8" |
1714 | pkg-dir "^1.0.0" | 2046 | pkg-dir "^2.0.0" |
1715 | 2047 | ||
1716 | eslint-plugin-import@^2.8.0: | 2048 | eslint-plugin-import@^2.8.0: |
1717 | version "2.8.0" | 2049 | version "2.17.2" |
1718 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" | 2050 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz#d227d5c6dc67eca71eb590d2bb62fb38d86e9fcb" |
2051 | integrity sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g== | ||
1719 | dependencies: | 2052 | dependencies: |
1720 | builtin-modules "^1.1.1" | 2053 | array-includes "^3.0.3" |
1721 | contains-path "^0.1.0" | 2054 | contains-path "^0.1.0" |
1722 | debug "^2.6.8" | 2055 | debug "^2.6.9" |
1723 | doctrine "1.5.0" | 2056 | doctrine "1.5.0" |
1724 | eslint-import-resolver-node "^0.3.1" | 2057 | eslint-import-resolver-node "^0.3.2" |
1725 | eslint-module-utils "^2.1.1" | 2058 | eslint-module-utils "^2.4.0" |
1726 | has "^1.0.1" | 2059 | has "^1.0.3" |
1727 | lodash.cond "^4.3.0" | 2060 | lodash "^4.17.11" |
1728 | minimatch "^3.0.3" | 2061 | minimatch "^3.0.4" |
1729 | read-pkg-up "^2.0.0" | 2062 | read-pkg-up "^2.0.0" |
2063 | resolve "^1.10.0" | ||
1730 | 2064 | ||
1731 | eslint-restricted-globals@^0.1.1: | 2065 | eslint-restricted-globals@^0.1.1: |
1732 | version "0.1.1" | 2066 | version "0.1.1" |
1733 | resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" | 2067 | resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" |
2068 | integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= | ||
1734 | 2069 | ||
1735 | eslint-scope@^3.7.1: | 2070 | eslint-scope@^3.7.1: |
1736 | version "3.7.1" | 2071 | version "3.7.3" |
1737 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" | 2072 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" |
2073 | integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== | ||
1738 | dependencies: | 2074 | dependencies: |
1739 | esrecurse "^4.1.0" | 2075 | esrecurse "^4.1.0" |
1740 | estraverse "^4.1.1" | 2076 | estraverse "^4.1.1" |
@@ -1742,10 +2078,12 @@ eslint-scope@^3.7.1: | |||
1742 | eslint-visitor-keys@^1.0.0: | 2078 | eslint-visitor-keys@^1.0.0: |
1743 | version "1.0.0" | 2079 | version "1.0.0" |
1744 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" | 2080 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" |
2081 | integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== | ||
1745 | 2082 | ||
1746 | eslint@^2.7.0: | 2083 | eslint@^2.7.0: |
1747 | version "2.13.1" | 2084 | version "2.13.1" |
1748 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" | 2085 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" |
2086 | integrity sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE= | ||
1749 | dependencies: | 2087 | dependencies: |
1750 | chalk "^1.1.3" | 2088 | chalk "^1.1.3" |
1751 | concat-stream "^1.4.6" | 2089 | concat-stream "^1.4.6" |
@@ -1782,8 +2120,9 @@ eslint@^2.7.0: | |||
1782 | user-home "^2.0.0" | 2120 | user-home "^2.0.0" |
1783 | 2121 | ||
1784 | eslint@^4.16.0: | 2122 | eslint@^4.16.0: |
1785 | version "4.17.0" | 2123 | version "4.19.1" |
1786 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.17.0.tgz#dc24bb51ede48df629be7031c71d9dc0ee4f3ddf" | 2124 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" |
2125 | integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== | ||
1787 | dependencies: | 2126 | dependencies: |
1788 | ajv "^5.3.0" | 2127 | ajv "^5.3.0" |
1789 | babel-code-frame "^6.22.0" | 2128 | babel-code-frame "^6.22.0" |
@@ -1794,7 +2133,7 @@ eslint@^4.16.0: | |||
1794 | doctrine "^2.1.0" | 2133 | doctrine "^2.1.0" |
1795 | eslint-scope "^3.7.1" | 2134 | eslint-scope "^3.7.1" |
1796 | eslint-visitor-keys "^1.0.0" | 2135 | eslint-visitor-keys "^1.0.0" |
1797 | espree "^3.5.2" | 2136 | espree "^3.5.4" |
1798 | esquery "^1.0.0" | 2137 | esquery "^1.0.0" |
1799 | esutils "^2.0.2" | 2138 | esutils "^2.0.2" |
1800 | file-entry-cache "^2.0.0" | 2139 | file-entry-cache "^2.0.0" |
@@ -1816,70 +2155,73 @@ eslint@^4.16.0: | |||
1816 | path-is-inside "^1.0.2" | 2155 | path-is-inside "^1.0.2" |
1817 | pluralize "^7.0.0" | 2156 | pluralize "^7.0.0" |
1818 | progress "^2.0.0" | 2157 | progress "^2.0.0" |
2158 | regexpp "^1.0.1" | ||
1819 | require-uncached "^1.0.3" | 2159 | require-uncached "^1.0.3" |
1820 | semver "^5.3.0" | 2160 | semver "^5.3.0" |
1821 | strip-ansi "^4.0.0" | 2161 | strip-ansi "^4.0.0" |
1822 | strip-json-comments "~2.0.1" | 2162 | strip-json-comments "~2.0.1" |
1823 | table "^4.0.1" | 2163 | table "4.0.2" |
1824 | text-table "~0.2.0" | 2164 | text-table "~0.2.0" |
1825 | 2165 | ||
1826 | espree@^3.1.6: | 2166 | espree@^3.1.6, espree@^3.5.4: |
1827 | version "3.5.4" | 2167 | version "3.5.4" |
1828 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" | 2168 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" |
2169 | integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== | ||
1829 | dependencies: | 2170 | dependencies: |
1830 | acorn "^5.5.0" | 2171 | acorn "^5.5.0" |
1831 | acorn-jsx "^3.0.0" | 2172 | acorn-jsx "^3.0.0" |
1832 | 2173 | ||
1833 | espree@^3.5.2: | ||
1834 | version "3.5.3" | ||
1835 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.3.tgz#931e0af64e7fbbed26b050a29daad1fc64799fa6" | ||
1836 | dependencies: | ||
1837 | acorn "^5.4.0" | ||
1838 | acorn-jsx "^3.0.0" | ||
1839 | |||
1840 | esprima@^2.6.0: | 2174 | esprima@^2.6.0: |
1841 | version "2.7.3" | 2175 | version "2.7.3" |
1842 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" | 2176 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" |
2177 | integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= | ||
1843 | 2178 | ||
1844 | esprima@^4.0.0: | 2179 | esprima@^4.0.0: |
1845 | version "4.0.0" | 2180 | version "4.0.1" |
1846 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" | 2181 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" |
2182 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== | ||
1847 | 2183 | ||
1848 | esquery@^1.0.0: | 2184 | esquery@^1.0.0: |
1849 | version "1.0.0" | 2185 | version "1.0.1" |
1850 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" | 2186 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" |
2187 | integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== | ||
1851 | dependencies: | 2188 | dependencies: |
1852 | estraverse "^4.0.0" | 2189 | estraverse "^4.0.0" |
1853 | 2190 | ||
1854 | esrecurse@^4.1.0: | 2191 | esrecurse@^4.1.0: |
1855 | version "4.2.0" | 2192 | version "4.2.1" |
1856 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" | 2193 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" |
2194 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== | ||
1857 | dependencies: | 2195 | dependencies: |
1858 | estraverse "^4.1.0" | 2196 | estraverse "^4.1.0" |
1859 | object-assign "^4.0.1" | ||
1860 | 2197 | ||
1861 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: | 2198 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: |
1862 | version "4.2.0" | 2199 | version "4.2.0" |
1863 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" | 2200 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" |
2201 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= | ||
1864 | 2202 | ||
1865 | esutils@^2.0.2: | 2203 | esutils@^2.0.2: |
1866 | version "2.0.2" | 2204 | version "2.0.2" |
1867 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" | 2205 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" |
2206 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= | ||
1868 | 2207 | ||
1869 | event-emitter@~0.3.5: | 2208 | event-emitter@~0.3.5: |
1870 | version "0.3.5" | 2209 | version "0.3.5" |
1871 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" | 2210 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" |
2211 | integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= | ||
1872 | dependencies: | 2212 | dependencies: |
1873 | d "1" | 2213 | d "1" |
1874 | es5-ext "~0.10.14" | 2214 | es5-ext "~0.10.14" |
1875 | 2215 | ||
1876 | events@^1.0.0: | 2216 | events@^3.0.0: |
1877 | version "1.1.1" | 2217 | version "3.0.0" |
1878 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" | 2218 | resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" |
2219 | integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== | ||
1879 | 2220 | ||
1880 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: | 2221 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: |
1881 | version "1.0.3" | 2222 | version "1.0.3" |
1882 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" | 2223 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" |
2224 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== | ||
1883 | dependencies: | 2225 | dependencies: |
1884 | md5.js "^1.3.4" | 2226 | md5.js "^1.3.4" |
1885 | safe-buffer "^5.1.1" | 2227 | safe-buffer "^5.1.1" |
@@ -1887,6 +2229,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: | |||
1887 | execa@^0.7.0: | 2229 | execa@^0.7.0: |
1888 | version "0.7.0" | 2230 | version "0.7.0" |
1889 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" | 2231 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" |
2232 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= | ||
1890 | dependencies: | 2233 | dependencies: |
1891 | cross-spawn "^5.0.1" | 2234 | cross-spawn "^5.0.1" |
1892 | get-stream "^3.0.0" | 2235 | get-stream "^3.0.0" |
@@ -1899,40 +2242,68 @@ execa@^0.7.0: | |||
1899 | exit-hook@^1.0.0: | 2242 | exit-hook@^1.0.0: |
1900 | version "1.1.1" | 2243 | version "1.1.1" |
1901 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" | 2244 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" |
2245 | integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= | ||
1902 | 2246 | ||
1903 | expand-brackets@^0.1.4: | 2247 | expand-brackets@^2.1.4: |
1904 | version "0.1.5" | 2248 | version "2.1.4" |
1905 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" | 2249 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" |
2250 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= | ||
2251 | dependencies: | ||
2252 | debug "^2.3.3" | ||
2253 | define-property "^0.2.5" | ||
2254 | extend-shallow "^2.0.1" | ||
2255 | posix-character-classes "^0.1.0" | ||
2256 | regex-not "^1.0.0" | ||
2257 | snapdragon "^0.8.1" | ||
2258 | to-regex "^3.0.1" | ||
2259 | |||
2260 | extend-shallow@^2.0.1: | ||
2261 | version "2.0.1" | ||
2262 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" | ||
2263 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= | ||
1906 | dependencies: | 2264 | dependencies: |
1907 | is-posix-bracket "^0.1.0" | 2265 | is-extendable "^0.1.0" |
1908 | 2266 | ||
1909 | expand-range@^1.8.1: | 2267 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: |
1910 | version "1.8.2" | 2268 | version "3.0.2" |
1911 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" | 2269 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" |
2270 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= | ||
1912 | dependencies: | 2271 | dependencies: |
1913 | fill-range "^2.1.0" | 2272 | assign-symbols "^1.0.0" |
2273 | is-extendable "^1.0.1" | ||
1914 | 2274 | ||
1915 | extend@~3.0.0, extend@~3.0.1: | 2275 | extend@~3.0.2: |
1916 | version "3.0.1" | 2276 | version "3.0.2" |
1917 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" | 2277 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" |
2278 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== | ||
1918 | 2279 | ||
1919 | external-editor@^2.0.4: | 2280 | external-editor@^2.0.4: |
1920 | version "2.1.0" | 2281 | version "2.2.0" |
1921 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" | 2282 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" |
2283 | integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== | ||
1922 | dependencies: | 2284 | dependencies: |
1923 | chardet "^0.4.0" | 2285 | chardet "^0.4.0" |
1924 | iconv-lite "^0.4.17" | 2286 | iconv-lite "^0.4.17" |
1925 | tmp "^0.0.33" | 2287 | tmp "^0.0.33" |
1926 | 2288 | ||
1927 | extglob@^0.3.1: | 2289 | extglob@^2.0.4: |
1928 | version "0.3.2" | 2290 | version "2.0.4" |
1929 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" | 2291 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" |
1930 | dependencies: | 2292 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== |
1931 | is-extglob "^1.0.0" | 2293 | dependencies: |
2294 | array-unique "^0.3.2" | ||
2295 | define-property "^1.0.0" | ||
2296 | expand-brackets "^2.1.4" | ||
2297 | extend-shallow "^2.0.1" | ||
2298 | fragment-cache "^0.2.1" | ||
2299 | regex-not "^1.0.0" | ||
2300 | snapdragon "^0.8.1" | ||
2301 | to-regex "^3.0.1" | ||
1932 | 2302 | ||
1933 | extract-text-webpack-plugin@^3.0.2: | 2303 | extract-text-webpack-plugin@^3.0.2: |
1934 | version "3.0.2" | 2304 | version "3.0.2" |
1935 | resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" | 2305 | resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" |
2306 | integrity sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ== | ||
1936 | dependencies: | 2307 | dependencies: |
1937 | async "^2.4.1" | 2308 | async "^2.4.1" |
1938 | loader-utils "^1.1.0" | 2309 | loader-utils "^1.1.0" |
@@ -1942,30 +2313,42 @@ extract-text-webpack-plugin@^3.0.2: | |||
1942 | extsprintf@1.3.0: | 2313 | extsprintf@1.3.0: |
1943 | version "1.3.0" | 2314 | version "1.3.0" |
1944 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" | 2315 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" |
2316 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= | ||
1945 | 2317 | ||
1946 | extsprintf@^1.2.0: | 2318 | extsprintf@^1.2.0: |
1947 | version "1.4.0" | 2319 | version "1.4.0" |
1948 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" | 2320 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" |
2321 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= | ||
1949 | 2322 | ||
1950 | fast-deep-equal@^1.0.0: | 2323 | fast-deep-equal@^1.0.0: |
1951 | version "1.0.0" | 2324 | version "1.1.0" |
1952 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" | 2325 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" |
2326 | integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= | ||
2327 | |||
2328 | fast-deep-equal@^2.0.1: | ||
2329 | version "2.0.1" | ||
2330 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" | ||
2331 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= | ||
1953 | 2332 | ||
1954 | fast-json-stable-stringify@^2.0.0: | 2333 | fast-json-stable-stringify@^2.0.0: |
1955 | version "2.0.0" | 2334 | version "2.0.0" |
1956 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" | 2335 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" |
2336 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= | ||
1957 | 2337 | ||
1958 | fast-levenshtein@~2.0.4: | 2338 | fast-levenshtein@~2.0.4: |
1959 | version "2.0.6" | 2339 | version "2.0.6" |
1960 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" | 2340 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" |
2341 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= | ||
1961 | 2342 | ||
1962 | fastparse@^1.1.1: | 2343 | fastparse@^1.1.1: |
1963 | version "1.1.1" | 2344 | version "1.1.2" |
1964 | resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" | 2345 | resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" |
2346 | integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== | ||
1965 | 2347 | ||
1966 | figures@^1.3.5: | 2348 | figures@^1.3.5: |
1967 | version "1.7.0" | 2349 | version "1.7.0" |
1968 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" | 2350 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" |
2351 | integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= | ||
1969 | dependencies: | 2352 | dependencies: |
1970 | escape-string-regexp "^1.0.5" | 2353 | escape-string-regexp "^1.0.5" |
1971 | object-assign "^4.1.0" | 2354 | object-assign "^4.1.0" |
@@ -1973,12 +2356,14 @@ figures@^1.3.5: | |||
1973 | figures@^2.0.0: | 2356 | figures@^2.0.0: |
1974 | version "2.0.0" | 2357 | version "2.0.0" |
1975 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" | 2358 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" |
2359 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= | ||
1976 | dependencies: | 2360 | dependencies: |
1977 | escape-string-regexp "^1.0.5" | 2361 | escape-string-regexp "^1.0.5" |
1978 | 2362 | ||
1979 | file-entry-cache@^1.1.1: | 2363 | file-entry-cache@^1.1.1: |
1980 | version "1.3.1" | 2364 | version "1.3.1" |
1981 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" | 2365 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" |
2366 | integrity sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g= | ||
1982 | dependencies: | 2367 | dependencies: |
1983 | flat-cache "^1.2.1" | 2368 | flat-cache "^1.2.1" |
1984 | object-assign "^4.0.1" | 2369 | object-assign "^4.0.1" |
@@ -1986,34 +2371,33 @@ file-entry-cache@^1.1.1: | |||
1986 | file-entry-cache@^2.0.0: | 2371 | file-entry-cache@^2.0.0: |
1987 | version "2.0.0" | 2372 | version "2.0.0" |
1988 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" | 2373 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" |
2374 | integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= | ||
1989 | dependencies: | 2375 | dependencies: |
1990 | flat-cache "^1.2.1" | 2376 | flat-cache "^1.2.1" |
1991 | object-assign "^4.0.1" | 2377 | object-assign "^4.0.1" |
1992 | 2378 | ||
1993 | file-loader@^1.1.6: | 2379 | file-loader@^1.1.6: |
1994 | version "1.1.6" | 2380 | version "1.1.11" |
1995 | resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.6.tgz#7b9a8f2c58f00a77fddf49e940f7ac978a3ea0e8" | 2381 | resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" |
2382 | integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg== | ||
1996 | dependencies: | 2383 | dependencies: |
1997 | loader-utils "^1.0.2" | 2384 | loader-utils "^1.0.2" |
1998 | schema-utils "^0.3.0" | 2385 | schema-utils "^0.4.5" |
1999 | |||
2000 | filename-regex@^2.0.0: | ||
2001 | version "2.0.1" | ||
2002 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" | ||
2003 | 2386 | ||
2004 | fill-range@^2.1.0: | 2387 | fill-range@^4.0.0: |
2005 | version "2.2.3" | 2388 | version "4.0.0" |
2006 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" | 2389 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" |
2390 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= | ||
2007 | dependencies: | 2391 | dependencies: |
2008 | is-number "^2.1.0" | 2392 | extend-shallow "^2.0.1" |
2009 | isobject "^2.0.0" | 2393 | is-number "^3.0.0" |
2010 | randomatic "^1.1.3" | 2394 | repeat-string "^1.6.1" |
2011 | repeat-element "^1.1.2" | 2395 | to-regex-range "^2.1.0" |
2012 | repeat-string "^1.5.2" | ||
2013 | 2396 | ||
2014 | find-cache-dir@^1.0.0: | 2397 | find-cache-dir@^1.0.0: |
2015 | version "1.0.0" | 2398 | version "1.0.0" |
2016 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" | 2399 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" |
2400 | integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= | ||
2017 | dependencies: | 2401 | dependencies: |
2018 | commondir "^1.0.1" | 2402 | commondir "^1.0.1" |
2019 | make-dir "^1.0.0" | 2403 | make-dir "^1.0.0" |
@@ -2022,6 +2406,7 @@ find-cache-dir@^1.0.0: | |||
2022 | find-up@^1.0.0: | 2406 | find-up@^1.0.0: |
2023 | version "1.1.2" | 2407 | version "1.1.2" |
2024 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" | 2408 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" |
2409 | integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= | ||
2025 | dependencies: | 2410 | dependencies: |
2026 | path-exists "^2.0.0" | 2411 | path-exists "^2.0.0" |
2027 | pinkie-promise "^2.0.0" | 2412 | pinkie-promise "^2.0.0" |
@@ -2029,119 +2414,128 @@ find-up@^1.0.0: | |||
2029 | find-up@^2.0.0, find-up@^2.1.0: | 2414 | find-up@^2.0.0, find-up@^2.1.0: |
2030 | version "2.1.0" | 2415 | version "2.1.0" |
2031 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" | 2416 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" |
2417 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= | ||
2032 | dependencies: | 2418 | dependencies: |
2033 | locate-path "^2.0.0" | 2419 | locate-path "^2.0.0" |
2034 | 2420 | ||
2035 | flat-cache@^1.2.1: | 2421 | flat-cache@^1.2.1: |
2036 | version "1.3.0" | 2422 | version "1.3.4" |
2037 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" | 2423 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" |
2424 | integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== | ||
2038 | dependencies: | 2425 | dependencies: |
2039 | circular-json "^0.3.1" | 2426 | circular-json "^0.3.1" |
2040 | del "^2.0.2" | ||
2041 | graceful-fs "^4.1.2" | 2427 | graceful-fs "^4.1.2" |
2428 | rimraf "~2.6.2" | ||
2042 | write "^0.2.1" | 2429 | write "^0.2.1" |
2043 | 2430 | ||
2044 | flatten@^1.0.2: | 2431 | flatten@^1.0.2: |
2045 | version "1.0.2" | 2432 | version "1.0.2" |
2046 | resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" | 2433 | resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" |
2047 | 2434 | integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= | |
2048 | font-awesome@^4.7.0: | ||
2049 | version "4.7.0" | ||
2050 | resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" | ||
2051 | 2435 | ||
2052 | for-in@^0.1.3: | 2436 | for-in@^0.1.3: |
2053 | version "0.1.8" | 2437 | version "0.1.8" |
2054 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" | 2438 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" |
2439 | integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= | ||
2055 | 2440 | ||
2056 | for-in@^1.0.1: | 2441 | for-in@^1.0.1, for-in@^1.0.2: |
2057 | version "1.0.2" | 2442 | version "1.0.2" |
2058 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" | 2443 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" |
2059 | 2444 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= | |
2060 | for-own@^0.1.4: | ||
2061 | version "0.1.5" | ||
2062 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" | ||
2063 | dependencies: | ||
2064 | for-in "^1.0.1" | ||
2065 | 2445 | ||
2066 | for-own@^1.0.0: | 2446 | for-own@^1.0.0: |
2067 | version "1.0.0" | 2447 | version "1.0.0" |
2068 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" | 2448 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" |
2449 | integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= | ||
2069 | dependencies: | 2450 | dependencies: |
2070 | for-in "^1.0.1" | 2451 | for-in "^1.0.1" |
2071 | 2452 | ||
2072 | forever-agent@~0.6.1: | 2453 | forever-agent@~0.6.1: |
2073 | version "0.6.1" | 2454 | version "0.6.1" |
2074 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" | 2455 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" |
2456 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= | ||
2075 | 2457 | ||
2076 | form-data@~2.1.1: | 2458 | fork-awesome@^1.1.7: |
2077 | version "2.1.4" | 2459 | version "1.1.7" |
2078 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" | 2460 | resolved "https://registry.yarnpkg.com/fork-awesome/-/fork-awesome-1.1.7.tgz#1427da1cac3d1713046ee88427e5fcecb9501d21" |
2461 | integrity sha512-IHI7XCSXrKfUIWslse8c/PaaVDT1oBaYge+ju40ihL2ooiQeBpTr4wvIXhgTd2NuhntlvX+M5jYHAPTzNlmv0g== | ||
2462 | |||
2463 | form-data@~2.3.2: | ||
2464 | version "2.3.3" | ||
2465 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" | ||
2466 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== | ||
2079 | dependencies: | 2467 | dependencies: |
2080 | asynckit "^0.4.0" | 2468 | asynckit "^0.4.0" |
2081 | combined-stream "^1.0.5" | 2469 | combined-stream "^1.0.6" |
2082 | mime-types "^2.1.12" | 2470 | mime-types "^2.1.12" |
2083 | 2471 | ||
2084 | form-data@~2.3.1: | 2472 | fragment-cache@^0.2.1: |
2085 | version "2.3.1" | 2473 | version "0.2.1" |
2086 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" | 2474 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" |
2475 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= | ||
2087 | dependencies: | 2476 | dependencies: |
2088 | asynckit "^0.4.0" | 2477 | map-cache "^0.2.2" |
2089 | combined-stream "^1.0.5" | ||
2090 | mime-types "^2.1.12" | ||
2091 | 2478 | ||
2092 | front-matter@2.1.2: | 2479 | front-matter@2.1.2: |
2093 | version "2.1.2" | 2480 | version "2.1.2" |
2094 | resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz#f75983b9f2f413be658c93dfd7bd8ce4078f5cdb" | 2481 | resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz#f75983b9f2f413be658c93dfd7bd8ce4078f5cdb" |
2482 | integrity sha1-91mDufL0E75ljJPf172M5AePXNs= | ||
2095 | dependencies: | 2483 | dependencies: |
2096 | js-yaml "^3.4.6" | 2484 | js-yaml "^3.4.6" |
2097 | 2485 | ||
2098 | fs-extra@^3.0.1: | 2486 | fs-extra@^3.0.1: |
2099 | version "3.0.1" | 2487 | version "3.0.1" |
2100 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" | 2488 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" |
2489 | integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= | ||
2101 | dependencies: | 2490 | dependencies: |
2102 | graceful-fs "^4.1.2" | 2491 | graceful-fs "^4.1.2" |
2103 | jsonfile "^3.0.0" | 2492 | jsonfile "^3.0.0" |
2104 | universalify "^0.1.0" | 2493 | universalify "^0.1.0" |
2105 | 2494 | ||
2495 | fs-minipass@^1.2.5: | ||
2496 | version "1.2.6" | ||
2497 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" | ||
2498 | integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== | ||
2499 | dependencies: | ||
2500 | minipass "^2.2.1" | ||
2501 | |||
2106 | fs.realpath@^1.0.0: | 2502 | fs.realpath@^1.0.0: |
2107 | version "1.0.0" | 2503 | version "1.0.0" |
2108 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" | 2504 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" |
2505 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= | ||
2109 | 2506 | ||
2110 | fsevents@^1.0.0: | 2507 | fsevents@^1.2.7: |
2111 | version "1.1.3" | 2508 | version "1.2.9" |
2112 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" | 2509 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" |
2113 | dependencies: | 2510 | integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== |
2114 | nan "^2.3.0" | ||
2115 | node-pre-gyp "^0.6.39" | ||
2116 | |||
2117 | fstream-ignore@^1.0.5: | ||
2118 | version "1.0.5" | ||
2119 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" | ||
2120 | dependencies: | 2511 | dependencies: |
2121 | fstream "^1.0.0" | 2512 | nan "^2.12.1" |
2122 | inherits "2" | 2513 | node-pre-gyp "^0.12.0" |
2123 | minimatch "^3.0.0" | ||
2124 | 2514 | ||
2125 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: | 2515 | fstream@^1.0.0, fstream@^1.0.12: |
2126 | version "1.0.11" | 2516 | version "1.0.12" |
2127 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" | 2517 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" |
2518 | integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== | ||
2128 | dependencies: | 2519 | dependencies: |
2129 | graceful-fs "^4.1.2" | 2520 | graceful-fs "^4.1.2" |
2130 | inherits "~2.0.0" | 2521 | inherits "~2.0.0" |
2131 | mkdirp ">=0.5 0" | 2522 | mkdirp ">=0.5 0" |
2132 | rimraf "2" | 2523 | rimraf "2" |
2133 | 2524 | ||
2134 | function-bind@^1.0.2: | 2525 | function-bind@^1.1.1: |
2135 | version "1.1.1" | 2526 | version "1.1.1" |
2136 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" | 2527 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" |
2528 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== | ||
2137 | 2529 | ||
2138 | functional-red-black-tree@^1.0.1: | 2530 | functional-red-black-tree@^1.0.1: |
2139 | version "1.0.1" | 2531 | version "1.0.1" |
2140 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" | 2532 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" |
2533 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= | ||
2141 | 2534 | ||
2142 | gauge@~2.7.3: | 2535 | gauge@~2.7.3: |
2143 | version "2.7.4" | 2536 | version "2.7.4" |
2144 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" | 2537 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" |
2538 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= | ||
2145 | dependencies: | 2539 | dependencies: |
2146 | aproba "^1.0.3" | 2540 | aproba "^1.0.3" |
2147 | console-control-strings "^1.0.0" | 2541 | console-control-strings "^1.0.0" |
@@ -2153,65 +2547,65 @@ gauge@~2.7.3: | |||
2153 | wide-align "^1.1.0" | 2547 | wide-align "^1.1.0" |
2154 | 2548 | ||
2155 | gaze@^1.0.0: | 2549 | gaze@^1.0.0: |
2156 | version "1.1.2" | 2550 | version "1.1.3" |
2157 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" | 2551 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" |
2552 | integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== | ||
2158 | dependencies: | 2553 | dependencies: |
2159 | globule "^1.0.0" | 2554 | globule "^1.0.0" |
2160 | 2555 | ||
2161 | generate-function@^2.0.0: | 2556 | generate-function@^2.0.0: |
2162 | version "2.0.0" | 2557 | version "2.3.1" |
2163 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" | 2558 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" |
2559 | integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== | ||
2560 | dependencies: | ||
2561 | is-property "^1.0.2" | ||
2164 | 2562 | ||
2165 | generate-object-property@^1.1.0: | 2563 | generate-object-property@^1.1.0: |
2166 | version "1.2.0" | 2564 | version "1.2.0" |
2167 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" | 2565 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" |
2566 | integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= | ||
2168 | dependencies: | 2567 | dependencies: |
2169 | is-property "^1.0.0" | 2568 | is-property "^1.0.0" |
2170 | 2569 | ||
2171 | get-caller-file@^1.0.1: | 2570 | get-caller-file@^1.0.1: |
2172 | version "1.0.2" | 2571 | version "1.0.3" |
2173 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" | 2572 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" |
2573 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== | ||
2174 | 2574 | ||
2175 | get-stdin@^4.0.1: | 2575 | get-stdin@^4.0.1: |
2176 | version "4.0.1" | 2576 | version "4.0.1" |
2177 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" | 2577 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" |
2578 | integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= | ||
2178 | 2579 | ||
2179 | get-stream@^3.0.0: | 2580 | get-stream@^3.0.0: |
2180 | version "3.0.0" | 2581 | version "3.0.0" |
2181 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" | 2582 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" |
2583 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= | ||
2584 | |||
2585 | get-value@^2.0.3, get-value@^2.0.6: | ||
2586 | version "2.0.6" | ||
2587 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" | ||
2588 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= | ||
2182 | 2589 | ||
2183 | getpass@^0.1.1: | 2590 | getpass@^0.1.1: |
2184 | version "0.1.7" | 2591 | version "0.1.7" |
2185 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" | 2592 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" |
2593 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= | ||
2186 | dependencies: | 2594 | dependencies: |
2187 | assert-plus "^1.0.0" | 2595 | assert-plus "^1.0.0" |
2188 | 2596 | ||
2189 | glob-base@^0.3.0: | 2597 | glob-parent@^3.1.0: |
2190 | version "0.3.0" | 2598 | version "3.1.0" |
2191 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" | 2599 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" |
2192 | dependencies: | 2600 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= |
2193 | glob-parent "^2.0.0" | ||
2194 | is-glob "^2.0.0" | ||
2195 | |||
2196 | glob-parent@^2.0.0: | ||
2197 | version "2.0.0" | ||
2198 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" | ||
2199 | dependencies: | ||
2200 | is-glob "^2.0.0" | ||
2201 | |||
2202 | glob@^6.0.4: | ||
2203 | version "6.0.4" | ||
2204 | resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" | ||
2205 | dependencies: | 2601 | dependencies: |
2206 | inflight "^1.0.4" | 2602 | is-glob "^3.1.0" |
2207 | inherits "2" | 2603 | path-dirname "^1.0.0" |
2208 | minimatch "2 || 3" | ||
2209 | once "^1.3.0" | ||
2210 | path-is-absolute "^1.0.0" | ||
2211 | 2604 | ||
2212 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1: | 2605 | glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: |
2213 | version "7.1.2" | 2606 | version "7.1.4" |
2214 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" | 2607 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" |
2608 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== | ||
2215 | dependencies: | 2609 | dependencies: |
2216 | fs.realpath "^1.0.0" | 2610 | fs.realpath "^1.0.0" |
2217 | inflight "^1.0.4" | 2611 | inflight "^1.0.4" |
@@ -2221,177 +2615,166 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1: | |||
2221 | path-is-absolute "^1.0.0" | 2615 | path-is-absolute "^1.0.0" |
2222 | 2616 | ||
2223 | globals@^11.0.1: | 2617 | globals@^11.0.1: |
2224 | version "11.3.0" | 2618 | version "11.12.0" |
2225 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" | 2619 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" |
2620 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== | ||
2226 | 2621 | ||
2227 | globals@^9.18.0, globals@^9.2.0: | 2622 | globals@^9.18.0, globals@^9.2.0: |
2228 | version "9.18.0" | 2623 | version "9.18.0" |
2229 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" | 2624 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" |
2230 | 2625 | integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== | |
2231 | globby@^5.0.0: | ||
2232 | version "5.0.0" | ||
2233 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" | ||
2234 | dependencies: | ||
2235 | array-union "^1.0.1" | ||
2236 | arrify "^1.0.0" | ||
2237 | glob "^7.0.3" | ||
2238 | object-assign "^4.0.1" | ||
2239 | pify "^2.0.0" | ||
2240 | pinkie-promise "^2.0.0" | ||
2241 | 2626 | ||
2242 | globule@^1.0.0: | 2627 | globule@^1.0.0: |
2243 | version "1.2.0" | 2628 | version "1.2.1" |
2244 | resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" | 2629 | resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" |
2630 | integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== | ||
2245 | dependencies: | 2631 | dependencies: |
2246 | glob "~7.1.1" | 2632 | glob "~7.1.1" |
2247 | lodash "~4.17.4" | 2633 | lodash "~4.17.10" |
2248 | minimatch "~3.0.2" | 2634 | minimatch "~3.0.2" |
2249 | 2635 | ||
2250 | gonzales-pe-sl@^4.2.3: | 2636 | gonzales-pe-sl@^4.2.3: |
2251 | version "4.2.3" | 2637 | version "4.2.3" |
2252 | resolved "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz#6a868bc380645f141feeb042c6f97fcc71b59fe6" | 2638 | resolved "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz#6a868bc380645f141feeb042c6f97fcc71b59fe6" |
2639 | integrity sha1-aoaLw4BkXxQf7rBCxvl/zHG1n+Y= | ||
2253 | dependencies: | 2640 | dependencies: |
2254 | minimist "1.1.x" | 2641 | minimist "1.1.x" |
2255 | 2642 | ||
2256 | graceful-fs@^4.1.2, graceful-fs@^4.1.6: | 2643 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: |
2257 | version "4.1.11" | 2644 | version "4.1.15" |
2258 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" | 2645 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" |
2259 | 2646 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== | |
2260 | har-schema@^1.0.5: | ||
2261 | version "1.0.5" | ||
2262 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" | ||
2263 | 2647 | ||
2264 | har-schema@^2.0.0: | 2648 | har-schema@^2.0.0: |
2265 | version "2.0.0" | 2649 | version "2.0.0" |
2266 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" | 2650 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" |
2651 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= | ||
2267 | 2652 | ||
2268 | har-validator@~2.0.6: | 2653 | har-validator@~5.1.0: |
2269 | version "2.0.6" | 2654 | version "5.1.3" |
2270 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" | 2655 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" |
2656 | integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== | ||
2271 | dependencies: | 2657 | dependencies: |
2272 | chalk "^1.1.1" | 2658 | ajv "^6.5.5" |
2273 | commander "^2.9.0" | ||
2274 | is-my-json-valid "^2.12.4" | ||
2275 | pinkie-promise "^2.0.0" | ||
2276 | |||
2277 | har-validator@~4.2.1: | ||
2278 | version "4.2.1" | ||
2279 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" | ||
2280 | dependencies: | ||
2281 | ajv "^4.9.1" | ||
2282 | har-schema "^1.0.5" | ||
2283 | |||
2284 | har-validator@~5.0.3: | ||
2285 | version "5.0.3" | ||
2286 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" | ||
2287 | dependencies: | ||
2288 | ajv "^5.1.0" | ||
2289 | har-schema "^2.0.0" | 2659 | har-schema "^2.0.0" |
2290 | 2660 | ||
2291 | has-ansi@^2.0.0: | 2661 | has-ansi@^2.0.0: |
2292 | version "2.0.0" | 2662 | version "2.0.0" |
2293 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" | 2663 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" |
2664 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= | ||
2294 | dependencies: | 2665 | dependencies: |
2295 | ansi-regex "^2.0.0" | 2666 | ansi-regex "^2.0.0" |
2296 | 2667 | ||
2297 | has-flag@^1.0.0: | 2668 | has-flag@^1.0.0: |
2298 | version "1.0.0" | 2669 | version "1.0.0" |
2299 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" | 2670 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" |
2671 | integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= | ||
2300 | 2672 | ||
2301 | has-flag@^2.0.0: | 2673 | has-flag@^2.0.0: |
2302 | version "2.0.0" | 2674 | version "2.0.0" |
2303 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" | 2675 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" |
2676 | integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= | ||
2677 | |||
2678 | has-flag@^3.0.0: | ||
2679 | version "3.0.0" | ||
2680 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" | ||
2681 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= | ||
2682 | |||
2683 | has-symbols@^1.0.0: | ||
2684 | version "1.0.0" | ||
2685 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" | ||
2686 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= | ||
2304 | 2687 | ||
2305 | has-unicode@^2.0.0: | 2688 | has-unicode@^2.0.0: |
2306 | version "2.0.1" | 2689 | version "2.0.1" |
2307 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" | 2690 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" |
2691 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= | ||
2308 | 2692 | ||
2309 | has@^1.0.1: | 2693 | has-value@^0.3.1: |
2310 | version "1.0.1" | 2694 | version "0.3.1" |
2311 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" | 2695 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" |
2696 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= | ||
2312 | dependencies: | 2697 | dependencies: |
2313 | function-bind "^1.0.2" | 2698 | get-value "^2.0.3" |
2699 | has-values "^0.1.4" | ||
2700 | isobject "^2.0.0" | ||
2314 | 2701 | ||
2315 | hash-base@^2.0.0: | 2702 | has-value@^1.0.0: |
2316 | version "2.0.2" | 2703 | version "1.0.0" |
2317 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" | 2704 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" |
2705 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= | ||
2318 | dependencies: | 2706 | dependencies: |
2319 | inherits "^2.0.1" | 2707 | get-value "^2.0.6" |
2708 | has-values "^1.0.0" | ||
2709 | isobject "^3.0.0" | ||
2710 | |||
2711 | has-values@^0.1.4: | ||
2712 | version "0.1.4" | ||
2713 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" | ||
2714 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= | ||
2715 | |||
2716 | has-values@^1.0.0: | ||
2717 | version "1.0.0" | ||
2718 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" | ||
2719 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= | ||
2720 | dependencies: | ||
2721 | is-number "^3.0.0" | ||
2722 | kind-of "^4.0.0" | ||
2723 | |||
2724 | has@^1.0.1, has@^1.0.3: | ||
2725 | version "1.0.3" | ||
2726 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" | ||
2727 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== | ||
2728 | dependencies: | ||
2729 | function-bind "^1.1.1" | ||
2320 | 2730 | ||
2321 | hash-base@^3.0.0: | 2731 | hash-base@^3.0.0: |
2322 | version "3.0.4" | 2732 | version "3.0.4" |
2323 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" | 2733 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" |
2734 | integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= | ||
2324 | dependencies: | 2735 | dependencies: |
2325 | inherits "^2.0.1" | 2736 | inherits "^2.0.1" |
2326 | safe-buffer "^5.0.1" | 2737 | safe-buffer "^5.0.1" |
2327 | 2738 | ||
2328 | hash.js@^1.0.0, hash.js@^1.0.3: | 2739 | hash.js@^1.0.0, hash.js@^1.0.3: |
2329 | version "1.1.3" | 2740 | version "1.1.7" |
2330 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" | 2741 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" |
2742 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== | ||
2331 | dependencies: | 2743 | dependencies: |
2332 | inherits "^2.0.3" | 2744 | inherits "^2.0.3" |
2333 | minimalistic-assert "^1.0.0" | 2745 | minimalistic-assert "^1.0.1" |
2334 | |||
2335 | hawk@3.1.3, hawk@~3.1.3: | ||
2336 | version "3.1.3" | ||
2337 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" | ||
2338 | dependencies: | ||
2339 | boom "2.x.x" | ||
2340 | cryptiles "2.x.x" | ||
2341 | hoek "2.x.x" | ||
2342 | sntp "1.x.x" | ||
2343 | |||
2344 | hawk@~6.0.2: | ||
2345 | version "6.0.2" | ||
2346 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" | ||
2347 | dependencies: | ||
2348 | boom "4.x.x" | ||
2349 | cryptiles "3.x.x" | ||
2350 | hoek "4.x.x" | ||
2351 | sntp "2.x.x" | ||
2352 | 2746 | ||
2353 | hmac-drbg@^1.0.0: | 2747 | hmac-drbg@^1.0.0: |
2354 | version "1.0.1" | 2748 | version "1.0.1" |
2355 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" | 2749 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" |
2750 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= | ||
2356 | dependencies: | 2751 | dependencies: |
2357 | hash.js "^1.0.3" | 2752 | hash.js "^1.0.3" |
2358 | minimalistic-assert "^1.0.0" | 2753 | minimalistic-assert "^1.0.0" |
2359 | minimalistic-crypto-utils "^1.0.1" | 2754 | minimalistic-crypto-utils "^1.0.1" |
2360 | 2755 | ||
2361 | hoek@2.x.x: | ||
2362 | version "2.16.3" | ||
2363 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" | ||
2364 | |||
2365 | hoek@4.x.x: | ||
2366 | version "4.2.0" | ||
2367 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" | ||
2368 | |||
2369 | home-or-tmp@^2.0.0: | 2756 | home-or-tmp@^2.0.0: |
2370 | version "2.0.0" | 2757 | version "2.0.0" |
2371 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" | 2758 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" |
2759 | integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= | ||
2372 | dependencies: | 2760 | dependencies: |
2373 | os-homedir "^1.0.0" | 2761 | os-homedir "^1.0.0" |
2374 | os-tmpdir "^1.0.1" | 2762 | os-tmpdir "^1.0.1" |
2375 | 2763 | ||
2376 | hosted-git-info@^2.1.4: | 2764 | hosted-git-info@^2.1.4: |
2377 | version "2.5.0" | 2765 | version "2.7.1" |
2378 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" | 2766 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" |
2767 | integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== | ||
2379 | 2768 | ||
2380 | html-comment-regex@^1.1.0: | 2769 | html-comment-regex@^1.1.0: |
2381 | version "1.1.1" | 2770 | version "1.1.2" |
2382 | resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" | 2771 | resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" |
2383 | 2772 | integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== | |
2384 | http-signature@~1.1.0: | ||
2385 | version "1.1.1" | ||
2386 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" | ||
2387 | dependencies: | ||
2388 | assert-plus "^0.2.0" | ||
2389 | jsprim "^1.2.2" | ||
2390 | sshpk "^1.7.0" | ||
2391 | 2773 | ||
2392 | http-signature@~1.2.0: | 2774 | http-signature@~1.2.0: |
2393 | version "1.2.0" | 2775 | version "1.2.0" |
2394 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" | 2776 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" |
2777 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= | ||
2395 | dependencies: | 2778 | dependencies: |
2396 | assert-plus "^1.0.0" | 2779 | assert-plus "^1.0.0" |
2397 | jsprim "^1.2.2" | 2780 | jsprim "^1.2.2" |
@@ -2400,73 +2783,98 @@ http-signature@~1.2.0: | |||
2400 | https-browserify@^1.0.0: | 2783 | https-browserify@^1.0.0: |
2401 | version "1.0.0" | 2784 | version "1.0.0" |
2402 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" | 2785 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" |
2786 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= | ||
2403 | 2787 | ||
2404 | iconv-lite@^0.4.17: | 2788 | iconv-lite@^0.4.17, iconv-lite@^0.4.4: |
2405 | version "0.4.19" | 2789 | version "0.4.24" |
2406 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" | 2790 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" |
2791 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== | ||
2792 | dependencies: | ||
2793 | safer-buffer ">= 2.1.2 < 3" | ||
2407 | 2794 | ||
2408 | icss-replace-symbols@^1.1.0: | 2795 | icss-replace-symbols@^1.1.0: |
2409 | version "1.1.0" | 2796 | version "1.1.0" |
2410 | resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" | 2797 | resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" |
2798 | integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= | ||
2411 | 2799 | ||
2412 | icss-utils@^2.1.0: | 2800 | icss-utils@^2.1.0: |
2413 | version "2.1.0" | 2801 | version "2.1.0" |
2414 | resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" | 2802 | resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" |
2803 | integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= | ||
2415 | dependencies: | 2804 | dependencies: |
2416 | postcss "^6.0.1" | 2805 | postcss "^6.0.1" |
2417 | 2806 | ||
2418 | ieee754@^1.1.4: | 2807 | ieee754@^1.1.4: |
2419 | version "1.1.8" | 2808 | version "1.1.13" |
2420 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" | 2809 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" |
2810 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== | ||
2811 | |||
2812 | ignore-walk@^3.0.1: | ||
2813 | version "3.0.1" | ||
2814 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" | ||
2815 | integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== | ||
2816 | dependencies: | ||
2817 | minimatch "^3.0.4" | ||
2421 | 2818 | ||
2422 | ignore@^3.1.2, ignore@^3.3.3: | 2819 | ignore@^3.1.2, ignore@^3.3.3: |
2423 | version "3.3.7" | 2820 | version "3.3.10" |
2424 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" | 2821 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" |
2822 | integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== | ||
2425 | 2823 | ||
2426 | imurmurhash@^0.1.4: | 2824 | imurmurhash@^0.1.4: |
2427 | version "0.1.4" | 2825 | version "0.1.4" |
2428 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" | 2826 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" |
2827 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= | ||
2429 | 2828 | ||
2430 | in-publish@^2.0.0: | 2829 | in-publish@^2.0.0: |
2431 | version "2.0.0" | 2830 | version "2.0.0" |
2432 | resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" | 2831 | resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" |
2832 | integrity sha1-4g/146KvwmkDILbcVSaCqcf631E= | ||
2433 | 2833 | ||
2434 | indent-string@^2.1.0: | 2834 | indent-string@^2.1.0: |
2435 | version "2.1.0" | 2835 | version "2.1.0" |
2436 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" | 2836 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" |
2837 | integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= | ||
2437 | dependencies: | 2838 | dependencies: |
2438 | repeating "^2.0.0" | 2839 | repeating "^2.0.0" |
2439 | 2840 | ||
2440 | indexes-of@^1.0.1: | 2841 | indexes-of@^1.0.1: |
2441 | version "1.0.1" | 2842 | version "1.0.1" |
2442 | resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" | 2843 | resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" |
2844 | integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= | ||
2443 | 2845 | ||
2444 | indexof@0.0.1: | 2846 | indexof@0.0.1: |
2445 | version "0.0.1" | 2847 | version "0.0.1" |
2446 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" | 2848 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" |
2849 | integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= | ||
2447 | 2850 | ||
2448 | inflight@^1.0.4: | 2851 | inflight@^1.0.4: |
2449 | version "1.0.6" | 2852 | version "1.0.6" |
2450 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" | 2853 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" |
2854 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= | ||
2451 | dependencies: | 2855 | dependencies: |
2452 | once "^1.3.0" | 2856 | once "^1.3.0" |
2453 | wrappy "1" | 2857 | wrappy "1" |
2454 | 2858 | ||
2455 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: | 2859 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: |
2456 | version "2.0.3" | 2860 | version "2.0.3" |
2457 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" | 2861 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" |
2862 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= | ||
2458 | 2863 | ||
2459 | inherits@2.0.1: | 2864 | inherits@2.0.1: |
2460 | version "2.0.1" | 2865 | version "2.0.1" |
2461 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" | 2866 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" |
2867 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= | ||
2462 | 2868 | ||
2463 | ini@~1.3.0: | 2869 | ini@~1.3.0: |
2464 | version "1.3.5" | 2870 | version "1.3.5" |
2465 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" | 2871 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" |
2872 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== | ||
2466 | 2873 | ||
2467 | inquirer@^0.12.0: | 2874 | inquirer@^0.12.0: |
2468 | version "0.12.0" | 2875 | version "0.12.0" |
2469 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" | 2876 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" |
2877 | integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34= | ||
2470 | dependencies: | 2878 | dependencies: |
2471 | ansi-escapes "^1.1.0" | 2879 | ansi-escapes "^1.1.0" |
2472 | ansi-regex "^2.0.0" | 2880 | ansi-regex "^2.0.0" |
@@ -2485,6 +2893,7 @@ inquirer@^0.12.0: | |||
2485 | inquirer@^3.0.6: | 2893 | inquirer@^3.0.6: |
2486 | version "3.3.0" | 2894 | version "3.3.0" |
2487 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" | 2895 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" |
2896 | integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== | ||
2488 | dependencies: | 2897 | dependencies: |
2489 | ansi-escapes "^3.0.0" | 2898 | ansi-escapes "^3.0.0" |
2490 | chalk "^2.0.0" | 2899 | chalk "^2.0.0" |
@@ -2502,90 +2911,159 @@ inquirer@^3.0.6: | |||
2502 | through "^2.3.6" | 2911 | through "^2.3.6" |
2503 | 2912 | ||
2504 | interpret@^1.0.0: | 2913 | interpret@^1.0.0: |
2505 | version "1.1.0" | 2914 | version "1.2.0" |
2506 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" | 2915 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" |
2916 | integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== | ||
2507 | 2917 | ||
2508 | invariant@^2.2.2: | 2918 | invariant@^2.2.2: |
2509 | version "2.2.2" | 2919 | version "2.2.4" |
2510 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" | 2920 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" |
2921 | integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== | ||
2511 | dependencies: | 2922 | dependencies: |
2512 | loose-envify "^1.0.0" | 2923 | loose-envify "^1.0.0" |
2513 | 2924 | ||
2514 | invert-kv@^1.0.0: | 2925 | invert-kv@^1.0.0: |
2515 | version "1.0.0" | 2926 | version "1.0.0" |
2516 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" | 2927 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" |
2928 | integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= | ||
2517 | 2929 | ||
2518 | is-absolute-url@^2.0.0: | 2930 | is-absolute-url@^2.0.0: |
2519 | version "2.1.0" | 2931 | version "2.1.0" |
2520 | resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" | 2932 | resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" |
2933 | integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= | ||
2934 | |||
2935 | is-accessor-descriptor@^0.1.6: | ||
2936 | version "0.1.6" | ||
2937 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" | ||
2938 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= | ||
2939 | dependencies: | ||
2940 | kind-of "^3.0.2" | ||
2941 | |||
2942 | is-accessor-descriptor@^1.0.0: | ||
2943 | version "1.0.0" | ||
2944 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" | ||
2945 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== | ||
2946 | dependencies: | ||
2947 | kind-of "^6.0.0" | ||
2521 | 2948 | ||
2522 | is-arrayish@^0.2.1: | 2949 | is-arrayish@^0.2.1: |
2523 | version "0.2.1" | 2950 | version "0.2.1" |
2524 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" | 2951 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" |
2952 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= | ||
2525 | 2953 | ||
2526 | is-binary-path@^1.0.0: | 2954 | is-binary-path@^1.0.0: |
2527 | version "1.0.1" | 2955 | version "1.0.1" |
2528 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" | 2956 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" |
2957 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= | ||
2529 | dependencies: | 2958 | dependencies: |
2530 | binary-extensions "^1.0.0" | 2959 | binary-extensions "^1.0.0" |
2531 | 2960 | ||
2532 | is-buffer@^1.0.2, is-buffer@^1.1.5: | 2961 | is-buffer@^1.1.5: |
2533 | version "1.1.6" | 2962 | version "1.1.6" |
2534 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" | 2963 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" |
2964 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== | ||
2965 | |||
2966 | is-callable@^1.1.4: | ||
2967 | version "1.1.4" | ||
2968 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" | ||
2969 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== | ||
2535 | 2970 | ||
2536 | is-builtin-module@^1.0.0: | 2971 | is-data-descriptor@^0.1.4: |
2972 | version "0.1.4" | ||
2973 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" | ||
2974 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= | ||
2975 | dependencies: | ||
2976 | kind-of "^3.0.2" | ||
2977 | |||
2978 | is-data-descriptor@^1.0.0: | ||
2537 | version "1.0.0" | 2979 | version "1.0.0" |
2538 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" | 2980 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" |
2981 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== | ||
2539 | dependencies: | 2982 | dependencies: |
2540 | builtin-modules "^1.0.0" | 2983 | kind-of "^6.0.0" |
2541 | 2984 | ||
2542 | is-dotfile@^1.0.0: | 2985 | is-date-object@^1.0.1: |
2543 | version "1.0.3" | 2986 | version "1.0.1" |
2544 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" | 2987 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" |
2988 | integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= | ||
2545 | 2989 | ||
2546 | is-equal-shallow@^0.1.3: | 2990 | is-descriptor@^0.1.0: |
2547 | version "0.1.3" | 2991 | version "0.1.6" |
2548 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" | 2992 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" |
2993 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== | ||
2994 | dependencies: | ||
2995 | is-accessor-descriptor "^0.1.6" | ||
2996 | is-data-descriptor "^0.1.4" | ||
2997 | kind-of "^5.0.0" | ||
2998 | |||
2999 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: | ||
3000 | version "1.0.2" | ||
3001 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" | ||
3002 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== | ||
2549 | dependencies: | 3003 | dependencies: |
2550 | is-primitive "^2.0.0" | 3004 | is-accessor-descriptor "^1.0.0" |
3005 | is-data-descriptor "^1.0.0" | ||
3006 | kind-of "^6.0.2" | ||
2551 | 3007 | ||
2552 | is-extendable@^0.1.1: | 3008 | is-extendable@^0.1.0, is-extendable@^0.1.1: |
2553 | version "0.1.1" | 3009 | version "0.1.1" |
2554 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" | 3010 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" |
3011 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= | ||
2555 | 3012 | ||
2556 | is-extglob@^1.0.0: | 3013 | is-extendable@^1.0.1: |
2557 | version "1.0.0" | 3014 | version "1.0.1" |
2558 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" | 3015 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" |
3016 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== | ||
3017 | dependencies: | ||
3018 | is-plain-object "^2.0.4" | ||
3019 | |||
3020 | is-extglob@^2.1.0, is-extglob@^2.1.1: | ||
3021 | version "2.1.1" | ||
3022 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" | ||
3023 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= | ||
2559 | 3024 | ||
2560 | is-finite@^1.0.0: | 3025 | is-finite@^1.0.0: |
2561 | version "1.0.2" | 3026 | version "1.0.2" |
2562 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" | 3027 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" |
3028 | integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= | ||
2563 | dependencies: | 3029 | dependencies: |
2564 | number-is-nan "^1.0.0" | 3030 | number-is-nan "^1.0.0" |
2565 | 3031 | ||
2566 | is-fullwidth-code-point@^1.0.0: | 3032 | is-fullwidth-code-point@^1.0.0: |
2567 | version "1.0.0" | 3033 | version "1.0.0" |
2568 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" | 3034 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" |
3035 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= | ||
2569 | dependencies: | 3036 | dependencies: |
2570 | number-is-nan "^1.0.0" | 3037 | number-is-nan "^1.0.0" |
2571 | 3038 | ||
2572 | is-fullwidth-code-point@^2.0.0: | 3039 | is-fullwidth-code-point@^2.0.0: |
2573 | version "2.0.0" | 3040 | version "2.0.0" |
2574 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" | 3041 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" |
3042 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= | ||
2575 | 3043 | ||
2576 | is-glob@^2.0.0, is-glob@^2.0.1: | 3044 | is-glob@^3.1.0: |
2577 | version "2.0.1" | 3045 | version "3.1.0" |
2578 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" | 3046 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" |
3047 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= | ||
3048 | dependencies: | ||
3049 | is-extglob "^2.1.0" | ||
3050 | |||
3051 | is-glob@^4.0.0: | ||
3052 | version "4.0.1" | ||
3053 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" | ||
3054 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== | ||
2579 | dependencies: | 3055 | dependencies: |
2580 | is-extglob "^1.0.0" | 3056 | is-extglob "^2.1.1" |
2581 | 3057 | ||
2582 | is-my-ip-valid@^1.0.0: | 3058 | is-my-ip-valid@^1.0.0: |
2583 | version "1.0.0" | 3059 | version "1.0.0" |
2584 | resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" | 3060 | resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" |
3061 | integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== | ||
2585 | 3062 | ||
2586 | is-my-json-valid@^2.10.0: | 3063 | is-my-json-valid@^2.10.0: |
2587 | version "2.17.2" | 3064 | version "2.20.0" |
2588 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" | 3065 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" |
3066 | integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA== | ||
2589 | dependencies: | 3067 | dependencies: |
2590 | generate-function "^2.0.0" | 3068 | generate-function "^2.0.0" |
2591 | generate-object-property "^1.1.0" | 3069 | generate-object-property "^1.1.0" |
@@ -2593,131 +3071,127 @@ is-my-json-valid@^2.10.0: | |||
2593 | jsonpointer "^4.0.0" | 3071 | jsonpointer "^4.0.0" |
2594 | xtend "^4.0.0" | 3072 | xtend "^4.0.0" |
2595 | 3073 | ||
2596 | is-my-json-valid@^2.12.4: | ||
2597 | version "2.17.1" | ||
2598 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471" | ||
2599 | dependencies: | ||
2600 | generate-function "^2.0.0" | ||
2601 | generate-object-property "^1.1.0" | ||
2602 | jsonpointer "^4.0.0" | ||
2603 | xtend "^4.0.0" | ||
2604 | |||
2605 | is-number@^2.1.0: | ||
2606 | version "2.1.0" | ||
2607 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" | ||
2608 | dependencies: | ||
2609 | kind-of "^3.0.2" | ||
2610 | |||
2611 | is-number@^3.0.0: | 3074 | is-number@^3.0.0: |
2612 | version "3.0.0" | 3075 | version "3.0.0" |
2613 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" | 3076 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" |
3077 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= | ||
2614 | dependencies: | 3078 | dependencies: |
2615 | kind-of "^3.0.2" | 3079 | kind-of "^3.0.2" |
2616 | 3080 | ||
2617 | is-path-cwd@^1.0.0: | ||
2618 | version "1.0.0" | ||
2619 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" | ||
2620 | |||
2621 | is-path-in-cwd@^1.0.0: | ||
2622 | version "1.0.0" | ||
2623 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" | ||
2624 | dependencies: | ||
2625 | is-path-inside "^1.0.0" | ||
2626 | |||
2627 | is-path-inside@^1.0.0: | ||
2628 | version "1.0.1" | ||
2629 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" | ||
2630 | dependencies: | ||
2631 | path-is-inside "^1.0.1" | ||
2632 | |||
2633 | is-plain-obj@^1.0.0: | 3081 | is-plain-obj@^1.0.0: |
2634 | version "1.1.0" | 3082 | version "1.1.0" |
2635 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" | 3083 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" |
3084 | integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= | ||
2636 | 3085 | ||
2637 | is-plain-object@^2.0.1: | 3086 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: |
2638 | version "2.0.4" | 3087 | version "2.0.4" |
2639 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" | 3088 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" |
3089 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== | ||
2640 | dependencies: | 3090 | dependencies: |
2641 | isobject "^3.0.1" | 3091 | isobject "^3.0.1" |
2642 | 3092 | ||
2643 | is-posix-bracket@^0.1.0: | ||
2644 | version "0.1.1" | ||
2645 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" | ||
2646 | |||
2647 | is-primitive@^2.0.0: | ||
2648 | version "2.0.0" | ||
2649 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" | ||
2650 | |||
2651 | is-promise@^2.1.0: | 3093 | is-promise@^2.1.0: |
2652 | version "2.1.0" | 3094 | version "2.1.0" |
2653 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" | 3095 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" |
3096 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= | ||
2654 | 3097 | ||
2655 | is-property@^1.0.0: | 3098 | is-property@^1.0.0, is-property@^1.0.2: |
2656 | version "1.0.2" | 3099 | version "1.0.2" |
2657 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" | 3100 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" |
3101 | integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= | ||
3102 | |||
3103 | is-regex@^1.0.4: | ||
3104 | version "1.0.4" | ||
3105 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" | ||
3106 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= | ||
3107 | dependencies: | ||
3108 | has "^1.0.1" | ||
2658 | 3109 | ||
2659 | is-resolvable@^1.0.0: | 3110 | is-resolvable@^1.0.0: |
2660 | version "1.1.0" | 3111 | version "1.1.0" |
2661 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" | 3112 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" |
3113 | integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== | ||
2662 | 3114 | ||
2663 | is-stream@^1.1.0: | 3115 | is-stream@^1.1.0: |
2664 | version "1.1.0" | 3116 | version "1.1.0" |
2665 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" | 3117 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" |
3118 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= | ||
2666 | 3119 | ||
2667 | is-svg@^2.0.0: | 3120 | is-svg@^2.0.0: |
2668 | version "2.1.0" | 3121 | version "2.1.0" |
2669 | resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" | 3122 | resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" |
3123 | integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk= | ||
2670 | dependencies: | 3124 | dependencies: |
2671 | html-comment-regex "^1.1.0" | 3125 | html-comment-regex "^1.1.0" |
2672 | 3126 | ||
3127 | is-symbol@^1.0.2: | ||
3128 | version "1.0.2" | ||
3129 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" | ||
3130 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== | ||
3131 | dependencies: | ||
3132 | has-symbols "^1.0.0" | ||
3133 | |||
2673 | is-typedarray@~1.0.0: | 3134 | is-typedarray@~1.0.0: |
2674 | version "1.0.0" | 3135 | version "1.0.0" |
2675 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" | 3136 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" |
3137 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= | ||
2676 | 3138 | ||
2677 | is-utf8@^0.2.0: | 3139 | is-utf8@^0.2.0: |
2678 | version "0.2.1" | 3140 | version "0.2.1" |
2679 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" | 3141 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" |
3142 | integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= | ||
3143 | |||
3144 | is-windows@^1.0.2: | ||
3145 | version "1.0.2" | ||
3146 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" | ||
3147 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== | ||
2680 | 3148 | ||
2681 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: | 3149 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: |
2682 | version "1.0.0" | 3150 | version "1.0.0" |
2683 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" | 3151 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" |
3152 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= | ||
2684 | 3153 | ||
2685 | isexe@^2.0.0: | 3154 | isexe@^2.0.0: |
2686 | version "2.0.0" | 3155 | version "2.0.0" |
2687 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" | 3156 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" |
3157 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= | ||
2688 | 3158 | ||
2689 | isobject@^2.0.0: | 3159 | isobject@^2.0.0: |
2690 | version "2.1.0" | 3160 | version "2.1.0" |
2691 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" | 3161 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" |
3162 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= | ||
2692 | dependencies: | 3163 | dependencies: |
2693 | isarray "1.0.0" | 3164 | isarray "1.0.0" |
2694 | 3165 | ||
2695 | isobject@^3.0.1: | 3166 | isobject@^3.0.0, isobject@^3.0.1: |
2696 | version "3.0.1" | 3167 | version "3.0.1" |
2697 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" | 3168 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" |
3169 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= | ||
2698 | 3170 | ||
2699 | isstream@~0.1.2: | 3171 | isstream@~0.1.2: |
2700 | version "0.1.2" | 3172 | version "0.1.2" |
2701 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" | 3173 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" |
3174 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= | ||
2702 | 3175 | ||
2703 | js-base64@^2.1.8, js-base64@^2.1.9: | 3176 | js-base64@^2.1.8, js-base64@^2.1.9: |
2704 | version "2.4.3" | 3177 | version "2.5.1" |
2705 | resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" | 3178 | resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" |
3179 | integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== | ||
3180 | |||
3181 | "js-tokens@^3.0.0 || ^4.0.0": | ||
3182 | version "4.0.0" | ||
3183 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" | ||
3184 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== | ||
2706 | 3185 | ||
2707 | js-tokens@^3.0.0, js-tokens@^3.0.2: | 3186 | js-tokens@^3.0.2: |
2708 | version "3.0.2" | 3187 | version "3.0.2" |
2709 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" | 3188 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" |
3189 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= | ||
2710 | 3190 | ||
2711 | js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4: | 3191 | js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4, js-yaml@^3.9.1: |
2712 | version "3.11.0" | 3192 | version "3.13.1" |
2713 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" | 3193 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" |
2714 | dependencies: | 3194 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== |
2715 | argparse "^1.0.7" | ||
2716 | esprima "^4.0.0" | ||
2717 | |||
2718 | js-yaml@^3.9.1: | ||
2719 | version "3.10.0" | ||
2720 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" | ||
2721 | dependencies: | 3195 | dependencies: |
2722 | argparse "^1.0.7" | 3196 | argparse "^1.0.7" |
2723 | esprima "^4.0.0" | 3197 | esprima "^4.0.0" |
@@ -2725,6 +3199,7 @@ js-yaml@^3.9.1: | |||
2725 | js-yaml@~3.7.0: | 3199 | js-yaml@~3.7.0: |
2726 | version "3.7.0" | 3200 | version "3.7.0" |
2727 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" | 3201 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" |
3202 | integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= | ||
2728 | dependencies: | 3203 | dependencies: |
2729 | argparse "^1.0.7" | 3204 | argparse "^1.0.7" |
2730 | esprima "^2.6.0" | 3205 | esprima "^2.6.0" |
@@ -2732,107 +3207,139 @@ js-yaml@~3.7.0: | |||
2732 | jsbn@~0.1.0: | 3207 | jsbn@~0.1.0: |
2733 | version "0.1.1" | 3208 | version "0.1.1" |
2734 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" | 3209 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" |
3210 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= | ||
2735 | 3211 | ||
2736 | jsesc@^1.3.0: | 3212 | jsesc@^1.3.0: |
2737 | version "1.3.0" | 3213 | version "1.3.0" |
2738 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" | 3214 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" |
3215 | integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= | ||
2739 | 3216 | ||
2740 | jsesc@~0.5.0: | 3217 | jsesc@~0.5.0: |
2741 | version "0.5.0" | 3218 | version "0.5.0" |
2742 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" | 3219 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" |
3220 | integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= | ||
2743 | 3221 | ||
2744 | json-loader@^0.5.4: | 3222 | json-loader@^0.5.4: |
2745 | version "0.5.7" | 3223 | version "0.5.7" |
2746 | resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" | 3224 | resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" |
3225 | integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== | ||
2747 | 3226 | ||
2748 | json-schema-traverse@^0.3.0: | 3227 | json-schema-traverse@^0.3.0: |
2749 | version "0.3.1" | 3228 | version "0.3.1" |
2750 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" | 3229 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" |
3230 | integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= | ||
3231 | |||
3232 | json-schema-traverse@^0.4.1: | ||
3233 | version "0.4.1" | ||
3234 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" | ||
3235 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== | ||
2751 | 3236 | ||
2752 | json-schema@0.2.3: | 3237 | json-schema@0.2.3: |
2753 | version "0.2.3" | 3238 | version "0.2.3" |
2754 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" | 3239 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" |
3240 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= | ||
2755 | 3241 | ||
2756 | json-stable-stringify-without-jsonify@^1.0.1: | 3242 | json-stable-stringify-without-jsonify@^1.0.1: |
2757 | version "1.0.1" | 3243 | version "1.0.1" |
2758 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" | 3244 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" |
3245 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= | ||
2759 | 3246 | ||
2760 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: | 3247 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: |
2761 | version "1.0.1" | 3248 | version "1.0.1" |
2762 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" | 3249 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" |
3250 | integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= | ||
2763 | dependencies: | 3251 | dependencies: |
2764 | jsonify "~0.0.0" | 3252 | jsonify "~0.0.0" |
2765 | 3253 | ||
2766 | json-stringify-safe@~5.0.1: | 3254 | json-stringify-safe@~5.0.1: |
2767 | version "5.0.1" | 3255 | version "5.0.1" |
2768 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" | 3256 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" |
3257 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= | ||
2769 | 3258 | ||
2770 | json5@^0.5.0, json5@^0.5.1: | 3259 | json5@^0.5.1: |
2771 | version "0.5.1" | 3260 | version "0.5.1" |
2772 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" | 3261 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" |
3262 | integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= | ||
3263 | |||
3264 | json5@^1.0.1: | ||
3265 | version "1.0.1" | ||
3266 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" | ||
3267 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== | ||
3268 | dependencies: | ||
3269 | minimist "^1.2.0" | ||
2773 | 3270 | ||
2774 | jsonfile@^3.0.0: | 3271 | jsonfile@^3.0.0: |
2775 | version "3.0.1" | 3272 | version "3.0.1" |
2776 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" | 3273 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" |
3274 | integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= | ||
2777 | optionalDependencies: | 3275 | optionalDependencies: |
2778 | graceful-fs "^4.1.6" | 3276 | graceful-fs "^4.1.6" |
2779 | 3277 | ||
2780 | jsonify@~0.0.0: | 3278 | jsonify@~0.0.0: |
2781 | version "0.0.0" | 3279 | version "0.0.0" |
2782 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" | 3280 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" |
3281 | integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= | ||
2783 | 3282 | ||
2784 | jsonpointer@^4.0.0: | 3283 | jsonpointer@^4.0.0: |
2785 | version "4.0.1" | 3284 | version "4.0.1" |
2786 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" | 3285 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" |
3286 | integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= | ||
2787 | 3287 | ||
2788 | jsprim@^1.2.2: | 3288 | jsprim@^1.2.2: |
2789 | version "1.4.1" | 3289 | version "1.4.1" |
2790 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" | 3290 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" |
3291 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= | ||
2791 | dependencies: | 3292 | dependencies: |
2792 | assert-plus "1.0.0" | 3293 | assert-plus "1.0.0" |
2793 | extsprintf "1.3.0" | 3294 | extsprintf "1.3.0" |
2794 | json-schema "0.2.3" | 3295 | json-schema "0.2.3" |
2795 | verror "1.10.0" | 3296 | verror "1.10.0" |
2796 | 3297 | ||
2797 | kind-of@^2.0.1: | 3298 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: |
2798 | version "2.0.1" | ||
2799 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" | ||
2800 | dependencies: | ||
2801 | is-buffer "^1.0.2" | ||
2802 | |||
2803 | kind-of@^3.0.2, kind-of@^3.2.2: | ||
2804 | version "3.2.2" | 3299 | version "3.2.2" |
2805 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" | 3300 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" |
3301 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= | ||
2806 | dependencies: | 3302 | dependencies: |
2807 | is-buffer "^1.1.5" | 3303 | is-buffer "^1.1.5" |
2808 | 3304 | ||
2809 | kind-of@^4.0.0: | 3305 | kind-of@^4.0.0: |
2810 | version "4.0.0" | 3306 | version "4.0.0" |
2811 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" | 3307 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" |
3308 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= | ||
2812 | dependencies: | 3309 | dependencies: |
2813 | is-buffer "^1.1.5" | 3310 | is-buffer "^1.1.5" |
2814 | 3311 | ||
3312 | kind-of@^5.0.0: | ||
3313 | version "5.1.0" | ||
3314 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" | ||
3315 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== | ||
3316 | |||
3317 | kind-of@^6.0.0, kind-of@^6.0.2: | ||
3318 | version "6.0.2" | ||
3319 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" | ||
3320 | integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== | ||
3321 | |||
2815 | known-css-properties@^0.3.0: | 3322 | known-css-properties@^0.3.0: |
2816 | version "0.3.0" | 3323 | version "0.3.0" |
2817 | resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz#a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4" | 3324 | resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz#a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4" |
2818 | 3325 | integrity sha512-QMQcnKAiQccfQTqtBh/qwquGZ2XK/DXND1jrcN9M8gMMy99Gwla7GQjndVUsEqIaRyP6bsFRuhwRj5poafBGJQ== | |
2819 | lazy-cache@^0.2.3: | ||
2820 | version "0.2.7" | ||
2821 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" | ||
2822 | 3326 | ||
2823 | lazy-cache@^1.0.3: | 3327 | lazy-cache@^1.0.3: |
2824 | version "1.0.4" | 3328 | version "1.0.4" |
2825 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" | 3329 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" |
3330 | integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= | ||
2826 | 3331 | ||
2827 | lcid@^1.0.0: | 3332 | lcid@^1.0.0: |
2828 | version "1.0.0" | 3333 | version "1.0.0" |
2829 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" | 3334 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" |
3335 | integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= | ||
2830 | dependencies: | 3336 | dependencies: |
2831 | invert-kv "^1.0.0" | 3337 | invert-kv "^1.0.0" |
2832 | 3338 | ||
2833 | levn@^0.3.0, levn@~0.3.0: | 3339 | levn@^0.3.0, levn@~0.3.0: |
2834 | version "0.3.0" | 3340 | version "0.3.0" |
2835 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" | 3341 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" |
3342 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= | ||
2836 | dependencies: | 3343 | dependencies: |
2837 | prelude-ls "~1.1.2" | 3344 | prelude-ls "~1.1.2" |
2838 | type-check "~0.3.2" | 3345 | type-check "~0.3.2" |
@@ -2840,6 +3347,7 @@ levn@^0.3.0, levn@~0.3.0: | |||
2840 | load-json-file@^1.0.0: | 3347 | load-json-file@^1.0.0: |
2841 | version "1.1.0" | 3348 | version "1.1.0" |
2842 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" | 3349 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" |
3350 | integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= | ||
2843 | dependencies: | 3351 | dependencies: |
2844 | graceful-fs "^4.1.2" | 3352 | graceful-fs "^4.1.2" |
2845 | parse-json "^2.2.0" | 3353 | parse-json "^2.2.0" |
@@ -2850,6 +3358,7 @@ load-json-file@^1.0.0: | |||
2850 | load-json-file@^2.0.0: | 3358 | load-json-file@^2.0.0: |
2851 | version "2.0.0" | 3359 | version "2.0.0" |
2852 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" | 3360 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" |
3361 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= | ||
2853 | dependencies: | 3362 | dependencies: |
2854 | graceful-fs "^4.1.2" | 3363 | graceful-fs "^4.1.2" |
2855 | parse-json "^2.2.0" | 3364 | parse-json "^2.2.0" |
@@ -2857,134 +3366,149 @@ load-json-file@^2.0.0: | |||
2857 | strip-bom "^3.0.0" | 3366 | strip-bom "^3.0.0" |
2858 | 3367 | ||
2859 | loader-runner@^2.3.0: | 3368 | loader-runner@^2.3.0: |
2860 | version "2.3.0" | 3369 | version "2.4.0" |
2861 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" | 3370 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" |
3371 | integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== | ||
2862 | 3372 | ||
2863 | loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: | 3373 | loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: |
2864 | version "1.1.0" | 3374 | version "1.2.3" |
2865 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" | 3375 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" |
3376 | integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== | ||
2866 | dependencies: | 3377 | dependencies: |
2867 | big.js "^3.1.3" | 3378 | big.js "^5.2.2" |
2868 | emojis-list "^2.0.0" | 3379 | emojis-list "^2.0.0" |
2869 | json5 "^0.5.0" | 3380 | json5 "^1.0.1" |
2870 | 3381 | ||
2871 | locate-path@^2.0.0: | 3382 | locate-path@^2.0.0: |
2872 | version "2.0.0" | 3383 | version "2.0.0" |
2873 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" | 3384 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" |
3385 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= | ||
2874 | dependencies: | 3386 | dependencies: |
2875 | p-locate "^2.0.0" | 3387 | p-locate "^2.0.0" |
2876 | path-exists "^3.0.0" | 3388 | path-exists "^3.0.0" |
2877 | 3389 | ||
2878 | lodash.assign@^4.2.0: | ||
2879 | version "4.2.0" | ||
2880 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" | ||
2881 | |||
2882 | lodash.camelcase@^4.3.0: | 3390 | lodash.camelcase@^4.3.0: |
2883 | version "4.3.0" | 3391 | version "4.3.0" |
2884 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" | 3392 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" |
3393 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= | ||
2885 | 3394 | ||
2886 | lodash.capitalize@^4.1.0: | 3395 | lodash.capitalize@^4.1.0: |
2887 | version "4.2.1" | 3396 | version "4.2.1" |
2888 | resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" | 3397 | resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" |
2889 | 3398 | integrity sha1-+CbJtOKoUR2E46yinbBeGk87cqk= | |
2890 | lodash.clonedeep@^4.3.2: | ||
2891 | version "4.5.0" | ||
2892 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" | ||
2893 | |||
2894 | lodash.cond@^4.3.0: | ||
2895 | version "4.5.2" | ||
2896 | resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" | ||
2897 | 3399 | ||
2898 | lodash.isplainobject@^4.0.6: | 3400 | lodash.isplainobject@^4.0.6: |
2899 | version "4.0.6" | 3401 | version "4.0.6" |
2900 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" | 3402 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" |
3403 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= | ||
2901 | 3404 | ||
2902 | lodash.kebabcase@^4.0.0: | 3405 | lodash.kebabcase@^4.0.0: |
2903 | version "4.1.1" | 3406 | version "4.1.1" |
2904 | resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" | 3407 | resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" |
3408 | integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= | ||
2905 | 3409 | ||
2906 | lodash.memoize@^4.1.2: | 3410 | lodash.memoize@^4.1.2: |
2907 | version "4.1.2" | 3411 | version "4.1.2" |
2908 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" | 3412 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" |
2909 | 3413 | integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= | |
2910 | lodash.mergewith@^4.6.0: | ||
2911 | version "4.6.1" | ||
2912 | resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" | ||
2913 | 3414 | ||
2914 | lodash.some@^4.6.0: | 3415 | lodash.some@^4.6.0: |
2915 | version "4.6.0" | 3416 | version "4.6.0" |
2916 | resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" | 3417 | resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" |
3418 | integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= | ||
2917 | 3419 | ||
2918 | lodash.tail@^4.1.1: | 3420 | lodash.tail@^4.1.1: |
2919 | version "4.1.1" | 3421 | version "4.1.1" |
2920 | resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" | 3422 | resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" |
3423 | integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= | ||
2921 | 3424 | ||
2922 | lodash.uniq@^4.5.0: | 3425 | lodash.uniq@^4.5.0: |
2923 | version "4.5.0" | 3426 | version "4.5.0" |
2924 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" | 3427 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" |
3428 | integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= | ||
2925 | 3429 | ||
2926 | lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.4: | 3430 | lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.10: |
2927 | version "4.17.5" | 3431 | version "4.17.11" |
2928 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" | 3432 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" |
3433 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== | ||
2929 | 3434 | ||
2930 | longest@^1.0.1: | 3435 | longest@^1.0.1: |
2931 | version "1.0.1" | 3436 | version "1.0.1" |
2932 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" | 3437 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" |
3438 | integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= | ||
2933 | 3439 | ||
2934 | loose-envify@^1.0.0: | 3440 | loose-envify@^1.0.0: |
2935 | version "1.3.1" | 3441 | version "1.4.0" |
2936 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" | 3442 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" |
3443 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== | ||
2937 | dependencies: | 3444 | dependencies: |
2938 | js-tokens "^3.0.0" | 3445 | js-tokens "^3.0.0 || ^4.0.0" |
2939 | 3446 | ||
2940 | loud-rejection@^1.0.0: | 3447 | loud-rejection@^1.0.0: |
2941 | version "1.6.0" | 3448 | version "1.6.0" |
2942 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" | 3449 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" |
3450 | integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= | ||
2943 | dependencies: | 3451 | dependencies: |
2944 | currently-unhandled "^0.4.1" | 3452 | currently-unhandled "^0.4.1" |
2945 | signal-exit "^3.0.0" | 3453 | signal-exit "^3.0.0" |
2946 | 3454 | ||
2947 | lru-cache@^4.0.1: | 3455 | lru-cache@^4.0.1: |
2948 | version "4.1.1" | 3456 | version "4.1.5" |
2949 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" | 3457 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" |
3458 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== | ||
2950 | dependencies: | 3459 | dependencies: |
2951 | pseudomap "^1.0.2" | 3460 | pseudomap "^1.0.2" |
2952 | yallist "^2.1.2" | 3461 | yallist "^2.1.2" |
2953 | 3462 | ||
2954 | macaddress@^0.2.8: | ||
2955 | version "0.2.8" | ||
2956 | resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" | ||
2957 | |||
2958 | make-dir@^1.0.0: | 3463 | make-dir@^1.0.0: |
2959 | version "1.1.0" | 3464 | version "1.3.0" |
2960 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" | 3465 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" |
3466 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== | ||
2961 | dependencies: | 3467 | dependencies: |
2962 | pify "^3.0.0" | 3468 | pify "^3.0.0" |
2963 | 3469 | ||
3470 | map-cache@^0.2.2: | ||
3471 | version "0.2.2" | ||
3472 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" | ||
3473 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= | ||
3474 | |||
2964 | map-obj@^1.0.0, map-obj@^1.0.1: | 3475 | map-obj@^1.0.0, map-obj@^1.0.1: |
2965 | version "1.0.1" | 3476 | version "1.0.1" |
2966 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" | 3477 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" |
3478 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= | ||
3479 | |||
3480 | map-visit@^1.0.0: | ||
3481 | version "1.0.0" | ||
3482 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" | ||
3483 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= | ||
3484 | dependencies: | ||
3485 | object-visit "^1.0.0" | ||
2967 | 3486 | ||
2968 | math-expression-evaluator@^1.2.14: | 3487 | math-expression-evaluator@^1.2.14: |
2969 | version "1.2.17" | 3488 | version "1.2.17" |
2970 | resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" | 3489 | resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" |
3490 | integrity sha1-3oGf282E3M2PrlnGrreWFbnSZqw= | ||
2971 | 3491 | ||
2972 | md5.js@^1.3.4: | 3492 | md5.js@^1.3.4: |
2973 | version "1.3.4" | 3493 | version "1.3.5" |
2974 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" | 3494 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" |
3495 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== | ||
2975 | dependencies: | 3496 | dependencies: |
2976 | hash-base "^3.0.0" | 3497 | hash-base "^3.0.0" |
2977 | inherits "^2.0.1" | 3498 | inherits "^2.0.1" |
3499 | safe-buffer "^5.1.2" | ||
2978 | 3500 | ||
2979 | mem@^1.1.0: | 3501 | mem@^1.1.0: |
2980 | version "1.1.0" | 3502 | version "1.1.0" |
2981 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" | 3503 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" |
3504 | integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= | ||
2982 | dependencies: | 3505 | dependencies: |
2983 | mimic-fn "^1.0.0" | 3506 | mimic-fn "^1.0.0" |
2984 | 3507 | ||
2985 | memory-fs@^0.4.0, memory-fs@~0.4.1: | 3508 | memory-fs@^0.4.0, memory-fs@~0.4.1: |
2986 | version "0.4.1" | 3509 | version "0.4.1" |
2987 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" | 3510 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" |
3511 | integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= | ||
2988 | dependencies: | 3512 | dependencies: |
2989 | errno "^0.1.3" | 3513 | errno "^0.1.3" |
2990 | readable-stream "^2.0.1" | 3514 | readable-stream "^2.0.1" |
@@ -2992,6 +3516,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: | |||
2992 | meow@^3.7.0: | 3516 | meow@^3.7.0: |
2993 | version "3.7.0" | 3517 | version "3.7.0" |
2994 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" | 3518 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" |
3519 | integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= | ||
2995 | dependencies: | 3520 | dependencies: |
2996 | camelcase-keys "^2.0.0" | 3521 | camelcase-keys "^2.0.0" |
2997 | decamelize "^1.1.2" | 3522 | decamelize "^1.1.2" |
@@ -3005,81 +3530,118 @@ meow@^3.7.0: | |||
3005 | trim-newlines "^1.0.0" | 3530 | trim-newlines "^1.0.0" |
3006 | 3531 | ||
3007 | merge@^1.2.0: | 3532 | merge@^1.2.0: |
3008 | version "1.2.0" | 3533 | version "1.2.1" |
3009 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" | 3534 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" |
3010 | 3535 | integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== | |
3011 | micromatch@^2.1.5: | 3536 | |
3012 | version "2.3.11" | 3537 | micromatch@^3.1.10, micromatch@^3.1.4: |
3013 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" | 3538 | version "3.1.10" |
3014 | dependencies: | 3539 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" |
3015 | arr-diff "^2.0.0" | 3540 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== |
3016 | array-unique "^0.2.1" | 3541 | dependencies: |
3017 | braces "^1.8.2" | 3542 | arr-diff "^4.0.0" |
3018 | expand-brackets "^0.1.4" | 3543 | array-unique "^0.3.2" |
3019 | extglob "^0.3.1" | 3544 | braces "^2.3.1" |
3020 | filename-regex "^2.0.0" | 3545 | define-property "^2.0.2" |
3021 | is-extglob "^1.0.0" | 3546 | extend-shallow "^3.0.2" |
3022 | is-glob "^2.0.1" | 3547 | extglob "^2.0.4" |
3023 | kind-of "^3.0.2" | 3548 | fragment-cache "^0.2.1" |
3024 | normalize-path "^2.0.1" | 3549 | kind-of "^6.0.2" |
3025 | object.omit "^2.0.0" | 3550 | nanomatch "^1.2.9" |
3026 | parse-glob "^3.0.4" | 3551 | object.pick "^1.3.0" |
3027 | regex-cache "^0.4.2" | 3552 | regex-not "^1.0.0" |
3553 | snapdragon "^0.8.1" | ||
3554 | to-regex "^3.0.2" | ||
3028 | 3555 | ||
3029 | miller-rabin@^4.0.0: | 3556 | miller-rabin@^4.0.0: |
3030 | version "4.0.1" | 3557 | version "4.0.1" |
3031 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" | 3558 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" |
3559 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== | ||
3032 | dependencies: | 3560 | dependencies: |
3033 | bn.js "^4.0.0" | 3561 | bn.js "^4.0.0" |
3034 | brorand "^1.0.1" | 3562 | brorand "^1.0.1" |
3035 | 3563 | ||
3036 | mime-db@~1.30.0: | 3564 | mime-db@1.40.0: |
3037 | version "1.30.0" | 3565 | version "1.40.0" |
3038 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" | 3566 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" |
3567 | integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== | ||
3039 | 3568 | ||
3040 | mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: | 3569 | mime-types@^2.1.12, mime-types@~2.1.19: |
3041 | version "2.1.17" | 3570 | version "2.1.24" |
3042 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" | 3571 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" |
3572 | integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== | ||
3043 | dependencies: | 3573 | dependencies: |
3044 | mime-db "~1.30.0" | 3574 | mime-db "1.40.0" |
3045 | 3575 | ||
3046 | mime@^1.4.1: | 3576 | mime@^1.4.1: |
3047 | version "1.6.0" | 3577 | version "1.6.0" |
3048 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" | 3578 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" |
3579 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== | ||
3049 | 3580 | ||
3050 | mimic-fn@^1.0.0: | 3581 | mimic-fn@^1.0.0: |
3051 | version "1.2.0" | 3582 | version "1.2.0" |
3052 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" | 3583 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" |
3584 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== | ||
3053 | 3585 | ||
3054 | minimalistic-assert@^1.0.0: | 3586 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: |
3055 | version "1.0.0" | 3587 | version "1.0.1" |
3056 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" | 3588 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" |
3589 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== | ||
3057 | 3590 | ||
3058 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: | 3591 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: |
3059 | version "1.0.1" | 3592 | version "1.0.1" |
3060 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" | 3593 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" |
3594 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= | ||
3061 | 3595 | ||
3062 | "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: | 3596 | minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: |
3063 | version "3.0.4" | 3597 | version "3.0.4" |
3064 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" | 3598 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" |
3599 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== | ||
3065 | dependencies: | 3600 | dependencies: |
3066 | brace-expansion "^1.1.7" | 3601 | brace-expansion "^1.1.7" |
3067 | 3602 | ||
3068 | minimist@0.0.8: | 3603 | minimist@0.0.8: |
3069 | version "0.0.8" | 3604 | version "0.0.8" |
3070 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" | 3605 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" |
3606 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= | ||
3071 | 3607 | ||
3072 | minimist@1.1.x: | 3608 | minimist@1.1.x: |
3073 | version "1.1.3" | 3609 | version "1.1.3" |
3074 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" | 3610 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" |
3611 | integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= | ||
3075 | 3612 | ||
3076 | minimist@^1.1.3, minimist@^1.2.0: | 3613 | minimist@^1.1.3, minimist@^1.2.0: |
3077 | version "1.2.0" | 3614 | version "1.2.0" |
3078 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" | 3615 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" |
3616 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= | ||
3617 | |||
3618 | minipass@^2.2.1, minipass@^2.3.4: | ||
3619 | version "2.3.5" | ||
3620 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" | ||
3621 | integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== | ||
3622 | dependencies: | ||
3623 | safe-buffer "^5.1.2" | ||
3624 | yallist "^3.0.0" | ||
3625 | |||
3626 | minizlib@^1.1.1: | ||
3627 | version "1.2.1" | ||
3628 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" | ||
3629 | integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== | ||
3630 | dependencies: | ||
3631 | minipass "^2.2.1" | ||
3632 | |||
3633 | mixin-deep@^1.2.0: | ||
3634 | version "1.3.1" | ||
3635 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" | ||
3636 | integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== | ||
3637 | dependencies: | ||
3638 | for-in "^1.0.2" | ||
3639 | is-extendable "^1.0.1" | ||
3079 | 3640 | ||
3080 | mixin-object@^2.0.1: | 3641 | mixin-object@^2.0.1: |
3081 | version "2.0.1" | 3642 | version "2.0.1" |
3082 | resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" | 3643 | resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" |
3644 | integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= | ||
3083 | dependencies: | 3645 | dependencies: |
3084 | for-in "^0.1.3" | 3646 | for-in "^0.1.3" |
3085 | is-extendable "^0.1.1" | 3647 | is-extendable "^0.1.1" |
@@ -3087,50 +3649,98 @@ mixin-object@^2.0.1: | |||
3087 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: | 3649 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: |
3088 | version "0.5.1" | 3650 | version "0.5.1" |
3089 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" | 3651 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" |
3652 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= | ||
3090 | dependencies: | 3653 | dependencies: |
3091 | minimist "0.0.8" | 3654 | minimist "0.0.8" |
3092 | 3655 | ||
3093 | ms@2.0.0: | 3656 | ms@2.0.0: |
3094 | version "2.0.0" | 3657 | version "2.0.0" |
3095 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" | 3658 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" |
3659 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= | ||
3660 | |||
3661 | ms@^2.1.1: | ||
3662 | version "2.1.1" | ||
3663 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" | ||
3664 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== | ||
3096 | 3665 | ||
3097 | mute-stream@0.0.5: | 3666 | mute-stream@0.0.5: |
3098 | version "0.0.5" | 3667 | version "0.0.5" |
3099 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" | 3668 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" |
3669 | integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA= | ||
3100 | 3670 | ||
3101 | mute-stream@0.0.7: | 3671 | mute-stream@0.0.7: |
3102 | version "0.0.7" | 3672 | version "0.0.7" |
3103 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" | 3673 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" |
3104 | 3674 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= | |
3105 | nan@^2.3.0, nan@^2.3.2: | 3675 | |
3106 | version "2.8.0" | 3676 | nan@^2.12.1, nan@^2.13.2: |
3107 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" | 3677 | version "2.14.0" |
3678 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" | ||
3679 | integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== | ||
3680 | |||
3681 | nanomatch@^1.2.9: | ||
3682 | version "1.2.13" | ||
3683 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" | ||
3684 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== | ||
3685 | dependencies: | ||
3686 | arr-diff "^4.0.0" | ||
3687 | array-unique "^0.3.2" | ||
3688 | define-property "^2.0.2" | ||
3689 | extend-shallow "^3.0.2" | ||
3690 | fragment-cache "^0.2.1" | ||
3691 | is-windows "^1.0.2" | ||
3692 | kind-of "^6.0.2" | ||
3693 | object.pick "^1.3.0" | ||
3694 | regex-not "^1.0.0" | ||
3695 | snapdragon "^0.8.1" | ||
3696 | to-regex "^3.0.1" | ||
3108 | 3697 | ||
3109 | natural-compare@^1.4.0: | 3698 | natural-compare@^1.4.0: |
3110 | version "1.4.0" | 3699 | version "1.4.0" |
3111 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" | 3700 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" |
3701 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= | ||
3112 | 3702 | ||
3113 | node-gyp@^3.3.1: | 3703 | needle@^2.2.1: |
3114 | version "3.6.2" | 3704 | version "2.4.0" |
3115 | resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" | 3705 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" |
3706 | integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== | ||
3707 | dependencies: | ||
3708 | debug "^3.2.6" | ||
3709 | iconv-lite "^0.4.4" | ||
3710 | sax "^1.2.4" | ||
3711 | |||
3712 | neo-async@^2.5.0: | ||
3713 | version "2.6.1" | ||
3714 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" | ||
3715 | integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== | ||
3716 | |||
3717 | next-tick@^1.0.0: | ||
3718 | version "1.0.0" | ||
3719 | resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" | ||
3720 | integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= | ||
3721 | |||
3722 | node-gyp@^3.8.0: | ||
3723 | version "3.8.0" | ||
3724 | resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" | ||
3725 | integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== | ||
3116 | dependencies: | 3726 | dependencies: |
3117 | fstream "^1.0.0" | 3727 | fstream "^1.0.0" |
3118 | glob "^7.0.3" | 3728 | glob "^7.0.3" |
3119 | graceful-fs "^4.1.2" | 3729 | graceful-fs "^4.1.2" |
3120 | minimatch "^3.0.2" | ||
3121 | mkdirp "^0.5.0" | 3730 | mkdirp "^0.5.0" |
3122 | nopt "2 || 3" | 3731 | nopt "2 || 3" |
3123 | npmlog "0 || 1 || 2 || 3 || 4" | 3732 | npmlog "0 || 1 || 2 || 3 || 4" |
3124 | osenv "0" | 3733 | osenv "0" |
3125 | request "2" | 3734 | request "^2.87.0" |
3126 | rimraf "2" | 3735 | rimraf "2" |
3127 | semver "~5.3.0" | 3736 | semver "~5.3.0" |
3128 | tar "^2.0.0" | 3737 | tar "^2.0.0" |
3129 | which "1" | 3738 | which "1" |
3130 | 3739 | ||
3131 | node-libs-browser@^2.0.0: | 3740 | node-libs-browser@^2.0.0: |
3132 | version "2.1.0" | 3741 | version "2.2.0" |
3133 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" | 3742 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" |
3743 | integrity sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA== | ||
3134 | dependencies: | 3744 | dependencies: |
3135 | assert "^1.1.1" | 3745 | assert "^1.1.1" |
3136 | browserify-zlib "^0.2.0" | 3746 | browserify-zlib "^0.2.0" |
@@ -3139,7 +3749,7 @@ node-libs-browser@^2.0.0: | |||
3139 | constants-browserify "^1.0.0" | 3749 | constants-browserify "^1.0.0" |
3140 | crypto-browserify "^3.11.0" | 3750 | crypto-browserify "^3.11.0" |
3141 | domain-browser "^1.1.1" | 3751 | domain-browser "^1.1.1" |
3142 | events "^1.0.0" | 3752 | events "^3.0.0" |
3143 | https-browserify "^1.0.0" | 3753 | https-browserify "^1.0.0" |
3144 | os-browserify "^0.3.0" | 3754 | os-browserify "^0.3.0" |
3145 | path-browserify "0.0.0" | 3755 | path-browserify "0.0.0" |
@@ -3153,28 +3763,29 @@ node-libs-browser@^2.0.0: | |||
3153 | timers-browserify "^2.0.4" | 3763 | timers-browserify "^2.0.4" |
3154 | tty-browserify "0.0.0" | 3764 | tty-browserify "0.0.0" |
3155 | url "^0.11.0" | 3765 | url "^0.11.0" |
3156 | util "^0.10.3" | 3766 | util "^0.11.0" |
3157 | vm-browserify "0.0.4" | 3767 | vm-browserify "0.0.4" |
3158 | 3768 | ||
3159 | node-pre-gyp@^0.6.39: | 3769 | node-pre-gyp@^0.12.0: |
3160 | version "0.6.39" | 3770 | version "0.12.0" |
3161 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" | 3771 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" |
3772 | integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== | ||
3162 | dependencies: | 3773 | dependencies: |
3163 | detect-libc "^1.0.2" | 3774 | detect-libc "^1.0.2" |
3164 | hawk "3.1.3" | ||
3165 | mkdirp "^0.5.1" | 3775 | mkdirp "^0.5.1" |
3776 | needle "^2.2.1" | ||
3166 | nopt "^4.0.1" | 3777 | nopt "^4.0.1" |
3778 | npm-packlist "^1.1.6" | ||
3167 | npmlog "^4.0.2" | 3779 | npmlog "^4.0.2" |
3168 | rc "^1.1.7" | 3780 | rc "^1.2.7" |
3169 | request "2.81.0" | ||
3170 | rimraf "^2.6.1" | 3781 | rimraf "^2.6.1" |
3171 | semver "^5.3.0" | 3782 | semver "^5.3.0" |
3172 | tar "^2.2.1" | 3783 | tar "^4" |
3173 | tar-pack "^3.4.0" | ||
3174 | 3784 | ||
3175 | node-sass@^4.7.2: | 3785 | node-sass@^4.12.0: |
3176 | version "4.7.2" | 3786 | version "4.12.0" |
3177 | resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e" | 3787 | resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.12.0.tgz#0914f531932380114a30cc5fa4fa63233a25f017" |
3788 | integrity sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ== | ||
3178 | dependencies: | 3789 | dependencies: |
3179 | async-foreach "^0.1.3" | 3790 | async-foreach "^0.1.3" |
3180 | chalk "^1.1.1" | 3791 | chalk "^1.1.1" |
@@ -3183,15 +3794,13 @@ node-sass@^4.7.2: | |||
3183 | get-stdin "^4.0.1" | 3794 | get-stdin "^4.0.1" |
3184 | glob "^7.0.3" | 3795 | glob "^7.0.3" |
3185 | in-publish "^2.0.0" | 3796 | in-publish "^2.0.0" |
3186 | lodash.assign "^4.2.0" | 3797 | lodash "^4.17.11" |
3187 | lodash.clonedeep "^4.3.2" | ||
3188 | lodash.mergewith "^4.6.0" | ||
3189 | meow "^3.7.0" | 3798 | meow "^3.7.0" |
3190 | mkdirp "^0.5.1" | 3799 | mkdirp "^0.5.1" |
3191 | nan "^2.3.2" | 3800 | nan "^2.13.2" |
3192 | node-gyp "^3.3.1" | 3801 | node-gyp "^3.8.0" |
3193 | npmlog "^4.0.0" | 3802 | npmlog "^4.0.0" |
3194 | request "~2.79.0" | 3803 | request "^2.88.0" |
3195 | sass-graph "^2.2.4" | 3804 | sass-graph "^2.2.4" |
3196 | stdout-stream "^1.4.0" | 3805 | stdout-stream "^1.4.0" |
3197 | "true-case-path" "^1.0.2" | 3806 | "true-case-path" "^1.0.2" |
@@ -3199,53 +3808,79 @@ node-sass@^4.7.2: | |||
3199 | "nopt@2 || 3": | 3808 | "nopt@2 || 3": |
3200 | version "3.0.6" | 3809 | version "3.0.6" |
3201 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" | 3810 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" |
3811 | integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= | ||
3202 | dependencies: | 3812 | dependencies: |
3203 | abbrev "1" | 3813 | abbrev "1" |
3204 | 3814 | ||
3205 | nopt@^4.0.1: | 3815 | nopt@^4.0.1: |
3206 | version "4.0.1" | 3816 | version "4.0.1" |
3207 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" | 3817 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" |
3818 | integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= | ||
3208 | dependencies: | 3819 | dependencies: |
3209 | abbrev "1" | 3820 | abbrev "1" |
3210 | osenv "^0.1.4" | 3821 | osenv "^0.1.4" |
3211 | 3822 | ||
3212 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: | 3823 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: |
3213 | version "2.4.0" | 3824 | version "2.5.0" |
3214 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" | 3825 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" |
3826 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== | ||
3215 | dependencies: | 3827 | dependencies: |
3216 | hosted-git-info "^2.1.4" | 3828 | hosted-git-info "^2.1.4" |
3217 | is-builtin-module "^1.0.0" | 3829 | resolve "^1.10.0" |
3218 | semver "2 || 3 || 4 || 5" | 3830 | semver "2 || 3 || 4 || 5" |
3219 | validate-npm-package-license "^3.0.1" | 3831 | validate-npm-package-license "^3.0.1" |
3220 | 3832 | ||
3221 | normalize-path@^2.0.0, normalize-path@^2.0.1: | 3833 | normalize-path@^2.1.1: |
3222 | version "2.1.1" | 3834 | version "2.1.1" |
3223 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" | 3835 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" |
3836 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= | ||
3224 | dependencies: | 3837 | dependencies: |
3225 | remove-trailing-separator "^1.0.1" | 3838 | remove-trailing-separator "^1.0.1" |
3226 | 3839 | ||
3840 | normalize-path@^3.0.0: | ||
3841 | version "3.0.0" | ||
3842 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" | ||
3843 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== | ||
3844 | |||
3227 | normalize-range@^0.1.2: | 3845 | normalize-range@^0.1.2: |
3228 | version "0.1.2" | 3846 | version "0.1.2" |
3229 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" | 3847 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" |
3848 | integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= | ||
3230 | 3849 | ||
3231 | normalize-url@^1.4.0: | 3850 | normalize-url@^1.4.0: |
3232 | version "1.9.1" | 3851 | version "1.9.1" |
3233 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" | 3852 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" |
3853 | integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= | ||
3234 | dependencies: | 3854 | dependencies: |
3235 | object-assign "^4.0.1" | 3855 | object-assign "^4.0.1" |
3236 | prepend-http "^1.0.0" | 3856 | prepend-http "^1.0.0" |
3237 | query-string "^4.1.0" | 3857 | query-string "^4.1.0" |
3238 | sort-keys "^1.0.0" | 3858 | sort-keys "^1.0.0" |
3239 | 3859 | ||
3860 | npm-bundled@^1.0.1: | ||
3861 | version "1.0.6" | ||
3862 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" | ||
3863 | integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== | ||
3864 | |||
3865 | npm-packlist@^1.1.6: | ||
3866 | version "1.4.1" | ||
3867 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" | ||
3868 | integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== | ||
3869 | dependencies: | ||
3870 | ignore-walk "^3.0.1" | ||
3871 | npm-bundled "^1.0.1" | ||
3872 | |||
3240 | npm-run-path@^2.0.0: | 3873 | npm-run-path@^2.0.0: |
3241 | version "2.0.2" | 3874 | version "2.0.2" |
3242 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" | 3875 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" |
3876 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= | ||
3243 | dependencies: | 3877 | dependencies: |
3244 | path-key "^2.0.0" | 3878 | path-key "^2.0.0" |
3245 | 3879 | ||
3246 | "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: | 3880 | "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: |
3247 | version "4.1.2" | 3881 | version "4.1.2" |
3248 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" | 3882 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" |
3883 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== | ||
3249 | dependencies: | 3884 | dependencies: |
3250 | are-we-there-yet "~1.1.2" | 3885 | are-we-there-yet "~1.1.2" |
3251 | console-control-strings "~1.1.0" | 3886 | console-control-strings "~1.1.0" |
@@ -3255,45 +3890,74 @@ npm-run-path@^2.0.0: | |||
3255 | num2fraction@^1.2.2: | 3890 | num2fraction@^1.2.2: |
3256 | version "1.2.2" | 3891 | version "1.2.2" |
3257 | resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" | 3892 | resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" |
3893 | integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= | ||
3258 | 3894 | ||
3259 | number-is-nan@^1.0.0: | 3895 | number-is-nan@^1.0.0: |
3260 | version "1.0.1" | 3896 | version "1.0.1" |
3261 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" | 3897 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" |
3898 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= | ||
3262 | 3899 | ||
3263 | oauth-sign@~0.8.1, oauth-sign@~0.8.2: | 3900 | oauth-sign@~0.9.0: |
3264 | version "0.8.2" | 3901 | version "0.9.0" |
3265 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" | 3902 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" |
3903 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== | ||
3266 | 3904 | ||
3267 | object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: | 3905 | object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: |
3268 | version "4.1.1" | 3906 | version "4.1.1" |
3269 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" | 3907 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" |
3908 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= | ||
3270 | 3909 | ||
3271 | object.omit@^2.0.0: | 3910 | object-copy@^0.1.0: |
3272 | version "2.0.1" | 3911 | version "0.1.0" |
3273 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" | 3912 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" |
3913 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= | ||
3274 | dependencies: | 3914 | dependencies: |
3275 | for-own "^0.1.4" | 3915 | copy-descriptor "^0.1.0" |
3276 | is-extendable "^0.1.1" | 3916 | define-property "^0.2.5" |
3917 | kind-of "^3.0.3" | ||
3918 | |||
3919 | object-keys@^1.0.12: | ||
3920 | version "1.1.1" | ||
3921 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" | ||
3922 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== | ||
3923 | |||
3924 | object-visit@^1.0.0: | ||
3925 | version "1.0.1" | ||
3926 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" | ||
3927 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= | ||
3928 | dependencies: | ||
3929 | isobject "^3.0.0" | ||
3930 | |||
3931 | object.pick@^1.3.0: | ||
3932 | version "1.3.0" | ||
3933 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" | ||
3934 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= | ||
3935 | dependencies: | ||
3936 | isobject "^3.0.1" | ||
3277 | 3937 | ||
3278 | once@^1.3.0, once@^1.3.3: | 3938 | once@^1.3.0: |
3279 | version "1.4.0" | 3939 | version "1.4.0" |
3280 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" | 3940 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" |
3941 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= | ||
3281 | dependencies: | 3942 | dependencies: |
3282 | wrappy "1" | 3943 | wrappy "1" |
3283 | 3944 | ||
3284 | onetime@^1.0.0: | 3945 | onetime@^1.0.0: |
3285 | version "1.1.0" | 3946 | version "1.1.0" |
3286 | resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" | 3947 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" |
3948 | integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= | ||
3287 | 3949 | ||
3288 | onetime@^2.0.0: | 3950 | onetime@^2.0.0: |
3289 | version "2.0.1" | 3951 | version "2.0.1" |
3290 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" | 3952 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" |
3953 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= | ||
3291 | dependencies: | 3954 | dependencies: |
3292 | mimic-fn "^1.0.0" | 3955 | mimic-fn "^1.0.0" |
3293 | 3956 | ||
3294 | optionator@^0.8.1, optionator@^0.8.2: | 3957 | optionator@^0.8.1, optionator@^0.8.2: |
3295 | version "0.8.2" | 3958 | version "0.8.2" |
3296 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" | 3959 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" |
3960 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= | ||
3297 | dependencies: | 3961 | dependencies: |
3298 | deep-is "~0.1.3" | 3962 | deep-is "~0.1.3" |
3299 | fast-levenshtein "~2.0.4" | 3963 | fast-levenshtein "~2.0.4" |
@@ -3305,20 +3969,24 @@ optionator@^0.8.1, optionator@^0.8.2: | |||
3305 | os-browserify@^0.3.0: | 3969 | os-browserify@^0.3.0: |
3306 | version "0.3.0" | 3970 | version "0.3.0" |
3307 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" | 3971 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" |
3972 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= | ||
3308 | 3973 | ||
3309 | os-homedir@^1.0.0: | 3974 | os-homedir@^1.0.0: |
3310 | version "1.0.2" | 3975 | version "1.0.2" |
3311 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" | 3976 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" |
3977 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= | ||
3312 | 3978 | ||
3313 | os-locale@^1.4.0: | 3979 | os-locale@^1.4.0: |
3314 | version "1.4.0" | 3980 | version "1.4.0" |
3315 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" | 3981 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" |
3982 | integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= | ||
3316 | dependencies: | 3983 | dependencies: |
3317 | lcid "^1.0.0" | 3984 | lcid "^1.0.0" |
3318 | 3985 | ||
3319 | os-locale@^2.0.0: | 3986 | os-locale@^2.0.0: |
3320 | version "2.1.0" | 3987 | version "2.1.0" |
3321 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" | 3988 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" |
3989 | integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== | ||
3322 | dependencies: | 3990 | dependencies: |
3323 | execa "^0.7.0" | 3991 | execa "^0.7.0" |
3324 | lcid "^1.0.0" | 3992 | lcid "^1.0.0" |
@@ -3327,10 +3995,12 @@ os-locale@^2.0.0: | |||
3327 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: | 3995 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: |
3328 | version "1.0.2" | 3996 | version "1.0.2" |
3329 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" | 3997 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" |
3998 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= | ||
3330 | 3999 | ||
3331 | osenv@0, osenv@^0.1.4: | 4000 | osenv@0, osenv@^0.1.4: |
3332 | version "0.1.4" | 4001 | version "0.1.5" |
3333 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" | 4002 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" |
4003 | integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== | ||
3334 | dependencies: | 4004 | dependencies: |
3335 | os-homedir "^1.0.0" | 4005 | os-homedir "^1.0.0" |
3336 | os-tmpdir "^1.0.0" | 4006 | os-tmpdir "^1.0.0" |
@@ -3338,85 +4008,102 @@ osenv@0, osenv@^0.1.4: | |||
3338 | p-finally@^1.0.0: | 4008 | p-finally@^1.0.0: |
3339 | version "1.0.0" | 4009 | version "1.0.0" |
3340 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" | 4010 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" |
4011 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= | ||
3341 | 4012 | ||
3342 | p-limit@^1.1.0: | 4013 | p-limit@^1.1.0: |
3343 | version "1.2.0" | 4014 | version "1.3.0" |
3344 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" | 4015 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" |
4016 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== | ||
3345 | dependencies: | 4017 | dependencies: |
3346 | p-try "^1.0.0" | 4018 | p-try "^1.0.0" |
3347 | 4019 | ||
3348 | p-locate@^2.0.0: | 4020 | p-locate@^2.0.0: |
3349 | version "2.0.0" | 4021 | version "2.0.0" |
3350 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" | 4022 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" |
4023 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= | ||
3351 | dependencies: | 4024 | dependencies: |
3352 | p-limit "^1.1.0" | 4025 | p-limit "^1.1.0" |
3353 | 4026 | ||
3354 | p-try@^1.0.0: | 4027 | p-try@^1.0.0: |
3355 | version "1.0.0" | 4028 | version "1.0.0" |
3356 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" | 4029 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" |
4030 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= | ||
3357 | 4031 | ||
3358 | pako@~1.0.5: | 4032 | pako@~1.0.5: |
3359 | version "1.0.6" | 4033 | version "1.0.10" |
3360 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" | 4034 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" |
4035 | integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== | ||
3361 | 4036 | ||
3362 | parse-asn1@^5.0.0: | 4037 | parse-asn1@^5.0.0: |
3363 | version "5.1.0" | 4038 | version "5.1.4" |
3364 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" | 4039 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" |
4040 | integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== | ||
3365 | dependencies: | 4041 | dependencies: |
3366 | asn1.js "^4.0.0" | 4042 | asn1.js "^4.0.0" |
3367 | browserify-aes "^1.0.0" | 4043 | browserify-aes "^1.0.0" |
3368 | create-hash "^1.1.0" | 4044 | create-hash "^1.1.0" |
3369 | evp_bytestokey "^1.0.0" | 4045 | evp_bytestokey "^1.0.0" |
3370 | pbkdf2 "^3.0.3" | 4046 | pbkdf2 "^3.0.3" |
3371 | 4047 | safe-buffer "^5.1.1" | |
3372 | parse-glob@^3.0.4: | ||
3373 | version "3.0.4" | ||
3374 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" | ||
3375 | dependencies: | ||
3376 | glob-base "^0.3.0" | ||
3377 | is-dotfile "^1.0.0" | ||
3378 | is-extglob "^1.0.0" | ||
3379 | is-glob "^2.0.0" | ||
3380 | 4048 | ||
3381 | parse-json@^2.2.0: | 4049 | parse-json@^2.2.0: |
3382 | version "2.2.0" | 4050 | version "2.2.0" |
3383 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" | 4051 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" |
4052 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= | ||
3384 | dependencies: | 4053 | dependencies: |
3385 | error-ex "^1.2.0" | 4054 | error-ex "^1.2.0" |
3386 | 4055 | ||
4056 | pascalcase@^0.1.1: | ||
4057 | version "0.1.1" | ||
4058 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" | ||
4059 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= | ||
4060 | |||
3387 | path-browserify@0.0.0: | 4061 | path-browserify@0.0.0: |
3388 | version "0.0.0" | 4062 | version "0.0.0" |
3389 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" | 4063 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" |
4064 | integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= | ||
4065 | |||
4066 | path-dirname@^1.0.0: | ||
4067 | version "1.0.2" | ||
4068 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" | ||
4069 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= | ||
3390 | 4070 | ||
3391 | path-exists@^2.0.0: | 4071 | path-exists@^2.0.0: |
3392 | version "2.1.0" | 4072 | version "2.1.0" |
3393 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" | 4073 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" |
4074 | integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= | ||
3394 | dependencies: | 4075 | dependencies: |
3395 | pinkie-promise "^2.0.0" | 4076 | pinkie-promise "^2.0.0" |
3396 | 4077 | ||
3397 | path-exists@^3.0.0: | 4078 | path-exists@^3.0.0: |
3398 | version "3.0.0" | 4079 | version "3.0.0" |
3399 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" | 4080 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" |
4081 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= | ||
3400 | 4082 | ||
3401 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: | 4083 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: |
3402 | version "1.0.1" | 4084 | version "1.0.1" |
3403 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" | 4085 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" |
4086 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= | ||
3404 | 4087 | ||
3405 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: | 4088 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: |
3406 | version "1.0.2" | 4089 | version "1.0.2" |
3407 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" | 4090 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" |
4091 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= | ||
3408 | 4092 | ||
3409 | path-key@^2.0.0: | 4093 | path-key@^2.0.0: |
3410 | version "2.0.1" | 4094 | version "2.0.1" |
3411 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" | 4095 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" |
4096 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= | ||
3412 | 4097 | ||
3413 | path-parse@^1.0.5: | 4098 | path-parse@^1.0.6: |
3414 | version "1.0.5" | 4099 | version "1.0.6" |
3415 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" | 4100 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" |
4101 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== | ||
3416 | 4102 | ||
3417 | path-type@^1.0.0: | 4103 | path-type@^1.0.0: |
3418 | version "1.1.0" | 4104 | version "1.1.0" |
3419 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" | 4105 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" |
4106 | integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= | ||
3420 | dependencies: | 4107 | dependencies: |
3421 | graceful-fs "^4.1.2" | 4108 | graceful-fs "^4.1.2" |
3422 | pify "^2.0.0" | 4109 | pify "^2.0.0" |
@@ -3425,12 +4112,14 @@ path-type@^1.0.0: | |||
3425 | path-type@^2.0.0: | 4112 | path-type@^2.0.0: |
3426 | version "2.0.0" | 4113 | version "2.0.0" |
3427 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" | 4114 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" |
4115 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= | ||
3428 | dependencies: | 4116 | dependencies: |
3429 | pify "^2.0.0" | 4117 | pify "^2.0.0" |
3430 | 4118 | ||
3431 | pbkdf2@^3.0.3: | 4119 | pbkdf2@^3.0.3: |
3432 | version "3.0.14" | 4120 | version "3.0.17" |
3433 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" | 4121 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" |
4122 | integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== | ||
3434 | dependencies: | 4123 | dependencies: |
3435 | create-hash "^1.1.2" | 4124 | create-hash "^1.1.2" |
3436 | create-hmac "^1.1.4" | 4125 | create-hmac "^1.1.4" |
@@ -3438,55 +4127,59 @@ pbkdf2@^3.0.3: | |||
3438 | safe-buffer "^5.0.1" | 4127 | safe-buffer "^5.0.1" |
3439 | sha.js "^2.4.8" | 4128 | sha.js "^2.4.8" |
3440 | 4129 | ||
3441 | performance-now@^0.2.0: | ||
3442 | version "0.2.0" | ||
3443 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" | ||
3444 | |||
3445 | performance-now@^2.1.0: | 4130 | performance-now@^2.1.0: |
3446 | version "2.1.0" | 4131 | version "2.1.0" |
3447 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" | 4132 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" |
4133 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= | ||
3448 | 4134 | ||
3449 | pify@^2.0.0: | 4135 | pify@^2.0.0: |
3450 | version "2.3.0" | 4136 | version "2.3.0" |
3451 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" | 4137 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" |
4138 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= | ||
3452 | 4139 | ||
3453 | pify@^3.0.0: | 4140 | pify@^3.0.0: |
3454 | version "3.0.0" | 4141 | version "3.0.0" |
3455 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" | 4142 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" |
4143 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= | ||
3456 | 4144 | ||
3457 | pinkie-promise@^2.0.0: | 4145 | pinkie-promise@^2.0.0: |
3458 | version "2.0.1" | 4146 | version "2.0.1" |
3459 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" | 4147 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" |
4148 | integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= | ||
3460 | dependencies: | 4149 | dependencies: |
3461 | pinkie "^2.0.0" | 4150 | pinkie "^2.0.0" |
3462 | 4151 | ||
3463 | pinkie@^2.0.0: | 4152 | pinkie@^2.0.0: |
3464 | version "2.0.4" | 4153 | version "2.0.4" |
3465 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" | 4154 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" |
3466 | 4155 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= | |
3467 | pkg-dir@^1.0.0: | ||
3468 | version "1.0.0" | ||
3469 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" | ||
3470 | dependencies: | ||
3471 | find-up "^1.0.0" | ||
3472 | 4156 | ||
3473 | pkg-dir@^2.0.0: | 4157 | pkg-dir@^2.0.0: |
3474 | version "2.0.0" | 4158 | version "2.0.0" |
3475 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" | 4159 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" |
4160 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= | ||
3476 | dependencies: | 4161 | dependencies: |
3477 | find-up "^2.1.0" | 4162 | find-up "^2.1.0" |
3478 | 4163 | ||
3479 | pluralize@^1.2.1: | 4164 | pluralize@^1.2.1: |
3480 | version "1.2.1" | 4165 | version "1.2.1" |
3481 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" | 4166 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" |
4167 | integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU= | ||
3482 | 4168 | ||
3483 | pluralize@^7.0.0: | 4169 | pluralize@^7.0.0: |
3484 | version "7.0.0" | 4170 | version "7.0.0" |
3485 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" | 4171 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" |
4172 | integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== | ||
4173 | |||
4174 | posix-character-classes@^0.1.0: | ||
4175 | version "0.1.1" | ||
4176 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" | ||
4177 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= | ||
3486 | 4178 | ||
3487 | postcss-calc@^5.2.0: | 4179 | postcss-calc@^5.2.0: |
3488 | version "5.3.1" | 4180 | version "5.3.1" |
3489 | resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" | 4181 | resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" |
4182 | integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14= | ||
3490 | dependencies: | 4183 | dependencies: |
3491 | postcss "^5.0.2" | 4184 | postcss "^5.0.2" |
3492 | postcss-message-helpers "^2.0.0" | 4185 | postcss-message-helpers "^2.0.0" |
@@ -3495,6 +4188,7 @@ postcss-calc@^5.2.0: | |||
3495 | postcss-colormin@^2.1.8: | 4188 | postcss-colormin@^2.1.8: |
3496 | version "2.2.2" | 4189 | version "2.2.2" |
3497 | resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" | 4190 | resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" |
4191 | integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks= | ||
3498 | dependencies: | 4192 | dependencies: |
3499 | colormin "^1.0.5" | 4193 | colormin "^1.0.5" |
3500 | postcss "^5.0.13" | 4194 | postcss "^5.0.13" |
@@ -3503,6 +4197,7 @@ postcss-colormin@^2.1.8: | |||
3503 | postcss-convert-values@^2.3.4: | 4197 | postcss-convert-values@^2.3.4: |
3504 | version "2.6.1" | 4198 | version "2.6.1" |
3505 | resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" | 4199 | resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" |
4200 | integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0= | ||
3506 | dependencies: | 4201 | dependencies: |
3507 | postcss "^5.0.11" | 4202 | postcss "^5.0.11" |
3508 | postcss-value-parser "^3.1.2" | 4203 | postcss-value-parser "^3.1.2" |
@@ -3510,44 +4205,50 @@ postcss-convert-values@^2.3.4: | |||
3510 | postcss-discard-comments@^2.0.4: | 4205 | postcss-discard-comments@^2.0.4: |
3511 | version "2.0.4" | 4206 | version "2.0.4" |
3512 | resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" | 4207 | resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" |
4208 | integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0= | ||
3513 | dependencies: | 4209 | dependencies: |
3514 | postcss "^5.0.14" | 4210 | postcss "^5.0.14" |
3515 | 4211 | ||
3516 | postcss-discard-duplicates@^2.0.1: | 4212 | postcss-discard-duplicates@^2.0.1: |
3517 | version "2.1.0" | 4213 | version "2.1.0" |
3518 | resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" | 4214 | resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" |
4215 | integrity sha1-uavye4isGIFYpesSq8riAmO5GTI= | ||
3519 | dependencies: | 4216 | dependencies: |
3520 | postcss "^5.0.4" | 4217 | postcss "^5.0.4" |
3521 | 4218 | ||
3522 | postcss-discard-empty@^2.0.1: | 4219 | postcss-discard-empty@^2.0.1: |
3523 | version "2.1.0" | 4220 | version "2.1.0" |
3524 | resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" | 4221 | resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" |
4222 | integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU= | ||
3525 | dependencies: | 4223 | dependencies: |
3526 | postcss "^5.0.14" | 4224 | postcss "^5.0.14" |
3527 | 4225 | ||
3528 | postcss-discard-overridden@^0.1.1: | 4226 | postcss-discard-overridden@^0.1.1: |
3529 | version "0.1.1" | 4227 | version "0.1.1" |
3530 | resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" | 4228 | resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" |
4229 | integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg= | ||
3531 | dependencies: | 4230 | dependencies: |
3532 | postcss "^5.0.16" | 4231 | postcss "^5.0.16" |
3533 | 4232 | ||
3534 | postcss-discard-unused@^2.2.1: | 4233 | postcss-discard-unused@^2.2.1: |
3535 | version "2.2.3" | 4234 | version "2.2.3" |
3536 | resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" | 4235 | resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" |
4236 | integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM= | ||
3537 | dependencies: | 4237 | dependencies: |
3538 | postcss "^5.0.14" | 4238 | postcss "^5.0.14" |
3539 | uniqs "^2.0.0" | 4239 | uniqs "^2.0.0" |
3540 | 4240 | ||
3541 | postcss-filter-plugins@^2.0.0: | 4241 | postcss-filter-plugins@^2.0.0: |
3542 | version "2.0.2" | 4242 | version "2.0.3" |
3543 | resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" | 4243 | resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" |
4244 | integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== | ||
3544 | dependencies: | 4245 | dependencies: |
3545 | postcss "^5.0.4" | 4246 | postcss "^5.0.4" |
3546 | uniqid "^4.0.0" | ||
3547 | 4247 | ||
3548 | postcss-merge-idents@^2.1.5: | 4248 | postcss-merge-idents@^2.1.5: |
3549 | version "2.1.7" | 4249 | version "2.1.7" |
3550 | resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" | 4250 | resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" |
4251 | integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA= | ||
3551 | dependencies: | 4252 | dependencies: |
3552 | has "^1.0.1" | 4253 | has "^1.0.1" |
3553 | postcss "^5.0.10" | 4254 | postcss "^5.0.10" |
@@ -3556,12 +4257,14 @@ postcss-merge-idents@^2.1.5: | |||
3556 | postcss-merge-longhand@^2.0.1: | 4257 | postcss-merge-longhand@^2.0.1: |
3557 | version "2.0.2" | 4258 | version "2.0.2" |
3558 | resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" | 4259 | resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" |
4260 | integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg= | ||
3559 | dependencies: | 4261 | dependencies: |
3560 | postcss "^5.0.4" | 4262 | postcss "^5.0.4" |
3561 | 4263 | ||
3562 | postcss-merge-rules@^2.0.3: | 4264 | postcss-merge-rules@^2.0.3: |
3563 | version "2.1.2" | 4265 | version "2.1.2" |
3564 | resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" | 4266 | resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" |
4267 | integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE= | ||
3565 | dependencies: | 4268 | dependencies: |
3566 | browserslist "^1.5.2" | 4269 | browserslist "^1.5.2" |
3567 | caniuse-api "^1.5.2" | 4270 | caniuse-api "^1.5.2" |
@@ -3572,10 +4275,12 @@ postcss-merge-rules@^2.0.3: | |||
3572 | postcss-message-helpers@^2.0.0: | 4275 | postcss-message-helpers@^2.0.0: |
3573 | version "2.0.0" | 4276 | version "2.0.0" |
3574 | resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" | 4277 | resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" |
4278 | integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= | ||
3575 | 4279 | ||
3576 | postcss-minify-font-values@^1.0.2: | 4280 | postcss-minify-font-values@^1.0.2: |
3577 | version "1.0.5" | 4281 | version "1.0.5" |
3578 | resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" | 4282 | resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" |
4283 | integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k= | ||
3579 | dependencies: | 4284 | dependencies: |
3580 | object-assign "^4.0.1" | 4285 | object-assign "^4.0.1" |
3581 | postcss "^5.0.4" | 4286 | postcss "^5.0.4" |
@@ -3584,6 +4289,7 @@ postcss-minify-font-values@^1.0.2: | |||
3584 | postcss-minify-gradients@^1.0.1: | 4289 | postcss-minify-gradients@^1.0.1: |
3585 | version "1.0.5" | 4290 | version "1.0.5" |
3586 | resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" | 4291 | resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" |
4292 | integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE= | ||
3587 | dependencies: | 4293 | dependencies: |
3588 | postcss "^5.0.12" | 4294 | postcss "^5.0.12" |
3589 | postcss-value-parser "^3.3.0" | 4295 | postcss-value-parser "^3.3.0" |
@@ -3591,6 +4297,7 @@ postcss-minify-gradients@^1.0.1: | |||
3591 | postcss-minify-params@^1.0.4: | 4297 | postcss-minify-params@^1.0.4: |
3592 | version "1.2.2" | 4298 | version "1.2.2" |
3593 | resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" | 4299 | resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" |
4300 | integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM= | ||
3594 | dependencies: | 4301 | dependencies: |
3595 | alphanum-sort "^1.0.1" | 4302 | alphanum-sort "^1.0.1" |
3596 | postcss "^5.0.2" | 4303 | postcss "^5.0.2" |
@@ -3600,6 +4307,7 @@ postcss-minify-params@^1.0.4: | |||
3600 | postcss-minify-selectors@^2.0.4: | 4307 | postcss-minify-selectors@^2.0.4: |
3601 | version "2.1.1" | 4308 | version "2.1.1" |
3602 | resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" | 4309 | resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" |
4310 | integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8= | ||
3603 | dependencies: | 4311 | dependencies: |
3604 | alphanum-sort "^1.0.2" | 4312 | alphanum-sort "^1.0.2" |
3605 | has "^1.0.1" | 4313 | has "^1.0.1" |
@@ -3607,14 +4315,16 @@ postcss-minify-selectors@^2.0.4: | |||
3607 | postcss-selector-parser "^2.0.0" | 4315 | postcss-selector-parser "^2.0.0" |
3608 | 4316 | ||
3609 | postcss-modules-extract-imports@^1.2.0: | 4317 | postcss-modules-extract-imports@^1.2.0: |
3610 | version "1.2.0" | 4318 | version "1.2.1" |
3611 | resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" | 4319 | resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" |
4320 | integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== | ||
3612 | dependencies: | 4321 | dependencies: |
3613 | postcss "^6.0.1" | 4322 | postcss "^6.0.1" |
3614 | 4323 | ||
3615 | postcss-modules-local-by-default@^1.2.0: | 4324 | postcss-modules-local-by-default@^1.2.0: |
3616 | version "1.2.0" | 4325 | version "1.2.0" |
3617 | resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" | 4326 | resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" |
4327 | integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= | ||
3618 | dependencies: | 4328 | dependencies: |
3619 | css-selector-tokenizer "^0.7.0" | 4329 | css-selector-tokenizer "^0.7.0" |
3620 | postcss "^6.0.1" | 4330 | postcss "^6.0.1" |
@@ -3622,6 +4332,7 @@ postcss-modules-local-by-default@^1.2.0: | |||
3622 | postcss-modules-scope@^1.1.0: | 4332 | postcss-modules-scope@^1.1.0: |
3623 | version "1.1.0" | 4333 | version "1.1.0" |
3624 | resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" | 4334 | resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" |
4335 | integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= | ||
3625 | dependencies: | 4336 | dependencies: |
3626 | css-selector-tokenizer "^0.7.0" | 4337 | css-selector-tokenizer "^0.7.0" |
3627 | postcss "^6.0.1" | 4338 | postcss "^6.0.1" |
@@ -3629,6 +4340,7 @@ postcss-modules-scope@^1.1.0: | |||
3629 | postcss-modules-values@^1.3.0: | 4340 | postcss-modules-values@^1.3.0: |
3630 | version "1.3.0" | 4341 | version "1.3.0" |
3631 | resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" | 4342 | resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" |
4343 | integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= | ||
3632 | dependencies: | 4344 | dependencies: |
3633 | icss-replace-symbols "^1.1.0" | 4345 | icss-replace-symbols "^1.1.0" |
3634 | postcss "^6.0.1" | 4346 | postcss "^6.0.1" |
@@ -3636,12 +4348,14 @@ postcss-modules-values@^1.3.0: | |||
3636 | postcss-normalize-charset@^1.1.0: | 4348 | postcss-normalize-charset@^1.1.0: |
3637 | version "1.1.1" | 4349 | version "1.1.1" |
3638 | resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" | 4350 | resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" |
4351 | integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E= | ||
3639 | dependencies: | 4352 | dependencies: |
3640 | postcss "^5.0.5" | 4353 | postcss "^5.0.5" |
3641 | 4354 | ||
3642 | postcss-normalize-url@^3.0.7: | 4355 | postcss-normalize-url@^3.0.7: |
3643 | version "3.0.8" | 4356 | version "3.0.8" |
3644 | resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" | 4357 | resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" |
4358 | integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI= | ||
3645 | dependencies: | 4359 | dependencies: |
3646 | is-absolute-url "^2.0.0" | 4360 | is-absolute-url "^2.0.0" |
3647 | normalize-url "^1.4.0" | 4361 | normalize-url "^1.4.0" |
@@ -3651,6 +4365,7 @@ postcss-normalize-url@^3.0.7: | |||
3651 | postcss-ordered-values@^2.1.0: | 4365 | postcss-ordered-values@^2.1.0: |
3652 | version "2.2.3" | 4366 | version "2.2.3" |
3653 | resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" | 4367 | resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" |
4368 | integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0= | ||
3654 | dependencies: | 4369 | dependencies: |
3655 | postcss "^5.0.4" | 4370 | postcss "^5.0.4" |
3656 | postcss-value-parser "^3.0.1" | 4371 | postcss-value-parser "^3.0.1" |
@@ -3658,6 +4373,7 @@ postcss-ordered-values@^2.1.0: | |||
3658 | postcss-reduce-idents@^2.2.2: | 4373 | postcss-reduce-idents@^2.2.2: |
3659 | version "2.4.0" | 4374 | version "2.4.0" |
3660 | resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" | 4375 | resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" |
4376 | integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM= | ||
3661 | dependencies: | 4377 | dependencies: |
3662 | postcss "^5.0.4" | 4378 | postcss "^5.0.4" |
3663 | postcss-value-parser "^3.0.2" | 4379 | postcss-value-parser "^3.0.2" |
@@ -3665,12 +4381,14 @@ postcss-reduce-idents@^2.2.2: | |||
3665 | postcss-reduce-initial@^1.0.0: | 4381 | postcss-reduce-initial@^1.0.0: |
3666 | version "1.0.1" | 4382 | version "1.0.1" |
3667 | resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" | 4383 | resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" |
4384 | integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo= | ||
3668 | dependencies: | 4385 | dependencies: |
3669 | postcss "^5.0.4" | 4386 | postcss "^5.0.4" |
3670 | 4387 | ||
3671 | postcss-reduce-transforms@^1.0.3: | 4388 | postcss-reduce-transforms@^1.0.3: |
3672 | version "1.0.4" | 4389 | version "1.0.4" |
3673 | resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" | 4390 | resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" |
4391 | integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE= | ||
3674 | dependencies: | 4392 | dependencies: |
3675 | has "^1.0.1" | 4393 | has "^1.0.1" |
3676 | postcss "^5.0.8" | 4394 | postcss "^5.0.8" |
@@ -3679,6 +4397,7 @@ postcss-reduce-transforms@^1.0.3: | |||
3679 | postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: | 4397 | postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: |
3680 | version "2.2.3" | 4398 | version "2.2.3" |
3681 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" | 4399 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" |
4400 | integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= | ||
3682 | dependencies: | 4401 | dependencies: |
3683 | flatten "^1.0.2" | 4402 | flatten "^1.0.2" |
3684 | indexes-of "^1.0.1" | 4403 | indexes-of "^1.0.1" |
@@ -3687,6 +4406,7 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: | |||
3687 | postcss-svgo@^2.1.1: | 4406 | postcss-svgo@^2.1.1: |
3688 | version "2.1.6" | 4407 | version "2.1.6" |
3689 | resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" | 4408 | resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" |
4409 | integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0= | ||
3690 | dependencies: | 4410 | dependencies: |
3691 | is-svg "^2.0.0" | 4411 | is-svg "^2.0.0" |
3692 | postcss "^5.0.14" | 4412 | postcss "^5.0.14" |
@@ -3696,18 +4416,21 @@ postcss-svgo@^2.1.1: | |||
3696 | postcss-unique-selectors@^2.0.2: | 4416 | postcss-unique-selectors@^2.0.2: |
3697 | version "2.0.2" | 4417 | version "2.0.2" |
3698 | resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" | 4418 | resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" |
4419 | integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0= | ||
3699 | dependencies: | 4420 | dependencies: |
3700 | alphanum-sort "^1.0.1" | 4421 | alphanum-sort "^1.0.1" |
3701 | postcss "^5.0.4" | 4422 | postcss "^5.0.4" |
3702 | uniqs "^2.0.0" | 4423 | uniqs "^2.0.0" |
3703 | 4424 | ||
3704 | postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: | 4425 | postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: |
3705 | version "3.3.0" | 4426 | version "3.3.1" |
3706 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" | 4427 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" |
4428 | integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== | ||
3707 | 4429 | ||
3708 | postcss-zindex@^2.0.1: | 4430 | postcss-zindex@^2.0.1: |
3709 | version "2.2.0" | 4431 | version "2.2.0" |
3710 | resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" | 4432 | resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" |
4433 | integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI= | ||
3711 | dependencies: | 4434 | dependencies: |
3712 | has "^1.0.1" | 4435 | has "^1.0.1" |
3713 | postcss "^5.0.4" | 4436 | postcss "^5.0.4" |
@@ -3716,6 +4439,7 @@ postcss-zindex@^2.0.1: | |||
3716 | postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: | 4439 | postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: |
3717 | version "5.2.18" | 4440 | version "5.2.18" |
3718 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" | 4441 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" |
4442 | integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== | ||
3719 | dependencies: | 4443 | dependencies: |
3720 | chalk "^1.1.3" | 4444 | chalk "^1.1.3" |
3721 | js-base64 "^2.1.9" | 4445 | js-base64 "^2.1.9" |
@@ -3723,98 +4447,115 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 | |||
3723 | supports-color "^3.2.3" | 4447 | supports-color "^3.2.3" |
3724 | 4448 | ||
3725 | postcss@^6.0.1: | 4449 | postcss@^6.0.1: |
3726 | version "6.0.17" | 4450 | version "6.0.23" |
3727 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.17.tgz#e259a051ca513f81e9afd0c21f7f82eda50c65c5" | 4451 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" |
4452 | integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== | ||
3728 | dependencies: | 4453 | dependencies: |
3729 | chalk "^2.3.0" | 4454 | chalk "^2.4.1" |
3730 | source-map "^0.6.1" | 4455 | source-map "^0.6.1" |
3731 | supports-color "^5.1.0" | 4456 | supports-color "^5.4.0" |
3732 | 4457 | ||
3733 | prelude-ls@~1.1.2: | 4458 | prelude-ls@~1.1.2: |
3734 | version "1.1.2" | 4459 | version "1.1.2" |
3735 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" | 4460 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" |
4461 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= | ||
3736 | 4462 | ||
3737 | prepend-http@^1.0.0: | 4463 | prepend-http@^1.0.0: |
3738 | version "1.0.4" | 4464 | version "1.0.4" |
3739 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" | 4465 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" |
4466 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= | ||
3740 | 4467 | ||
3741 | preserve@^0.2.0: | 4468 | private@^0.1.6, private@^0.1.8: |
3742 | version "0.2.0" | ||
3743 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" | ||
3744 | |||
3745 | private@^0.1.6, private@^0.1.7: | ||
3746 | version "0.1.8" | 4469 | version "0.1.8" |
3747 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" | 4470 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" |
4471 | integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== | ||
3748 | 4472 | ||
3749 | process-nextick-args@~1.0.6: | 4473 | process-nextick-args@~2.0.0: |
3750 | version "1.0.7" | 4474 | version "2.0.0" |
3751 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" | 4475 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" |
4476 | integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== | ||
3752 | 4477 | ||
3753 | process@^0.11.10: | 4478 | process@^0.11.10: |
3754 | version "0.11.10" | 4479 | version "0.11.10" |
3755 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" | 4480 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" |
4481 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= | ||
3756 | 4482 | ||
3757 | progress@^1.1.8: | 4483 | progress@^1.1.8: |
3758 | version "1.1.8" | 4484 | version "1.1.8" |
3759 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" | 4485 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" |
4486 | integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= | ||
3760 | 4487 | ||
3761 | progress@^2.0.0: | 4488 | progress@^2.0.0: |
3762 | version "2.0.0" | 4489 | version "2.0.3" |
3763 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" | 4490 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" |
4491 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== | ||
3764 | 4492 | ||
3765 | prr@~1.0.1: | 4493 | prr@~1.0.1: |
3766 | version "1.0.1" | 4494 | version "1.0.1" |
3767 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" | 4495 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" |
4496 | integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= | ||
3768 | 4497 | ||
3769 | pseudomap@^1.0.2: | 4498 | pseudomap@^1.0.2: |
3770 | version "1.0.2" | 4499 | version "1.0.2" |
3771 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" | 4500 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" |
4501 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= | ||
4502 | |||
4503 | psl@^1.1.24: | ||
4504 | version "1.1.31" | ||
4505 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" | ||
4506 | integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== | ||
3772 | 4507 | ||
3773 | public-encrypt@^4.0.0: | 4508 | public-encrypt@^4.0.0: |
3774 | version "4.0.0" | 4509 | version "4.0.3" |
3775 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" | 4510 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" |
4511 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== | ||
3776 | dependencies: | 4512 | dependencies: |
3777 | bn.js "^4.1.0" | 4513 | bn.js "^4.1.0" |
3778 | browserify-rsa "^4.0.0" | 4514 | browserify-rsa "^4.0.0" |
3779 | create-hash "^1.1.0" | 4515 | create-hash "^1.1.0" |
3780 | parse-asn1 "^5.0.0" | 4516 | parse-asn1 "^5.0.0" |
3781 | randombytes "^2.0.1" | 4517 | randombytes "^2.0.1" |
4518 | safe-buffer "^5.1.2" | ||
3782 | 4519 | ||
3783 | punycode@1.3.2: | 4520 | punycode@1.3.2: |
3784 | version "1.3.2" | 4521 | version "1.3.2" |
3785 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" | 4522 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" |
4523 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= | ||
3786 | 4524 | ||
3787 | punycode@^1.2.4, punycode@^1.4.1: | 4525 | punycode@^1.2.4, punycode@^1.4.1: |
3788 | version "1.4.1" | 4526 | version "1.4.1" |
3789 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" | 4527 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" |
4528 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= | ||
4529 | |||
4530 | punycode@^2.1.0: | ||
4531 | version "2.1.1" | ||
4532 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" | ||
4533 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== | ||
3790 | 4534 | ||
3791 | pure-extras@^1.0.0: | 4535 | pure-extras@^1.0.0: |
3792 | version "1.0.0" | 4536 | version "1.0.0" |
3793 | resolved "https://registry.yarnpkg.com/pure-extras/-/pure-extras-1.0.0.tgz#37e3cc3590cba850981454cda5db28e27a63871a" | 4537 | resolved "https://registry.yarnpkg.com/pure-extras/-/pure-extras-1.0.0.tgz#37e3cc3590cba850981454cda5db28e27a63871a" |
4538 | integrity sha1-N+PMNZDLqFCYFFTNpdso4npjhxo= | ||
3794 | 4539 | ||
3795 | purecss@^1.0.0: | 4540 | purecss@^1.0.0: |
3796 | version "1.0.0" | 4541 | version "1.0.0" |
3797 | resolved "https://registry.yarnpkg.com/purecss/-/purecss-1.0.0.tgz#3dbcd9e2a7592448a69acb705cce16311bf4b785" | 4542 | resolved "https://registry.yarnpkg.com/purecss/-/purecss-1.0.0.tgz#3dbcd9e2a7592448a69acb705cce16311bf4b785" |
4543 | integrity sha512-gfC78WCOWNnfkzulx9aoWwcl+0JflhwKeJ+k9s/ZyIawfYNA4bqBmt0DtfgtQK9iuYMtGfbdE8R2AQMjSWR2VQ== | ||
3798 | 4544 | ||
3799 | q@^1.1.2: | 4545 | q@^1.1.2: |
3800 | version "1.5.1" | 4546 | version "1.5.1" |
3801 | resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" | 4547 | resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" |
4548 | integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= | ||
3802 | 4549 | ||
3803 | qs@~6.3.0: | 4550 | qs@~6.5.2: |
3804 | version "6.3.2" | 4551 | version "6.5.2" |
3805 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" | 4552 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" |
3806 | 4553 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== | |
3807 | qs@~6.4.0: | ||
3808 | version "6.4.0" | ||
3809 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" | ||
3810 | |||
3811 | qs@~6.5.1: | ||
3812 | version "6.5.1" | ||
3813 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" | ||
3814 | 4554 | ||
3815 | query-string@^4.1.0: | 4555 | query-string@^4.1.0: |
3816 | version "4.3.4" | 4556 | version "4.3.4" |
3817 | resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" | 4557 | resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" |
4558 | integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= | ||
3818 | dependencies: | 4559 | dependencies: |
3819 | object-assign "^4.1.0" | 4560 | object-assign "^4.1.0" |
3820 | strict-uri-encode "^1.0.0" | 4561 | strict-uri-encode "^1.0.0" |
@@ -3822,36 +4563,34 @@ query-string@^4.1.0: | |||
3822 | querystring-es3@^0.2.0: | 4563 | querystring-es3@^0.2.0: |
3823 | version "0.2.1" | 4564 | version "0.2.1" |
3824 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" | 4565 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" |
4566 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= | ||
3825 | 4567 | ||
3826 | querystring@0.2.0: | 4568 | querystring@0.2.0: |
3827 | version "0.2.0" | 4569 | version "0.2.0" |
3828 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" | 4570 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" |
3829 | 4571 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= | |
3830 | randomatic@^1.1.3: | ||
3831 | version "1.1.7" | ||
3832 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" | ||
3833 | dependencies: | ||
3834 | is-number "^3.0.0" | ||
3835 | kind-of "^4.0.0" | ||
3836 | 4572 | ||
3837 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: | 4573 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: |
3838 | version "2.0.6" | 4574 | version "2.1.0" |
3839 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" | 4575 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" |
4576 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== | ||
3840 | dependencies: | 4577 | dependencies: |
3841 | safe-buffer "^5.1.0" | 4578 | safe-buffer "^5.1.0" |
3842 | 4579 | ||
3843 | randomfill@^1.0.3: | 4580 | randomfill@^1.0.3: |
3844 | version "1.0.3" | 4581 | version "1.0.4" |
3845 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" | 4582 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" |
4583 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== | ||
3846 | dependencies: | 4584 | dependencies: |
3847 | randombytes "^2.0.5" | 4585 | randombytes "^2.0.5" |
3848 | safe-buffer "^5.1.0" | 4586 | safe-buffer "^5.1.0" |
3849 | 4587 | ||
3850 | rc@^1.1.7: | 4588 | rc@^1.2.7: |
3851 | version "1.2.5" | 4589 | version "1.2.8" |
3852 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" | 4590 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" |
4591 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== | ||
3853 | dependencies: | 4592 | dependencies: |
3854 | deep-extend "~0.4.0" | 4593 | deep-extend "^0.6.0" |
3855 | ini "~1.3.0" | 4594 | ini "~1.3.0" |
3856 | minimist "^1.2.0" | 4595 | minimist "^1.2.0" |
3857 | strip-json-comments "~2.0.1" | 4596 | strip-json-comments "~2.0.1" |
@@ -3859,6 +4598,7 @@ rc@^1.1.7: | |||
3859 | read-pkg-up@^1.0.1: | 4598 | read-pkg-up@^1.0.1: |
3860 | version "1.0.1" | 4599 | version "1.0.1" |
3861 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" | 4600 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" |
4601 | integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= | ||
3862 | dependencies: | 4602 | dependencies: |
3863 | find-up "^1.0.0" | 4603 | find-up "^1.0.0" |
3864 | read-pkg "^1.0.0" | 4604 | read-pkg "^1.0.0" |
@@ -3866,6 +4606,7 @@ read-pkg-up@^1.0.1: | |||
3866 | read-pkg-up@^2.0.0: | 4606 | read-pkg-up@^2.0.0: |
3867 | version "2.0.0" | 4607 | version "2.0.0" |
3868 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" | 4608 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" |
4609 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= | ||
3869 | dependencies: | 4610 | dependencies: |
3870 | find-up "^2.0.0" | 4611 | find-up "^2.0.0" |
3871 | read-pkg "^2.0.0" | 4612 | read-pkg "^2.0.0" |
@@ -3873,6 +4614,7 @@ read-pkg-up@^2.0.0: | |||
3873 | read-pkg@^1.0.0: | 4614 | read-pkg@^1.0.0: |
3874 | version "1.1.0" | 4615 | version "1.1.0" |
3875 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" | 4616 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" |
4617 | integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= | ||
3876 | dependencies: | 4618 | dependencies: |
3877 | load-json-file "^1.0.0" | 4619 | load-json-file "^1.0.0" |
3878 | normalize-package-data "^2.3.2" | 4620 | normalize-package-data "^2.3.2" |
@@ -3881,35 +4623,38 @@ read-pkg@^1.0.0: | |||
3881 | read-pkg@^2.0.0: | 4623 | read-pkg@^2.0.0: |
3882 | version "2.0.0" | 4624 | version "2.0.0" |
3883 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" | 4625 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" |
4626 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= | ||
3884 | dependencies: | 4627 | dependencies: |
3885 | load-json-file "^2.0.0" | 4628 | load-json-file "^2.0.0" |
3886 | normalize-package-data "^2.3.2" | 4629 | normalize-package-data "^2.3.2" |
3887 | path-type "^2.0.0" | 4630 | path-type "^2.0.0" |
3888 | 4631 | ||
3889 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.3.3: | 4632 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: |
3890 | version "2.3.3" | 4633 | version "2.3.6" |
3891 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" | 4634 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" |
4635 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== | ||
3892 | dependencies: | 4636 | dependencies: |
3893 | core-util-is "~1.0.0" | 4637 | core-util-is "~1.0.0" |
3894 | inherits "~2.0.3" | 4638 | inherits "~2.0.3" |
3895 | isarray "~1.0.0" | 4639 | isarray "~1.0.0" |
3896 | process-nextick-args "~1.0.6" | 4640 | process-nextick-args "~2.0.0" |
3897 | safe-buffer "~5.1.1" | 4641 | safe-buffer "~5.1.1" |
3898 | string_decoder "~1.0.3" | 4642 | string_decoder "~1.1.1" |
3899 | util-deprecate "~1.0.1" | 4643 | util-deprecate "~1.0.1" |
3900 | 4644 | ||
3901 | readdirp@^2.0.0: | 4645 | readdirp@^2.2.1: |
3902 | version "2.1.0" | 4646 | version "2.2.1" |
3903 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" | 4647 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" |
4648 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== | ||
3904 | dependencies: | 4649 | dependencies: |
3905 | graceful-fs "^4.1.2" | 4650 | graceful-fs "^4.1.11" |
3906 | minimatch "^3.0.2" | 4651 | micromatch "^3.1.10" |
3907 | readable-stream "^2.0.2" | 4652 | readable-stream "^2.0.2" |
3908 | set-immediate-shim "^1.0.1" | ||
3909 | 4653 | ||
3910 | readline2@^1.0.1: | 4654 | readline2@^1.0.1: |
3911 | version "1.0.1" | 4655 | version "1.0.1" |
3912 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" | 4656 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" |
4657 | integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU= | ||
3913 | dependencies: | 4658 | dependencies: |
3914 | code-point-at "^1.0.0" | 4659 | code-point-at "^1.0.0" |
3915 | is-fullwidth-code-point "^1.0.0" | 4660 | is-fullwidth-code-point "^1.0.0" |
@@ -3918,6 +4663,7 @@ readline2@^1.0.1: | |||
3918 | redent@^1.0.0: | 4663 | redent@^1.0.0: |
3919 | version "1.0.0" | 4664 | version "1.0.0" |
3920 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" | 4665 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" |
4666 | integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= | ||
3921 | dependencies: | 4667 | dependencies: |
3922 | indent-string "^2.1.0" | 4668 | indent-string "^2.1.0" |
3923 | strip-indent "^1.0.1" | 4669 | strip-indent "^1.0.1" |
@@ -3925,6 +4671,7 @@ redent@^1.0.0: | |||
3925 | reduce-css-calc@^1.2.6: | 4671 | reduce-css-calc@^1.2.6: |
3926 | version "1.3.0" | 4672 | version "1.3.0" |
3927 | resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" | 4673 | resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" |
4674 | integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= | ||
3928 | dependencies: | 4675 | dependencies: |
3929 | balanced-match "^0.4.2" | 4676 | balanced-match "^0.4.2" |
3930 | math-expression-evaluator "^1.2.14" | 4677 | math-expression-evaluator "^1.2.14" |
@@ -3933,34 +4680,46 @@ reduce-css-calc@^1.2.6: | |||
3933 | reduce-function-call@^1.0.1: | 4680 | reduce-function-call@^1.0.1: |
3934 | version "1.0.2" | 4681 | version "1.0.2" |
3935 | resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" | 4682 | resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" |
4683 | integrity sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk= | ||
3936 | dependencies: | 4684 | dependencies: |
3937 | balanced-match "^0.4.2" | 4685 | balanced-match "^0.4.2" |
3938 | 4686 | ||
3939 | regenerate@^1.2.1: | 4687 | regenerate@^1.2.1: |
3940 | version "1.3.3" | 4688 | version "1.4.0" |
3941 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" | 4689 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" |
4690 | integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== | ||
3942 | 4691 | ||
3943 | regenerator-runtime@^0.11.0: | 4692 | regenerator-runtime@^0.11.0: |
3944 | version "0.11.1" | 4693 | version "0.11.1" |
3945 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" | 4694 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" |
4695 | integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== | ||
3946 | 4696 | ||
3947 | regenerator-transform@^0.10.0: | 4697 | regenerator-transform@^0.10.0: |
3948 | version "0.10.1" | 4698 | version "0.10.1" |
3949 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" | 4699 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" |
4700 | integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== | ||
3950 | dependencies: | 4701 | dependencies: |
3951 | babel-runtime "^6.18.0" | 4702 | babel-runtime "^6.18.0" |
3952 | babel-types "^6.19.0" | 4703 | babel-types "^6.19.0" |
3953 | private "^0.1.6" | 4704 | private "^0.1.6" |
3954 | 4705 | ||
3955 | regex-cache@^0.4.2: | 4706 | regex-not@^1.0.0, regex-not@^1.0.2: |
3956 | version "0.4.4" | 4707 | version "1.0.2" |
3957 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" | 4708 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" |
4709 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== | ||
3958 | dependencies: | 4710 | dependencies: |
3959 | is-equal-shallow "^0.1.3" | 4711 | extend-shallow "^3.0.2" |
4712 | safe-regex "^1.1.0" | ||
4713 | |||
4714 | regexpp@^1.0.1: | ||
4715 | version "1.1.0" | ||
4716 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" | ||
4717 | integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== | ||
3960 | 4718 | ||
3961 | regexpu-core@^1.0.0: | 4719 | regexpu-core@^1.0.0: |
3962 | version "1.0.0" | 4720 | version "1.0.0" |
3963 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" | 4721 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" |
4722 | integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= | ||
3964 | dependencies: | 4723 | dependencies: |
3965 | regenerate "^1.2.1" | 4724 | regenerate "^1.2.1" |
3966 | regjsgen "^0.2.0" | 4725 | regjsgen "^0.2.0" |
@@ -3969,6 +4728,7 @@ regexpu-core@^1.0.0: | |||
3969 | regexpu-core@^2.0.0: | 4728 | regexpu-core@^2.0.0: |
3970 | version "2.0.0" | 4729 | version "2.0.0" |
3971 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" | 4730 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" |
4731 | integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= | ||
3972 | dependencies: | 4732 | dependencies: |
3973 | regenerate "^1.2.1" | 4733 | regenerate "^1.2.1" |
3974 | regjsgen "^0.2.0" | 4734 | regjsgen "^0.2.0" |
@@ -3977,121 +4737,77 @@ regexpu-core@^2.0.0: | |||
3977 | regjsgen@^0.2.0: | 4737 | regjsgen@^0.2.0: |
3978 | version "0.2.0" | 4738 | version "0.2.0" |
3979 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" | 4739 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" |
4740 | integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= | ||
3980 | 4741 | ||
3981 | regjsparser@^0.1.4: | 4742 | regjsparser@^0.1.4: |
3982 | version "0.1.5" | 4743 | version "0.1.5" |
3983 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" | 4744 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" |
4745 | integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= | ||
3984 | dependencies: | 4746 | dependencies: |
3985 | jsesc "~0.5.0" | 4747 | jsesc "~0.5.0" |
3986 | 4748 | ||
3987 | remove-trailing-separator@^1.0.1: | 4749 | remove-trailing-separator@^1.0.1: |
3988 | version "1.1.0" | 4750 | version "1.1.0" |
3989 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" | 4751 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" |
4752 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= | ||
3990 | 4753 | ||
3991 | repeat-element@^1.1.2: | 4754 | repeat-element@^1.1.2: |
3992 | version "1.1.2" | 4755 | version "1.1.3" |
3993 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" | 4756 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" |
4757 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== | ||
3994 | 4758 | ||
3995 | repeat-string@^1.5.2: | 4759 | repeat-string@^1.5.2, repeat-string@^1.6.1: |
3996 | version "1.6.1" | 4760 | version "1.6.1" |
3997 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" | 4761 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" |
4762 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= | ||
3998 | 4763 | ||
3999 | repeating@^2.0.0: | 4764 | repeating@^2.0.0: |
4000 | version "2.0.1" | 4765 | version "2.0.1" |
4001 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" | 4766 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" |
4767 | integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= | ||
4002 | dependencies: | 4768 | dependencies: |
4003 | is-finite "^1.0.0" | 4769 | is-finite "^1.0.0" |
4004 | 4770 | ||
4005 | request@2: | 4771 | request@^2.87.0, request@^2.88.0: |
4006 | version "2.83.0" | 4772 | version "2.88.0" |
4007 | resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" | 4773 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" |
4774 | integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== | ||
4008 | dependencies: | 4775 | dependencies: |
4009 | aws-sign2 "~0.7.0" | 4776 | aws-sign2 "~0.7.0" |
4010 | aws4 "^1.6.0" | 4777 | aws4 "^1.8.0" |
4011 | caseless "~0.12.0" | 4778 | caseless "~0.12.0" |
4012 | combined-stream "~1.0.5" | 4779 | combined-stream "~1.0.6" |
4013 | extend "~3.0.1" | 4780 | extend "~3.0.2" |
4014 | forever-agent "~0.6.1" | 4781 | forever-agent "~0.6.1" |
4015 | form-data "~2.3.1" | 4782 | form-data "~2.3.2" |
4016 | har-validator "~5.0.3" | 4783 | har-validator "~5.1.0" |
4017 | hawk "~6.0.2" | ||
4018 | http-signature "~1.2.0" | 4784 | http-signature "~1.2.0" |
4019 | is-typedarray "~1.0.0" | 4785 | is-typedarray "~1.0.0" |
4020 | isstream "~0.1.2" | 4786 | isstream "~0.1.2" |
4021 | json-stringify-safe "~5.0.1" | 4787 | json-stringify-safe "~5.0.1" |
4022 | mime-types "~2.1.17" | 4788 | mime-types "~2.1.19" |
4023 | oauth-sign "~0.8.2" | 4789 | oauth-sign "~0.9.0" |
4024 | performance-now "^2.1.0" | 4790 | performance-now "^2.1.0" |
4025 | qs "~6.5.1" | 4791 | qs "~6.5.2" |
4026 | safe-buffer "^5.1.1" | 4792 | safe-buffer "^5.1.2" |
4027 | stringstream "~0.0.5" | 4793 | tough-cookie "~2.4.3" |
4028 | tough-cookie "~2.3.3" | ||
4029 | tunnel-agent "^0.6.0" | 4794 | tunnel-agent "^0.6.0" |
4030 | uuid "^3.1.0" | 4795 | uuid "^3.3.2" |
4031 | |||
4032 | request@2.81.0: | ||
4033 | version "2.81.0" | ||
4034 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" | ||
4035 | dependencies: | ||
4036 | aws-sign2 "~0.6.0" | ||
4037 | aws4 "^1.2.1" | ||
4038 | caseless "~0.12.0" | ||
4039 | combined-stream "~1.0.5" | ||
4040 | extend "~3.0.0" | ||
4041 | forever-agent "~0.6.1" | ||
4042 | form-data "~2.1.1" | ||
4043 | har-validator "~4.2.1" | ||
4044 | hawk "~3.1.3" | ||
4045 | http-signature "~1.1.0" | ||
4046 | is-typedarray "~1.0.0" | ||
4047 | isstream "~0.1.2" | ||
4048 | json-stringify-safe "~5.0.1" | ||
4049 | mime-types "~2.1.7" | ||
4050 | oauth-sign "~0.8.1" | ||
4051 | performance-now "^0.2.0" | ||
4052 | qs "~6.4.0" | ||
4053 | safe-buffer "^5.0.1" | ||
4054 | stringstream "~0.0.4" | ||
4055 | tough-cookie "~2.3.0" | ||
4056 | tunnel-agent "^0.6.0" | ||
4057 | uuid "^3.0.0" | ||
4058 | |||
4059 | request@~2.79.0: | ||
4060 | version "2.79.0" | ||
4061 | resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" | ||
4062 | dependencies: | ||
4063 | aws-sign2 "~0.6.0" | ||
4064 | aws4 "^1.2.1" | ||
4065 | caseless "~0.11.0" | ||
4066 | combined-stream "~1.0.5" | ||
4067 | extend "~3.0.0" | ||
4068 | forever-agent "~0.6.1" | ||
4069 | form-data "~2.1.1" | ||
4070 | har-validator "~2.0.6" | ||
4071 | hawk "~3.1.3" | ||
4072 | http-signature "~1.1.0" | ||
4073 | is-typedarray "~1.0.0" | ||
4074 | isstream "~0.1.2" | ||
4075 | json-stringify-safe "~5.0.1" | ||
4076 | mime-types "~2.1.7" | ||
4077 | oauth-sign "~0.8.1" | ||
4078 | qs "~6.3.0" | ||
4079 | stringstream "~0.0.4" | ||
4080 | tough-cookie "~2.3.0" | ||
4081 | tunnel-agent "~0.4.1" | ||
4082 | uuid "^3.0.0" | ||
4083 | 4796 | ||
4084 | require-directory@^2.1.1: | 4797 | require-directory@^2.1.1: |
4085 | version "2.1.1" | 4798 | version "2.1.1" |
4086 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" | 4799 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" |
4800 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= | ||
4087 | 4801 | ||
4088 | require-main-filename@^1.0.1: | 4802 | require-main-filename@^1.0.1: |
4089 | version "1.0.1" | 4803 | version "1.0.1" |
4090 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" | 4804 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" |
4805 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= | ||
4091 | 4806 | ||
4092 | require-uncached@^1.0.2, require-uncached@^1.0.3: | 4807 | require-uncached@^1.0.2, require-uncached@^1.0.3: |
4093 | version "1.0.3" | 4808 | version "1.0.3" |
4094 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" | 4809 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" |
4810 | integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= | ||
4095 | dependencies: | 4811 | dependencies: |
4096 | caller-path "^0.1.0" | 4812 | caller-path "^0.1.0" |
4097 | resolve-from "^1.0.0" | 4813 | resolve-from "^1.0.0" |
@@ -4099,16 +4815,24 @@ require-uncached@^1.0.2, require-uncached@^1.0.3: | |||
4099 | resolve-from@^1.0.0: | 4815 | resolve-from@^1.0.0: |
4100 | version "1.0.1" | 4816 | version "1.0.1" |
4101 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" | 4817 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" |
4818 | integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= | ||
4102 | 4819 | ||
4103 | resolve@^1.5.0: | 4820 | resolve-url@^0.2.1: |
4104 | version "1.5.0" | 4821 | version "0.2.1" |
4105 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" | 4822 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" |
4823 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= | ||
4824 | |||
4825 | resolve@^1.10.0, resolve@^1.5.0: | ||
4826 | version "1.11.0" | ||
4827 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" | ||
4828 | integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== | ||
4106 | dependencies: | 4829 | dependencies: |
4107 | path-parse "^1.0.5" | 4830 | path-parse "^1.0.6" |
4108 | 4831 | ||
4109 | restore-cursor@^1.0.1: | 4832 | restore-cursor@^1.0.1: |
4110 | version "1.0.1" | 4833 | version "1.0.1" |
4111 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" | 4834 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" |
4835 | integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= | ||
4112 | dependencies: | 4836 | dependencies: |
4113 | exit-hook "^1.0.0" | 4837 | exit-hook "^1.0.0" |
4114 | onetime "^1.0.0" | 4838 | onetime "^1.0.0" |
@@ -4116,62 +4840,90 @@ restore-cursor@^1.0.1: | |||
4116 | restore-cursor@^2.0.0: | 4840 | restore-cursor@^2.0.0: |
4117 | version "2.0.0" | 4841 | version "2.0.0" |
4118 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" | 4842 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" |
4843 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= | ||
4119 | dependencies: | 4844 | dependencies: |
4120 | onetime "^2.0.0" | 4845 | onetime "^2.0.0" |
4121 | signal-exit "^3.0.2" | 4846 | signal-exit "^3.0.2" |
4122 | 4847 | ||
4848 | ret@~0.1.10: | ||
4849 | version "0.1.15" | ||
4850 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" | ||
4851 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== | ||
4852 | |||
4123 | right-align@^0.1.1: | 4853 | right-align@^0.1.1: |
4124 | version "0.1.3" | 4854 | version "0.1.3" |
4125 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" | 4855 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" |
4856 | integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= | ||
4126 | dependencies: | 4857 | dependencies: |
4127 | align-text "^0.1.1" | 4858 | align-text "^0.1.1" |
4128 | 4859 | ||
4129 | rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: | 4860 | rimraf@2, rimraf@^2.6.1, rimraf@~2.6.2: |
4130 | version "2.6.2" | 4861 | version "2.6.3" |
4131 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" | 4862 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" |
4863 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== | ||
4132 | dependencies: | 4864 | dependencies: |
4133 | glob "^7.0.5" | 4865 | glob "^7.1.3" |
4134 | 4866 | ||
4135 | ripemd160@^2.0.0, ripemd160@^2.0.1: | 4867 | ripemd160@^2.0.0, ripemd160@^2.0.1: |
4136 | version "2.0.1" | 4868 | version "2.0.2" |
4137 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" | 4869 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" |
4870 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== | ||
4138 | dependencies: | 4871 | dependencies: |
4139 | hash-base "^2.0.0" | 4872 | hash-base "^3.0.0" |
4140 | inherits "^2.0.1" | 4873 | inherits "^2.0.1" |
4141 | 4874 | ||
4142 | run-async@^0.1.0: | 4875 | run-async@^0.1.0: |
4143 | version "0.1.0" | 4876 | version "0.1.0" |
4144 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" | 4877 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" |
4878 | integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k= | ||
4145 | dependencies: | 4879 | dependencies: |
4146 | once "^1.3.0" | 4880 | once "^1.3.0" |
4147 | 4881 | ||
4148 | run-async@^2.2.0: | 4882 | run-async@^2.2.0: |
4149 | version "2.3.0" | 4883 | version "2.3.0" |
4150 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" | 4884 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" |
4885 | integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= | ||
4151 | dependencies: | 4886 | dependencies: |
4152 | is-promise "^2.1.0" | 4887 | is-promise "^2.1.0" |
4153 | 4888 | ||
4154 | rx-lite-aggregates@^4.0.8: | 4889 | rx-lite-aggregates@^4.0.8: |
4155 | version "4.0.8" | 4890 | version "4.0.8" |
4156 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" | 4891 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" |
4892 | integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= | ||
4157 | dependencies: | 4893 | dependencies: |
4158 | rx-lite "*" | 4894 | rx-lite "*" |
4159 | 4895 | ||
4160 | rx-lite@*, rx-lite@^4.0.8: | 4896 | rx-lite@*, rx-lite@^4.0.8: |
4161 | version "4.0.8" | 4897 | version "4.0.8" |
4162 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" | 4898 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" |
4899 | integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= | ||
4163 | 4900 | ||
4164 | rx-lite@^3.1.2: | 4901 | rx-lite@^3.1.2: |
4165 | version "3.1.2" | 4902 | version "3.1.2" |
4166 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" | 4903 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" |
4904 | integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI= | ||
4905 | |||
4906 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: | ||
4907 | version "5.1.2" | ||
4908 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" | ||
4909 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== | ||
4910 | |||
4911 | safe-regex@^1.1.0: | ||
4912 | version "1.1.0" | ||
4913 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" | ||
4914 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= | ||
4915 | dependencies: | ||
4916 | ret "~0.1.10" | ||
4167 | 4917 | ||
4168 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: | 4918 | "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: |
4169 | version "5.1.1" | 4919 | version "2.1.2" |
4170 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" | 4920 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" |
4921 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== | ||
4171 | 4922 | ||
4172 | sass-graph@^2.2.4: | 4923 | sass-graph@^2.2.4: |
4173 | version "2.2.4" | 4924 | version "2.2.4" |
4174 | resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" | 4925 | resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" |
4926 | integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= | ||
4175 | dependencies: | 4927 | dependencies: |
4176 | glob "^7.0.0" | 4928 | glob "^7.0.0" |
4177 | lodash "^4.0.0" | 4929 | lodash "^4.0.0" |
@@ -4179,8 +4931,9 @@ sass-graph@^2.2.4: | |||
4179 | yargs "^7.0.0" | 4931 | yargs "^7.0.0" |
4180 | 4932 | ||
4181 | sass-lint@^1.12.1: | 4933 | sass-lint@^1.12.1: |
4182 | version "1.12.1" | 4934 | version "1.13.1" |
4183 | resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.12.1.tgz#630f69c216aa206b8232fb2aa907bdf3336b6d83" | 4935 | resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.13.1.tgz#5fd2b2792e9215272335eb0f0dc607f61e8acc8f" |
4936 | integrity sha512-DSyah8/MyjzW2BWYmQWekYEKir44BpLqrCFsgs9iaWiVTcwZfwXHF586hh3D1n+/9ihUNMfd8iHAyb9KkGgs7Q== | ||
4184 | dependencies: | 4937 | dependencies: |
4185 | commander "^2.8.1" | 4938 | commander "^2.8.1" |
4186 | eslint "^2.7.0" | 4939 | eslint "^2.7.0" |
@@ -4198,269 +4951,397 @@ sass-lint@^1.12.1: | |||
4198 | util "^0.10.3" | 4951 | util "^0.10.3" |
4199 | 4952 | ||
4200 | sass-loader@^6.0.6: | 4953 | sass-loader@^6.0.6: |
4201 | version "6.0.6" | 4954 | version "6.0.7" |
4202 | resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.6.tgz#e9d5e6c1f155faa32a4b26d7a9b7107c225e40f9" | 4955 | resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" |
4956 | integrity sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA== | ||
4203 | dependencies: | 4957 | dependencies: |
4204 | async "^2.1.5" | 4958 | clone-deep "^2.0.1" |
4205 | clone-deep "^0.3.0" | ||
4206 | loader-utils "^1.0.1" | 4959 | loader-utils "^1.0.1" |
4207 | lodash.tail "^4.1.1" | 4960 | lodash.tail "^4.1.1" |
4961 | neo-async "^2.5.0" | ||
4208 | pify "^3.0.0" | 4962 | pify "^3.0.0" |
4209 | 4963 | ||
4210 | sax@~1.2.1: | 4964 | sax@^1.2.4, sax@~1.2.1: |
4211 | version "1.2.4" | 4965 | version "1.2.4" |
4212 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" | 4966 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" |
4967 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== | ||
4213 | 4968 | ||
4214 | schema-utils@^0.3.0: | 4969 | schema-utils@^0.3.0: |
4215 | version "0.3.0" | 4970 | version "0.3.0" |
4216 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" | 4971 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" |
4972 | integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8= | ||
4217 | dependencies: | 4973 | dependencies: |
4218 | ajv "^5.0.0" | 4974 | ajv "^5.0.0" |
4219 | 4975 | ||
4976 | schema-utils@^0.4.5: | ||
4977 | version "0.4.7" | ||
4978 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" | ||
4979 | integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== | ||
4980 | dependencies: | ||
4981 | ajv "^6.1.0" | ||
4982 | ajv-keywords "^3.1.0" | ||
4983 | |||
4220 | scss-tokenizer@^0.2.3: | 4984 | scss-tokenizer@^0.2.3: |
4221 | version "0.2.3" | 4985 | version "0.2.3" |
4222 | resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" | 4986 | resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" |
4987 | integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= | ||
4223 | dependencies: | 4988 | dependencies: |
4224 | js-base64 "^2.1.8" | 4989 | js-base64 "^2.1.8" |
4225 | source-map "^0.4.2" | 4990 | source-map "^0.4.2" |
4226 | 4991 | ||
4227 | "semver@2 || 3 || 4 || 5", semver@^5.3.0: | 4992 | "semver@2 || 3 || 4 || 5", semver@^5.3.0: |
4228 | version "5.5.0" | 4993 | version "5.7.0" |
4229 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" | 4994 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" |
4995 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== | ||
4230 | 4996 | ||
4231 | semver@~5.3.0: | 4997 | semver@~5.3.0: |
4232 | version "5.3.0" | 4998 | version "5.3.0" |
4233 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" | 4999 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" |
5000 | integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= | ||
4234 | 5001 | ||
4235 | set-blocking@^2.0.0, set-blocking@~2.0.0: | 5002 | set-blocking@^2.0.0, set-blocking@~2.0.0: |
4236 | version "2.0.0" | 5003 | version "2.0.0" |
4237 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" | 5004 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" |
5005 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= | ||
4238 | 5006 | ||
4239 | set-immediate-shim@^1.0.1: | 5007 | set-value@^0.4.3: |
4240 | version "1.0.1" | 5008 | version "0.4.3" |
4241 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" | 5009 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" |
5010 | integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= | ||
5011 | dependencies: | ||
5012 | extend-shallow "^2.0.1" | ||
5013 | is-extendable "^0.1.1" | ||
5014 | is-plain-object "^2.0.1" | ||
5015 | to-object-path "^0.3.0" | ||
5016 | |||
5017 | set-value@^2.0.0: | ||
5018 | version "2.0.0" | ||
5019 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" | ||
5020 | integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== | ||
5021 | dependencies: | ||
5022 | extend-shallow "^2.0.1" | ||
5023 | is-extendable "^0.1.1" | ||
5024 | is-plain-object "^2.0.3" | ||
5025 | split-string "^3.0.1" | ||
4242 | 5026 | ||
4243 | setimmediate@^1.0.4: | 5027 | setimmediate@^1.0.4: |
4244 | version "1.0.5" | 5028 | version "1.0.5" |
4245 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" | 5029 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" |
5030 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= | ||
4246 | 5031 | ||
4247 | sha.js@^2.4.0, sha.js@^2.4.8: | 5032 | sha.js@^2.4.0, sha.js@^2.4.8: |
4248 | version "2.4.10" | 5033 | version "2.4.11" |
4249 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" | 5034 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" |
5035 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== | ||
4250 | dependencies: | 5036 | dependencies: |
4251 | inherits "^2.0.1" | 5037 | inherits "^2.0.1" |
4252 | safe-buffer "^5.0.1" | 5038 | safe-buffer "^5.0.1" |
4253 | 5039 | ||
4254 | shallow-clone@^0.1.2: | 5040 | shallow-clone@^1.0.0: |
4255 | version "0.1.2" | 5041 | version "1.0.0" |
4256 | resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" | 5042 | resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" |
5043 | integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA== | ||
4257 | dependencies: | 5044 | dependencies: |
4258 | is-extendable "^0.1.1" | 5045 | is-extendable "^0.1.1" |
4259 | kind-of "^2.0.1" | 5046 | kind-of "^5.0.0" |
4260 | lazy-cache "^0.2.3" | ||
4261 | mixin-object "^2.0.1" | 5047 | mixin-object "^2.0.1" |
4262 | 5048 | ||
4263 | shebang-command@^1.2.0: | 5049 | shebang-command@^1.2.0: |
4264 | version "1.2.0" | 5050 | version "1.2.0" |
4265 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" | 5051 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" |
5052 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= | ||
4266 | dependencies: | 5053 | dependencies: |
4267 | shebang-regex "^1.0.0" | 5054 | shebang-regex "^1.0.0" |
4268 | 5055 | ||
4269 | shebang-regex@^1.0.0: | 5056 | shebang-regex@^1.0.0: |
4270 | version "1.0.0" | 5057 | version "1.0.0" |
4271 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" | 5058 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" |
5059 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= | ||
4272 | 5060 | ||
4273 | shelljs@^0.6.0: | 5061 | shelljs@^0.6.0: |
4274 | version "0.6.1" | 5062 | version "0.6.1" |
4275 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" | 5063 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" |
5064 | integrity sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg= | ||
4276 | 5065 | ||
4277 | signal-exit@^3.0.0, signal-exit@^3.0.2: | 5066 | signal-exit@^3.0.0, signal-exit@^3.0.2: |
4278 | version "3.0.2" | 5067 | version "3.0.2" |
4279 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" | 5068 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" |
5069 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= | ||
4280 | 5070 | ||
4281 | slash@^1.0.0: | 5071 | slash@^1.0.0: |
4282 | version "1.0.0" | 5072 | version "1.0.0" |
4283 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" | 5073 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" |
5074 | integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= | ||
4284 | 5075 | ||
4285 | slice-ansi@0.0.4: | 5076 | slice-ansi@0.0.4: |
4286 | version "0.0.4" | 5077 | version "0.0.4" |
4287 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" | 5078 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" |
5079 | integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= | ||
4288 | 5080 | ||
4289 | slice-ansi@1.0.0: | 5081 | slice-ansi@1.0.0: |
4290 | version "1.0.0" | 5082 | version "1.0.0" |
4291 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" | 5083 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" |
5084 | integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== | ||
4292 | dependencies: | 5085 | dependencies: |
4293 | is-fullwidth-code-point "^2.0.0" | 5086 | is-fullwidth-code-point "^2.0.0" |
4294 | 5087 | ||
4295 | sntp@1.x.x: | 5088 | snapdragon-node@^2.0.1: |
4296 | version "1.0.9" | 5089 | version "2.1.1" |
4297 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" | 5090 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" |
5091 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== | ||
4298 | dependencies: | 5092 | dependencies: |
4299 | hoek "2.x.x" | 5093 | define-property "^1.0.0" |
5094 | isobject "^3.0.0" | ||
5095 | snapdragon-util "^3.0.1" | ||
4300 | 5096 | ||
4301 | sntp@2.x.x: | 5097 | snapdragon-util@^3.0.1: |
4302 | version "2.1.0" | 5098 | version "3.0.1" |
4303 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" | 5099 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" |
5100 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== | ||
5101 | dependencies: | ||
5102 | kind-of "^3.2.0" | ||
5103 | |||
5104 | snapdragon@^0.8.1: | ||
5105 | version "0.8.2" | ||
5106 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" | ||
5107 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== | ||
4304 | dependencies: | 5108 | dependencies: |
4305 | hoek "4.x.x" | 5109 | base "^0.11.1" |
5110 | debug "^2.2.0" | ||
5111 | define-property "^0.2.5" | ||
5112 | extend-shallow "^2.0.1" | ||
5113 | map-cache "^0.2.2" | ||
5114 | source-map "^0.5.6" | ||
5115 | source-map-resolve "^0.5.0" | ||
5116 | use "^3.1.0" | ||
4306 | 5117 | ||
4307 | sort-keys@^1.0.0: | 5118 | sort-keys@^1.0.0: |
4308 | version "1.1.2" | 5119 | version "1.1.2" |
4309 | resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" | 5120 | resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" |
5121 | integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= | ||
4310 | dependencies: | 5122 | dependencies: |
4311 | is-plain-obj "^1.0.0" | 5123 | is-plain-obj "^1.0.0" |
4312 | 5124 | ||
4313 | source-list-map@^2.0.0: | 5125 | source-list-map@^2.0.0: |
4314 | version "2.0.0" | 5126 | version "2.0.1" |
4315 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" | 5127 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" |
5128 | integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== | ||
5129 | |||
5130 | source-map-resolve@^0.5.0: | ||
5131 | version "0.5.2" | ||
5132 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" | ||
5133 | integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== | ||
5134 | dependencies: | ||
5135 | atob "^2.1.1" | ||
5136 | decode-uri-component "^0.2.0" | ||
5137 | resolve-url "^0.2.1" | ||
5138 | source-map-url "^0.4.0" | ||
5139 | urix "^0.1.0" | ||
4316 | 5140 | ||
4317 | source-map-support@^0.4.15: | 5141 | source-map-support@^0.4.15: |
4318 | version "0.4.18" | 5142 | version "0.4.18" |
4319 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" | 5143 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" |
5144 | integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== | ||
4320 | dependencies: | 5145 | dependencies: |
4321 | source-map "^0.5.6" | 5146 | source-map "^0.5.6" |
4322 | 5147 | ||
5148 | source-map-url@^0.4.0: | ||
5149 | version "0.4.0" | ||
5150 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" | ||
5151 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= | ||
5152 | |||
4323 | source-map@^0.4.2: | 5153 | source-map@^0.4.2: |
4324 | version "0.4.4" | 5154 | version "0.4.4" |
4325 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" | 5155 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" |
5156 | integrity sha1-66T12pwNyZneaAMti092FzZSA2s= | ||
4326 | dependencies: | 5157 | dependencies: |
4327 | amdefine ">=0.0.4" | 5158 | amdefine ">=0.0.4" |
4328 | 5159 | ||
4329 | source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: | 5160 | source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: |
4330 | version "0.5.7" | 5161 | version "0.5.7" |
4331 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" | 5162 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" |
5163 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= | ||
4332 | 5164 | ||
4333 | source-map@^0.6.1, source-map@~0.6.1: | 5165 | source-map@^0.6.1, source-map@~0.6.1: |
4334 | version "0.6.1" | 5166 | version "0.6.1" |
4335 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" | 5167 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" |
5168 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== | ||
4336 | 5169 | ||
4337 | spdx-correct@~1.0.0: | 5170 | spdx-correct@^3.0.0: |
4338 | version "1.0.2" | 5171 | version "3.1.0" |
4339 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" | 5172 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" |
5173 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== | ||
4340 | dependencies: | 5174 | dependencies: |
4341 | spdx-license-ids "^1.0.2" | 5175 | spdx-expression-parse "^3.0.0" |
5176 | spdx-license-ids "^3.0.0" | ||
4342 | 5177 | ||
4343 | spdx-expression-parse@~1.0.0: | 5178 | spdx-exceptions@^2.1.0: |
4344 | version "1.0.4" | 5179 | version "2.2.0" |
4345 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" | 5180 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" |
5181 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== | ||
4346 | 5182 | ||
4347 | spdx-license-ids@^1.0.2: | 5183 | spdx-expression-parse@^3.0.0: |
4348 | version "1.2.2" | 5184 | version "3.0.0" |
4349 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" | 5185 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" |
5186 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== | ||
5187 | dependencies: | ||
5188 | spdx-exceptions "^2.1.0" | ||
5189 | spdx-license-ids "^3.0.0" | ||
5190 | |||
5191 | spdx-license-ids@^3.0.0: | ||
5192 | version "3.0.4" | ||
5193 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" | ||
5194 | integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== | ||
5195 | |||
5196 | split-string@^3.0.1, split-string@^3.0.2: | ||
5197 | version "3.1.0" | ||
5198 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" | ||
5199 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== | ||
5200 | dependencies: | ||
5201 | extend-shallow "^3.0.0" | ||
4350 | 5202 | ||
4351 | sprintf-js@~1.0.2: | 5203 | sprintf-js@~1.0.2: |
4352 | version "1.0.3" | 5204 | version "1.0.3" |
4353 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" | 5205 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" |
5206 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= | ||
4354 | 5207 | ||
4355 | sshpk@^1.7.0: | 5208 | sshpk@^1.7.0: |
4356 | version "1.13.1" | 5209 | version "1.16.1" |
4357 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" | 5210 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" |
5211 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== | ||
4358 | dependencies: | 5212 | dependencies: |
4359 | asn1 "~0.2.3" | 5213 | asn1 "~0.2.3" |
4360 | assert-plus "^1.0.0" | 5214 | assert-plus "^1.0.0" |
4361 | dashdash "^1.12.0" | ||
4362 | getpass "^0.1.1" | ||
4363 | optionalDependencies: | ||
4364 | bcrypt-pbkdf "^1.0.0" | 5215 | bcrypt-pbkdf "^1.0.0" |
5216 | dashdash "^1.12.0" | ||
4365 | ecc-jsbn "~0.1.1" | 5217 | ecc-jsbn "~0.1.1" |
5218 | getpass "^0.1.1" | ||
4366 | jsbn "~0.1.0" | 5219 | jsbn "~0.1.0" |
5220 | safer-buffer "^2.0.2" | ||
4367 | tweetnacl "~0.14.0" | 5221 | tweetnacl "~0.14.0" |
4368 | 5222 | ||
5223 | static-extend@^0.1.1: | ||
5224 | version "0.1.2" | ||
5225 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" | ||
5226 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= | ||
5227 | dependencies: | ||
5228 | define-property "^0.2.5" | ||
5229 | object-copy "^0.1.0" | ||
5230 | |||
4369 | stdout-stream@^1.4.0: | 5231 | stdout-stream@^1.4.0: |
4370 | version "1.4.0" | 5232 | version "1.4.1" |
4371 | resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" | 5233 | resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" |
5234 | integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== | ||
4372 | dependencies: | 5235 | dependencies: |
4373 | readable-stream "^2.0.1" | 5236 | readable-stream "^2.0.1" |
4374 | 5237 | ||
4375 | stream-browserify@^2.0.1: | 5238 | stream-browserify@^2.0.1: |
4376 | version "2.0.1" | 5239 | version "2.0.2" |
4377 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" | 5240 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" |
5241 | integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== | ||
4378 | dependencies: | 5242 | dependencies: |
4379 | inherits "~2.0.1" | 5243 | inherits "~2.0.1" |
4380 | readable-stream "^2.0.2" | 5244 | readable-stream "^2.0.2" |
4381 | 5245 | ||
4382 | stream-http@^2.7.2: | 5246 | stream-http@^2.7.2: |
4383 | version "2.8.0" | 5247 | version "2.8.3" |
4384 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" | 5248 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" |
5249 | integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== | ||
4385 | dependencies: | 5250 | dependencies: |
4386 | builtin-status-codes "^3.0.0" | 5251 | builtin-status-codes "^3.0.0" |
4387 | inherits "^2.0.1" | 5252 | inherits "^2.0.1" |
4388 | readable-stream "^2.3.3" | 5253 | readable-stream "^2.3.6" |
4389 | to-arraybuffer "^1.0.0" | 5254 | to-arraybuffer "^1.0.0" |
4390 | xtend "^4.0.0" | 5255 | xtend "^4.0.0" |
4391 | 5256 | ||
4392 | strict-uri-encode@^1.0.0: | 5257 | strict-uri-encode@^1.0.0: |
4393 | version "1.1.0" | 5258 | version "1.1.0" |
4394 | resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" | 5259 | resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" |
5260 | integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= | ||
4395 | 5261 | ||
4396 | string-width@^1.0.1, string-width@^1.0.2: | 5262 | string-width@^1.0.1, string-width@^1.0.2: |
4397 | version "1.0.2" | 5263 | version "1.0.2" |
4398 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" | 5264 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" |
5265 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= | ||
4399 | dependencies: | 5266 | dependencies: |
4400 | code-point-at "^1.0.0" | 5267 | code-point-at "^1.0.0" |
4401 | is-fullwidth-code-point "^1.0.0" | 5268 | is-fullwidth-code-point "^1.0.0" |
4402 | strip-ansi "^3.0.0" | 5269 | strip-ansi "^3.0.0" |
4403 | 5270 | ||
4404 | string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: | 5271 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: |
4405 | version "2.1.1" | 5272 | version "2.1.1" |
4406 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" | 5273 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" |
5274 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== | ||
4407 | dependencies: | 5275 | dependencies: |
4408 | is-fullwidth-code-point "^2.0.0" | 5276 | is-fullwidth-code-point "^2.0.0" |
4409 | strip-ansi "^4.0.0" | 5277 | strip-ansi "^4.0.0" |
4410 | 5278 | ||
4411 | string_decoder@^1.0.0, string_decoder@~1.0.3: | 5279 | string_decoder@^1.0.0: |
4412 | version "1.0.3" | 5280 | version "1.2.0" |
4413 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" | 5281 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" |
5282 | integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== | ||
4414 | dependencies: | 5283 | dependencies: |
4415 | safe-buffer "~5.1.0" | 5284 | safe-buffer "~5.1.0" |
4416 | 5285 | ||
4417 | stringstream@~0.0.4, stringstream@~0.0.5: | 5286 | string_decoder@~1.1.1: |
4418 | version "0.0.5" | 5287 | version "1.1.1" |
4419 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" | 5288 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" |
5289 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== | ||
5290 | dependencies: | ||
5291 | safe-buffer "~5.1.0" | ||
4420 | 5292 | ||
4421 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: | 5293 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: |
4422 | version "3.0.1" | 5294 | version "3.0.1" |
4423 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" | 5295 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" |
5296 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= | ||
4424 | dependencies: | 5297 | dependencies: |
4425 | ansi-regex "^2.0.0" | 5298 | ansi-regex "^2.0.0" |
4426 | 5299 | ||
4427 | strip-ansi@^4.0.0: | 5300 | strip-ansi@^4.0.0: |
4428 | version "4.0.0" | 5301 | version "4.0.0" |
4429 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" | 5302 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" |
5303 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= | ||
4430 | dependencies: | 5304 | dependencies: |
4431 | ansi-regex "^3.0.0" | 5305 | ansi-regex "^3.0.0" |
4432 | 5306 | ||
4433 | strip-bom@^2.0.0: | 5307 | strip-bom@^2.0.0: |
4434 | version "2.0.0" | 5308 | version "2.0.0" |
4435 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" | 5309 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" |
5310 | integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= | ||
4436 | dependencies: | 5311 | dependencies: |
4437 | is-utf8 "^0.2.0" | 5312 | is-utf8 "^0.2.0" |
4438 | 5313 | ||
4439 | strip-bom@^3.0.0: | 5314 | strip-bom@^3.0.0: |
4440 | version "3.0.0" | 5315 | version "3.0.0" |
4441 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" | 5316 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" |
5317 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= | ||
4442 | 5318 | ||
4443 | strip-eof@^1.0.0: | 5319 | strip-eof@^1.0.0: |
4444 | version "1.0.0" | 5320 | version "1.0.0" |
4445 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" | 5321 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" |
5322 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= | ||
4446 | 5323 | ||
4447 | strip-indent@^1.0.1: | 5324 | strip-indent@^1.0.1: |
4448 | version "1.0.1" | 5325 | version "1.0.1" |
4449 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" | 5326 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" |
5327 | integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= | ||
4450 | dependencies: | 5328 | dependencies: |
4451 | get-stdin "^4.0.1" | 5329 | get-stdin "^4.0.1" |
4452 | 5330 | ||
4453 | strip-json-comments@~1.0.1: | 5331 | strip-json-comments@~1.0.1: |
4454 | version "1.0.4" | 5332 | version "1.0.4" |
4455 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" | 5333 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" |
5334 | integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E= | ||
4456 | 5335 | ||
4457 | strip-json-comments@~2.0.1: | 5336 | strip-json-comments@~2.0.1: |
4458 | version "2.0.1" | 5337 | version "2.0.1" |
4459 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" | 5338 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" |
5339 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= | ||
4460 | 5340 | ||
4461 | style-loader@^0.19.1: | 5341 | style-loader@^0.19.1: |
4462 | version "0.19.1" | 5342 | version "0.19.1" |
4463 | resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.1.tgz#591ffc80bcefe268b77c5d9ebc0505d772619f85" | 5343 | resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.1.tgz#591ffc80bcefe268b77c5d9ebc0505d772619f85" |
5344 | integrity sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og== | ||
4464 | dependencies: | 5345 | dependencies: |
4465 | loader-utils "^1.0.2" | 5346 | loader-utils "^1.0.2" |
4466 | schema-utils "^0.3.0" | 5347 | schema-utils "^0.3.0" |
@@ -4468,28 +5349,33 @@ style-loader@^0.19.1: | |||
4468 | supports-color@^2.0.0: | 5349 | supports-color@^2.0.0: |
4469 | version "2.0.0" | 5350 | version "2.0.0" |
4470 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" | 5351 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" |
5352 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= | ||
4471 | 5353 | ||
4472 | supports-color@^3.2.3: | 5354 | supports-color@^3.2.3: |
4473 | version "3.2.3" | 5355 | version "3.2.3" |
4474 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" | 5356 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" |
5357 | integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= | ||
4475 | dependencies: | 5358 | dependencies: |
4476 | has-flag "^1.0.0" | 5359 | has-flag "^1.0.0" |
4477 | 5360 | ||
4478 | supports-color@^4.0.0, supports-color@^4.2.1: | 5361 | supports-color@^4.2.1: |
4479 | version "4.5.0" | 5362 | version "4.5.0" |
4480 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" | 5363 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" |
5364 | integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= | ||
4481 | dependencies: | 5365 | dependencies: |
4482 | has-flag "^2.0.0" | 5366 | has-flag "^2.0.0" |
4483 | 5367 | ||
4484 | supports-color@^5.1.0: | 5368 | supports-color@^5.3.0, supports-color@^5.4.0: |
4485 | version "5.1.0" | 5369 | version "5.5.0" |
4486 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" | 5370 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" |
5371 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== | ||
4487 | dependencies: | 5372 | dependencies: |
4488 | has-flag "^2.0.0" | 5373 | has-flag "^3.0.0" |
4489 | 5374 | ||
4490 | svgo@^0.7.0: | 5375 | svgo@^0.7.0: |
4491 | version "0.7.2" | 5376 | version "0.7.2" |
4492 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" | 5377 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" |
5378 | integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= | ||
4493 | dependencies: | 5379 | dependencies: |
4494 | coa "~1.0.1" | 5380 | coa "~1.0.1" |
4495 | colors "~1.1.2" | 5381 | colors "~1.1.2" |
@@ -4499,9 +5385,22 @@ svgo@^0.7.0: | |||
4499 | sax "~1.2.1" | 5385 | sax "~1.2.1" |
4500 | whet.extend "~0.9.9" | 5386 | whet.extend "~0.9.9" |
4501 | 5387 | ||
5388 | table@4.0.2: | ||
5389 | version "4.0.2" | ||
5390 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" | ||
5391 | integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== | ||
5392 | dependencies: | ||
5393 | ajv "^5.2.3" | ||
5394 | ajv-keywords "^2.1.0" | ||
5395 | chalk "^2.1.0" | ||
5396 | lodash "^4.17.4" | ||
5397 | slice-ansi "1.0.0" | ||
5398 | string-width "^2.1.1" | ||
5399 | |||
4502 | table@^3.7.8: | 5400 | table@^3.7.8: |
4503 | version "3.8.3" | 5401 | version "3.8.3" |
4504 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" | 5402 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" |
5403 | integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8= | ||
4505 | dependencies: | 5404 | dependencies: |
4506 | ajv "^4.7.0" | 5405 | ajv "^4.7.0" |
4507 | ajv-keywords "^1.0.0" | 5406 | ajv-keywords "^1.0.0" |
@@ -4510,121 +5409,150 @@ table@^3.7.8: | |||
4510 | slice-ansi "0.0.4" | 5409 | slice-ansi "0.0.4" |
4511 | string-width "^2.0.0" | 5410 | string-width "^2.0.0" |
4512 | 5411 | ||
4513 | table@^4.0.1: | ||
4514 | version "4.0.2" | ||
4515 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" | ||
4516 | dependencies: | ||
4517 | ajv "^5.2.3" | ||
4518 | ajv-keywords "^2.1.0" | ||
4519 | chalk "^2.1.0" | ||
4520 | lodash "^4.17.4" | ||
4521 | slice-ansi "1.0.0" | ||
4522 | string-width "^2.1.1" | ||
4523 | |||
4524 | tapable@^0.2.7: | 5412 | tapable@^0.2.7: |
4525 | version "0.2.8" | 5413 | version "0.2.9" |
4526 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" | 5414 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" |
5415 | integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== | ||
4527 | 5416 | ||
4528 | tar-pack@^3.4.0: | 5417 | tar@^2.0.0: |
4529 | version "3.4.1" | 5418 | version "2.2.2" |
4530 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" | 5419 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" |
4531 | dependencies: | 5420 | integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== |
4532 | debug "^2.2.0" | ||
4533 | fstream "^1.0.10" | ||
4534 | fstream-ignore "^1.0.5" | ||
4535 | once "^1.3.3" | ||
4536 | readable-stream "^2.1.4" | ||
4537 | rimraf "^2.5.1" | ||
4538 | tar "^2.2.1" | ||
4539 | uid-number "^0.0.6" | ||
4540 | |||
4541 | tar@^2.0.0, tar@^2.2.1: | ||
4542 | version "2.2.1" | ||
4543 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" | ||
4544 | dependencies: | 5421 | dependencies: |
4545 | block-stream "*" | 5422 | block-stream "*" |
4546 | fstream "^1.0.2" | 5423 | fstream "^1.0.12" |
4547 | inherits "2" | 5424 | inherits "2" |
4548 | 5425 | ||
5426 | tar@^4: | ||
5427 | version "4.4.8" | ||
5428 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" | ||
5429 | integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== | ||
5430 | dependencies: | ||
5431 | chownr "^1.1.1" | ||
5432 | fs-minipass "^1.2.5" | ||
5433 | minipass "^2.3.4" | ||
5434 | minizlib "^1.1.1" | ||
5435 | mkdirp "^0.5.0" | ||
5436 | safe-buffer "^5.1.2" | ||
5437 | yallist "^3.0.2" | ||
5438 | |||
4549 | text-table@~0.2.0: | 5439 | text-table@~0.2.0: |
4550 | version "0.2.0" | 5440 | version "0.2.0" |
4551 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" | 5441 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" |
5442 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= | ||
4552 | 5443 | ||
4553 | through@^2.3.6: | 5444 | through@^2.3.6: |
4554 | version "2.3.8" | 5445 | version "2.3.8" |
4555 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" | 5446 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" |
5447 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= | ||
4556 | 5448 | ||
4557 | timers-browserify@^2.0.4: | 5449 | timers-browserify@^2.0.4: |
4558 | version "2.0.6" | 5450 | version "2.0.10" |
4559 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" | 5451 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" |
5452 | integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== | ||
4560 | dependencies: | 5453 | dependencies: |
4561 | setimmediate "^1.0.4" | 5454 | setimmediate "^1.0.4" |
4562 | 5455 | ||
4563 | tmp@^0.0.33: | 5456 | tmp@^0.0.33: |
4564 | version "0.0.33" | 5457 | version "0.0.33" |
4565 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" | 5458 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" |
5459 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== | ||
4566 | dependencies: | 5460 | dependencies: |
4567 | os-tmpdir "~1.0.2" | 5461 | os-tmpdir "~1.0.2" |
4568 | 5462 | ||
4569 | to-arraybuffer@^1.0.0: | 5463 | to-arraybuffer@^1.0.0: |
4570 | version "1.0.1" | 5464 | version "1.0.1" |
4571 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" | 5465 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" |
5466 | integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= | ||
4572 | 5467 | ||
4573 | to-fast-properties@^1.0.3: | 5468 | to-fast-properties@^1.0.3: |
4574 | version "1.0.3" | 5469 | version "1.0.3" |
4575 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" | 5470 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" |
5471 | integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= | ||
4576 | 5472 | ||
4577 | tough-cookie@~2.3.0, tough-cookie@~2.3.3: | 5473 | to-object-path@^0.3.0: |
4578 | version "2.3.3" | 5474 | version "0.3.0" |
4579 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" | 5475 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" |
5476 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= | ||
4580 | dependencies: | 5477 | dependencies: |
5478 | kind-of "^3.0.2" | ||
5479 | |||
5480 | to-regex-range@^2.1.0: | ||
5481 | version "2.1.1" | ||
5482 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" | ||
5483 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= | ||
5484 | dependencies: | ||
5485 | is-number "^3.0.0" | ||
5486 | repeat-string "^1.6.1" | ||
5487 | |||
5488 | to-regex@^3.0.1, to-regex@^3.0.2: | ||
5489 | version "3.0.2" | ||
5490 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" | ||
5491 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== | ||
5492 | dependencies: | ||
5493 | define-property "^2.0.2" | ||
5494 | extend-shallow "^3.0.2" | ||
5495 | regex-not "^1.0.2" | ||
5496 | safe-regex "^1.1.0" | ||
5497 | |||
5498 | tough-cookie@~2.4.3: | ||
5499 | version "2.4.3" | ||
5500 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" | ||
5501 | integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== | ||
5502 | dependencies: | ||
5503 | psl "^1.1.24" | ||
4581 | punycode "^1.4.1" | 5504 | punycode "^1.4.1" |
4582 | 5505 | ||
4583 | trim-newlines@^1.0.0: | 5506 | trim-newlines@^1.0.0: |
4584 | version "1.0.0" | 5507 | version "1.0.0" |
4585 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" | 5508 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" |
5509 | integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= | ||
4586 | 5510 | ||
4587 | trim-right@^1.0.1: | 5511 | trim-right@^1.0.1: |
4588 | version "1.0.1" | 5512 | version "1.0.1" |
4589 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" | 5513 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" |
5514 | integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= | ||
4590 | 5515 | ||
4591 | "true-case-path@^1.0.2": | 5516 | "true-case-path@^1.0.2": |
4592 | version "1.0.2" | 5517 | version "1.0.3" |
4593 | resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" | 5518 | resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" |
5519 | integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== | ||
4594 | dependencies: | 5520 | dependencies: |
4595 | glob "^6.0.4" | 5521 | glob "^7.1.2" |
4596 | 5522 | ||
4597 | tty-browserify@0.0.0: | 5523 | tty-browserify@0.0.0: |
4598 | version "0.0.0" | 5524 | version "0.0.0" |
4599 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" | 5525 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" |
5526 | integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= | ||
4600 | 5527 | ||
4601 | tunnel-agent@^0.6.0: | 5528 | tunnel-agent@^0.6.0: |
4602 | version "0.6.0" | 5529 | version "0.6.0" |
4603 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" | 5530 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" |
5531 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= | ||
4604 | dependencies: | 5532 | dependencies: |
4605 | safe-buffer "^5.0.1" | 5533 | safe-buffer "^5.0.1" |
4606 | 5534 | ||
4607 | tunnel-agent@~0.4.1: | ||
4608 | version "0.4.3" | ||
4609 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" | ||
4610 | |||
4611 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: | 5535 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: |
4612 | version "0.14.5" | 5536 | version "0.14.5" |
4613 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" | 5537 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" |
5538 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= | ||
4614 | 5539 | ||
4615 | type-check@~0.3.2: | 5540 | type-check@~0.3.2: |
4616 | version "0.3.2" | 5541 | version "0.3.2" |
4617 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" | 5542 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" |
5543 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= | ||
4618 | dependencies: | 5544 | dependencies: |
4619 | prelude-ls "~1.1.2" | 5545 | prelude-ls "~1.1.2" |
4620 | 5546 | ||
4621 | typedarray@^0.0.6: | 5547 | typedarray@^0.0.6: |
4622 | version "0.0.6" | 5548 | version "0.0.6" |
4623 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" | 5549 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" |
5550 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= | ||
4624 | 5551 | ||
4625 | uglify-js@^2.8.29: | 5552 | uglify-js@^2.8.29: |
4626 | version "2.8.29" | 5553 | version "2.8.29" |
4627 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" | 5554 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" |
5555 | integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= | ||
4628 | dependencies: | 5556 | dependencies: |
4629 | source-map "~0.5.1" | 5557 | source-map "~0.5.1" |
4630 | yargs "~3.10.0" | 5558 | yargs "~3.10.0" |
@@ -4634,40 +5562,71 @@ uglify-js@^2.8.29: | |||
4634 | uglify-to-browserify@~1.0.0: | 5562 | uglify-to-browserify@~1.0.0: |
4635 | version "1.0.2" | 5563 | version "1.0.2" |
4636 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" | 5564 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" |
5565 | integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= | ||
4637 | 5566 | ||
4638 | uglifyjs-webpack-plugin@^0.4.6: | 5567 | uglifyjs-webpack-plugin@^0.4.6: |
4639 | version "0.4.6" | 5568 | version "0.4.6" |
4640 | resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" | 5569 | resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" |
5570 | integrity sha1-uVH0q7a9YX5m9j64kUmOORdj4wk= | ||
4641 | dependencies: | 5571 | dependencies: |
4642 | source-map "^0.5.6" | 5572 | source-map "^0.5.6" |
4643 | uglify-js "^2.8.29" | 5573 | uglify-js "^2.8.29" |
4644 | webpack-sources "^1.0.1" | 5574 | webpack-sources "^1.0.1" |
4645 | 5575 | ||
4646 | uid-number@^0.0.6: | 5576 | union-value@^1.0.0: |
4647 | version "0.0.6" | 5577 | version "1.0.0" |
4648 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" | 5578 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" |
5579 | integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= | ||
5580 | dependencies: | ||
5581 | arr-union "^3.1.0" | ||
5582 | get-value "^2.0.6" | ||
5583 | is-extendable "^0.1.1" | ||
5584 | set-value "^0.4.3" | ||
4649 | 5585 | ||
4650 | uniq@^1.0.1: | 5586 | uniq@^1.0.1: |
4651 | version "1.0.1" | 5587 | version "1.0.1" |
4652 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" | 5588 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" |
4653 | 5589 | integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= | |
4654 | uniqid@^4.0.0: | ||
4655 | version "4.1.1" | ||
4656 | resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" | ||
4657 | dependencies: | ||
4658 | macaddress "^0.2.8" | ||
4659 | 5590 | ||
4660 | uniqs@^2.0.0: | 5591 | uniqs@^2.0.0: |
4661 | version "2.0.0" | 5592 | version "2.0.0" |
4662 | resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" | 5593 | resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" |
5594 | integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= | ||
4663 | 5595 | ||
4664 | universalify@^0.1.0: | 5596 | universalify@^0.1.0: |
4665 | version "0.1.1" | 5597 | version "0.1.2" |
4666 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" | 5598 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" |
5599 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== | ||
5600 | |||
5601 | unset-value@^1.0.0: | ||
5602 | version "1.0.0" | ||
5603 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" | ||
5604 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= | ||
5605 | dependencies: | ||
5606 | has-value "^0.3.1" | ||
5607 | isobject "^3.0.0" | ||
5608 | |||
5609 | upath@^1.1.1: | ||
5610 | version "1.1.2" | ||
5611 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" | ||
5612 | integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== | ||
5613 | |||
5614 | uri-js@^4.2.2: | ||
5615 | version "4.2.2" | ||
5616 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" | ||
5617 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== | ||
5618 | dependencies: | ||
5619 | punycode "^2.1.0" | ||
5620 | |||
5621 | urix@^0.1.0: | ||
5622 | version "0.1.0" | ||
5623 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" | ||
5624 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= | ||
4667 | 5625 | ||
4668 | url-loader@^0.6.2: | 5626 | url-loader@^0.6.2: |
4669 | version "0.6.2" | 5627 | version "0.6.2" |
4670 | resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" | 5628 | resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" |
5629 | integrity sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q== | ||
4671 | dependencies: | 5630 | dependencies: |
4672 | loader-utils "^1.0.2" | 5631 | loader-utils "^1.0.2" |
4673 | mime "^1.4.1" | 5632 | mime "^1.4.1" |
@@ -4676,44 +5635,71 @@ url-loader@^0.6.2: | |||
4676 | url@^0.11.0: | 5635 | url@^0.11.0: |
4677 | version "0.11.0" | 5636 | version "0.11.0" |
4678 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" | 5637 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" |
5638 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= | ||
4679 | dependencies: | 5639 | dependencies: |
4680 | punycode "1.3.2" | 5640 | punycode "1.3.2" |
4681 | querystring "0.2.0" | 5641 | querystring "0.2.0" |
4682 | 5642 | ||
5643 | use@^3.1.0: | ||
5644 | version "3.1.1" | ||
5645 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" | ||
5646 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== | ||
5647 | |||
4683 | user-home@^2.0.0: | 5648 | user-home@^2.0.0: |
4684 | version "2.0.0" | 5649 | version "2.0.0" |
4685 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" | 5650 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" |
5651 | integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= | ||
4686 | dependencies: | 5652 | dependencies: |
4687 | os-homedir "^1.0.0" | 5653 | os-homedir "^1.0.0" |
4688 | 5654 | ||
4689 | util-deprecate@~1.0.1: | 5655 | util-deprecate@~1.0.1: |
4690 | version "1.0.2" | 5656 | version "1.0.2" |
4691 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" | 5657 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" |
5658 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= | ||
4692 | 5659 | ||
4693 | util@0.10.3, util@^0.10.3: | 5660 | util@0.10.3: |
4694 | version "0.10.3" | 5661 | version "0.10.3" |
4695 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" | 5662 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" |
5663 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= | ||
4696 | dependencies: | 5664 | dependencies: |
4697 | inherits "2.0.1" | 5665 | inherits "2.0.1" |
4698 | 5666 | ||
4699 | uuid@^3.0.0, uuid@^3.1.0: | 5667 | util@^0.10.3: |
4700 | version "3.2.1" | 5668 | version "0.10.4" |
4701 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" | 5669 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" |
5670 | integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== | ||
5671 | dependencies: | ||
5672 | inherits "2.0.3" | ||
5673 | |||
5674 | util@^0.11.0: | ||
5675 | version "0.11.1" | ||
5676 | resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" | ||
5677 | integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== | ||
5678 | dependencies: | ||
5679 | inherits "2.0.3" | ||
5680 | |||
5681 | uuid@^3.3.2: | ||
5682 | version "3.3.2" | ||
5683 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" | ||
5684 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== | ||
4702 | 5685 | ||
4703 | validate-npm-package-license@^3.0.1: | 5686 | validate-npm-package-license@^3.0.1: |
4704 | version "3.0.1" | 5687 | version "3.0.4" |
4705 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" | 5688 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" |
5689 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== | ||
4706 | dependencies: | 5690 | dependencies: |
4707 | spdx-correct "~1.0.0" | 5691 | spdx-correct "^3.0.0" |
4708 | spdx-expression-parse "~1.0.0" | 5692 | spdx-expression-parse "^3.0.0" |
4709 | 5693 | ||
4710 | vendors@^1.0.0: | 5694 | vendors@^1.0.0: |
4711 | version "1.0.1" | 5695 | version "1.0.3" |
4712 | resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" | 5696 | resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" |
5697 | integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== | ||
4713 | 5698 | ||
4714 | verror@1.10.0: | 5699 | verror@1.10.0: |
4715 | version "1.10.0" | 5700 | version "1.10.0" |
4716 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" | 5701 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" |
5702 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= | ||
4717 | dependencies: | 5703 | dependencies: |
4718 | assert-plus "^1.0.0" | 5704 | assert-plus "^1.0.0" |
4719 | core-util-is "1.0.2" | 5705 | core-util-is "1.0.2" |
@@ -4722,32 +5708,36 @@ verror@1.10.0: | |||
4722 | vm-browserify@0.0.4: | 5708 | vm-browserify@0.0.4: |
4723 | version "0.0.4" | 5709 | version "0.0.4" |
4724 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" | 5710 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" |
5711 | integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= | ||
4725 | dependencies: | 5712 | dependencies: |
4726 | indexof "0.0.1" | 5713 | indexof "0.0.1" |
4727 | 5714 | ||
4728 | watchpack@^1.4.0: | 5715 | watchpack@^1.4.0: |
4729 | version "1.4.0" | 5716 | version "1.6.0" |
4730 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" | 5717 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" |
5718 | integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== | ||
4731 | dependencies: | 5719 | dependencies: |
4732 | async "^2.1.2" | 5720 | chokidar "^2.0.2" |
4733 | chokidar "^1.7.0" | ||
4734 | graceful-fs "^4.1.2" | 5721 | graceful-fs "^4.1.2" |
5722 | neo-async "^2.5.0" | ||
4735 | 5723 | ||
4736 | webpack-sources@^1.0.1: | 5724 | webpack-sources@^1.0.1: |
4737 | version "1.1.0" | 5725 | version "1.3.0" |
4738 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" | 5726 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" |
5727 | integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== | ||
4739 | dependencies: | 5728 | dependencies: |
4740 | source-list-map "^2.0.0" | 5729 | source-list-map "^2.0.0" |
4741 | source-map "~0.6.1" | 5730 | source-map "~0.6.1" |
4742 | 5731 | ||
4743 | webpack@^3.10.0: | 5732 | webpack@^3.10.0: |
4744 | version "3.10.0" | 5733 | version "3.12.0" |
4745 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725" | 5734 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74" |
5735 | integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ== | ||
4746 | dependencies: | 5736 | dependencies: |
4747 | acorn "^5.0.0" | 5737 | acorn "^5.0.0" |
4748 | acorn-dynamic-import "^2.0.0" | 5738 | acorn-dynamic-import "^2.0.0" |
4749 | ajv "^5.1.5" | 5739 | ajv "^6.1.0" |
4750 | ajv-keywords "^2.0.0" | 5740 | ajv-keywords "^3.1.0" |
4751 | async "^2.1.2" | 5741 | async "^2.1.2" |
4752 | enhanced-resolve "^3.4.0" | 5742 | enhanced-resolve "^3.4.0" |
4753 | escope "^3.6.0" | 5743 | escope "^3.6.0" |
@@ -4770,42 +5760,51 @@ webpack@^3.10.0: | |||
4770 | whet.extend@~0.9.9: | 5760 | whet.extend@~0.9.9: |
4771 | version "0.9.9" | 5761 | version "0.9.9" |
4772 | resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" | 5762 | resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" |
5763 | integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= | ||
4773 | 5764 | ||
4774 | which-module@^1.0.0: | 5765 | which-module@^1.0.0: |
4775 | version "1.0.0" | 5766 | version "1.0.0" |
4776 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" | 5767 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" |
5768 | integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= | ||
4777 | 5769 | ||
4778 | which-module@^2.0.0: | 5770 | which-module@^2.0.0: |
4779 | version "2.0.0" | 5771 | version "2.0.0" |
4780 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" | 5772 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" |
5773 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= | ||
4781 | 5774 | ||
4782 | which@1, which@^1.2.9: | 5775 | which@1, which@^1.2.9: |
4783 | version "1.3.0" | 5776 | version "1.3.1" |
4784 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" | 5777 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" |
5778 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== | ||
4785 | dependencies: | 5779 | dependencies: |
4786 | isexe "^2.0.0" | 5780 | isexe "^2.0.0" |
4787 | 5781 | ||
4788 | wide-align@^1.1.0: | 5782 | wide-align@^1.1.0: |
4789 | version "1.1.2" | 5783 | version "1.1.3" |
4790 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" | 5784 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" |
5785 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== | ||
4791 | dependencies: | 5786 | dependencies: |
4792 | string-width "^1.0.2" | 5787 | string-width "^1.0.2 || 2" |
4793 | 5788 | ||
4794 | window-size@0.1.0: | 5789 | window-size@0.1.0: |
4795 | version "0.1.0" | 5790 | version "0.1.0" |
4796 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" | 5791 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" |
5792 | integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= | ||
4797 | 5793 | ||
4798 | wordwrap@0.0.2: | 5794 | wordwrap@0.0.2: |
4799 | version "0.0.2" | 5795 | version "0.0.2" |
4800 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" | 5796 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" |
5797 | integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= | ||
4801 | 5798 | ||
4802 | wordwrap@~1.0.0: | 5799 | wordwrap@~1.0.0: |
4803 | version "1.0.0" | 5800 | version "1.0.0" |
4804 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" | 5801 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" |
5802 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= | ||
4805 | 5803 | ||
4806 | wrap-ansi@^2.0.0: | 5804 | wrap-ansi@^2.0.0: |
4807 | version "2.1.0" | 5805 | version "2.1.0" |
4808 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" | 5806 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" |
5807 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= | ||
4809 | dependencies: | 5808 | dependencies: |
4810 | string-width "^1.0.1" | 5809 | string-width "^1.0.1" |
4811 | strip-ansi "^3.0.1" | 5810 | strip-ansi "^3.0.1" |
@@ -4813,40 +5812,53 @@ wrap-ansi@^2.0.0: | |||
4813 | wrappy@1: | 5812 | wrappy@1: |
4814 | version "1.0.2" | 5813 | version "1.0.2" |
4815 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" | 5814 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" |
5815 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= | ||
4816 | 5816 | ||
4817 | write@^0.2.1: | 5817 | write@^0.2.1: |
4818 | version "0.2.1" | 5818 | version "0.2.1" |
4819 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" | 5819 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" |
5820 | integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= | ||
4820 | dependencies: | 5821 | dependencies: |
4821 | mkdirp "^0.5.1" | 5822 | mkdirp "^0.5.1" |
4822 | 5823 | ||
4823 | xtend@^4.0.0: | 5824 | xtend@^4.0.0: |
4824 | version "4.0.1" | 5825 | version "4.0.1" |
4825 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" | 5826 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" |
5827 | integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= | ||
4826 | 5828 | ||
4827 | y18n@^3.2.1: | 5829 | y18n@^3.2.1: |
4828 | version "3.2.1" | 5830 | version "3.2.1" |
4829 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" | 5831 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" |
5832 | integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= | ||
4830 | 5833 | ||
4831 | yallist@^2.1.2: | 5834 | yallist@^2.1.2: |
4832 | version "2.1.2" | 5835 | version "2.1.2" |
4833 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" | 5836 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" |
5837 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= | ||
5838 | |||
5839 | yallist@^3.0.0, yallist@^3.0.2: | ||
5840 | version "3.0.3" | ||
5841 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" | ||
5842 | integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== | ||
4834 | 5843 | ||
4835 | yargs-parser@^5.0.0: | 5844 | yargs-parser@^5.0.0: |
4836 | version "5.0.0" | 5845 | version "5.0.0" |
4837 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" | 5846 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" |
5847 | integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= | ||
4838 | dependencies: | 5848 | dependencies: |
4839 | camelcase "^3.0.0" | 5849 | camelcase "^3.0.0" |
4840 | 5850 | ||
4841 | yargs-parser@^7.0.0: | 5851 | yargs-parser@^7.0.0: |
4842 | version "7.0.0" | 5852 | version "7.0.0" |
4843 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" | 5853 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" |
5854 | integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= | ||
4844 | dependencies: | 5855 | dependencies: |
4845 | camelcase "^4.1.0" | 5856 | camelcase "^4.1.0" |
4846 | 5857 | ||
4847 | yargs@^7.0.0: | 5858 | yargs@^7.0.0: |
4848 | version "7.1.0" | 5859 | version "7.1.0" |
4849 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" | 5860 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" |
5861 | integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= | ||
4850 | dependencies: | 5862 | dependencies: |
4851 | camelcase "^3.0.0" | 5863 | camelcase "^3.0.0" |
4852 | cliui "^3.2.0" | 5864 | cliui "^3.2.0" |
@@ -4865,6 +5877,7 @@ yargs@^7.0.0: | |||
4865 | yargs@^8.0.2: | 5877 | yargs@^8.0.2: |
4866 | version "8.0.2" | 5878 | version "8.0.2" |
4867 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" | 5879 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" |
5880 | integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= | ||
4868 | dependencies: | 5881 | dependencies: |
4869 | camelcase "^4.1.0" | 5882 | camelcase "^4.1.0" |
4870 | cliui "^3.2.0" | 5883 | cliui "^3.2.0" |
@@ -4883,6 +5896,7 @@ yargs@^8.0.2: | |||
4883 | yargs@~3.10.0: | 5896 | yargs@~3.10.0: |
4884 | version "3.10.0" | 5897 | version "3.10.0" |
4885 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" | 5898 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" |
5899 | integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= | ||
4886 | dependencies: | 5900 | dependencies: |
4887 | camelcase "^1.0.2" | 5901 | camelcase "^1.0.2" |
4888 | cliui "^2.1.0" | 5902 | cliui "^2.1.0" |