WP Content Copy Protection - Version 2.0.1

Version Description

(04 Nov 2019) =

  • Fixed an issue where links were getting freezed when an image is wrapped around anchor() tags.
Download this release

Release Info

Developer Dhruvin
Plugin Icon 128x128 WP Content Copy Protection
Version 2.0.1
Comparing to
See all releases

Code changes from version 1.1.8.7 to 2.0.1

Files changed (54) hide show
  1. .editorconfig +20 -0
  2. .eslintignore +4 -0
  3. .gitattributes +42 -0
  4. .gitignore +41 -0
  5. assets/css/admin.css +80 -0
  6. assets/css/style.css +9 -0
  7. assets/img/circles.svg +71 -0
  8. assets/img/taison-mascot.png +0 -0
  9. assets/img/transparent.gif +0 -0
  10. assets/img/waves.svg +41 -0
  11. assets/js/admin.js +73 -0
  12. assets/js/script.js +113 -0
  13. changelog.txt +140 -0
  14. composer.json +41 -0
  15. composer.lock +340 -0
  16. docker-compose.yml +17 -0
  17. includes/class-protection.php +308 -0
  18. includes/class-settings.php +548 -0
  19. includes/class-wpccp.php +131 -0
  20. includes/component/README.md +0 -1
  21. includes/component/deactivate-survey-popup/Instructions +0 -73
  22. includes/component/deactivate-survey-popup/class-ts-deactivation.php +0 -231
  23. includes/component/deactivate-survey-popup/template/ts-deactivate-modal.php +0 -387
  24. includes/component/faq-support/Instructions +0 -47
  25. includes/component/faq-support/templates/faq-page/faq-page.php +0 -138
  26. includes/component/faq-support/ts-faq-support.php +0 -260
  27. includes/component/pro-notices-in-lite/Instructions +0 -41
  28. includes/component/pro-notices-in-lite/ts-pro-notices.php +0 -667
  29. includes/component/tracking-data/Instructions +0 -54
  30. includes/component/tracking-data/assets/images/site-logo-new.jpg +0 -0
  31. includes/component/tracking-data/assets/js/dismiss-notice.js +0 -41
  32. includes/component/tracking-data/class-ts-tracker.php +0 -267
  33. includes/component/tracking-data/ts-tracking.php +0 -350
  34. includes/component/welcome-page/Instructions +0 -37
  35. includes/component/welcome-page/assets/images/icon-256x256.png +0 -0
  36. includes/component/welcome-page/templates/social-media-elements.php +0 -24
  37. includes/component/welcome-page/templates/welcome/welcome-page.php +0 -96
  38. includes/component/welcome-page/ts-welcome.php +0 -325
  39. includes/views/no-script.php +26 -0
  40. includes/views/settings.php +27 -0
  41. includes/views/upgrade.php +24 -0
  42. includes/wpccpl-all-component.php +0 -245
  43. index.php +22 -9
  44. languages/.gitkeep +0 -0
  45. mix-manifest.json +10 -0
  46. package.json +41 -0
  47. phpcs.xml +38 -0
  48. readme.md +79 -0
  49. readme.txt +362 -384
  50. settings.php +0 -4
  51. uninstall.php +27 -0
  52. webpack.mix.js +42 -0
  53. wpccpl.php +65 -271
  54. yarn.lock +7356 -0
.editorconfig ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # http://editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = tab
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [{package.json, *.yml}]
12
+ indent_style = space
13
+ indent_size = 2
14
+
15
+ [composer.json, eslintrc.json]
16
+ indent_style = space
17
+ indent_size = 4
18
+
19
+ [*.md]
20
+ trim_trailing_whitespace = false
.eslintignore ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ vendor
2
+ node_modules
3
+ select2.*
4
+ *.min.js
.gitattributes ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Items to ignore when downloading a zip
2
+
3
+ # Files
4
+ .eslintrc export-ignore
5
+ .nvmrc export-ignore
6
+ composer.json export-ignore
7
+ composer.lock export-ignore
8
+ docker-compose.yml export-ignore
9
+ package-lock.json export-ignore
10
+ phpcs.xml export-ignore
11
+ webpack.config.js export-ignore
12
+ .gitattributes export-ignore
13
+ .gitignore export-ignore
14
+ .gitmodules export-ignore
15
+ .editorconfig export-ignore
16
+ Gruntfile.js export-ignore
17
+ package.json export-ignore
18
+ phpunit.xml export-ignore
19
+ phpunit.xml.dist export-ignore
20
+ phpcs.ruleset.xml export-ignore
21
+ phpcs.xml export-ignore
22
+ readme.md export-ignore
23
+ README.md export-ignore
24
+ Rakefile export-ignore
25
+ .scrutinizer.yml export-ignore
26
+ .travis.yml export-ignore
27
+ .bowerrc export-ignore
28
+ .coveralls.yml export-ignore
29
+ mix-manifest.json export-ignore
30
+ webpack.mix.js export-ignore
31
+ yarn.lock export-ignore
32
+
33
+ # Folders
34
+
35
+ /.idea export-ignore
36
+ /.tx export-ignore
37
+ /node_modules export-ignore
38
+ /docs export-ignore
39
+ /docs/* export-ignore
40
+ /tests export-ignore
41
+ /tests/* export-ignore
42
+ /tests/unit-tests/* export-ignore
.gitignore ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Numerous always-ignore extensions
2
+ .diff
3
+ .err
4
+ .orig
5
+ .log
6
+ .rej
7
+ .swo
8
+ .swp
9
+ .vi
10
+ ~
11
+ .sass-cache
12
+
13
+ # OS or Editor folders
14
+ .DS_Store
15
+ Thumbs.db
16
+ .cache
17
+ .project
18
+ .settings
19
+ .tmproj
20
+ *.esproj
21
+ nbproject
22
+ .idea
23
+ *.sublime-project
24
+ *.sublime-workspace
25
+ .vscode
26
+ *.komodoproject
27
+ .komodotools
28
+
29
+ # Folders to ignore
30
+ .hg
31
+ .svn
32
+ .CVS
33
+ intermediate
34
+ cache
35
+ node_modules
36
+ vendor
37
+
38
+ # Build Files to ignore
39
+ *.pot
40
+ **/select2.*
41
+ **/*.min.*
assets/css/admin.css ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #form_wpccp input[type="text"]{
2
+ padding: 7px;
3
+ }
4
+
5
+ #form_wpccp input[type="checkbox"]{
6
+ float: left;
7
+ margin-top: 3px;
8
+ }
9
+
10
+ #form_wpccp input[type="checkbox"] + p{
11
+ float: left;
12
+ margin-top: 0;
13
+ }
14
+
15
+ #wpccp_license_activate,
16
+ #wpccp_license_deactivate {
17
+ height: 33px;
18
+ }
19
+
20
+ .select2-container--default .select2-selection--multiple {
21
+ border-radius: 0;
22
+ border: 1px solid #ddd;
23
+ }
24
+
25
+ .select2-container--default.select2-container--focus .select2-selection--multiple {
26
+ border-bottom: none;
27
+ }
28
+
29
+ .select2-results__options {
30
+ border-top: none;
31
+ }
32
+
33
+ .select2-container--default.select2-container--focus .select2-selection--multiple,
34
+ .select2-results__options {
35
+ border-color: #5b9dd9;
36
+ box-shadow: 0 0 2px rgba(30,140,190,.8);
37
+ outline: 2px solid transparent;
38
+ }
39
+
40
+ .select2-container .select2-selection--multiple .select2-selection__rendered {
41
+ display: block;
42
+ }
43
+
44
+ .ts-upgrade {
45
+ display: flex;
46
+ align-items: center;
47
+ position: absolute;
48
+ z-index: 100;
49
+ margin-top: 7%;
50
+ right: 10%;
51
+ background-color: #ffffff;
52
+ border-radius: 4px;
53
+ padding: 15px 20px;
54
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
55
+ background: #fff url(../img/waves.svg) bottom center no-repeat;
56
+ }
57
+
58
+ .ts-upgrade img{
59
+ max-width: 120px;
60
+ margin-right: 20px;
61
+ }
62
+
63
+ .ts-upgrade-cta {
64
+ display: inline-block;
65
+ }
66
+
67
+ .ts-upgrade + .form-table {
68
+ position: relative;
69
+ }
70
+
71
+ .ts-upgrade + .form-table::before {
72
+ background: #00000021 url(../img/circles.svg);
73
+ content: "";
74
+ width: 100%;
75
+ height: 100%;
76
+ position: absolute;
77
+ z-index: 1;
78
+ margin: 0 -10px;
79
+ border-radius: 4px;
80
+ }
assets/css/style.css ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ *:not(input):not(textarea),
2
+ img {
3
+ -webkit-touch-callout: none;
4
+ -webkit-user-select: none;
5
+ -khtml-user-select:none;
6
+ -moz-user-select:none;
7
+ -ms-user-select:none;
8
+ user-select:none;
9
+ }
assets/img/circles.svg ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 400">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ clip-path: url(#clip-Custom_Size_1);
6
+ fill: rgba(0, 0, 0, 0);
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: rgba(255,255,255,0.15);
11
+ stroke: #fff;
12
+ stroke-width: 1px;
13
+ opacity: 0.563;
14
+ }
15
+
16
+ .cls-3 {
17
+ stroke: none;
18
+ }
19
+
20
+ .cls-4 {
21
+ fill: none;
22
+ }
23
+
24
+ .cls-5 {
25
+ fill: rgba(0, 0, 0, 0);
26
+ }
27
+ </style>
28
+ <clipPath id="clip-Custom_Size_1">
29
+ <rect width="1920" height="400"/>
30
+ </clipPath>
31
+ </defs>
32
+ <g id="Custom_Size_1" data-name="Custom Size – 1" class="cls-1">
33
+ <rect class="cls-5" width="1920" height="400"/>
34
+ <g id="Ellipse_2" data-name="Ellipse 2" class="cls-2" transform="translate(-140 -162)">
35
+ <circle class="cls-3" cx="316" cy="316" r="316"/>
36
+ <circle class="cls-4" cx="316" cy="316" r="315.5"/>
37
+ </g>
38
+ <g id="Ellipse_1" data-name="Ellipse 1" class="cls-2" transform="translate(-172 154)">
39
+ <circle class="cls-3" cx="172" cy="172" r="172"/>
40
+ <circle class="cls-4" cx="172" cy="172" r="171.5"/>
41
+ </g>
42
+ <g id="Ellipse_3" data-name="Ellipse 3" class="cls-2" transform="translate(184 -484)">
43
+ <circle class="cls-3" cx="291.5" cy="291.5" r="291.5"/>
44
+ <circle class="cls-4" cx="291.5" cy="291.5" r="291"/>
45
+ </g>
46
+ <g id="Ellipse_4" data-name="Ellipse 4" class="cls-2" transform="translate(1239 -171)">
47
+ <circle class="cls-3" cx="381" cy="381" r="381"/>
48
+ <circle class="cls-4" cx="381" cy="381" r="380.5"/>
49
+ </g>
50
+ <g id="Ellipse_5" data-name="Ellipse 5" class="cls-2" transform="translate(366 -862)">
51
+ <circle class="cls-3" cx="563" cy="563" r="563"/>
52
+ <circle class="cls-4" cx="563" cy="563" r="562.5"/>
53
+ </g>
54
+ <g id="Ellipse_8" data-name="Ellipse 8" class="cls-2" transform="translate(124 339)">
55
+ <circle class="cls-3" cx="606.5" cy="606.5" r="606.5"/>
56
+ <circle class="cls-4" cx="606.5" cy="606.5" r="606"/>
57
+ </g>
58
+ <g id="Ellipse_6" data-name="Ellipse 6" class="cls-2" transform="translate(293 285)">
59
+ <circle class="cls-3" cx="140.5" cy="140.5" r="140.5"/>
60
+ <circle class="cls-4" cx="140.5" cy="140.5" r="140"/>
61
+ </g>
62
+ <g id="Ellipse_7" data-name="Ellipse 7" class="cls-2" transform="translate(1780 310)">
63
+ <circle class="cls-3" cx="140.5" cy="140.5" r="140.5"/>
64
+ <circle class="cls-4" cx="140.5" cy="140.5" r="140"/>
65
+ </g>
66
+ <g id="Ellipse_9" data-name="Ellipse 9" class="cls-2" transform="translate(1353 -484)">
67
+ <circle class="cls-3" cx="283.5" cy="283.5" r="283.5"/>
68
+ <circle class="cls-4" cx="283.5" cy="283.5" r="283"/>
69
+ </g>
70
+ </g>
71
+ </svg>
assets/img/taison-mascot.png ADDED
Binary file
assets/img/transparent.gif ADDED
Binary file
assets/img/waves.svg ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 405">
2
+ <defs>
3
+ <style>
4
+ .cls-1 {
5
+ clip-path: url(#clip-Web_1920_1);
6
+ }
7
+
8
+ .cls-2 {
9
+ fill: #bcbcbc;
10
+ opacity: 0.128;
11
+ }
12
+
13
+ .cls-2, .cls-3 {
14
+ stroke: #000;
15
+ stroke-width: 1px;
16
+ }
17
+
18
+ .cls-3 {
19
+ fill: #969696;
20
+ opacity: 0.052;
21
+ }
22
+
23
+ .cls-4 {
24
+ opacity: 0.042;
25
+ }
26
+
27
+ .cls-5 {
28
+ fill: #fff;
29
+ }
30
+ </style>
31
+ <clipPath id="clip-Web_1920_1">
32
+ <rect width="1920" height="405"/>
33
+ </clipPath>
34
+ </defs>
35
+ <g id="Web_1920_1" data-name="Web 1920 – 1" class="cls-1">
36
+ <rect class="cls-5" width="1920" height="405"/>
37
+ <path id="Path_3" data-name="Path 3" class="cls-2" d="M0,487.623,160.452,375.235l140.933,89.957L437.245,356.906,542.6,347.558l109.84,54.679L766.859,336.4,882.51,382.255l113.739,43.168,115.343-158.857,113.819,185.65,117.218-69.962,118.486,10.156,108.274-188.789,117.685,239.372L1803.4,356.906,1918.65,487.623Z" transform="translate(0 -82.623)"/>
38
+ <path id="Path_1" data-name="Path 1" class="cls-3" d="M0,346.354,163.767,181.726,301.385,331.352,434.3,289.245,542.221,162.036l110.22,127.208,114.417-44.032,113.283-63.487L996.249,304.753l115.668-45.828,113.494,63.748L1342.4,207.026l118.714,75.647,111.793-23.748,114.166,57.58,116.329-57.58,115.247,87.429Z" transform="translate(0 58.646)"/>
39
+ <path id="Path_2" data-name="Path 2" class="cls-4" d="M1921.35,261.542l-169.069-81.382-132.741,72.619-133.106-24.595-106.388-48.024L1267.99,228.185l-114.578-25.719-113.443-37.083L923.7,237.243,808.194,175.182,694.214,247.71,577.06,180.161,458.179,224.346,348.911,128.254,231.9,244.107,115.41,210.475,0,261.542Z" transform="translate(-1.35 143.458)"/>
40
+ </g>
41
+ </svg>
assets/js/admin.js ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery( document ).ready( function( $ ) {
2
+ // Init Select2
3
+ $( '#wpccp_exclude_categories' ).select2();
4
+ $( '#wpccp_exclude_roles, #wpccp_exclude_posttypes' ).select2( { disabled: true } );
5
+
6
+ // Init Select2 for posts
7
+ $( '#wpccp_exclude_posts' ).select2( {
8
+ ajax: {
9
+ url: ajaxurl,
10
+ dataType: 'json',
11
+ delay: 250,
12
+ data( params ) {
13
+ return {
14
+ wpccp_q: params.term,
15
+ wpccp_type: 'post',
16
+ action: 'wpccp_getposts',
17
+ _ajax_nonce: wpccpNonce,
18
+ };
19
+ },
20
+ processResults( data ) {
21
+ const options = [];
22
+ if ( data ) {
23
+ $.each( data, function( index, text ) {
24
+ options.push( {
25
+ id: text[ 0 ],
26
+ text: text[ 1 ],
27
+ } );
28
+ } );
29
+ }
30
+
31
+ return {
32
+ results: options,
33
+ };
34
+ },
35
+ cache: true,
36
+ },
37
+ minimumInputLength: 3,
38
+ } );
39
+
40
+ // Init Select2 for pages
41
+ $( '#wpccp_exclude_pages' ).select2( {
42
+ ajax: {
43
+ url: ajaxurl,
44
+ dataType: 'json',
45
+ delay: 250,
46
+ data( params ) {
47
+ return {
48
+ wpccp_q: params.term,
49
+ wpccp_type: 'page',
50
+ action: 'wpccp_getposts',
51
+ _ajax_nonce: wpccpNonce,
52
+ };
53
+ },
54
+ processResults( data ) {
55
+ const options = [];
56
+ if ( data ) {
57
+ $.each( data, function( index, text ) {
58
+ options.push( {
59
+ id: text[ 0 ],
60
+ text: text[ 1 ],
61
+ } );
62
+ } );
63
+ }
64
+
65
+ return {
66
+ results: options,
67
+ };
68
+ },
69
+ cache: true,
70
+ },
71
+ minimumInputLength: 3,
72
+ } );
73
+ } );
assets/js/script.js ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Disable selection
3
+ */
4
+ window.onload = function() {
5
+ disableSelection( document.body );
6
+ };
7
+
8
+ function disableSelection( target ) {
9
+ if ( typeof target.onselectstart !== 'undefined' ) {
10
+ target.onselectstart = function() {
11
+ return false;
12
+ };
13
+ } else if ( typeof target.style.MozUserSelect !== 'undefined' ) {
14
+ target.style.MozUserSelect = 'none';
15
+ } else {
16
+ target.onmousedown = function() {
17
+ return false;
18
+ };
19
+ }
20
+ target.style.cursor = 'default';
21
+ }
22
+
23
+ /**
24
+ * Disable Drag
25
+ */
26
+ document.ondragstart = function() {
27
+ return false;
28
+ };
29
+
30
+ /**
31
+ * Disable context menu
32
+ *
33
+ * @param {Object} e - event
34
+ */
35
+ document.oncontextmenu = function( e ) {
36
+ const t = e || window.event;
37
+ const elm = t.target || t.srcElement;
38
+
39
+ if ( elm.nodeName === 'A' && elm.type === 'text' || elm.type === 'password' ) {
40
+ return true;
41
+ }
42
+
43
+ if ( wpccpMessage ) {
44
+ // eslint-disable-next-line
45
+ alert( wpccpMessage );
46
+ }
47
+
48
+ return false;
49
+ };
50
+
51
+ /**
52
+ * Disable Ctrl/meta + key and other actions
53
+ */
54
+ window.addEventListener( 'keyup', wpccpDisableCtrlActions, false );
55
+ window.addEventListener( 'keydown', wpccpDisableCtrlActions, false );
56
+
57
+ function wpccpDisableCtrlActions( e ) {
58
+ // Display msg if performing copy
59
+ const wpccpIsCopy = ( e.ctrlKey || e.metaKey ) && ( e.key === 'c' );
60
+ if ( wpccpMessage && wpccpIsCopy ) {
61
+ // eslint-disable-next-line
62
+ alert( wpccpMessage );
63
+ }
64
+
65
+ // Disable key combinations
66
+ const wpccpComboKeys = [ 'a', 'b', 'c', 'f', 'p', 's', 'u', 'x', 'shift', 'i', 'j' ];
67
+
68
+ if ( ! wpccpPaste ) {
69
+ wpccpComboKeys.push( 'v' );
70
+ }
71
+
72
+ const wpccpIncludesKey = wpccpComboKeys.includes( e.key );
73
+ if ( ( e.ctrlKey || e.metaKey ) && wpccpIncludesKey ) {
74
+ e.preventDefault();
75
+ }
76
+ }
77
+
78
+ window.addEventListener( 'keyup', wpccpDisableKeys, false );
79
+ window.addEventListener( 'keydown', wpccpDisableKeys, false );
80
+
81
+ function wpccpDisableKeys( e ) {
82
+ /**
83
+ * KeyCode Info:
84
+ * ---------------------------------------------------
85
+ * 91: Windows Key / Left ⌘ / Chromebook Search key
86
+ * 93: Windows Key / Left ⌘ / Chromebook Search key
87
+ * 224: left or right ⌘ key (firefox)
88
+ */
89
+ const wpccpKeys = [ 'Control', 'Alt', 'F12' ];
90
+ const wpccpKeyCodes = [ 91, 93, 224 ];
91
+
92
+ if ( wpccpKeys.includes( e.key ) || wpccpKeyCodes.includes( e.keyCode ) ) {
93
+ e.preventDefault();
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Disable Print Screen
99
+ */
100
+ // TODO: Test as its not reliable
101
+ window.addEventListener( 'keyup', wpccpDisablePrintScreen, false );
102
+
103
+ function wpccpDisablePrintScreen( e ) {
104
+ /**
105
+ * KeyCode Info:
106
+ * ---------------------------------------------------
107
+ * 44: Print Screen
108
+ */
109
+ const isPrintScreen = e.keyCode === 44;
110
+ if ( isPrintScreen ) {
111
+ window.location.replace( 'http://google.com/' );
112
+ }
113
+ }
changelog.txt ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ == Changelog ==
2
+
3
+ = 1.0.7 (PRO Release)=
4
+ * included wpccp admin settings page (live)
5
+ * extended function one (admin can now exclude pages from being copy protected)
6
+ * extended function two (admin can disable/enable copy protection for registered and logged in users)
7
+ * upgraded and improved JS error message (modified visual appearance and included instructions link)
8
+ * general housekeeping
9
+
10
+ = 1.0.7.2 =
11
+ * added additional image security (now automatically layers all uploaded images with a blank image layer making it near impossible for anyone to steal images - whether Javascript is turned on or off)
12
+ * fixed a bug in mobile hold/copy function (text select only)
13
+ * fixed user input bug for Chrome browsers
14
+ * text and image copy/save protection now works on mobile devices
15
+ * changed JS error box color (previous conflicted with text color)
16
+ * general housekeeping
17
+
18
+ = 1.0.7.2b =
19
+
20
+ * fixed bug in mobile text selection function (hold to copy)
21
+ * decreased selling price
22
+ * general housekeeping
23
+
24
+ = 1.0.7.3 =
25
+
26
+ * removed conflicting meta data from code
27
+ * restructured opening tags on line 178
28
+ * re-enabled text selection (users could still copy selected text via browser coy option) ! no text select = nothing to copy
29
+ * general housekeeping
30
+
31
+ = 1.0.7.4 =
32
+
33
+ * removed duplicate javascript function from code
34
+ * added feed protection against scrapers / autoblogs (includes copyright notice)
35
+ * tested compatibility with v3.7.1
36
+ * added additional screenshots
37
+ * updated readme file
38
+
39
+ = 1.0.7.5 =
40
+
41
+ * added new function (ctrl+s = document saving) to keyboard copy protection. Now prevents keyboard shortcut to saving documents/webpages.
42
+ * renamed plugin name and php files due to conflict with our free version
43
+ * made changes to blank index.php file
44
+ * pushed from v1.0.7.5-v1.0.7.5
45
+ * general housekeeping
46
+
47
+ = 1.2 =
48
+
49
+ * added post copy control function
50
+ * disabled mac osx keyboard copy keys
51
+ * added source code padding option
52
+ * disabled ctrl+shift+i keys (used in bypass measure for viewing source code)
53
+ * disabled bookmarking key (used in bypass measure for viewing source code)
54
+ * removed javascript code for frame breaking (conflict with theme customization)
55
+ * closed style tags in mobile copy disable function
56
+ * disabled ctrlv (paste) key via keyboard
57
+ * disabled context menu key via keyboard
58
+ * removed imagetoolbar meta (not needed)
59
+ * tested plugin compatibility with v3.9.1
60
+ * cleaned up settings page (conf.php)
61
+ * added to the readme.txt file
62
+ * added screenshots
63
+
64
+ = 1.6 =
65
+
66
+ * re-enabled ctrlv key command (user requested)
67
+ * temporarily removed source code padding function due to bug (will be available again in next update)
68
+ * restructured windows/linux keyboard copy protection functions
69
+ * fixed and expanded mac osx keyboard copy protection functions
70
+ * upgraded mobile copy protection (more strict)
71
+ * removed duplicated code
72
+ * upgraded v1.2 - v1.6
73
+
74
+ = 1.6.2 =
75
+
76
+ * minor code changes
77
+ * enabled context menu for href tags only
78
+ * fixed bug that prevented user inputs (i/j keys)
79
+ * retested all functions on major browsers
80
+ * wordpress 3.9.2 compatible
81
+ * upgraded v1.6.2
82
+
83
+ = 1.6.3 =
84
+ * extended prtsc function (ability to redirect user to a warning page) - see readme.txt
85
+ * fixed bug that prevented right click in user input areas
86
+ * fixed img drag/drop bug (win8 compatible)
87
+
88
+ = 1.6.3.1 =
89
+ * copy function impossible from browser menu (even when using the 'select all' function). copy will return blank
90
+ * added option for category-level copy exclusion (admin can exclude specific categories from being protected)
91
+ * disabled ctrl+quickfind (which can be used to bypass any other keyboard copy command)
92
+ * added settings link to plugin menu (dashboard)
93
+
94
+ = 1.6.4 =
95
+ * extended javascript validation (includes a redirect when js is disabled in user browser)
96
+ * removed feeds (rdf, rss, rss2, atom, rss2_comments and atom_comments) from content scrapers
97
+ * optimized mac os x specific hotkeys
98
+ * core v4.1.1 compatible
99
+ * general housekeeping
100
+
101
+ = 1.6.5 =
102
+ * added function to secure uploads dir from direct user access (without this function, all images and uploads can be accessed by default)
103
+ * modified index.php file (this file will be copied to user's uploads dir)
104
+
105
+ = 1.7 =
106
+ * copy protection now compatible with all gallery plugins (such as NextGEN and NextCellent)
107
+ * extended uploads dir protection function to include subdirectories
108
+ * removed unnecessary javascript file from old image protection
109
+ * re-coded image protection (more secure & less cluttered)
110
+ * full copy protection now compatible with WooCommerce
111
+
112
+ = 1.8 =
113
+ * removed unnecessary code left behind in previous update
114
+ * added new user setting (admin can enable/disable protection for site admins only OR admin and registered/logged in users)
115
+ * added source code padding (automatically adds 500 blank lines to your source code to trick offenders)
116
+ * added auto-update functionality (plugin can now be auto-updated from your dashboard)
117
+ * retested all functionality for any possible conflict
118
+ * general housekeeping
119
+
120
+ = 1.8.32 =
121
+
122
+ * upgraded prtsc function (warning message replaced with instant redirect | user windows replaced with Google.com - without option of using 'back' button)
123
+ * upgraded prtsc function will (95% of the time) disallow third-party screencapture usage OTHER than just the keyboard Prtsc function (no idle = no time for third-party tools to be loaded)
124
+ * removed idle redirect in js disable function due to conflict with open graph protocol
125
+ * removed unneeded and conflicting jquery loading function
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
composer.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "tyche-softwares/wp-content-copy-protection",
3
+ "type": "wordpress-plugin",
4
+ "license": "GPL-2.0-or-later",
5
+ "description": "WP Content Copy Protection uses aggressive techniques in protecting your online content (text/source/images/video/audio) from being stolen.",
6
+ "homepage": "https://www.tychesoftwares.com/premium-plugins/",
7
+ "require-dev": {
8
+ "dealerdirect/phpcodesniffer-composer-installer": "*",
9
+ "squizlabs/php_codesniffer": "*",
10
+ "wp-coding-standards/wpcs": "*",
11
+ "phpcompatibility/phpcompatibility-wp": "*"
12
+ },
13
+ "keywords": [
14
+ "wordpress",
15
+ "plugin",
16
+ "content",
17
+ "protection"
18
+ ],
19
+ "support": {
20
+ "issues": "https://github.com/TycheSoftwares/wp-content-copy-protection/issues/"
21
+ },
22
+ "autoload": {
23
+ "classmap": [
24
+ "includes/"
25
+ ]
26
+ },
27
+ "scripts": {
28
+ "phpcs": [
29
+ "phpcs -s -p ."
30
+ ],
31
+ "phpcbf": [
32
+ "phpcbf -p ."
33
+ ]
34
+ },
35
+ "extra": {
36
+ "scripts-description": {
37
+ "phpcs": "Analyze code against the WordPress coding standards with PHP_CodeSniffer",
38
+ "phpcbf": "Fix coding standards warnings/errors automatically with PHP Code Beautifier"
39
+ }
40
+ }
41
+ }
composer.lock ADDED
@@ -0,0 +1,340 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "content-hash": "f36dc014c77213278bb98fe574cbda8a",
8
+ "packages": [],
9
+ "packages-dev": [
10
+ {
11
+ "name": "dealerdirect/phpcodesniffer-composer-installer",
12
+ "version": "v0.5.0",
13
+ "source": {
14
+ "type": "git",
15
+ "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
16
+ "reference": "e749410375ff6fb7a040a68878c656c2e610b132"
17
+ },
18
+ "dist": {
19
+ "type": "zip",
20
+ "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/e749410375ff6fb7a040a68878c656c2e610b132",
21
+ "reference": "e749410375ff6fb7a040a68878c656c2e610b132",
22
+ "shasum": ""
23
+ },
24
+ "require": {
25
+ "composer-plugin-api": "^1.0",
26
+ "php": "^5.3|^7",
27
+ "squizlabs/php_codesniffer": "^2|^3"
28
+ },
29
+ "require-dev": {
30
+ "composer/composer": "*",
31
+ "phpcompatibility/php-compatibility": "^9.0",
32
+ "sensiolabs/security-checker": "^4.1.0"
33
+ },
34
+ "type": "composer-plugin",
35
+ "extra": {
36
+ "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
37
+ },
38
+ "autoload": {
39
+ "psr-4": {
40
+ "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
41
+ }
42
+ },
43
+ "notification-url": "https://packagist.org/downloads/",
44
+ "license": [
45
+ "MIT"
46
+ ],
47
+ "authors": [
48
+ {
49
+ "name": "Franck Nijhof",
50
+ "email": "franck.nijhof@dealerdirect.com",
51
+ "homepage": "http://www.frenck.nl",
52
+ "role": "Developer / IT Manager"
53
+ }
54
+ ],
55
+ "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
56
+ "homepage": "http://www.dealerdirect.com",
57
+ "keywords": [
58
+ "PHPCodeSniffer",
59
+ "PHP_CodeSniffer",
60
+ "code quality",
61
+ "codesniffer",
62
+ "composer",
63
+ "installer",
64
+ "phpcs",
65
+ "plugin",
66
+ "qa",
67
+ "quality",
68
+ "standard",
69
+ "standards",
70
+ "style guide",
71
+ "stylecheck",
72
+ "tests"
73
+ ],
74
+ "time": "2018-10-26T13:21:45+00:00"
75
+ },
76
+ {
77
+ "name": "phpcompatibility/php-compatibility",
78
+ "version": "9.3.1",
79
+ "source": {
80
+ "type": "git",
81
+ "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
82
+ "reference": "9999344e47e7af6b00e1a898eacc4e4368fb7196"
83
+ },
84
+ "dist": {
85
+ "type": "zip",
86
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9999344e47e7af6b00e1a898eacc4e4368fb7196",
87
+ "reference": "9999344e47e7af6b00e1a898eacc4e4368fb7196",
88
+ "shasum": ""
89
+ },
90
+ "require": {
91
+ "php": ">=5.3",
92
+ "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
93
+ },
94
+ "conflict": {
95
+ "squizlabs/php_codesniffer": "2.6.2"
96
+ },
97
+ "require-dev": {
98
+ "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
99
+ },
100
+ "suggest": {
101
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
102
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
103
+ },
104
+ "type": "phpcodesniffer-standard",
105
+ "notification-url": "https://packagist.org/downloads/",
106
+ "license": [
107
+ "LGPL-3.0-or-later"
108
+ ],
109
+ "authors": [
110
+ {
111
+ "name": "Wim Godden",
112
+ "homepage": "https://github.com/wimg",
113
+ "role": "lead"
114
+ },
115
+ {
116
+ "name": "Juliette Reinders Folmer",
117
+ "homepage": "https://github.com/jrfnl",
118
+ "role": "lead"
119
+ },
120
+ {
121
+ "name": "Contributors",
122
+ "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
123
+ }
124
+ ],
125
+ "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
126
+ "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
127
+ "keywords": [
128
+ "compatibility",
129
+ "phpcs",
130
+ "standards"
131
+ ],
132
+ "time": "2019-09-05T18:36:49+00:00"
133
+ },
134
+ {
135
+ "name": "phpcompatibility/phpcompatibility-paragonie",
136
+ "version": "1.1.0",
137
+ "source": {
138
+ "type": "git",
139
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
140
+ "reference": "b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936"
141
+ },
142
+ "dist": {
143
+ "type": "zip",
144
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936",
145
+ "reference": "b1bb79a7cab1fb856b56f1b5cf110b6e52d8e936",
146
+ "shasum": ""
147
+ },
148
+ "require": {
149
+ "phpcompatibility/php-compatibility": "^9.0"
150
+ },
151
+ "require-dev": {
152
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5",
153
+ "paragonie/random_compat": "dev-master",
154
+ "paragonie/sodium_compat": "dev-master"
155
+ },
156
+ "suggest": {
157
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
158
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
159
+ },
160
+ "type": "phpcodesniffer-standard",
161
+ "notification-url": "https://packagist.org/downloads/",
162
+ "license": [
163
+ "LGPL-3.0-or-later"
164
+ ],
165
+ "authors": [
166
+ {
167
+ "name": "Wim Godden",
168
+ "role": "lead"
169
+ },
170
+ {
171
+ "name": "Juliette Reinders Folmer",
172
+ "role": "lead"
173
+ }
174
+ ],
175
+ "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
176
+ "homepage": "http://phpcompatibility.com/",
177
+ "keywords": [
178
+ "compatibility",
179
+ "paragonie",
180
+ "phpcs",
181
+ "polyfill",
182
+ "standards"
183
+ ],
184
+ "time": "2019-08-28T15:58:19+00:00"
185
+ },
186
+ {
187
+ "name": "phpcompatibility/phpcompatibility-wp",
188
+ "version": "2.1.0",
189
+ "source": {
190
+ "type": "git",
191
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
192
+ "reference": "41bef18ba688af638b7310666db28e1ea9158b2f"
193
+ },
194
+ "dist": {
195
+ "type": "zip",
196
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/41bef18ba688af638b7310666db28e1ea9158b2f",
197
+ "reference": "41bef18ba688af638b7310666db28e1ea9158b2f",
198
+ "shasum": ""
199
+ },
200
+ "require": {
201
+ "phpcompatibility/php-compatibility": "^9.0",
202
+ "phpcompatibility/phpcompatibility-paragonie": "^1.0"
203
+ },
204
+ "require-dev": {
205
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5"
206
+ },
207
+ "suggest": {
208
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
209
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
210
+ },
211
+ "type": "phpcodesniffer-standard",
212
+ "notification-url": "https://packagist.org/downloads/",
213
+ "license": [
214
+ "LGPL-3.0-or-later"
215
+ ],
216
+ "authors": [
217
+ {
218
+ "name": "Wim Godden",
219
+ "role": "lead"
220
+ },
221
+ {
222
+ "name": "Juliette Reinders Folmer",
223
+ "role": "lead"
224
+ }
225
+ ],
226
+ "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
227
+ "homepage": "http://phpcompatibility.com/",
228
+ "keywords": [
229
+ "compatibility",
230
+ "phpcs",
231
+ "standards",
232
+ "wordpress"
233
+ ],
234
+ "time": "2019-08-28T14:22:28+00:00"
235
+ },
236
+ {
237
+ "name": "squizlabs/php_codesniffer",
238
+ "version": "3.5.0",
239
+ "source": {
240
+ "type": "git",
241
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
242
+ "reference": "0afebf16a2e7f1e434920fa976253576151effe9"
243
+ },
244
+ "dist": {
245
+ "type": "zip",
246
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/0afebf16a2e7f1e434920fa976253576151effe9",
247
+ "reference": "0afebf16a2e7f1e434920fa976253576151effe9",
248
+ "shasum": ""
249
+ },
250
+ "require": {
251
+ "ext-simplexml": "*",
252
+ "ext-tokenizer": "*",
253
+ "ext-xmlwriter": "*",
254
+ "php": ">=5.4.0"
255
+ },
256
+ "require-dev": {
257
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
258
+ },
259
+ "bin": [
260
+ "bin/phpcs",
261
+ "bin/phpcbf"
262
+ ],
263
+ "type": "library",
264
+ "extra": {
265
+ "branch-alias": {
266
+ "dev-master": "3.x-dev"
267
+ }
268
+ },
269
+ "notification-url": "https://packagist.org/downloads/",
270
+ "license": [
271
+ "BSD-3-Clause"
272
+ ],
273
+ "authors": [
274
+ {
275
+ "name": "Greg Sherwood",
276
+ "role": "lead"
277
+ }
278
+ ],
279
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
280
+ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
281
+ "keywords": [
282
+ "phpcs",
283
+ "standards"
284
+ ],
285
+ "time": "2019-09-26T23:12:26+00:00"
286
+ },
287
+ {
288
+ "name": "wp-coding-standards/wpcs",
289
+ "version": "2.1.1",
290
+ "source": {
291
+ "type": "git",
292
+ "url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
293
+ "reference": "bd9c33152115e6741e3510ff7189605b35167908"
294
+ },
295
+ "dist": {
296
+ "type": "zip",
297
+ "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/bd9c33152115e6741e3510ff7189605b35167908",
298
+ "reference": "bd9c33152115e6741e3510ff7189605b35167908",
299
+ "shasum": ""
300
+ },
301
+ "require": {
302
+ "php": ">=5.4",
303
+ "squizlabs/php_codesniffer": "^3.3.1"
304
+ },
305
+ "require-dev": {
306
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
307
+ "phpcompatibility/php-compatibility": "^9.0",
308
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
309
+ },
310
+ "suggest": {
311
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
312
+ },
313
+ "type": "phpcodesniffer-standard",
314
+ "notification-url": "https://packagist.org/downloads/",
315
+ "license": [
316
+ "MIT"
317
+ ],
318
+ "authors": [
319
+ {
320
+ "name": "Contributors",
321
+ "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
322
+ }
323
+ ],
324
+ "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
325
+ "keywords": [
326
+ "phpcs",
327
+ "standards",
328
+ "wordpress"
329
+ ],
330
+ "time": "2019-05-21T02:50:00+00:00"
331
+ }
332
+ ],
333
+ "aliases": [],
334
+ "minimum-stability": "stable",
335
+ "stability-flags": [],
336
+ "prefer-stable": false,
337
+ "prefer-lowest": false,
338
+ "platform": [],
339
+ "platform-dev": []
340
+ }
docker-compose.yml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: '3.1'
2
+
3
+ services:
4
+
5
+ wordpress:
6
+ image: wordpress
7
+ ports:
8
+ - 9999:80
9
+ environment:
10
+ WORDPRESS_DB_PASSWORD: tyche
11
+ volumes:
12
+ - ./:/var/www/html/wp-content/plugins/wp-content-copy-protection
13
+
14
+ mysql:
15
+ image: mysql:5.7
16
+ environment:
17
+ MYSQL_ROOT_PASSWORD: tyche
includes/class-protection.php ADDED
@@ -0,0 +1,308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Protection
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @since 2.0.0
11
+ * @copyright TycheSoftwares
12
+ * @package wpccp
13
+ */
14
+
15
+ namespace TycheSoftwares\Wpccp;
16
+
17
+ /**
18
+ * Render frontend protection scripts.
19
+ */
20
+ class Protection {
21
+ /**
22
+ * Options data
23
+ *
24
+ * @since 2.0.0
25
+ * @access private
26
+ *
27
+ * @var array
28
+ */
29
+ private static $options;
30
+
31
+ /**
32
+ * Init plugin settings.
33
+ *
34
+ * @since 2.0.0
35
+ * @access public
36
+ *
37
+ * @return void
38
+ */
39
+ public static function init() {
40
+ // Hooks.
41
+ add_action( 'wp_enqueue_scripts', [ __CLASS__, 'register_assets' ] );
42
+ register_activation_hook( WPCCP_PLUGIN_FILE, [ __CLASS__, 'on_activation' ] );
43
+ add_action( 'wp', [ __CLASS__, 'add_source_padding' ] );
44
+ add_action( 'wp_head', [ __CLASS__, 'render_noscript' ] );
45
+
46
+ // Set data.
47
+ self::$options = get_option( 'wpccp' );
48
+ }
49
+
50
+ /**
51
+ * Register assets (css/js)
52
+ *
53
+ * @since 2.0.0
54
+ * @access public
55
+ *
56
+ * @return void
57
+ */
58
+ public static function register_assets() {
59
+ // Load minified assets if SCRIPT_DEBUG is turned off.
60
+ $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
61
+
62
+ // Scripts.
63
+ wp_register_script(
64
+ 'wpccp',
65
+ WPCCP_PLUGIN_URL . 'assets/js/script' . $suffix . '.js',
66
+ [ 'jquery' ],
67
+ filemtime( WPCCP_PLUGIN_DIR . 'assets/js/script' . $suffix . '.js' ),
68
+ true
69
+ );
70
+
71
+ // Inline scripts.
72
+ $wpccp_message = ! empty( self::$options['protection_message'] ) ? self::$options['protection_message'] : '';
73
+ $wpccp_paste = ! empty( self::$options['exclude_paste'] ) ? true : false;
74
+ $wpccp_plugin_url = WPCCP_PLUGIN_URL;
75
+
76
+ $inline_code = [];
77
+ $inline_code[] = "wpccpMessage = '${wpccp_message}'";
78
+ $inline_code[] = "wpccpPaste = '${wpccp_paste}'";
79
+ $inline_code[] = "wpccpUrl = '${wpccp_plugin_url}'";
80
+
81
+ $inline_script = sprintf( 'const %s;', implode( ',', $inline_code ) );
82
+
83
+ wp_add_inline_script( 'wpccp', $inline_script, 'before' );
84
+
85
+ // Styles.
86
+ wp_register_style(
87
+ 'wpccp',
88
+ WPCCP_PLUGIN_URL . 'assets/css/style' . $suffix . '.css',
89
+ [],
90
+ filemtime( WPCCP_PLUGIN_DIR . 'assets/css/style' . $suffix . '.css' )
91
+ );
92
+
93
+ // Load assets.
94
+ if ( self::apply_protection() ) {
95
+ wp_enqueue_script( 'wpccp' );
96
+ wp_enqueue_style( 'wpccp' );
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Run activation routine.
102
+ *
103
+ * @since 2.0.0
104
+ * @access public
105
+ *
106
+ * @return void
107
+ */
108
+ public static function on_activation() {
109
+ self::secure_uploads(); // Secure uploads & subfolders.
110
+ update_option( 'image_default_link_type', 'none' ); // Secure image links.
111
+ }
112
+
113
+
114
+ /**
115
+ * Secure uploads dir
116
+ *
117
+ * @since 2.0.0
118
+ * @access public
119
+ *
120
+ * @return void
121
+ */
122
+ public static function secure_uploads() {
123
+ $start_dir = wp_upload_dir();
124
+ self::secure_dir( $start_dir['basedir'] );
125
+ }
126
+
127
+ /**
128
+ * Copy index file to uploads and subfolders for protection against folder listing
129
+ *
130
+ * @since 2.0.0
131
+ * @access public
132
+ *
133
+ * @param string $dir directory to secure.
134
+ * @return void
135
+ */
136
+ public static function secure_dir( $dir ) {
137
+ $ignore = [ '.', '..' ]; // folders to ignore.
138
+ $protection_file = wp_normalize_path( path_join( WPCCP_PLUGIN_DIR, 'index.php' ) ); // path to protection file.
139
+ copy( $protection_file, wp_normalize_path( path_join( $dir, 'index.php' ) ) ); // Copy file to uploads root.
140
+
141
+ $sub_folders = opendir( $dir ); // Open dir.
142
+
143
+ // Secure subfolder(s) if found.
144
+ if ( $sub_folders ) {
145
+ // phpcs:ignore
146
+ while ( false !== ( $sub_folder = readdir( $sub_folders ) ) ) {
147
+ $current_item = wp_normalize_path( path_join( $dir, $sub_folder ) ); // Filepath for subfolder.
148
+
149
+ if ( is_dir( $current_item ) && ! in_array( $sub_folder, $ignore, true ) ) {
150
+ self::secure_dir( wp_normalize_path( path_join( $dir, $sub_folder ) ) );
151
+ }
152
+ }
153
+ closedir( $sub_folders );
154
+ }
155
+ }
156
+
157
+ /**
158
+ * Add padding to html source
159
+ *
160
+ * @since 2.0.0
161
+ * @access public
162
+ *
163
+ * @return void
164
+ */
165
+ public static function add_source_padding() {
166
+ ob_start();
167
+ $break = "\n";
168
+ for ( $i = 0; $i <= 499; $i++ ) {
169
+ echo esc_html( $break );
170
+ }
171
+ }
172
+
173
+ /**
174
+ * Exclude pages
175
+ *
176
+ * @since 2.0.0
177
+ * @access public
178
+ *
179
+ * @return boolean
180
+ */
181
+ public static function exclude_pages() {
182
+
183
+ if ( ! empty( self::$options['exclude_pages'] ) && get_the_ID() ) {
184
+ $excluded_pages = self::$options['exclude_pages']; // Excluded pages.
185
+
186
+ // Pages.
187
+ $page_id = (string) get_the_ID();
188
+ $is_excluded_page = in_array( $page_id, $excluded_pages, true ) && is_page( $page_id );
189
+
190
+ // WooCommerce Pages - Needs extra checks.
191
+ $woocommerce_shop_page = get_option( 'woocommerce_shop_page_id' );
192
+ $is_excluded_shop_page = is_shop() && in_array( $woocommerce_shop_page, $excluded_pages, true );
193
+
194
+ if ( $is_excluded_page || $is_excluded_shop_page ) {
195
+ return true;
196
+ }
197
+ }
198
+ return false;
199
+ }
200
+
201
+ /**
202
+ * Exclude posts
203
+ *
204
+ * @since 2.0.0
205
+ * @access public
206
+ *
207
+ * @return boolean
208
+ */
209
+ public static function exclude_posts() {
210
+
211
+ if ( ! empty( self::$options['exclude_posts'] ) && get_the_ID() ) {
212
+ $excluded_posts = self::$options['exclude_posts']; // Excluded posts.
213
+ $post_id = (string) get_the_ID(); // Current post.
214
+
215
+ // Check if current post is excluded from protection.
216
+ if ( in_array( $post_id, $excluded_posts, true ) && is_single( $post_id ) ) {
217
+ return true;
218
+ }
219
+ }
220
+ return false;
221
+ }
222
+
223
+ /**
224
+ * Exclude categories
225
+ *
226
+ * @since 2.0.0
227
+ * @access public
228
+ *
229
+ * @return boolean
230
+ */
231
+ public static function exclude_categories() {
232
+
233
+ if ( ! empty( self::$options['exclude_categories'] ) && is_single() ) {
234
+ $excluded_categories = self::$options['exclude_categories']; // Excluded categories.
235
+ $post_categories = wp_get_post_categories( get_the_ID() ); // Current post categories.
236
+
237
+ // Check if current categories excluded from protection.
238
+ if ( count( array_intersect( $excluded_categories, $post_categories ) ) > 0 ) {
239
+ return true;
240
+ }
241
+ }
242
+ return false;
243
+ }
244
+
245
+ /**
246
+ * Exclude admin
247
+ *
248
+ * @since 2.0.0
249
+ * @access public
250
+ *
251
+ * @return boolean
252
+ */
253
+ public static function exclude_admin() {
254
+ $user = wp_get_current_user();
255
+
256
+ if ( ! empty( self::$options['exclude_admin'] ) && $user && in_array( 'administrator', $user->roles, true ) ) {
257
+ return true;
258
+ }
259
+ return false;
260
+ }
261
+
262
+ /**
263
+ * Exclude registered user
264
+ *
265
+ * @since 2.0.0
266
+ * @access public
267
+ *
268
+ * @return boolean
269
+ */
270
+ public static function exclude_registered() {
271
+
272
+ if ( ! empty( self::$options['exclude_registered'] ) && is_user_logged_in() ) {
273
+ return true;
274
+ }
275
+ return false;
276
+ }
277
+
278
+ /**
279
+ * Check content protection
280
+ *
281
+ * @since 2.0.0
282
+ * @access public
283
+ *
284
+ * @return boolean
285
+ */
286
+ public static function apply_protection() {
287
+ if (
288
+ self::exclude_pages() ||
289
+ self::exclude_posts() ||
290
+ self::exclude_categories() ||
291
+ self::exclude_registered() ||
292
+ self::exclude_admin()
293
+ ) {
294
+ return false;
295
+ }
296
+
297
+ return true;
298
+ }
299
+
300
+ /**
301
+ * Render noscript content
302
+ *
303
+ * @return void
304
+ */
305
+ public static function render_noscript() {
306
+ include_once 'views/no-script.php';
307
+ }
308
+ }
includes/class-settings.php ADDED
@@ -0,0 +1,548 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Settings
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @since 2.0.0
11
+ * @copyright TycheSoftwares
12
+ * @package wpccp
13
+ */
14
+
15
+ namespace TycheSoftwares\Wpccp;
16
+
17
+ /**
18
+ * Plugin settings.
19
+ */
20
+ class Settings {
21
+ /**
22
+ * Options data
23
+ *
24
+ * @since 2.0.0
25
+ * @access private
26
+ *
27
+ * @var array
28
+ */
29
+ private static $options;
30
+
31
+ /**
32
+ * Init plugin settings.
33
+ *
34
+ * @since 2.0.0
35
+ * @access public
36
+ *
37
+ * @return void
38
+ */
39
+ public static function init() {
40
+ // Hooks.
41
+ add_action( 'admin_menu', [ __CLASS__, 'menu' ] );
42
+ add_action( 'admin_enqueue_scripts', [ __CLASS__, 'register_assets' ] );
43
+ add_action( 'admin_init', [ __CLASS__, 'register_settings' ] );
44
+ add_action( 'wp_ajax_wpccp_getposts', [ __CLASS__, 'get_posts' ] );
45
+
46
+ // Set data.
47
+ self::$options = get_option( 'wpccp' );
48
+ }
49
+
50
+ /**
51
+ * Add menu page for settings tab URL.
52
+ *
53
+ * @since 2.0.0
54
+ * @access public
55
+ *
56
+ * @return void
57
+ */
58
+ public static function menu() {
59
+ add_options_page(
60
+ __( 'WP Content Copy Protection', 'wpccp' ),
61
+ __( 'WP Content Copy Protection', 'wpccp' ),
62
+ 'manage_options',
63
+ 'wpccp',
64
+ [ __CLASS__, 'page' ]
65
+ );
66
+ }
67
+
68
+ /**
69
+ * Render settings page.
70
+ *
71
+ * @since 2.0.0
72
+ * @access public
73
+ *
74
+ * @return void
75
+ */
76
+ public static function page() {
77
+ include_once 'views/settings.php';
78
+ }
79
+
80
+ /**
81
+ * Register assets (css/js)
82
+ *
83
+ * @since 2.0.0
84
+ * @access public
85
+ *
86
+ * @return void
87
+ */
88
+ public static function register_assets() {
89
+ // Bailout if not on plugin page(s).
90
+ $screen = get_current_screen();
91
+ $plugin_pages = [ 'settings_page_wpccp' ];
92
+ if ( ! in_array( $screen->id, $plugin_pages, true ) ) {
93
+ return;
94
+ }
95
+
96
+ // Load minified assets if SCRIPT_DEBUG is turned off.
97
+ $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
98
+
99
+ // Scripts.
100
+ wp_register_script(
101
+ 'wpccp-select2',
102
+ WPCCP_PLUGIN_URL . 'assets/js/select2' . $suffix . '.js',
103
+ [ 'jquery' ],
104
+ filemtime( WPCCP_PLUGIN_DIR . 'assets/js/select2' . $suffix . '.js' ),
105
+ true
106
+ );
107
+ wp_enqueue_script( 'wpccp-select2' );
108
+
109
+ wp_register_script(
110
+ 'wpccp-admin',
111
+ WPCCP_PLUGIN_URL . 'assets/js/admin' . $suffix . '.js',
112
+ [ 'jquery', 'wpccp-select2' ],
113
+ filemtime( WPCCP_PLUGIN_DIR . 'assets/js/admin' . $suffix . '.js' ),
114
+ true
115
+ );
116
+ wp_enqueue_script( 'wpccp-admin' );
117
+
118
+ // Inline scripts.
119
+ $wpccp_nonce = wp_create_nonce( 'wpccp_ajax' );
120
+ wp_add_inline_script( 'wpccp-admin', sprintf( 'const wpccpNonce=\'%s\'', $wpccp_nonce ), 'before' );
121
+
122
+ // Styles.
123
+ wp_register_style(
124
+ 'wpccp-select2',
125
+ WPCCP_PLUGIN_URL . 'assets/css/select2' . $suffix . '.css',
126
+ [],
127
+ filemtime( WPCCP_PLUGIN_DIR . 'assets/css/select2' . $suffix . '.css' )
128
+ );
129
+ wp_enqueue_style( 'wpccp-select2' );
130
+
131
+ wp_register_style(
132
+ 'wpccp-admin',
133
+ WPCCP_PLUGIN_URL . 'assets/css/admin' . $suffix . '.css',
134
+ [ 'wpccp-select2' ],
135
+ filemtime( WPCCP_PLUGIN_DIR . 'assets/css/admin' . $suffix . '.css' )
136
+ );
137
+ wp_enqueue_style( 'wpccp-admin' );
138
+ }
139
+
140
+ /**
141
+ * Register options
142
+ *
143
+ * @since 2.0.0
144
+ * @access public
145
+ *
146
+ * @return void
147
+ */
148
+ public static function register_settings() {
149
+ // Register setting.
150
+ register_setting( 'wpccp', 'wpccp' );
151
+
152
+ // Register section.
153
+ add_settings_section(
154
+ 'wpccp_exclude_settings',
155
+ __( 'Disable Protection', 'wpccp' ),
156
+ [ __CLASS__, 'render_exclude_section' ],
157
+ 'wpccp'
158
+ );
159
+
160
+ // Register section.
161
+ add_settings_section(
162
+ 'wpccp_pro_settings',
163
+ __( 'More Settings', 'wpccp' ),
164
+ [ __CLASS__, 'render_pro_section' ],
165
+ 'wpccp'
166
+ );
167
+
168
+ // Register fields.
169
+ // Field: Exclude Pages.
170
+ add_settings_field(
171
+ 'protection_message',
172
+ __( 'Message', 'wpccp' ),
173
+ [ __CLASS__, 'render_message_field' ],
174
+ 'wpccp',
175
+ 'wpccp_exclude_settings'
176
+ );
177
+
178
+ // Field: Exclude Pages.
179
+ add_settings_field(
180
+ 'exclude_pages',
181
+ __( 'On Page(s)', 'wpccp' ),
182
+ [ __CLASS__, 'render_pages_field' ],
183
+ 'wpccp',
184
+ 'wpccp_exclude_settings'
185
+ );
186
+
187
+ // Field: Exclude Posts.
188
+ add_settings_field(
189
+ 'exclude_posts',
190
+ __( 'On Post(s)', 'wpccp' ),
191
+ [ __CLASS__, 'render_posts_field' ],
192
+ 'wpccp',
193
+ 'wpccp_exclude_settings'
194
+ );
195
+
196
+ // Field: Exclude PostTypes.
197
+ add_settings_field(
198
+ 'exclude_post_types',
199
+ __( 'On Custom PostType(s)', 'wpccp' ),
200
+ [ __CLASS__, 'render_post_types_field' ],
201
+ 'wpccp',
202
+ 'wpccp_pro_settings'
203
+ );
204
+
205
+ // Field: Exclude Categories.
206
+ add_settings_field(
207
+ 'exclude_categories',
208
+ __( 'On Categories', 'wpccp' ),
209
+ [ __CLASS__, 'render_categories_field' ],
210
+ 'wpccp',
211
+ 'wpccp_exclude_settings'
212
+ );
213
+
214
+ // Field: Exclude Roles.
215
+ add_settings_field(
216
+ 'exclude_roles',
217
+ __( 'For Roles', 'wpccp' ),
218
+ [ __CLASS__, 'render_roles_field' ],
219
+ 'wpccp',
220
+ 'wpccp_pro_settings'
221
+ );
222
+
223
+ // Field: Exclude Registered.
224
+ add_settings_field(
225
+ 'exclude_registered',
226
+ __( 'For Registered User', 'wpccp' ),
227
+ [ __CLASS__, 'render_registered_field' ],
228
+ 'wpccp',
229
+ 'wpccp_exclude_settings'
230
+ );
231
+
232
+ // Field: Exclude Admin.
233
+ add_settings_field(
234
+ 'exclude_admin',
235
+ __( 'For Admin User', 'wpccp' ),
236
+ [ __CLASS__, 'render_admin_field' ],
237
+ 'wpccp',
238
+ 'wpccp_exclude_settings'
239
+ );
240
+
241
+ // Field: Exclude Paste (Ctrl + V).
242
+ add_settings_field(
243
+ 'exclude_paste',
244
+ __( 'On Paste', 'wpccp' ),
245
+ [ __CLASS__, 'render_paste_field' ],
246
+ 'wpccp',
247
+ 'wpccp_exclude_settings'
248
+ );
249
+
250
+ // Field: Exclude Print Screen.
251
+ add_settings_field(
252
+ 'exclude_print_screen',
253
+ __( 'On Print Screen', 'wpccp' ),
254
+ [ __CLASS__, 'render_print_screen_field' ],
255
+ 'wpccp',
256
+ 'wpccp_pro_settings'
257
+ );
258
+
259
+ // Field: Exclude Links.
260
+ add_settings_field(
261
+ 'exclude_links',
262
+ __( 'On Links', 'wpccp' ),
263
+ [ __CLASS__, 'render_links_field' ],
264
+ 'wpccp',
265
+ 'wpccp_pro_settings'
266
+ );
267
+
268
+ // Field: Exclude Feed.
269
+ add_settings_field(
270
+ 'protect_feed',
271
+ __( 'On Feed', 'wpccp' ),
272
+ [ __CLASS__, 'render_feed_field' ],
273
+ 'wpccp',
274
+ 'wpccp_pro_settings'
275
+ );
276
+ }
277
+
278
+ /**
279
+ * Render Section: General Settings
280
+ *
281
+ * @return void
282
+ */
283
+ public static function render_exclude_section() {
284
+ esc_html_e( 'Fine tune protection by excluding content and actions based on conditions below', 'wpccp' );
285
+ }
286
+
287
+ /**
288
+ * Render Section: Pro Settings
289
+ *
290
+ * @return void
291
+ */
292
+ public static function render_pro_section() {
293
+ esc_html_e( 'Get fine control with more settings avilable in pro', 'wpccp' );
294
+ include_once 'views/upgrade.php';
295
+ }
296
+
297
+ /**
298
+ * Render Field: Protection Message
299
+ */
300
+ public static function render_message_field() {
301
+ $message = ! empty( self::$options['protection_message'] ) ? self::$options['protection_message'] : '';
302
+ ?>
303
+ <input id="wpccp_message" class="regular-text" type='text' name='wpccp[protection_message]' value='<?php echo esc_attr( $message ); ?>'>
304
+ <p class="description">
305
+ <?php esc_html_e( 'shown on copy or right click action', 'wpccp' ); ?>
306
+ </p>
307
+ <?php
308
+ }
309
+
310
+ /**
311
+ * Render Field: Exclude Pages
312
+ */
313
+ public static function render_pages_field() {
314
+ ?>
315
+ <select id="wpccp_exclude_pages" data-placeholder="<?php esc_attr_e( 'Select Page(s)', 'wpccp' ); ?>" class="regular-text" multiple name='wpccp[exclude_pages][]'>
316
+ <?php
317
+ if ( ! empty( self::$options['exclude_pages'] ) ) {
318
+ $pages = self::$options['exclude_pages'];
319
+ foreach ( $pages as $page ) {
320
+ $title = get_the_title( $page );
321
+ $title = ( mb_strlen( $title ) > 50 ) ? mb_substr( $title, 0, 49 ) . '...' : $title;
322
+ ?>
323
+ <option value="<?php echo esc_attr( $page ); ?>" <?php selected( true, in_array( $page, $pages, true ) ); ?>><?php echo esc_html( $title ); ?></option>
324
+ <?php
325
+ }
326
+ }
327
+ ?>
328
+ </select>
329
+ <p class="description">
330
+ <?php esc_html_e( 'disable protection on selected pages', 'wpccp' ); ?>
331
+ </p>
332
+ <?php
333
+ }
334
+
335
+ /**
336
+ * Render Field: Exclude Posts
337
+ */
338
+ public static function render_posts_field() {
339
+ ?>
340
+ <select id="wpccp_exclude_posts" data-placeholder="<?php esc_attr_e( 'Select Post(s)', 'wpccp' ); ?>" class="regular-text" multiple name='wpccp[exclude_posts][]'>
341
+ <?php
342
+ if ( ! empty( self::$options['exclude_posts'] ) ) {
343
+ $posts = self::$options['exclude_posts'];
344
+
345
+ foreach ( $posts as $post ) {
346
+ $title = get_the_title( $post );
347
+ $title = ( mb_strlen( $title ) > 50 ) ? mb_substr( $title, 0, 49 ) . '...' : $title;
348
+ ?>
349
+ <option value="<?php echo esc_attr( $post ); ?>" <?php selected( true, in_array( $post, $posts, true ) ); ?>><?php echo esc_html( $title ); ?></option>
350
+ <?php
351
+ }
352
+ }
353
+ ?>
354
+ </select>
355
+ <p class="description">
356
+ <?php esc_html_e( 'disable protection on selected posts', 'wpccp' ); ?>
357
+ </p>
358
+ <?php
359
+ }
360
+
361
+ /**
362
+ * Render Field: Exclude PostTypes
363
+ */
364
+ public static function render_post_types_field() {
365
+ // Get PostTypes.
366
+ $custom_type_args = [
367
+ 'public' => true,
368
+ '_builtin' => false,
369
+ ];
370
+
371
+ $custom_post_types = get_post_types( $custom_type_args, 'names', 'and' );
372
+
373
+ // Get Saved Settings.
374
+ $post_types = ! empty( self::$options['exclude_post_types'] ) ? self::$options['exclude_post_types'] : [];
375
+
376
+ // Render Field.
377
+ if ( empty( $custom_post_types ) ) {
378
+ echo esc_html_e( 'No custom posttype(s) found', 'wpccp' );
379
+ return;
380
+ }
381
+ ?>
382
+ <select disabled id="wpccp_exclude_posttypes" data-placeholder="<?php esc_attr_e( 'Select PostType(s)', 'wpccp' ); ?>" class="regular-text" multiple name='wpccp[exclude_post_types][]'>
383
+ <option value="all"><?php esc_html_e( 'All', 'wpccp' ); ?></option>
384
+ <?php foreach ( $custom_post_types as $posttype ) { ?>
385
+ <option value="<?php echo esc_attr( $posttype ); ?>" <?php selected( true, in_array( $posttype, $post_types, true ) ); ?>><?php echo esc_html( $posttype ); ?></option>
386
+ <?php } ?>
387
+ </select>
388
+ <p class="description">
389
+ <?php esc_html_e( 'disable protection on selected custom posttypes', 'wpccp' ); ?>
390
+ </p>
391
+ <?php
392
+ }
393
+
394
+ /**
395
+ * Render Field: Exclude Categories
396
+ */
397
+ public static function render_categories_field() {
398
+ $all_categories = get_categories( [ 'hide_empty' => false ] );
399
+ $categories = ! empty( self::$options['exclude_categories'] ) ? self::$options['exclude_categories'] : [];
400
+ ?>
401
+ <select id="wpccp_exclude_categories" data-placeholder="<?php esc_attr_e( 'Select Categories', 'wpccp' ); ?>" class="regular-text" multiple name='wpccp[exclude_categories][]'>
402
+ <?php foreach ( $all_categories as $category ) { ?>
403
+ <option value="<?php echo esc_attr( $category->term_id ); ?>" <?php selected( true, in_array( (string) $category->term_id, $categories, true ) ); ?>><?php echo esc_html( $category->name ); ?></option>
404
+ <?php } ?>
405
+ </select>
406
+ <p class="description">
407
+ <?php esc_html_e( 'disable protection on selected categories', 'wpccp' ); ?>
408
+ </p>
409
+ <?php
410
+ }
411
+
412
+ /**
413
+ * Render Field: Exclude Roles
414
+ */
415
+ public static function render_roles_field() {
416
+ $all_roles = get_editable_roles();
417
+ $roles = ! empty( self::$options['exclude_roles'] ) ? self::$options['exclude_roles'] : [];
418
+ ?>
419
+ <select disabled id="wpccp_exclude_roles" data-placeholder="<?php esc_attr_e( 'Select Role(s)', 'wpccp' ); ?>" class="regular-text" multiple name='wpccp[exclude_roles][]'>
420
+ <option value="all"><?php esc_html_e( 'All', 'wpccp' ); ?></option>
421
+ <?php foreach ( $all_roles as $role => $role_info ) { ?>
422
+ <option value="<?php echo esc_attr( $role ); ?>" <?php selected( true, in_array( $role, $roles, true ) ); ?>><?php echo esc_html( $role_info['name'] ); ?></option>
423
+ <?php } ?>
424
+ </select>
425
+ <p class="description">
426
+ <?php esc_html_e( 'disable protection for selected roles', 'wpccp' ); ?>
427
+ </p>
428
+ <?php
429
+ }
430
+
431
+ /**
432
+ * Render Field: Exclude Registered
433
+ */
434
+ public static function render_registered_field() {
435
+ $registered = ! empty( self::$options['exclude_registered'] ) ? self::$options['exclude_registered'] : '';
436
+ ?>
437
+ <input id="wpccp_exclude_registered" type='checkbox' name='wpccp[exclude_registered]' <?php checked( $registered, 'on' ); ?>>
438
+ <p class="description">
439
+ <?php esc_html_e( 'disable protection for registered users', 'wpccp' ); ?>
440
+ </p>
441
+ <?php
442
+ }
443
+
444
+ /**
445
+ * Render Field: Exclude Admin
446
+ */
447
+ public static function render_admin_field() {
448
+ $admin = ! empty( self::$options['exclude_admin'] ) ? self::$options['exclude_admin'] : '';
449
+ ?>
450
+ <input id="wpccp_exclude_admin" type='checkbox' name='wpccp[exclude_admin]' <?php checked( $admin, 'on' ); ?>>
451
+ <p class="description">
452
+ <?php esc_html_e( 'disable protection for users with admin role', 'wpccp' ); ?>
453
+ </p>
454
+ <?php
455
+ }
456
+
457
+ /**
458
+ * Render Field: Exclude Paste ( Ctrl + V )
459
+ */
460
+ public static function render_paste_field() {
461
+ $paste = ! empty( self::$options['exclude_paste'] ) ? self::$options['exclude_paste'] : '';
462
+ ?>
463
+ <input id="wpccp_exclude_paste" type='checkbox' name='wpccp[exclude_paste]' <?php checked( $paste, 'on' ); ?>>
464
+ <p class="description">
465
+ <?php esc_html_e( 'allow data to be pasted using shortcuts (helpful for pasting copied data into input fields)', 'wpccp' ); ?>
466
+ </p>
467
+ <?php
468
+ }
469
+
470
+ /**
471
+ * Render Field: Exclude Print Screen
472
+ */
473
+ public static function render_print_screen_field() {
474
+ $print_screen = ! empty( self::$options['exclude_print_screen'] ) ? self::$options['exclude_print_screen'] : '';
475
+ ?>
476
+ <input disabled id="wpccp_exclude_print_screen" type='checkbox' name='wpccp[exclude_print_screen]' <?php checked( $print_screen, 'on' ); ?>>
477
+ <p class="description">
478
+ <?php esc_html_e( 'allow print screen', 'wpccp' ); ?>
479
+ </p>
480
+ <?php
481
+ }
482
+
483
+ /**
484
+ * Render Field: Exclude Links
485
+ */
486
+ public static function render_links_field() {
487
+ $links = ! empty( self::$options['exclude_links'] ) ? self::$options['exclude_links'] : '';
488
+ ?>
489
+ <input disabled id="wpccp_exclude_links" type='checkbox' name='wpccp[exclude_links]' <?php checked( $links, 'on' ); ?>>
490
+ <p class="description">
491
+ <?php esc_html_e( 'allow content menu on links', 'wpccp' ); ?>
492
+ </p>
493
+ <?php
494
+ }
495
+
496
+ /**
497
+ * Render Field: Protect Feed
498
+ */
499
+ public static function render_feed_field() {
500
+ $feed = ! empty( self::$options['protect_feed'] ) ? self::$options['protect_feed'] : '';
501
+ ?>
502
+ <input disabled id="wpccp_protect_feed" type='checkbox' name='wpccp[protect_feed]' <?php checked( $feed, 'on' ); ?>>
503
+ <p class="description">
504
+ <?php esc_html_e( 'disable protection on feeds', 'wpccp' ); ?>
505
+ </p>
506
+ <?php
507
+ }
508
+
509
+ /**
510
+ * Get Post Callback for select2 ajax
511
+ *
512
+ * @return void
513
+ */
514
+ public static function get_posts() {
515
+ check_ajax_referer( 'wpccp_ajax' );
516
+
517
+ $search_q = ! empty( $_GET['wpccp_q'] ) ? sanitize_text_field( wp_unslash( $_GET['wpccp_q'] ) ) : '';
518
+ $search_type = ! empty( $_GET['wpccp_type'] ) ? sanitize_text_field( wp_unslash( $_GET['wpccp_type'] ) ) : 'post';
519
+
520
+ $posts = [];
521
+
522
+ $search_args = [
523
+ 's' => $search_q,
524
+ 'post_status' => 'publish',
525
+ 'ignore_sticky_posts' => 1,
526
+ 'posts_per_page' => 10,
527
+ 'post_type' => $search_type,
528
+ ];
529
+
530
+ $search_results = new \WP_Query( $search_args );
531
+
532
+ if ( $search_results->have_posts() ) {
533
+ while ( $search_results->have_posts() ) {
534
+ $search_results->the_post();
535
+ $title = $search_results->post->post_title;
536
+
537
+ if ( mb_strlen( $title ) > 50 ) {
538
+ $title = mb_substr( $search_results->post->post_title, 0, 49 ) . '...';
539
+ }
540
+
541
+ $posts[] = array( $search_results->post->ID, $title );
542
+ }
543
+ }
544
+
545
+ echo wp_json_encode( $posts );
546
+ wp_die();
547
+ }
548
+ }
includes/class-wpccp.php ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Wpccp
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @since 2.0.0
11
+ * @copyright TycheSoftwares
12
+ * @package wpccp
13
+ */
14
+
15
+ namespace TycheSoftwares\Wpccp;
16
+
17
+ /**
18
+ * Bootstrap plugin
19
+ */
20
+ final class Wpccp {
21
+ /**
22
+ * Instance.
23
+ *
24
+ * @since 2.0.0
25
+ * @access private
26
+ *
27
+ * @var Wpccp
28
+ */
29
+ private static $instance;
30
+ /**
31
+ * Singleton pattern.
32
+ *
33
+ * @since 2.0.0
34
+ * @access public
35
+ */
36
+ private function __construct() {
37
+ $this->setup();
38
+ }
39
+
40
+ /**
41
+ * Get instance.
42
+ *
43
+ * @since 2.0.0
44
+ * @access public
45
+ *
46
+ * @return Wpccp
47
+ */
48
+ public static function get_instance() {
49
+ if ( null === static::$instance ) {
50
+ self::$instance = new static();
51
+ }
52
+ return self::$instance;
53
+ }
54
+
55
+ /**
56
+ * Throw error on object clone.
57
+ *
58
+ * The whole idea of the singleton design pattern is that there is a single
59
+ * object, therefore we don't want the object to be cloned.
60
+ *
61
+ * @since 2.0.0
62
+ * @access public
63
+ */
64
+ public function __clone() {
65
+ // Cloning instances of the class is forbidden.
66
+ wpccp_doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wpccp' ), '1.0' );
67
+ }
68
+
69
+ /**
70
+ * Disable unserializing of the class.
71
+ *
72
+ * @since 2.0.0
73
+ * @access public
74
+ */
75
+ public function __wakeup() {
76
+ // Unserializing instances of the class is forbidden.
77
+ wpccp_doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wpccp' ), '1.0' );
78
+ }
79
+
80
+ /**
81
+ * Hook into actions and filters.
82
+ *
83
+ * @since 2.0.0
84
+ * @access private
85
+ */
86
+ private function setup() {
87
+ // Hooks.
88
+ add_action( 'init', array( $this, 'load_textdomain' ), 0 );
89
+ add_filter( 'plugin_action_links_' . WPCCP_PLUGIN_BASENAME, [ $this, 'settings_link' ] );
90
+
91
+ // Modules.
92
+ Protection::init();
93
+
94
+ if ( is_admin() ) {
95
+ Settings::init();
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Loads the plugin language files.
101
+ *
102
+ * @since 2.0.0
103
+ * @access public
104
+ *
105
+ * @return void
106
+ */
107
+ public function load_textdomain() {
108
+ $locale = apply_filters( 'plugin_locale', get_locale(), 'wpccp' );
109
+ // wp-content/languages/plugin-name/plugin-name-en_EN.mo.
110
+ load_textdomain( 'wpccp', trailingslashit( WP_LANG_DIR ) . 'wp-content-copy-protection/wp-content-copy-protection' . $locale . '.mo' );
111
+ // wp-content/plugins/plugin-name/languages/plugin-name-en_EN.mo.
112
+ load_plugin_textdomain( 'wpccp', false, basename( WPCCP_PLUGIN_DIR ) . '/languages/' );
113
+ }
114
+
115
+ /**
116
+ * Plugin action link
117
+ *
118
+ * @since 2.0.0
119
+ * @access public
120
+ *
121
+ * @param array $links action links array.
122
+ * @return array
123
+ */
124
+ public function settings_link( $links ) {
125
+ $text = sprintf( _x( 'Settings', 'WP Content Copy Protection Settings', 'wpccp' ) );
126
+ $html = '<a href="%s">%s</a>';
127
+ $link = sprintf( $html, admin_url( 'options-general.php?page=wpccp' ), $text );
128
+ array_unshift( $links, $link );
129
+ return $links;
130
+ }
131
+ }
includes/component/README.md DELETED
@@ -1 +0,0 @@
1
- # ts-plugin-features-boilerplate
 
includes/component/deactivate-survey-popup/Instructions DELETED
@@ -1,73 +0,0 @@
1
- Add a popup with some questions when the plugin is deactivated.
2
-
3
- To add this feature to the plugin, you can follow the below steps:
4
-
5
- 1. Copy the class-ts-deactivation.php file.
6
-
7
- 2. Include the file class-ts-deactivation.php once when on the admin page. This can be done with is_admin() function.
8
-
9
- 3. You need to pass the 2 parameters to the init function of the TS_deactivate class. You need to change the value of the variable as per the respective plugin.
10
-
11
- $wcap_file_name = 'woocommerce-abandon-cart-pro/woocommerce-ac.php';
12
- $wcap_plugin_name = 'Abandoned Cart Pro for WooCommerce';
13
-
14
- $wcap_deativate = new TS_deactivate;
15
- $wcap_deativate->init( $wcap_file_name, $wcap_plugin_name );
16
-
17
- 4. In respective plugin you have to add the filter as below:
18
- The filter name: ts_deativate_plugin_questions
19
-
20
- Please follow the below Standard method to add your plugin specific deactivate questions.
21
-
22
- Note: Dont chnage the below things in the function:
23
-
24
- 1. Main index: 0,1,2,3
25
- 2. The "id" paramter value in sub array.
26
-
27
- add_filter ( 'ts_deativate_plugin_questions', array( 'Wcap_Common', 'wcap_deactivate_add_questions' ), 10, 1 );
28
-
29
- /**
30
- * It will add the Questions while admin deactivate the plugin.
31
- * @hook ts_deativate_plugin_questions
32
- * @param array $wcap_add_questions Blank array
33
- * @return array $wcap_add_questions List of all questions.
34
- */
35
- public static function wcap_deactivate_add_questions ( $wcap_add_questions ) {
36
-
37
- $wcap_add_questions = array(
38
- 0 => array(
39
- 'id' => 4,
40
- 'text' => __( "Custom Delivery Settings are not working", "woocommerce-ac" ),
41
- 'input_type' => '',
42
- 'input_placeholder' => ''
43
- ),
44
- 1 => array(
45
- 'id' => 5,
46
- 'text' => __( "Minimum Delivery Time (in hours) is not working as expected", "woocommerce-ac" ),
47
- 'input_type' => '',
48
- 'input_placeholder' => ''
49
- ),
50
- 2 => array(
51
- 'id' => 6,
52
- 'text' => __( "Shipping Days feature is not working", "woocommerce-ac" ),
53
- 'input_type' => '',
54
- 'input_placeholder' => ''
55
- ),
56
- 3 => array(
57
- 'id' => 7,
58
- 'text' => __( "The plugin is not compatible with another plugin", "woocommerce-ac" ),
59
- 'input_type' => 'textfield',
60
- 'input_placeholder' => __( "Which Plugin?", "ts-deactivation-survey" )
61
- )
62
-
63
- );
64
- return $wcap_add_questions;
65
- }
66
-
67
- Once the above changes are done. Data will be stored in the tychesod_tracking database in the staging cpanel.
68
-
69
- - The ts_tracking_data table will store the unique tracking id, site URL and admin email address.
70
-
71
- - The ts_deactivation_survery table will store the meta for the reason for deactivating the plugin. Here tracking_id will be same as tracking id in ts_tracking_data.
72
-
73
- - The ts_tracking_plugins table will store the plugin name from which the action is performed. Here tracking_id will be same as tracking id in ts_tracking_data.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/deactivate-survey-popup/class-ts-deactivation.php DELETED
@@ -1,231 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Contains the logic for deactivation popups
5
- * @since 1.0.0
6
- */
7
- class WPCCPL_TS_deactivate {
8
- public static $ts_deactivation_str;
9
-
10
- public static $ts_generic_questions;
11
-
12
- public static $ts_plugin_specific_questions;
13
-
14
- /**
15
- * URL to the Tracker API endpoint.
16
- * @var string
17
- */
18
-
19
- private static $api_url = 'http://tracking.tychesoftwares.com/v1/';
20
-
21
- /**
22
- * @var string Plugin name
23
- * @access public
24
- */
25
-
26
- public static $plugin_name = '';
27
-
28
- /**
29
- * @var string Plugin file name
30
- * @access public
31
- */
32
- public static $ts_plugin_file_name = '';
33
-
34
- /**
35
- * @var string Plugin URL
36
- * @access public
37
- */
38
- public static $ts_plugin_url = '';
39
-
40
- /**
41
- * Initialization of hooks where we prepare the functionality to ask use for survey
42
- */
43
- public static function init( $ts_plugin_file_name = '', $ts_plugin_name = '' ) {
44
- self::$ts_plugin_file_name = $ts_plugin_file_name;
45
- self::$plugin_name = $ts_plugin_name;
46
- self::$ts_plugin_url = untrailingslashit( plugin_dir_path ( __FILE__ ) );
47
-
48
- self::ts_load_all_str();
49
- add_action( 'admin_footer', array( __CLASS__, 'maybe_load_deactivate_options' ) );
50
- add_action( 'wp_ajax_ts_submit_uninstall_reason', array( __CLASS__, '_submit_uninstall_reason_action' ) );
51
-
52
- add_filter( 'plugin_action_links_' . self::$ts_plugin_file_name, array( __CLASS__, 'ts_plugin_settings_link' ) );
53
- }
54
-
55
- /**
56
- * Settings link on Plugins page
57
- *
58
- * @access public
59
- * @param array $links
60
- * @return array
61
- */
62
- public static function ts_plugin_settings_link( $links ) {
63
-
64
- if ( isset ( $links['deactivate'] ) ) {
65
- $links['deactivate'] .= '<i class="shortcodes-ts-slug" data-slug="' . self::$ts_plugin_file_name . '"></i>';
66
- }
67
- return $links;
68
- }
69
-
70
- /**
71
- * Localizes all the string used
72
- */
73
- public static function ts_load_all_str() {
74
- self::$ts_deactivation_str = array(
75
- "deactivation-share-reason" => __( "If you have a moment, please let us know why you are deactivating", "ts-deactivation-survey" ),
76
- "deactivation-modal-button-submit" => __( "Submit & Deactivate", "ts-deactivation-survey" ),
77
- "deactivation-modal-button-deactivate" => __( "Deactivate", "ts-deactivation-survey" ),
78
- "deactivation-modal-button-cancel" => __( "Cancel", "ts-deactivation-survey" ),
79
- "deactivation-modal-button-confirm" => __( 'Yes - Deactivate', 'ts-deactivation-survey' ),
80
- );
81
-
82
- self::$ts_generic_questions = array(
83
- "reason-found-a-better-plugin" => __( "I found a better plugin", "ts-deactivation-survey" ),
84
- "placeholder-plugin-name" => __( "What's the plugin's name?", "ts-deactivation-survey" ),
85
- "reason-needed-for-a-short-period" => __( "I only needed the plugin for a short period", "ts-deactivation-survey" ),
86
- "reason-not-working" => __( "The plugin is not working", "ts-deactivation-survey" ),
87
- "placeholder-share-what-didnt-work" => __( "Kindly share what didn't work so we can fix it for future users...", "ts-deactivation-survey" ),
88
- "reason-great-but-need-specific-feature" => __( "The plugin is great, but I need specific feature that you don't support", "ts-deactivation-survey" ),
89
- "placeholder-feature" => __( "What feature?", "ts-deactivation-survey" ),
90
- "reason-dont-like-to-share-my-information" => __( "I don't like to share my information with you", "ts-deactivation-survey" ),
91
- "reason-other" => _x( "Other", "the text of the 'other' reason for deactivating the plugin that is shown in the modal box.", "ts-deactivation-survey" ),
92
- );
93
- }
94
-
95
- /**
96
- * Checking current page and pushing html, js and css for this task
97
- * @global string $pagenow current admin page
98
- * @global array $VARS global vars to pass to view file
99
- */
100
- public static function maybe_load_deactivate_options() {
101
- global $pagenow;
102
- if ( $pagenow == "plugins.php" ) {
103
- global $VARS;
104
- $VARS = array( 'slug' => "asvbsd", 'reasons' => self::deactivate_options() );
105
- include_once self::$ts_plugin_url . "/template/ts-deactivate-modal.php";
106
- }
107
- }
108
-
109
- /**
110
- * deactivation reasons in array format
111
- * @return array reasons array
112
- * @since 1.0.0
113
- */
114
- public static function deactivate_options() {
115
-
116
- self::$ts_plugin_specific_questions = apply_filters( 'ts_deativate_plugin_questions', array () );
117
-
118
-
119
- $reason_found_better_plugin = array(
120
- 'id' => 2,
121
- 'text' => self::$ts_generic_questions[ 'reason-found-a-better-plugin' ],
122
- 'input_type' => 'textfield',
123
- 'input_placeholder' => self::$ts_generic_questions[ 'placeholder-plugin-name' ]
124
- );
125
-
126
- $reason_not_working = array(
127
- 'id' => 3,
128
- 'text' => self::$ts_generic_questions[ 'reason-not-working' ],
129
- 'input_type' => 'textfield',
130
- 'input_placeholder' => self::$ts_generic_questions[ 'placeholder-share-what-didnt-work' ]
131
- );
132
-
133
- $reason_great_but_need_specific_feature = array(
134
- 'id' => 8,
135
- 'text' => self::$ts_generic_questions[ 'reason-great-but-need-specific-feature' ],
136
- 'input_type' => 'textfield',
137
- 'input_placeholder' => self::$ts_generic_questions[ 'placeholder-feature' ]
138
- );
139
-
140
- $reason_plugin_not_compatible = isset ( self::$ts_plugin_specific_questions[ 3 ] ) ? self::$ts_plugin_specific_questions[ 3 ] : '' ;
141
-
142
- $reason_other = array(
143
- 'id' => 10,
144
- 'text' => self::$ts_generic_questions[ 'reason-other' ],
145
- 'input_type' => 'textfield',
146
- 'input_placeholder' => ''
147
- );
148
-
149
- $long_term_user_reasons = array(
150
- array(
151
- 'id' => 1,
152
- 'text' => self::$ts_generic_questions[ 'reason-needed-for-a-short-period' ],
153
- 'input_type' => '',
154
- 'input_placeholder' => ''
155
- ),
156
- $reason_found_better_plugin,
157
- $reason_not_working,
158
- isset ( self::$ts_plugin_specific_questions[ 0 ] ) ? self::$ts_plugin_specific_questions[ 0 ] : '',
159
- isset ( self::$ts_plugin_specific_questions[ 1 ] ) ? self::$ts_plugin_specific_questions[ 1 ] : '',
160
- isset ( self::$ts_plugin_specific_questions[ 2 ] ) ? self::$ts_plugin_specific_questions[ 2 ] : '',
161
- $reason_plugin_not_compatible,
162
- $reason_great_but_need_specific_feature,
163
- array(
164
- 'id' => 9,
165
- 'text' => self::$ts_generic_questions[ 'reason-dont-like-to-share-my-information' ],
166
- 'input_type' => '',
167
- 'input_placeholder' => ''
168
- )
169
- );
170
-
171
-
172
- $uninstall_reasons[ 'default' ] = $long_term_user_reasons;
173
-
174
- $uninstall_reasons = apply_filters( 'ts_uninstall_reasons', $uninstall_reasons );
175
- array_push( $uninstall_reasons['default'], $reason_other );
176
-
177
- return $uninstall_reasons;
178
- }
179
-
180
- /**
181
- * get exact str against the slug
182
- *
183
- * @param type $slug
184
- *
185
- * @return type
186
- */
187
- public static function load_str( $slug ) {
188
- return self::$ts_deactivation_str[ $slug ];
189
- }
190
-
191
- /**
192
- * Called after the user has submitted his reason for deactivating the plugin.
193
- *
194
- * @since 1.1.2
195
- */
196
- public static function _submit_uninstall_reason_action() {
197
- if ( ! isset( $_POST[ 'reason_id' ] ) ) {
198
- exit;
199
- }
200
-
201
- $plugin_data = array();
202
-
203
- $plugin_data[ 'url' ] = home_url();
204
- $plugin_data[ 'email' ] = apply_filters( 'ts_tracker_admin_email', get_option( 'admin_email' ) );
205
-
206
- $reason_info = isset( $_REQUEST[ 'reason_info' ] ) ? trim( stripslashes( $_REQUEST[ 'reason_info' ] ) ) : '';
207
-
208
- $plugin_data[ 'reason_id' ] = $_POST[ 'reason_id' ];
209
- $plugin_data[ 'reason_info' ] = substr( $reason_info, 0, 128 );
210
- $plugin_data[ 'reason_text' ] = $_POST[ 'reason_text' ];
211
-
212
- $plugin_data[ 'ts_meta_data_table_name' ] = 'ts_deactivation_survey';
213
- $plugin_data[ 'ts_plugin_name' ] = self::$plugin_name;
214
-
215
- wp_safe_remote_post( self::$api_url, array(
216
- 'method' => 'POST',
217
- 'timeout' => 45,
218
- 'redirection' => 5,
219
- 'httpversion' => '1.0',
220
- 'blocking' => false,
221
- 'headers' => array( 'user-agent' => 'TSTracker/' . md5( esc_url( home_url( '/' ) ) ) . ';' ),
222
- 'body' => json_encode( $plugin_data ),
223
- 'cookies' => array(),
224
- )
225
- );
226
- // Print '1' for successful operation.
227
- echo 1;
228
- exit;
229
- }
230
-
231
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/deactivate-survey-popup/template/ts-deactivate-modal.php DELETED
@@ -1,387 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) {
3
- exit;
4
- }
5
-
6
- $slug = $VARS[ 'slug' ];
7
- $confirmation_message = '';
8
- $reasons = $VARS['reasons']['default'];
9
- $reasons_list_items_html = '';
10
- $plugin_customized_reasons = array();
11
- $incr = 0;
12
-
13
- foreach ( $reasons as $reason ) {
14
- $list_item_classes = 'reason' . ( ! empty( $reason['input_type'] ) ? ' has-input' : '' ) . ( ( isset( $reason[ 'html' ] ) && ( ! empty( $reason[ 'html' ] ) ) ) ? ' has_html' : '' );
15
-
16
- $reason_html = ( isset( $reason['html'] ) && ( ! empty( $reason['html'] ) ) ) ? '<div class="reason_html">' . $reason['html'] . '</div>' : '';
17
-
18
- $ts_reason_input_type = ( isset( $reason['input_type'] ) && ( ! empty( $reason['input_type'] ) ) ) ? $reason['input_type'] : '';
19
-
20
- $ts_reason_input_placeholder = ( isset( $reason['input_placeholder'] ) && ( ! empty( $reason['input_placeholder'] ) ) ) ? $reason['input_placeholder'] : '';
21
-
22
- $ts_reason_id = ( isset( $reason['id'] ) && ( ! empty( $reason['id'] ) ) ) ? $reason['id'] : '';
23
-
24
- $ts_reason_text = ( isset( $reason['text'] ) && ( ! empty( $reason['text'] ) ) ) ? $reason['text'] : '';
25
-
26
- $selected = "";
27
- if ( $incr == 0 ) {
28
- $selected = "checked";
29
- }
30
-
31
- $reasons_list_items_html .= '<li class="' . $list_item_classes . '" data-input-type="' . $ts_reason_input_type . '" data-input-placeholder="' . $ts_reason_input_placeholder . '"><label><span><input type="radio" name="selected-reason" value="' . $ts_reason_id . '" ' . $selected . '/></span><span>' . $ts_reason_text . '</span></label>' . $reason_html . '</li>';
32
- $incr ++;
33
- }
34
-
35
- ?>
36
- <style>
37
- .ts-modal {
38
- position: fixed;
39
- overflow: auto;
40
- height: 100%;
41
- width: 100%;
42
- top: 0;
43
- z-index: 100000;
44
- display: none;
45
- background: rgba(0, 0, 0, 0.6)
46
- }
47
-
48
- .ts-modal .ts-modal-dialog {
49
- background: transparent;
50
- position: absolute;
51
- left: 50%;
52
- margin-left: -298px;
53
- padding-bottom: 30px;
54
- top: -100%;
55
- z-index: 100001;
56
- width: 596px
57
- }
58
-
59
- .ts-modal li.reason.has_html .reason_html {
60
- display: none;
61
- border: 1px solid #ddd;
62
- padding: 4px 6px;
63
- margin: 6px 0 0 20px;
64
- }
65
-
66
- .ts-modal li.reason.has_html.li-active .reason_html {
67
- display: block;
68
- }
69
-
70
- @media (max-width: 650px) {
71
- .ts-modal .ts-modal-dialog {
72
- margin-left: -50%;
73
- box-sizing: border-box;
74
- padding-left: 10px;
75
- padding-right: 10px;
76
- width: 100%
77
- }
78
-
79
- .ts-modal .ts-modal-dialog .ts-modal-panel > h3 > strong {
80
- font-size: 1.3em
81
- }
82
-
83
- .ts-modal .ts-modal-dialog li.reason {
84
- margin-bottom: 10px
85
- }
86
-
87
- .ts-modal .ts-modal-dialog li.reason .reason-input {
88
- margin-left: 29px
89
- }
90
-
91
- .ts-modal .ts-modal-dialog li.reason label {
92
- display: table
93
- }
94
-
95
- .ts-modal .ts-modal-dialog li.reason label > span {
96
- display: table-cell;
97
- font-size: 1.3em
98
- }
99
- }
100
-
101
- .ts-modal.active {
102
- display: block
103
- }
104
-
105
- .ts-modal.active:before {
106
- display: block
107
- }
108
-
109
- .ts-modal.active .ts-modal-dialog {
110
- top: 10%
111
- }
112
-
113
- .ts-modal .ts-modal-body, .ts-modal .ts-modal-footer {
114
- border: 0;
115
- background: #fefefe;
116
- padding: 20px
117
- }
118
-
119
- .ts-modal .ts-modal-body {
120
- border-bottom: 0
121
- }
122
-
123
- .ts-modal .ts-modal-body h2 {
124
- font-size: 20px
125
- }
126
-
127
- .ts-modal .ts-modal-body > div {
128
- margin-top: 10px
129
- }
130
-
131
- .ts-modal .ts-modal-body > div h2 {
132
- font-weight: bold;
133
- font-size: 20px;
134
- margin-top: 0
135
- }
136
-
137
- .ts-modal .ts-modal-footer {
138
- border-top: #eeeeee solid 1px;
139
- text-align: right
140
- }
141
-
142
- .ts-modal .ts-modal-footer > .button {
143
- margin: 0 7px
144
- }
145
-
146
- .ts-modal .ts-modal-footer > .button:first-child {
147
- margin: 0
148
- }
149
-
150
- .ts-modal .ts-modal-panel:not(.active) {
151
- display: none
152
- }
153
-
154
- .ts-modal .reason-input {
155
- margin: 3px 0 3px 22px
156
- }
157
-
158
- .ts-modal .reason-input input, .ts-modal .reason-input textarea {
159
- width: 100%
160
- }
161
-
162
- body.has-ts-modal {
163
- overflow: hidden
164
- }
165
-
166
- #the-list .deactivate > .shortcodes-ts-slug {
167
- display: none
168
- }
169
-
170
- .ts-modal li.reason-hide {
171
- display: none;
172
- }
173
-
174
- </style>
175
- <script type="text/javascript">
176
- var currentPluginName = "";
177
- var TSCustomReasons = {};
178
- var TSDefaultReason = {};
179
- ( function ($) {
180
- var $deactivateLinks = {};
181
- var reasonsHtml = <?php echo json_encode( $reasons_list_items_html ); ?>,
182
- modalHtml =
183
- '<div class="ts-modal<?php echo ( $confirmation_message == "" ) ? ' no-confirmation-message' : ''; ?>">'
184
- + ' <div class="ts-modal-dialog">'
185
- + ' <div class="ts-modal-body">'
186
- + ' <div class="ts-modal-panel" data-panel-id="confirm"><p><?php echo $confirmation_message; ?></p></div>'
187
- + ' <div class="ts-modal-panel active" data-panel-id="reasons"><h3><strong><?php printf( WPCCPL_TS_deactivate::load_str( 'deactivation-share-reason' ) ); ?>:</strong></h3><ul id="reasons-list">' + reasonsHtml + '</ul></div>'
188
- + ' </div>'
189
- + ' <div class="ts-modal-footer">'
190
- + ' <a href="#" class="button button-secondary button-deactivate"></a>'
191
- + ' <a href="#" class="button button-primary button-close"><?php printf( WPCCPL_TS_deactivate::load_str( 'deactivation-modal-button-cancel' ) ); ?></a>'
192
- + ' </div>'
193
- + ' </div>'
194
- + '</div>',
195
- $modal = $(modalHtml),
196
-
197
- $deactivateLink = $('#the-list .deactivate > .shortcodes-ts-slug').prev();
198
-
199
- for( var i = 0; i < $deactivateLink.length; i++ ) {
200
- $deactivateLinks[ $( $deactivateLink[i] ).siblings( ".shortcodes-ts-slug" ).attr( 'data-slug' ) ] = $deactivateLink[i].href;
201
- }
202
-
203
- $modal.appendTo( $( 'body' ) );
204
-
205
- registerEventHandlers();
206
-
207
- function registerEventHandlers() {
208
- $deactivateLink.on( "click", function (evt) {
209
- evt.preventDefault();
210
- currentPluginName = $(this).siblings( ".shortcodes-ts-slug" ).attr( 'data-slug' );
211
- showModal();
212
- });
213
-
214
- $modal.on( 'click', '.button', function (evt) {
215
- evt.preventDefault();
216
- if ($(this).hasClass( 'disabled' ) ) {
217
- return;
218
- }
219
-
220
- var _parent = $(this).parents( '.ts-modal:first' );
221
- var _this = $(this);
222
-
223
- if( _this.hasClass( 'allow-deactivate' ) ) {
224
- var $radio = $('input[type="radio"]:checked');
225
- var $selected_reason = $radio.parents('li:first'),
226
- $input = $selected_reason.find('textarea, input[type="text"]');
227
- if( $radio.length == 0 ) {
228
- var data = {
229
- 'action': 'ts_submit_uninstall_reason',
230
- 'reason_id': 0,
231
- 'reason_text': "Deactivated without any option",
232
- 'plugin_basename': currentPluginName,
233
- };
234
- } else {
235
- var data = {
236
- 'action': 'ts_submit_uninstall_reason',
237
- 'reason_id': (0 !== $radio.length) ? $radio.val() : '',
238
- 'reason_text': $selected_reason.text(),
239
- 'reason_info': (0 !== $input.length) ? $input.val().trim() : '',
240
- 'plugin_basename': currentPluginName,
241
- };
242
- }
243
-
244
- $.ajax({
245
- url: ajaxurl,
246
- method: 'POST',
247
- data: data,
248
- beforeSend: function () {
249
- _parent.find('.button').addClass('disabled');
250
- _parent.find('.button-secondary').text('Processing...');
251
- },
252
- complete: function () {
253
- // Do not show the dialog box, deactivate the plugin.
254
- window.location.href = $deactivateLinks[currentPluginName];
255
- }
256
- });
257
- }
258
- });
259
-
260
- $modal.on('click', 'input[type="radio"]', function () {
261
- console.log( this );
262
- var _parent = $(this).parents('li:first');
263
- var _parent_ul = $(this).parents('ul#reasons-list');
264
-
265
- _parent_ul.children("li.li-active").removeClass("li-active");
266
-
267
- $modal.find('.reason-input').remove();
268
- $modal.find('.button-deactivate').text('<?php printf( WPCCPL_TS_deactivate::load_str( 'deactivation-modal-button-submit' ) ); ?>');
269
-
270
- if (_parent.hasClass('has_html')) {
271
- _parent.addClass('li-active');
272
- }
273
- if (_parent.hasClass('has-input')) {
274
- var inputType = _parent.data('input-type'),
275
- inputPlaceholder = _parent.data('input-placeholder'),
276
- reasonInputHtml = '<div class="reason-input">' + (('textfield' === inputType) ? '<input type="text" />' : '<textarea rows="5"></textarea>') + '</div>';
277
-
278
- _parent.append($(reasonInputHtml));
279
- _parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
280
- }
281
- });
282
-
283
- // If the user has clicked outside the window, cancel it.
284
- $modal.on('click', function (evt) {
285
- var $target = $(evt.target);
286
-
287
- // If the user has clicked anywhere in the modal dialog, just return.
288
- if ($target.hasClass('ts-modal-body') || $target.hasClass('ts-modal-footer')) {
289
- return;
290
- }
291
-
292
- // If the user has not clicked the close button and the clicked element is inside the modal dialog, just return.
293
- if (!$target.hasClass('button-close') && ($target.parents('.ts-modal-body').length > 0 || $target.parents('.ts-modal-footer').length > 0)) {
294
- return;
295
- }
296
-
297
- closeModal();
298
- });
299
- }
300
-
301
- function showModal() {
302
- resetModal();
303
-
304
- // Display the dialog box.
305
- $modal.addClass('active');
306
-
307
- $('body').addClass('has-ts-modal');
308
- }
309
-
310
- function closeModal() {
311
- $modal.removeClass('active');
312
-
313
- $('body').removeClass('has-ts-modal');
314
- }
315
-
316
- function resetModal() {
317
- if (TSCustomReasons.hasOwnProperty(currentPluginName) === true) {
318
- $modal.find("ul#reasons-list").html(TSCustomReasons[currentPluginName]);
319
- } else {
320
- $modal.find("ul#reasons-list").html(reasonsHtml);
321
-
322
- }
323
- var defaultSelect = TSDefaultReason[currentPluginName];
324
- $modal.find('.button').removeClass('disabled');
325
-
326
- // Remove all input fields ( textfield, textarea ).
327
- $modal.find('.reason-input').remove();
328
-
329
- var $deactivateButton = $modal.find('.button-deactivate');
330
- $modal.find(".reason-hide").hide();
331
- /*
332
- * If the modal dialog has no confirmation message, that is, it has only one panel, then ensure
333
- * that clicking the deactivate button will actually deactivate the plugin.
334
- */
335
- if ($modal.hasClass('no-confirmation-message')) {
336
- $deactivateButton.addClass('allow-deactivate');
337
- showPanel('reasons');
338
- }
339
- }
340
-
341
- function showPanel(panelType) {
342
- $modal.find('.ts-modal-panel').removeClass('active ');
343
- $modal.find('[data-panel-id="' + panelType + '"]').addClass('active');
344
-
345
- updateButtonLabels();
346
- }
347
-
348
- function updateButtonLabels() {
349
- var $deactivateButton = $modal.find('.button-deactivate');
350
-
351
- // Reset the deactivate button's text.
352
- if ('confirm' === getCurrentPanel()) {
353
- $deactivateButton.text('<?php printf( WPCCPL_TS_deactivate::load_str( 'deactivation-modal-button-confirm' ) ); ?>');
354
- } else {
355
- var $radio = $('input[type="radio"]:checked');
356
- if( $radio.length == 0 ) {
357
- $deactivateButton.text('<?php printf( WPCCPL_TS_deactivate::load_str( 'deactivation-modal-button-deactivate' ) ); ?>');
358
- } else {
359
- var _parent = $( $radio ).parents('li:first');
360
- var _parent_ul = $( $radio ).parents('ul#reasons-list');
361
-
362
- _parent_ul.children("li.li-active").removeClass("li-active");
363
-
364
- $modal.find('.reason-input').remove();
365
- $modal.find('.button-deactivate').text('<?php printf( WPCCPL_TS_deactivate::load_str( 'deactivation-modal-button-submit' ) ); ?>');
366
-
367
- if (_parent.hasClass('has_html')) {
368
- _parent.addClass('li-active');
369
- }
370
-
371
- if (_parent.hasClass('has-input')) {
372
- var inputType = _parent.data('input-type'),
373
- inputPlaceholder = _parent.data('input-placeholder'),
374
- reasonInputHtml = '<div class="reason-input">' + (('textfield' === inputType) ? '<input type="text" />' : '<textarea rows="5"></textarea>') + '</div>';
375
-
376
- _parent.append($(reasonInputHtml));
377
- _parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
378
- }
379
- }
380
- }
381
- }
382
-
383
- function getCurrentPanel() {
384
- return $modal.find('.ts-modal-panel.active').attr('data-panel-id');
385
- }
386
- })(jQuery);
387
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/faq-support/Instructions DELETED
@@ -1,47 +0,0 @@
1
- Add FAQ's submenu or tab in the plugin.
2
-
3
- To add this feature to the plugin, you can follow the below steps:
4
-
5
- 1. Copy the ts-faq-support.php file into your plugin folder. And faq-page folder into templates folder.
6
-
7
- 2. Include the ts-faq-support.php file once when on the admin page. This can be done with is_admin() function.
8
-
9
- 3. You need to pass the 7 parameters to the default constructor of the TS_Welcome class. You need to change the value of the variable value as per the respective plugin.
10
-
11
- $wcap_plugin_prefix = 'wcap';
12
- $wcap_plugin_name = 'Abandoned Cart Pro for WooCommerce';
13
- $wcap_blog_post_link = 'https://www.tychesoftwares.com/order-delivery-date-usage-tracking/';
14
- $wcap_locale = 'woocommerce-ac';
15
- $wcap_plugin_folder_name = 'woocommerce-abandon-cart-pro/';
16
- $wcap_plugins_page = 'admin.php?page=woocommerce_ac_page';
17
- $wcap_plugin_slug = 'woocommerce_ac_page';
18
-
19
- $ts_pro_faq = self::wcap_get_faq ();
20
- new TS_Faq_Support( $wcap_plugin_name, $wcap_plugin_prefix, $wcap_plugins_page, $wcap_locale, $wcap_plugin_folder_name, $wcap_plugin_slug, $ts_pro_faq );
21
-
22
- Here , $ts_pro_faq is an array.
23
-
24
- The structure of the array is like below:
25
-
26
- $ts_faq = array(
27
- 1 => array (
28
- 'question' => '',
29
- 'answer' => ''
30
- )
31
- );
32
-
33
- Here Index start from 1. Do not change it. We need to display 10 Questions and answers, so you can add 10 questions and answers in the above format.
34
-
35
- 4. You need to create 3 do_action in your respective plugin. And it should follow below standard.
36
-
37
- 1. {{plugin-prefix}}_add_settings_tab
38
- 2. {{plugin-prefix}}_add_tab_content
39
- 3. {{plugin-prefix}}_add_submenu
40
-
41
- 5. {{plugin-prefix}}_add_settings_tab : This do_action will be placed after your plguins tab. It will allow to add new tab.
42
-
43
- 6. {{plugin-prefix}}_add_tab_content : This do_action will be placed where you display the content of the tab.
44
-
45
- 7. {{plugin-prefix}}_add_submenu : This do_action will be placed where you have screated sub menu of your plguin.
46
-
47
- 8. You need to update all faq of the plugins.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/faq-support/templates/faq-page/faq-page.php DELETED
@@ -1,138 +0,0 @@
1
- <?php
2
- /**
3
- * FAQ & Support page
4
- */
5
-
6
- $faq_array = get_query_var( 'faq_support' );
7
-
8
- $ts_plugin_name = $faq_array['ts_plugin_name'];
9
-
10
- $ts_faq = $faq_array['ts_faq'];
11
-
12
- ?>
13
- <style>
14
- .faq-ts-accordion {
15
- background-color: #ccc;
16
- color: #444;
17
- cursor: pointer;
18
- padding: 18px;
19
- width: 100%;
20
- border: none;
21
- text-align: left;
22
- outline: none;
23
- font-size: 15px;
24
- transition: 0.4s;
25
- margin-bottom: 5px;
26
- }
27
- .active, .faq-ts-accordion:hover {
28
- background-color: #ccc;
29
- }
30
- .faq-ts-accordion:after {
31
- content: '\002B';
32
- color: #777;
33
- font-weight: bold;
34
- float: right;
35
- margin-left: 5px;
36
- }
37
- .active:after {
38
- content: "\2212";
39
- }
40
- .panel {
41
- padding: 0 18px;
42
- display: none;
43
- background-color: light-grey;
44
- overflow: hidden;
45
- }
46
- .main-panel {
47
- width: 650px !important;
48
- }
49
- .support-panel {
50
- padding: 5px;
51
- }
52
- .dashicons-external {
53
- content: "\f504";
54
- }
55
- .dashicons-editor-help {
56
- content: "\f223";
57
- }
58
- div.panel.show {
59
- display: block !important;
60
- }
61
-
62
- </style>
63
-
64
- <div class="main-panel">
65
- <h3>Frequently Asked Questions for <?php echo $ts_plugin_name; ?> Plugin</h3>
66
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[1]['question'] ?></strong></button>
67
- <div class="panel">
68
- <p><?php echo $ts_faq[1]['answer'] ?></p>
69
- </div>
70
-
71
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[2]['question'] ?></strong></button>
72
- <div class="panel">
73
- <p><?php echo $ts_faq[2]['answer'] ?></p>
74
- </div>
75
-
76
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[3]['question'] ?></strong></button>
77
- <div class="panel">
78
- <p><?php echo $ts_faq[3]['answer'] ?></p>
79
- </div>
80
-
81
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[4]['question'] ?></strong></button>
82
- <div class="panel">
83
- <p><?php echo $ts_faq[4]['answer'] ?></p>
84
- </div>
85
-
86
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[5]['question'] ?></strong></button>
87
- <div class="panel">
88
- <p><?php echo $ts_faq[5]['answer'] ?></p>
89
- </div>
90
-
91
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[6]['question'] ?></strong></button>
92
- <div class="panel">
93
- <p><?php echo $ts_faq[6]['answer'] ?></p>
94
- </div>
95
-
96
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[7]['question'] ?></strong></button>
97
- <div class="panel">
98
- <p><?php echo $ts_faq[7]['answer'] ?></p>
99
- </div>
100
-
101
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[8]['question'] ?></strong></button>
102
- <div class="panel">
103
- <p><?php echo $ts_faq[8]['answer'] ?></p>
104
- </div>
105
-
106
- <button class="faq-ts-accordion"><span class="dashicons dashicons-editor-help"></span><strong><?php echo $ts_faq[9]['question'] ?></strong></button>
107
- <div class="panel">
108
- <p><?php echo $ts_faq[9]['answer'] ?></p>
109
- </div>
110
-
111
- </div>
112
-
113
- <div class="support-panel">
114
- <p style="font-size: 19px">
115
- If your queries are not answered here, you can send an email directly to <strong>support@tychesoftwares.freshdesk.com</strong> for some additional requirements.
116
- </p>
117
- </div>
118
- <script>
119
- var acc = document.getElementsByClassName("faq-ts-accordion");
120
- var i;
121
-
122
- for (i = 0; i < acc.length; i++) {
123
- acc[i].onclick = function() {
124
- hideAll();
125
-
126
- this.classList.toggle("active");
127
- this.nextElementSibling.classList.toggle("show");
128
- }
129
- }
130
-
131
- function hideAll() {
132
- for (i = 0; i < acc.length; i++) {
133
- acc[i].classList.toggle( "active", false);
134
- acc[i].nextElementSibling.classList.toggle( "show", false );
135
- }
136
- }
137
-
138
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/faq-support/ts-faq-support.php DELETED
@@ -1,260 +0,0 @@
1
- <?php
2
-
3
- /**
4
- *
5
- * @since 1.0.0
6
- */
7
- class WPCCPL_TS_Faq_Support {
8
-
9
- /**
10
- * @var string The capability users should have to view the page
11
- */
12
- public static $minimum_capability = 'manage_options';
13
-
14
- /**
15
- * @var string Plugin name
16
- * @access public
17
- */
18
-
19
- public static $plugin_name = '';
20
-
21
- /**
22
- * @var string Plugin prefix
23
- * @access public
24
- */
25
- public static $plugin_prefix = '';
26
-
27
- /**
28
- * @var string Plugins page path
29
- * @access public
30
- */
31
- public static $plugin_page = '';
32
-
33
- /**
34
- * @var string Plugins plugin local
35
- * @access public
36
- */
37
- public static $plugin_locale = '';
38
-
39
- /**
40
- * @var string Plugin folder name
41
- * @access public
42
- */
43
- public static $plugin_folder = '';
44
- /**
45
- * @var string Plugin url
46
- * @access public
47
- */
48
- public static $plugin_url = '';
49
- /**
50
- * @var string Template path
51
- * @access public
52
- */
53
- public static $template_base = '';
54
- /**
55
- * @var string Slug on Main menu
56
- * @access public
57
- */
58
- public static $plugin_slug = '';
59
-
60
- /**
61
- * @var array List of all questions and answers.
62
- * @access public
63
- */
64
- public static $ts_faq = array ();
65
- /**
66
- * @var string Slug for FAQ submenu
67
- * @access public
68
- */
69
- public static $ts_faq_submenu_slug = '';
70
-
71
- /**
72
- * @var string Plugin file name
73
- * @access public
74
- */
75
- public static $ts_faq_file_base_name = '';
76
- /**
77
- * Initialization of hooks where we prepare the functionality to ask use for survey
78
- */
79
- public function __construct( $ts_plugin_mame = '', $ts_plugin_prefix = '', $ts_plugin_page = '', $ts_plugin_locale = '', $ts_plugin_folder_name = '', $ts_plugin_slug = '', $ts_faq_array = array(), $faq_submenu_slug = '', $ts_plugin_file = '' ) {
80
-
81
- self::$plugin_name = $ts_plugin_mame;
82
- self::$plugin_prefix = $ts_plugin_prefix;
83
- self::$plugin_page = $ts_plugin_page;
84
- self::$plugin_locale = $ts_plugin_locale;
85
- self::$plugin_slug = $ts_plugin_slug;
86
- self::$ts_faq = $ts_faq_array;
87
- self::$ts_faq_submenu_slug = ( '' == $faq_submenu_slug ) ? self::$plugin_slug : $faq_submenu_slug ;
88
- self::$ts_faq_file_base_name = $ts_plugin_file ;
89
-
90
- //Add a sub menu in the main menu of the plugin if added.
91
- add_action( self::$plugin_prefix . '_add_submenu', array( &$this, 'ts_add_submenu' ) );
92
-
93
- //Add a tab for FAQ & Support along with other plugin settings tab.
94
- add_action( self::$plugin_prefix . '_add_settings_tab', array( &$this, 'ts_add_new_settings_tab' ) );
95
- add_action( self::$plugin_prefix . '_add_tab_content', array( &$this, 'ts_add_tab_content' ) );
96
-
97
- add_action ( self::$plugin_prefix . '_add_meta_footer', array( &$this, 'ts_add_meta_footer_text' ), 10, 1 );
98
-
99
- add_action( 'admin_menu', array( &$this, 'ts_admin_menus' ) );
100
- add_action( 'admin_head', array( &$this, 'admin_head' ) );
101
-
102
- self::$plugin_folder = $ts_plugin_folder_name;
103
- self::$plugin_url = $this->ts_get_plugin_url();
104
- self::$template_base = $this->ts_get_template_path();
105
-
106
-
107
- add_filter( 'plugin_action_links_' . self::$ts_faq_file_base_name, array( __CLASS__, 'ts_plugin_action_links'
108
- ), 10 );
109
-
110
-
111
- }
112
-
113
- /**
114
- * Add the FAQ & SUpport link on the plugins page.
115
- * @hook 'plugin_action_links_' . self::$ts_plugin_dir
116
- */
117
- public static function ts_plugin_action_links ( $links ) {
118
-
119
- $ts_action_links = array();
120
-
121
- $ts_faq_url = admin_url( 'index.php?page='.self::$plugin_prefix.'_faq_page' ) ;
122
- $ts_action_links = array(
123
- 'faq_support' => '<a href="'.$ts_faq_url.'" class="faq" title= "You can check Frequently asked questions off the plugin.">FAQ & Support</a>',
124
- );
125
-
126
- return array_merge( $ts_action_links, $links );
127
- }
128
-
129
-
130
- public static function ts_add_meta_footer_text () {
131
- ?>
132
- <tr> <td> <br></td> </tr>
133
-
134
- <tr>
135
- <td colspan="2">
136
- You have any queries? Please check our <a href=<?php echo admin_url( 'index.php?page='.self::$plugin_prefix .'_faq_page' ) ; ?> >FAQ</a> page.
137
- </td>
138
- <tr>
139
- <?php
140
- }
141
-
142
- /**
143
- * Register the Dashboard Page which is later hidden but this pages
144
- * is used to render the Welcome page.
145
- *
146
- * @access public
147
- * @since 7.7
148
- * @return void
149
- */
150
- public function ts_admin_menus() {
151
-
152
- // About Page
153
- $page = add_dashboard_page(
154
- sprintf( esc_html__( 'Frequently Asked Questions for %s', self::$plugin_locale ), self::$plugin_name ),
155
- esc_html__( 'Frequently Asked Questions for ' . self::$plugin_name, self::$plugin_locale ),
156
- self::$minimum_capability,
157
- self::$plugin_prefix . '_faq_page',
158
- array( $this, 'ts_faq_support_page' )
159
- );
160
-
161
- }
162
-
163
- /**
164
- * Hide Individual Dashboard Pages
165
- *
166
- * @access public
167
- * @since 7.7
168
- * @return void
169
- */
170
- public function admin_head() {
171
- remove_submenu_page( 'index.php', self::$plugin_prefix . '_faq_page' );
172
- }
173
- /**
174
- * Adds a subment to the main menu of the plugin
175
- *
176
- * @since 7.7
177
- */
178
-
179
- public function ts_add_submenu() {
180
- $page = add_submenu_page( self::$plugin_slug,
181
- 'FAQ & Support',
182
- 'FAQ & Support',
183
- 'manage_options',
184
- self::$ts_faq_submenu_slug,
185
- array( &$this, 'ts_add_tab_content' )
186
- );
187
- }
188
-
189
- /**
190
- * Add a new tab on the settings page.
191
- *
192
- * @since 7.7
193
- */
194
- public function ts_add_new_settings_tab() {
195
- $faq_support_page = '';
196
- if( isset( $_GET[ 'page' ] ) && $_GET[ 'page' ] == 'faq_support_page' ) {
197
- $faq_support_page = "nav-tab-active";
198
- }
199
- $ts_plugins_page_url = self::$plugin_page . "&action=faq_support_page" ;
200
- ?>
201
- <a href="<?php echo $ts_plugins_page_url; ?>" class="nav-tab <?php echo $faq_support_page; ?>"> <?php _e( 'FAQ & Support', self::$plugin_locale ); ?> </a>
202
- <?php
203
-
204
-
205
- }
206
-
207
- /**
208
- * Add content to the new tab added.
209
- *
210
- * @since 7.7
211
- */
212
-
213
- public function ts_add_tab_content() {
214
- if( isset( $_GET[ 'page' ] ) && $_GET[ 'page' ] == 'faq_support_page' ) {
215
- $this->ts_faq_support_page();
216
- }
217
- }
218
-
219
- /**
220
- * Adds a page to display the FAQ's and support information
221
- *
222
- * @since 7.7
223
- */
224
- public function ts_faq_support_page() {
225
-
226
- $ts_file_path = dirname( __FILE__ ) ;
227
- $faq_support = array(
228
- 'ts_plugin_name' => self::$plugin_name,
229
- 'ts_faq' => self::$ts_faq
230
- );
231
- set_query_var( 'faq_support', $faq_support );
232
-
233
- ob_start();
234
- load_template( $ts_file_path . '/templates/faq-page/faq-page.php'
235
- );
236
- echo ob_get_clean();
237
- }
238
-
239
- /**
240
- * This function returns the plugin url
241
- *
242
- * @access public
243
- * @since 7.7
244
- * @return string
245
- */
246
- public function ts_get_plugin_url() {
247
- return plugins_url() . '/' . self::$plugin_folder;
248
- }
249
-
250
- /**
251
- * This function returns the template directory path
252
- *
253
- * @access public
254
- * @since 7.7
255
- * @return string
256
- */
257
- public function ts_get_template_path() {
258
- return untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/templates/';
259
- }
260
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/pro-notices-in-lite/Instructions DELETED
@@ -1,41 +0,0 @@
1
- Add some notices of Pro plugins in the lite plugins.
2
-
3
- To add this feature to the plugin, you can follow the below steps:
4
-
5
- 1. Copy the ts-pro-notices.php file into your plugin folder.
6
-
7
- 2. Include the file once when on the admin page. This can be done with is_admin() function.
8
-
9
- 3. You need to pass the 3 parameters to the default constructor of the ts_pro_notices class. You need to change the value of the variable as per the respective plugin.
10
-
11
- $wcap_plugin_prefix = 'wcap';
12
- $wcap_plugin_name = 'Abandoned Cart Pro for WooCommerce';
13
- $wcap_lite_plugin_prefix = 'wcal';
14
-
15
- new ts_pro_notices( $wcap_plugin_name, $wcap_lite_plugin_prefix, $wcap_plugin_prefix );
16
-
17
- 4. You need to add one do_action in your lite plguin. This do_action will be placed under the "register_activation_hook" hook of the plguin.
18
-
19
- The do_action will be like {{plugin-prefix}}_activate
20
-
21
- For an ex:
22
-
23
- do_action( 'wcal_activate' );
24
-
25
- Here, 'wcal' is tge prefix of the AC Lite.
26
-
27
- 5. Then you need create an array of the notices.
28
-
29
- $ts_pro_notices = array (
30
- 1 => $message_first,
31
- 2 => $message_two,
32
- 3 => $message_three,
33
- 4 => $message_four,
34
- 5 => $message_five,
35
- 6 => $message_six,
36
- 7 => $message_seven,
37
- 8 => $message_eight,
38
- 9 => $message_nine,
39
- ) ;
40
-
41
- Here, you dont need to change the index, you just need to change the message variable.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/pro-notices-in-lite/ts-pro-notices.php DELETED
@@ -1,667 +0,0 @@
1
- <?php
2
-
3
- class WPCCPL_ts_pro_notices {
4
-
5
- /**
6
- * Plugin's Name
7
- *
8
- * @access public
9
- * @since 3.5
10
- */
11
- public static $plugin_name = "";
12
-
13
- /**
14
- * Plugin's unique prefix
15
- *
16
- * @access public
17
- * @since 3.5
18
- */
19
-
20
- public static $plugin_prefix = '';
21
-
22
- /**
23
- * Pro plugin's unique prefix
24
- *
25
- * @access public
26
- * @since 3.5
27
- */
28
-
29
- public static $pro_plugin_prefix = '';
30
-
31
- /**
32
- * @var array Collection of all messages.
33
- * @access public
34
- */
35
- public static $ts_pro_notices = array ();
36
-
37
- /**
38
- * @var string file name
39
- * @access public
40
- */
41
- public static $ts_file_name = '';
42
-
43
- /**
44
- * @var string Pro version file name
45
- * @access public
46
- */
47
- public static $ts_pro_file_name = '';
48
-
49
-
50
- /**
51
- * Default Constructor
52
- *
53
- * @since 3.5
54
- */
55
-
56
- public function __construct( $ts_plugin_name = '', $ts_plugin_prefix = '', $ts_pro_plugin_prefix = '', $ts_notices = array(), $ts_file = '', $ts_pro_file = '' ) {
57
- self::$plugin_name = $ts_plugin_name;
58
- self::$plugin_prefix = $ts_plugin_prefix;
59
- self::$pro_plugin_prefix = $ts_pro_plugin_prefix;
60
- self::$ts_pro_notices = $ts_notices;
61
- self::$ts_file_name = $ts_file;
62
- self::$ts_pro_file_name = $ts_pro_file;
63
-
64
- //Initialize settings
65
- register_activation_hook( __FILE__, array( &$this, 'ts_notices_activate' ) );
66
-
67
- //Add pro notices
68
- add_action( 'admin_notices', array( __CLASS__, 'ts_notices_of_pro' ) );
69
- add_action( 'admin_init', array( __CLASS__, 'ts_ignore_pro_notices' ) );
70
-
71
- if( !get_option( self::$plugin_prefix . '_activate_time' ) ) {
72
- add_action( self::$plugin_prefix . '_activate', array( __CLASS__, 'ts_notices_activate' ) );
73
- }
74
- }
75
-
76
- /**
77
- * Add an option which stores the timestamp when the plugin is first activated
78
- *
79
- * @since 3.5
80
- */
81
- public static function ts_notices_activate() {
82
- //Pro admin Notices
83
- if( !get_option( self::$plugin_prefix . '_activate_time' ) ) {
84
- add_option( self::$plugin_prefix . '_activate_time', current_time( 'timestamp' ) );
85
- }
86
- }
87
-
88
- public static function ts_notices_of_pro() {
89
- $activate_time = get_option ( self::$plugin_prefix . '_activate_time' );
90
- $sixty_days = strtotime ( '+60 Days', $activate_time );
91
- $current_time = current_time ( 'timestamp' );
92
- $add_query_arguments = '';
93
- $message = '';
94
-
95
- if( '' != self::$ts_pro_file_name && !is_plugin_active( self::$ts_pro_file_name ) &&
96
- ( false === $activate_time || ( $activate_time > 0 && $current_time >= $sixty_days ) ) ) {
97
- global $current_user ;
98
- $user_id = $current_user->ID;
99
-
100
- if( ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore' ) ) {
101
-
102
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_first_notice_ignore', '0' );
103
-
104
- $class = 'updated notice-info point-notice one';
105
- $style = 'position:relative';
106
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
107
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, self::$ts_pro_notices[1], $cancel_button );
108
- }
109
-
110
- if ( get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore' ) &&
111
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore' )
112
- ) {
113
-
114
- $first_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore_time' );
115
- $fifteen_days = strtotime( '+15 Days', $first_ignore_time[0] );
116
-
117
- if ( $current_time > $fifteen_days ) {
118
-
119
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_second_notice_ignore', '0' );
120
-
121
- $class = 'updated notice-info point-notice two';
122
- $style = 'position:relative';
123
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
124
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, self::$ts_pro_notices[2], $cancel_button );
125
- }
126
- }
127
-
128
- if ( get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore' ) &&
129
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore' ) &&
130
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_third_notice_ignore' )
131
- ) {
132
-
133
- $second_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore_time' );
134
- $ts_fifteen_days = strtotime( '+15 Days', $second_ignore_time[0] );
135
-
136
- if ( $current_time > $ts_fifteen_days ) {
137
-
138
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_third_notice_ignore', '0' );
139
-
140
- $class = 'updated notice-info point-notice';
141
- $style = 'position:relative';
142
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
143
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, self::$ts_pro_notices[3], $cancel_button );
144
- }
145
- }
146
-
147
- if ( get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore' ) &&
148
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore' ) &&
149
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_third_notice_ignore' ) &&
150
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fourth_notice_ignore' )
151
- ) {
152
-
153
- $third_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_third_notice_ignore_time' );
154
- $ts_fifteen_days = strtotime( '+15 Days', $third_ignore_time[0] );
155
-
156
- if ( $current_time > $ts_fifteen_days ) {
157
-
158
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_fourth_notice_ignore', '0' );
159
-
160
- $class = 'updated notice-info point-notice';
161
- $style = 'position:relative';
162
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
163
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, self::$ts_pro_notices[4], $cancel_button );
164
- }
165
- }
166
-
167
- if ( get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore' ) &&
168
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore' ) &&
169
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_third_notice_ignore' ) &&
170
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fourth_notice_ignore' ) &&
171
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fifth_notice_ignore' )
172
- ) {
173
-
174
- $fourth_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fourth_notice_ignore_time' );
175
- $ts_fifteen_days = strtotime( '+15 Days', $fourth_ignore_time[0] );
176
-
177
- if ( $current_time > $ts_fifteen_days ) {
178
-
179
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_fifth_notice_ignore', '0' );
180
-
181
- $class = 'updated notice-info point-notice';
182
- $style = 'position:relative';
183
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
184
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, self::$ts_pro_notices[5], $cancel_button );
185
- }
186
- }
187
-
188
- /**
189
- * Display Other plugin notices.
190
- */
191
-
192
- if ( get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore' ) &&
193
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore' ) &&
194
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_third_notice_ignore' ) &&
195
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fourth_notice_ignore' ) &&
196
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fifth_notice_ignore' )
197
- ) {
198
- $fifth_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fifth_notice_ignore_time' );
199
-
200
- self::ts_display_other_pro_plugin_notices( $current_time, $activate_time, $fifth_ignore_time [ 0 ] );
201
- }
202
- }
203
-
204
- /**
205
- * What happen if the respective plugin is activated.
206
- * AC - With latest version, Lite will be deactivated. With old version, it will be deactivated.
207
- * Ordd, Prdd - Both version can be activated.
208
- *
209
- */
210
- $seven_days = strtotime ( '+7 Days', $activate_time );
211
- if( ( is_plugin_active( self::$ts_pro_file_name ) || '' == self::$ts_pro_file_name ) &&
212
- ( false === $activate_time || ( $activate_time > 0 && $current_time >= $seven_days ) ) ) {
213
-
214
- self::ts_display_other_pro_plugin_notices( $current_time, $activate_time );
215
- }
216
-
217
- }
218
-
219
- /**
220
- * It will display the all othe pro plugin notices
221
- *
222
- */
223
- public static function ts_display_other_pro_plugin_notices ( $current_time, $activate_time, $ts_consider_time = '' ) {
224
-
225
- $sixth_plugin_link = self::$ts_pro_notices[6] ['plugin_link'];
226
-
227
- if ( !is_plugin_active( $sixth_plugin_link ) &&
228
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_sixth_notice_ignore' )
229
- ) {
230
-
231
- if ( '' != $ts_consider_time ) {
232
- /**
233
- * This is fifth ignore notice time plus 7 days
234
- */
235
- $ts_consider_time = strtotime( '+7 Days', $ts_consider_time );
236
-
237
- }
238
-
239
- $sixth_message = self::$ts_pro_notices[6] ['message'];
240
-
241
- if ( $current_time > $ts_consider_time ) {
242
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_sixth_notice_ignore', '0' );
243
-
244
- $class = 'updated notice-info point-notice';
245
- $style = 'position:relative';
246
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
247
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $sixth_message, $cancel_button );
248
- }
249
-
250
- }
251
-
252
- if ( !is_plugin_active( $sixth_plugin_link ) &&
253
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_sixth_notice_ignore' ) &&
254
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_seventh_notice_ignore' )
255
- ) {
256
-
257
- $sixth_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_sixth_notice_ignore_time' );
258
- $ts_seven_days = strtotime( '+7 Days', $sixth_ignore_time[0] );
259
-
260
- if ( $current_time > $ts_seven_days ) {
261
-
262
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_seventh_notice_ignore', '0' );
263
-
264
- $seventh_message = self::$ts_pro_notices[7] ['message'];
265
-
266
- $class = 'updated notice-info point-notice';
267
- $style = 'position:relative';
268
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
269
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $seventh_message, $cancel_button );
270
- }
271
- }
272
-
273
-
274
- if ( !is_plugin_active( $sixth_plugin_link ) &&
275
-
276
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_seventh_notice_ignore' ) &&
277
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eigth_notice_ignore' )
278
- ) {
279
-
280
- $seventh_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_seventh_notice_ignore_time' );
281
- $ts_seven_days = strtotime( '+7 Days', $seventh_ignore_time[0] );
282
-
283
- if ( $current_time > $ts_seven_days ) {
284
-
285
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_eigth_notice_ignore', '0' );
286
-
287
- $eight_message = self::$ts_pro_notices[8] ['message'];
288
-
289
- $class = 'updated notice-info point-notice';
290
- $style = 'position:relative';
291
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
292
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $eight_message, $cancel_button );
293
- }
294
- }
295
-
296
- if ( !is_plugin_active( $sixth_plugin_link ) &&
297
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eigth_notice_ignore' ) &&
298
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_ninth_notice_ignore' )
299
- ) {
300
-
301
- $eigth_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eigth_notice_ignore_time' );
302
- $ts_seven_days = strtotime( '+7 Days', $eigth_ignore_time[0] );
303
-
304
- if ( $current_time > $ts_seven_days ) {
305
-
306
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_ninth_notice_ignore', '0' );
307
-
308
- $ninth_message = self::$ts_pro_notices[9] ['message'];
309
-
310
- $class = 'updated notice-info point-notice';
311
- $style = 'position:relative';
312
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
313
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $ninth_message, $cancel_button );
314
- }
315
- }
316
-
317
-
318
- $tenth_plugin_link = self::$ts_pro_notices[10] ['plugin_link'];
319
- if ( !is_plugin_active( $tenth_plugin_link ) &&
320
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_ninth_notice_ignore' ) &&
321
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore' )
322
- ) {
323
-
324
- $ninth_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_ninth_notice_ignore_time' );
325
- $ts_seven_days = strtotime( '+7 Days', $ninth_ignore_time[0] );
326
-
327
- if ( $current_time > $ts_seven_days ) {
328
-
329
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_tenth_notice_ignore', '0' );
330
-
331
- $tenth_message = self::$ts_pro_notices[10] ['message'];
332
-
333
- $class = 'updated notice-info point-notice';
334
- $style = 'position:relative';
335
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
336
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $tenth_message, $cancel_button );
337
- }
338
-
339
- } else if ( !is_plugin_active( $tenth_plugin_link ) &&
340
- is_plugin_active ( $sixth_plugin_link ) &&
341
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore' )
342
- ) {
343
- /**
344
- * If Ac Pro active then Directly show notice after 30 days, skip 4 notice period of ac pro.
345
- */
346
- $ts_seven_days = strtotime( '+30 Days', $activate_time );
347
-
348
- if ( $current_time > $ts_seven_days ) {
349
-
350
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_tenth_notice_ignore', '0' );
351
-
352
- $tenth_message = self::$ts_pro_notices[10] ['message'];
353
-
354
- $class = 'updated notice-info point-notice';
355
- $style = 'position:relative';
356
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
357
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $tenth_message, $cancel_button );
358
- }
359
-
360
- }
361
-
362
- $eleven_plugin_link = self::$ts_pro_notices[11] ['plugin_link'];
363
- if ( !is_plugin_active( $eleven_plugin_link ) &&
364
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore' ) &&
365
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleven_notice_ignore' )
366
- ) {
367
-
368
- $tenth_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore_time' );
369
- $ts_seven_days = strtotime( '+7 Days', $tenth_ignore_time[0] );
370
-
371
- if ( $current_time > $ts_seven_days ) {
372
-
373
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_eleven_notice_ignore', '0' );
374
-
375
- $eleven_message = self::$ts_pro_notices[11] ['message'];
376
-
377
- $class = 'updated notice-info point-notice';
378
- $style = 'position:relative';
379
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
380
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $eleven_message, $cancel_button );
381
- }
382
-
383
- } else if ( !is_plugin_active( $eleven_plugin_link ) &&
384
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore' ) &&
385
- ! get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleven_notice_ignore' )
386
- ) {
387
-
388
- /**
389
- * If Tenth notice has been ignored, the consider the time.
390
- */
391
- $tenth_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore_time' );
392
- $ts_seven_days = strtotime( '+7 Days', $tenth_ignore_time[0] );
393
-
394
- if ( $current_time > $ts_seven_days ) {
395
-
396
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_eleven_notice_ignore', '0' );
397
-
398
- $eleven_message = self::$ts_pro_notices[11] ['message'];
399
-
400
- $class = 'updated notice-info point-notice';
401
- $style = 'position:relative';
402
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
403
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $eleven_message, $cancel_button );
404
- }
405
-
406
- } else if ( !is_plugin_active( $eleven_plugin_link ) &&
407
- is_plugin_active ( $sixth_plugin_link ) &&
408
- is_plugin_active ( $tenth_plugin_link ) &&
409
- !get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleven_notice_ignore' )
410
- ) {
411
-
412
- /**
413
- * If Ac pro and orrdd pro is activate then skip the time priod of both plugins
414
- */
415
- $ts_seven_days = strtotime( '+37 Days', $activate_time );
416
-
417
- if ( $current_time > $ts_seven_days ) {
418
-
419
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_eleven_notice_ignore', '0' );
420
-
421
- $eleven_message = self::$ts_pro_notices[11] ['message'];
422
-
423
- $class = 'updated notice-info point-notice';
424
- $style = 'position:relative';
425
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
426
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $eleven_message, $cancel_button );
427
- }
428
-
429
- }
430
-
431
- $twelve_plugin_link = self::$ts_pro_notices[12] ['plugin_link'];
432
- if ( !is_plugin_active( $twelve_plugin_link ) &&
433
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleven_notice_ignore' ) &&
434
- !get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore' )
435
- ) {
436
-
437
- $eleventh_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleventh_notice_ignore_time' );
438
- $ts_seven_days = strtotime( '+7 Days', $eleventh_ignore_time[0] );
439
-
440
- if ( $current_time > $ts_seven_days ) {
441
-
442
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_twelve_notice_ignore', '0' );
443
-
444
- $twelve_message = self::$ts_pro_notices[12] ['message'];
445
-
446
- $class = 'updated notice-info point-notice';
447
- $style = 'position:relative';
448
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
449
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $twelve_message, $cancel_button );
450
- }
451
-
452
- } else if ( !is_plugin_active( $twelve_plugin_link ) &&
453
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore' ) &&
454
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleven_notice_ignore' ) &&
455
- !get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore' )
456
- ) {
457
-
458
- /**
459
- * If ordd, booking notice ignored then consider booking plugin ignore time ( 11 )
460
- */
461
- $eleventh_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleventh_notice_ignore_time' );
462
- $ts_seven_days = strtotime( '+7 Days', $eleventh_ignore_time[0] );
463
-
464
- if ( $current_time > $ts_seven_days ) {
465
-
466
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_twelve_notice_ignore', '0' );
467
-
468
- $twelve_message = self::$ts_pro_notices[12] ['message'];
469
-
470
- $class = 'updated notice-info point-notice';
471
- $style = 'position:relative';
472
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
473
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $twelve_message, $cancel_button );
474
- }
475
-
476
- }else if ( !is_plugin_active( $twelve_plugin_link ) &&
477
- is_plugin_active ( $sixth_plugin_link ) &&
478
- is_plugin_active ( $tenth_plugin_link ) &&
479
- is_plugin_active ( $eleven_plugin_link ) &&
480
- !get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore' )
481
- ) {
482
- /**
483
- * If ac pro, ordd pro, booking is active then skip the time period for these plugins and consider the plugin activate time
484
- */
485
- $ts_seven_days = strtotime( '+43 Days', $activate_time );
486
-
487
- if ( $current_time > $ts_seven_days ) {
488
-
489
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_twelve_notice_ignore', '0' );
490
-
491
- $twelve_message = self::$ts_pro_notices[12] ['message'];
492
-
493
- $class = 'updated notice-info point-notice';
494
- $style = 'position:relative';
495
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
496
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $twelve_message, $cancel_button );
497
- }
498
-
499
- }
500
-
501
- $thirteen_plugin_link = self::$ts_pro_notices[13] ['plugin_link'];
502
- if ( !is_plugin_active( $thirteen_plugin_link ) &&
503
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore' ) &&
504
- !get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_thirteen_notice_ignore' )
505
- ) {
506
-
507
- $twelve_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore_time' );
508
- $ts_seven_days = strtotime( '+7 Days', $twelve_ignore_time[0] );
509
-
510
- if ( $current_time > $ts_seven_days ) {
511
-
512
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_thirteen_notice_ignore', '0' );
513
-
514
- $thirteen_message = self::$ts_pro_notices[13] ['message'];
515
-
516
- $class = 'updated notice-info point-notice';
517
- $style = 'position:relative';
518
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
519
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $thirteen_message, $cancel_button );
520
- }
521
-
522
- } else if ( !is_plugin_active( $thirteen_plugin_link ) &&
523
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore' ) &&
524
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleven_notice_ignore' ) &&
525
- get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore' ) &&
526
- !get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_thirteen_notice_ignore' )
527
- ) {
528
-
529
- /**
530
- * If ordd, booking, and wc deposits notice is ignored, then consider the wc deposits ignore time.
531
- */
532
- $twelve_ignore_time = get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore_time' );
533
- $ts_seven_days = strtotime( '+7 Days', $twelve_ignore_time[0] );
534
-
535
- if ( $current_time > $ts_seven_days ) {
536
-
537
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_thirteen_notice_ignore', '0' );
538
-
539
- $thirteen_message = self::$ts_pro_notices[13] ['message'];
540
-
541
- $class = 'updated notice-info point-notice';
542
- $style = 'position:relative';
543
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
544
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $thirteen_message, $cancel_button );
545
- }
546
-
547
- }
548
- else if ( !is_plugin_active( $thirteen_plugin_link ) &&
549
- is_plugin_active ( $sixth_plugin_link ) &&
550
- is_plugin_active ( $tenth_plugin_link ) &&
551
- is_plugin_active ( $eleven_plugin_link ) &&
552
- is_plugin_active ( $twelve_plugin_link ) &&
553
- !get_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_thirteen_notice_ignore' )
554
- ) {
555
-
556
- /**
557
- * If ordd, booking, and wc deposits activate, then consider the plugin activate time.
558
- */
559
- $ts_seven_days = strtotime( '+50 Days', $activate_time );
560
-
561
- if ( $current_time > $ts_seven_days ) {
562
-
563
- $add_query_arguments = add_query_arg( self::$pro_plugin_prefix . '_thirteen_notice_ignore', '0' );
564
-
565
- $thirteen_message = self::$ts_pro_notices[13] ['message'];
566
-
567
- $class = 'updated notice-info point-notice';
568
- $style = 'position:relative';
569
- $cancel_button = '<a href="'.$add_query_arguments.'" class="dashicons dashicons-dismiss dashicons-dismiss-icon" style="position: absolute; top: 8px; right: 8px; color: #222; opacity: 0.4; text-decoration: none !important;"></a>';
570
- printf( '<div class="%1$s" style="%2$s"><p>%3$s %4$s</p></div>', $class, $style, $thirteen_message, $cancel_button );
571
- }
572
-
573
- }
574
- }
575
-
576
- /**
577
- * Ignore pro notice
578
- */
579
- public static function ts_ignore_pro_notices() {
580
-
581
- if( !get_option( self::$plugin_prefix . 'activate_time' ) ) {
582
- add_option( self::$plugin_prefix . '_activate_time', current_time( 'timestamp' ) );
583
- }
584
-
585
- // If user clicks to ignore the notice, add that to their user meta
586
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_first_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_first_notice_ignore' ] ) {
587
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore', 'true', true );
588
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_first_notice_ignore_time', current_time( 'timestamp' ), true );
589
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_first_notice_ignore' ) );
590
-
591
- }
592
-
593
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_second_notice_ignore'] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_second_notice_ignore'] ) {
594
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore', 'true', true );
595
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_second_notice_ignore_time', current_time( 'timestamp' ), true );
596
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_second_notice_ignore' ) );
597
- }
598
-
599
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_third_notice_ignore'] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_third_notice_ignore'] ) {
600
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_third_notice_ignore', 'true', true );
601
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_third_notice_ignore_time', current_time( 'timestamp' ), true );
602
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_third_notice_ignore' ) );
603
- }
604
-
605
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_fourth_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_fourth_notice_ignore' ] ) {
606
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fourth_notice_ignore', 'true', true );
607
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fourth_notice_ignore_time', current_time( 'timestamp' ), true );
608
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_fourth_notice_ignore' ) );
609
- }
610
-
611
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_fifth_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_fifth_notice_ignore' ] ) {
612
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fifth_notice_ignore', 'true', true );
613
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_fifth_notice_ignore_time', current_time( 'timestamp' ), true );
614
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_fifth_notice_ignore' ) );
615
- }
616
-
617
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_sixth_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_sixth_notice_ignore' ] ) {
618
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_sixth_notice_ignore', 'true', true );
619
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_sixth_notice_ignore_time', current_time( 'timestamp' ), true );
620
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_sixth_notice_ignore' ) );
621
- }
622
-
623
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_seventh_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_seventh_notice_ignore' ] ) {
624
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_seventh_notice_ignore', 'true', true );
625
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_seventh_notice_ignore_time', current_time( 'timestamp' ), true );
626
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_seventh_notice_ignore' ) );
627
- }
628
-
629
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_eigth_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_eigth_notice_ignore' ] ) {
630
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eigth_notice_ignore', 'true', true );
631
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eigth_notice_ignore_time', current_time( 'timestamp' ), true );
632
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_eigth_notice_ignore' ) );
633
- }
634
-
635
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_ninth_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_ninth_notice_ignore' ] ) {
636
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_ninth_notice_ignore', 'true', true );
637
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_ninth_notice_ignore_time', current_time( 'timestamp' ), true );
638
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_ninth_notice_ignore' ) );
639
- }
640
-
641
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_tenth_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_tenth_notice_ignore' ] ) {
642
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore', 'true', true );
643
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_tenth_notice_ignore_time', current_time( 'timestamp' ), true );
644
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_tenth_notice_ignore' ) );
645
- }
646
-
647
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_eleven_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_eleven_notice_ignore' ] ) {
648
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleven_notice_ignore', 'true', true );
649
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_eleventh_notice_ignore_time', current_time( 'timestamp' ), true );
650
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_eleven_notice_ignore' ) );
651
- }
652
-
653
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_twelve_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_twelve_notice_ignore' ] ) {
654
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore', 'true', true );
655
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_twelve_notice_ignore_time', current_time( 'timestamp' ), true );
656
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_twelve_notice_ignore' ) );
657
- }
658
-
659
- if ( isset( $_GET[ self::$pro_plugin_prefix . '_thirteen_notice_ignore' ] ) && '0' === $_GET[ self::$pro_plugin_prefix . '_thirteen_notice_ignore' ] ) {
660
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_thirteen_notice_ignore', 'true', true );
661
- add_user_meta( get_current_user_id(), self::$pro_plugin_prefix . '_thirteen_notice_ignore_time', current_time( 'timestamp' ), true );
662
- wp_safe_redirect( remove_query_arg( self::$pro_plugin_prefix . '_thirteen_notice_ignore' ) );
663
- }
664
-
665
- }
666
- }
667
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/tracking-data/Instructions DELETED
@@ -1,54 +0,0 @@
1
- Add a notice to ask customers to collect non-sensitive data for the plugin and provide them with 20% coupon code if they allow us to collect data.
2
-
3
- To add this feature to the plugin, you can follow the below steps:
4
-
5
- 1. Copy the ts-tracking.php file and class-ts-tracker.php file into your plugin folder.
6
-
7
- 2. Include the file ts-tracking.php once when on the admin page. This can be done with is_admin() function.
8
-
9
- 3. You need to pass the 5 parameters to the default constructor of the TS_tracking class. You need to change the value of the variable as per the respective plugin.
10
-
11
- $wcap_plugin_prefix = 'wcap';
12
- $wcap_plugin_name = 'Abandoned Cart Pro for WooCommerce';
13
- $wcap_blog_post_link = 'https://www.tychesoftwares.com/order-delivery-date-usage-tracking/';
14
- $wcap_locale = 'woocommerce-ac';
15
- WCAP_PLUGIN_URL = untrailingslashit(plugins_url('/', __FILE__)) ;
16
-
17
- new TS_tracking( $wcap_plugin_prefix, $wcap_plugin_name, $wcap_blog_post_link, $wcap_locale, WCAP_PLUGIN_URL );
18
-
19
- 4. Then you need to pass 2 parameters to the TS_Tracker class. You need to change the value of the variable as per the respective plugin.
20
-
21
- $wcap_plugin_prefix = 'wcap';
22
- $wcap_plugin_name = 'Abandoned Cart Pro for WooCommerce';
23
- new TS_Tracker( $wcap_plugin_prefix, $wcap_plugin_name );
24
-
25
- 5. We are using these class for tracking the data from the websites, so to track the data from the site we need to add the plugin data.
26
-
27
- To get the data from the website you need to use 2 filters.
28
-
29
- 1. ts_tracker_data : It will be called when admin allows tracking the data.
30
-
31
- 2. ts_tracker_opt_out_data : It will be called when an admin does not allow to track the data
32
-
33
- Both filters have 1 argument, you need to add all the data as per the plugin.
34
-
35
- 6. We need to give the table name in the tracking data. You need to pass that in above both filter.
36
-
37
- IMP: ts_meta_data_table_name - this should contain the table name which will store the plugin specific data. This should not be skipped.
38
-
39
- Like: $plugin_data[ 'ts_meta_data_table_name' ] = 'ts_tracking_wcap_meta_data';
40
-
41
- Here, key 'ts_meta_data_table_name' should remain same, you just need to change the table name.
42
-
43
- Here, in the AC pro case, I have given table name as 'ts_tracking_{{prefix-of-plugin}}_meta_data
44
-
45
- 7. Here we need 1 js file and 1 image for the tracking of the data. So I have added in the same folder, so the code structure is kept as per the current location.
46
-
47
- If you move the js file and the image to another place then you need to change that in the 'ts-tracking.php' file.
48
-
49
- You need to change the line number #75 for js file.
50
- You need to change the line number #127 for the image.
51
-
52
- 8. It is also have the ajax function which will be named as
53
-
54
- 'wp_ajax_{{plugin-prefix}}_admin_notices'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/tracking-data/assets/images/site-logo-new.jpg DELETED
Binary file
includes/component/tracking-data/assets/js/dismiss-notice.js DELETED
@@ -1,41 +0,0 @@
1
- /**
2
- * This function allows to dismiss the notices which are shown from the plugin.
3
- *
4
- * @namespace orddd_notice_dismissible
5
- * @since 6.8
6
- */
7
- // Make notices dismissible
8
- jQuery(document).ready( function() {
9
- jQuery( '.notice.is-dismissible' ).each( function() {
10
- var $this = jQuery( this ),
11
- $button = jQuery( '<button type="button" class="notice-dismiss"><span class="screen-reader-text"></span></button>' ),
12
- btnText = commonL10n.dismiss || '';
13
-
14
- // Ensure plain text
15
- $button.find( '.screen-reader-text' ).text( btnText );
16
-
17
- $this.append( $button );
18
-
19
- /**
20
- * Event when close icon is clicked.
21
- * @fires event:notice-dismiss
22
- * @since 6.8
23
- */
24
- $button.on( 'click.notice-dismiss', function( event ) {
25
- event.preventDefault();
26
- $this.fadeTo( 100 , 0, function() {
27
- //alert();
28
- jQuery(this).slideUp( 100, function() {
29
- jQuery(this).remove();
30
- var data = {
31
- action: ts_dismiss_notice.ts_prefix_of_plugin + "_admin_notices"
32
- };
33
- var admin_url = ts_dismiss_notice.ts_admin_url;
34
-
35
- jQuery.post( admin_url , data, function( response ) {
36
- });
37
- });
38
- });
39
- });
40
- });
41
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/tracking-data/class-ts-tracker.php DELETED
@@ -1,267 +0,0 @@
1
- <?php
2
- /**
3
- * The tracker class adds functionality to track usage of the plugin based on if the customer opted in.
4
- * No personal information is tracked, only general settings, order and user counts and admin email for
5
- * discount code.
6
- *
7
- * @class WPCCPL_TS_Tracker
8
- * @version 6.8
9
- */
10
-
11
- if ( ! defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
-
15
- class WPCCPL_TS_Tracker {
16
-
17
- /**
18
- * URL to the Tracker API endpoint.
19
- * @var string
20
- */
21
-
22
- private static $api_url = 'http://tracking.tychesoftwares.com/v1/';
23
-
24
- /**
25
- * @var string Plugin prefix
26
- * @access public
27
- */
28
-
29
- public static $plugin_prefix = '';
30
-
31
- /**
32
- * @var string Plugin name
33
- * @access public
34
- */
35
-
36
- public static $plugin_name = '';
37
-
38
- /**
39
- * Hook into cron event.
40
- */
41
- public function __construct( $ts_plugin_prefix = '', $ts_plugin_name = '' ) {
42
-
43
- self::$plugin_prefix = $ts_plugin_prefix;
44
- self::$plugin_name = $ts_plugin_name;
45
-
46
- add_action( self::$plugin_prefix . '_ts_tracker_send_event', array( __CLASS__, 'ts_send_tracking_data' ) );
47
- }
48
-
49
- /**
50
- * Decide whether to send tracking data or not.
51
- *
52
- * @param boolean $override
53
- */
54
- public static function ts_send_tracking_data( $override = false ) {
55
- if ( ! apply_filters( 'ts_tracker_send_override', $override ) ) {
56
- // Send a maximum of once per week by default.
57
- $last_send = self::ts_get_last_send_time();
58
- if ( $last_send && $last_send > apply_filters( 'ts_tracker_last_send_interval', strtotime( '-1 week' ) ) ) {
59
- return;
60
- }
61
- } else {
62
- // Make sure there is at least a 1 hour delay between override sends, we don't want duplicate calls due to double clicking links.
63
- $last_send = self::ts_get_last_send_time();
64
- if ( $last_send && $last_send > strtotime( '-1 hours' ) ) {
65
- return;
66
- }
67
- }
68
-
69
- $allow_tracking = get_option( self::$plugin_prefix . '_allow_tracking' );
70
- if ( 'yes' == $allow_tracking ) {
71
- $override = true;
72
- }
73
-
74
- // Update time first before sending to ensure it is set
75
- update_option( self::$plugin_prefix . '_ts_tracker_last_send', time() );
76
-
77
- if( $override == false ) {
78
- $params = array();
79
- $params[ 'tracking_usage' ] = 'no';
80
- $params[ 'url' ] = home_url();
81
- $params[ 'email' ] = '';
82
-
83
- $params = apply_filters( 'ts_tracker_opt_out_data', $params );
84
- } else {
85
- $params = self::ts_get_tracking_data();
86
- }
87
-
88
- wp_safe_remote_post( self::$api_url, array(
89
- 'method' => 'POST',
90
- 'timeout' => 45,
91
- 'redirection' => 5,
92
- 'httpversion' => '1.0',
93
- 'blocking' => false,
94
- 'headers' => array( 'user-agent' => 'TSTracker/' . md5( esc_url( home_url( '/' ) ) ) . ';' ),
95
- 'body' => json_encode( $params ),
96
- 'cookies' => array(),
97
- )
98
- );
99
- }
100
-
101
- /**
102
- * Get the last time tracking data was sent.
103
- * @return int|bool
104
- */
105
- private static function ts_get_last_send_time() {
106
- return apply_filters( 'ts_tracker_last_send_time', get_option( self::$plugin_prefix . '_ts_tracker_last_send', false ) );
107
- }
108
-
109
- /**
110
- * Get all the tracking data.
111
- * @return array
112
- */
113
- private static function ts_get_tracking_data() {
114
- $data = array();
115
-
116
- // General site info
117
- $data[ 'url' ] = home_url();
118
- $data[ 'email' ] = apply_filters( 'ts_tracker_admin_email', get_option( 'admin_email' ) );
119
-
120
- // WordPress Info
121
- $data[ 'wp' ] = self::ts_get_wordpress_info();
122
-
123
- $data[ 'theme_info' ] = self::ts_get_theme_info();
124
-
125
- // Server Info
126
- $data[ 'server' ] = self::ts_get_server_info();
127
-
128
- // Plugin info
129
- $all_plugins = self::ts_get_all_plugins();
130
- $data[ 'active_plugins' ] = $all_plugins[ 'active_plugins' ];
131
- $data[ 'inactive_plugins' ] = $all_plugins[ 'inactive_plugins' ];
132
-
133
- return apply_filters( 'ts_tracker_data', $data );
134
- }
135
-
136
- private static function tyche_let_to_num( $size ) {
137
- $l = substr( $size, -1 );
138
- $ret = substr( $size, 0, -1 );
139
- switch ( strtoupper( $l ) ) {
140
- case 'P':
141
- $ret *= 1024;
142
- case 'T':
143
- $ret *= 1024;
144
- case 'G':
145
- $ret *= 1024;
146
- case 'M':
147
- $ret *= 1024;
148
- case 'K':
149
- $ret *= 1024;
150
- }
151
- return $ret;
152
- }
153
-
154
- /**
155
- * Get WordPress related data.
156
- * @return array
157
- */
158
- private static function ts_get_wordpress_info() {
159
- $wp_data = array();
160
-
161
- $memory = self::tyche_let_to_num( WP_MEMORY_LIMIT );
162
-
163
- if ( function_exists( 'memory_get_usage' ) ) {
164
- $system_memory = self::tyche_let_to_num( @ini_get( 'memory_limit' ) );
165
- $memory = max( $memory, $system_memory );
166
- }
167
-
168
- $wp_data[ 'memory_limit' ] = size_format( $memory );
169
- $wp_data[ 'debug_mode' ] = ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ? 'Yes' : 'No';
170
- $wp_data[ 'locale' ] = get_locale();
171
- $wp_data[ 'wp_version' ] = get_bloginfo( 'version' );
172
- $wp_data[ 'multisite' ] = is_multisite() ? 'Yes' : 'No';
173
- $wp_data[ 'blogdescription' ] = get_option ( 'blogdescription' );
174
- $wp_data[ 'blogname' ] = get_option ( 'blogname' );
175
-
176
- return $wp_data;
177
- }
178
-
179
- /**
180
- * Get the current theme info, theme name and version.
181
- * @return array
182
- */
183
- public static function ts_get_theme_info() {
184
- $theme_data = wp_get_theme();
185
- $theme_child_theme = is_child_theme() ? 'Yes' : 'No';
186
-
187
- return array( 'theme_name' => $theme_data->Name,
188
- 'theme_version' => $theme_data->Version,
189
- 'child_theme' => $theme_child_theme );
190
- }
191
-
192
- /**
193
- * Get server related info.
194
- * @return array
195
- */
196
- private static function ts_get_server_info() {
197
- global $wpdb;
198
- $server_data = array();
199
-
200
- if ( isset( $_SERVER[ 'SERVER_SOFTWARE' ] ) && ! empty( $_SERVER[ 'SERVER_SOFTWARE' ] ) ) {
201
- $server_data[ 'software' ] = $_SERVER[ 'SERVER_SOFTWARE' ];
202
- }
203
-
204
- if ( function_exists( 'phpversion' ) ) {
205
- $server_data[ 'php_version' ] = phpversion();
206
- }
207
-
208
- if ( function_exists( 'ini_get' ) ) {
209
- $server_data[ 'php_post_max_size' ] = size_format( self::tyche_let_to_num( ini_get( 'post_max_size' ) ) );
210
- $server_data[ 'php_time_limt' ] = ini_get( 'max_execution_time' );
211
- $server_data[ 'php_max_input_vars' ] = ini_get( 'max_input_vars' );
212
- $server_data[ 'php_suhosin' ] = extension_loaded( 'suhosin' ) ? 'Yes' : 'No';
213
- }
214
-
215
- $server_data[ 'mysql_version' ] = $wpdb->db_version();
216
-
217
- $server_data[ 'php_max_upload_size' ] = size_format( wp_max_upload_size() );
218
- $server_data[ 'php_default_timezone' ] = date_default_timezone_get();
219
- $server_data[ 'php_soap' ] = class_exists( 'SoapClient' ) ? 'Yes' : 'No';
220
- $server_data[ 'php_fsockopen' ] = function_exists( 'fsockopen' ) ? 'Yes' : 'No';
221
- $server_data[ 'php_curl' ] = function_exists( 'curl_init' ) ? 'Yes' : 'No';
222
-
223
- return $server_data;
224
- }
225
-
226
- /**
227
- * Get all plugins grouped into activated or not.
228
- * @return array
229
- */
230
- private static function ts_get_all_plugins() {
231
- // Ensure get_plugins function is loaded
232
- if ( ! function_exists( 'get_plugins' ) ) {
233
- include ABSPATH . '/wp-admin/includes/plugin.php';
234
- }
235
-
236
- $plugins = get_plugins();
237
- $active_plugins_keys = get_option( 'active_plugins', array() );
238
- $active_plugins = array();
239
-
240
- foreach ( $plugins as $k => $v ) {
241
- // Take care of formatting the data how we want it.
242
- $formatted = array();
243
- $formatted[ 'name' ] = strip_tags( $v[ 'Name' ] );
244
- if ( isset( $v[ 'Version' ] ) ) {
245
- $formatted[ 'version' ] = strip_tags( $v[ 'Version' ] );
246
- }
247
- if ( isset( $v[ 'Author' ] ) ) {
248
- $formatted[ 'author' ] = strip_tags( $v[ 'Author' ] );
249
- }
250
- if ( isset( $v[ 'Network' ] ) ) {
251
- $formatted[ 'network' ] = strip_tags( $v[ 'Network' ] );
252
- }
253
- if ( isset( $v[ 'PluginURI' ] ) ) {
254
- $formatted[ 'plugin_uri' ] = strip_tags( $v[ 'PluginURI' ] );
255
- }
256
- if ( in_array( $k, $active_plugins_keys ) ) {
257
- // Remove active plugins from list so we can show active and inactive separately
258
- unset( $plugins[ $k ] );
259
- $active_plugins[ $k ] = $formatted;
260
- } else {
261
- $plugins[ $k ] = $formatted;
262
- }
263
- }
264
-
265
- return array( 'active_plugins' => $active_plugins, 'inactive_plugins' => $plugins );
266
- }
267
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/tracking-data/ts-tracking.php DELETED
@@ -1,350 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) {
3
- exit;
4
- }
5
-
6
- include_once( 'class-ts-tracker.php' );
7
-
8
- /** Adds the Tracking non-senstive data notice
9
- *
10
- * @since 6.8
11
- */
12
- class WPCCPL_TS_tracking {
13
-
14
- /**
15
- * @var string Plugin prefix
16
- * @access public
17
- */
18
-
19
- public static $plugin_prefix = '';
20
-
21
- /**
22
- * @var string Plugin Name
23
- * @access public
24
- */
25
-
26
- public static $plugin_name = '';
27
-
28
- /**
29
- * @var string Tracking data blog post link
30
- * @access public
31
- */
32
-
33
- public static $blog_post_link = '';
34
-
35
- /**
36
- * @var string Plugin context
37
- * @access public
38
- */
39
-
40
- public static $plugin_context = '';
41
-
42
- /**
43
- * @var string Plugin url
44
- * @access public
45
- */
46
- public static $plugin_url = '';
47
-
48
- /**
49
- * @var string File path
50
- * @access public
51
- */
52
- public static $ts_file_path = '' ;
53
- /**
54
- * @var string plugin locale
55
- * @access public
56
- */
57
- public static $ts_plugin_locale = '';
58
-
59
- /**
60
- * @var string Settings page
61
- * @access public
62
- */
63
- public static $ts_settings_page = '';
64
-
65
- /**
66
- * @var string On which setting page need to add setting
67
- * @access public
68
- */
69
- public static $ts_add_setting_on_page = '';
70
- /**
71
- * @var string On which section setting need to add
72
- * @access public
73
- */
74
- public static $ts_add_setting_on_section = '';
75
- /**
76
- * @var string Register setting
77
- * @access public
78
- */
79
- public static $ts_register_setting = '';
80
-
81
- /**
82
- * @var string Plugin dir
83
- * @access public
84
- */
85
- public static $ts_plugin_dir ='';
86
-
87
- /**
88
- * Default Constructor
89
- *
90
- */
91
- public function __construct( $ts_plugin_prefix = '', $ts_plugin_name = '', $ts_blog_post_link = '', $ts_plugin_context = '', $ts_plugin_url = '', $setting_page = '', $add_setting = '', $setting_section = '', $setting_register = '', $plugin_dir = '' ) {
92
-
93
- self::$plugin_prefix = $ts_plugin_prefix;
94
- self::$plugin_name = $ts_plugin_name;
95
- self::$blog_post_link = $ts_blog_post_link;
96
- self::$plugin_url = $ts_plugin_url;
97
- self::$ts_plugin_locale = $ts_plugin_context;
98
- self::$ts_settings_page = $setting_page;
99
- self::$ts_add_setting_on_page = $add_setting;
100
- self::$ts_add_setting_on_section = $setting_section;
101
- self::$ts_register_setting = $setting_register;
102
-
103
- self::$ts_plugin_dir = $plugin_dir;
104
-
105
- self::$ts_file_path = untrailingslashit( plugins_url( '/', __FILE__) ) ;
106
- //Tracking Data
107
- add_action( 'admin_notices', array( __CLASS__, 'ts_track_usage_data' ) );
108
- add_action( 'admin_footer', array( __CLASS__, 'ts_admin_notices_scripts' ) );
109
- add_action( 'wp_ajax_'.self::$plugin_prefix.'_admin_notices', array( __CLASS__, 'ts_admin_notices' ) );
110
-
111
- add_filter( 'cron_schedules', array( __CLASS__, 'ts_add_cron_schedule' ) );
112
-
113
- add_action( self::$plugin_prefix . '_add_new_settings', array( __CLASS__, 'ts_add_reset_tracking_setting' ) );
114
-
115
- add_action ( 'admin_init', array( __CLASS__, 'ts_reset_tracking_setting' ) ) ;
116
-
117
- self::ts_schedule_cron_job();
118
-
119
- add_filter( self::$plugin_prefix . '_add_settings_field', array( __CLASS__, 'ts_add_new_settings_field') );
120
-
121
- if ( '' != self::$ts_plugin_dir ) {
122
- add_filter( 'plugin_action_links_' . self::$ts_plugin_dir, array( __CLASS__, 'ts_plugin_action_links'
123
- ) );
124
- }
125
- }
126
-
127
- /**
128
- * Add the Reset tracking link on the plugins page.
129
- * @hook 'plugin_action_links_' . self::$ts_plugin_dir
130
- */
131
- public static function ts_plugin_action_links ( $links ) {
132
-
133
- $ts_action_links = array();
134
-
135
- if ( 'unknown' != get_option( self::$plugin_prefix . '_allow_tracking', 'unknown' ) ) {
136
-
137
- $ts_action = self::$ts_settings_page . "?ts_action=reset_tracking";
138
-
139
- $ts_action_links = array(
140
- 'reset_tracking' => '<a href="'.$ts_action.'" class="reset_tracking" title= "This will reset your usage tracking settings, causing it to show the opt-in banner again and not sending any data.">Reset Usage Tracking</a>',
141
- );
142
- }
143
- return array_merge( $ts_action_links, $links );
144
- }
145
-
146
- /**
147
- * It will add the New setting for the WooCommerce settings.
148
- * @hook self::$plugin_prefix . '_add_settings_field'
149
- */
150
- public static function ts_add_new_settings_field ( $ts_settings ) {
151
-
152
- $ts_settings = array (
153
- 'name' => __( 'Reset usage tracking', 'deposits-for-woocommerce'),
154
- 'type' => 'link',
155
- 'desc' => __( 'This will reset your usage tracking settings, causing it to show the opt-in banner again and not sending any data','ts-tracking'),
156
- 'button_text' => 'Reset',
157
- 'desc_tip' => true,
158
- 'class' => 'button-secondary reset_tracking',
159
- 'id' => 'ts_reset_tracking',
160
- );
161
-
162
- return $ts_settings;
163
- }
164
-
165
-
166
-
167
- /**
168
- * It will delete the tracking option from the database.
169
- */
170
- public static function ts_reset_tracking_setting () {
171
-
172
- if ( isset ( $_GET [ 'ts_action' ] ) && 'reset_tracking' == $_GET [ 'ts_action' ] ) {
173
- delete_option( self::$plugin_prefix . '_allow_tracking' );
174
- delete_option( self::$plugin_prefix . '_ts_tracker_last_send' );
175
- $ts_url = remove_query_arg( 'ts_action' );
176
- wp_safe_redirect( $ts_url );
177
- }
178
- }
179
-
180
- /**
181
- * It will add the settinig, which will allow store owner to reset the tracking data. Which will result into stop trakcing the data.
182
- * @hook self::$plugin_prefix . '_add_new_settings'
183
- *
184
- */
185
- public static function ts_add_reset_tracking_setting ( $value ) {
186
-
187
- if ( '' == self::$ts_add_setting_on_page && '' == self::$ts_add_setting_on_section && '' == self::$ts_register_setting ) {
188
- if ( $value['id'] == 'ts_reset_tracking' ) {
189
- $description = WC_Admin_Settings::get_field_description( $value );
190
- $ts_action = self::$ts_settings_page . "&amp;ts_action=reset_tracking";
191
- ?>
192
-
193
- <tr valign="top">
194
- <th scope="row" class="titledesc">
195
- <label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?></label>
196
- <?php echo $description['tooltip_html'];?>
197
- </th>
198
-
199
- <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
200
-
201
- <a href = "<?php echo $ts_action; ?>"
202
- name ="ts_reset_tracking"
203
- id ="ts_reset_tracking"
204
- style="<?php echo esc_attr( $value['css'] ); ?>"
205
- class="<?php echo esc_attr( $value['class'] ); ?>"
206
- > <?php echo $value['button_text']; ?> </a> <?php echo $description['description']; ?>
207
- </td>
208
- </tr><?php
209
- }
210
- } else {
211
- add_settings_field(
212
- 'ts_reset_tracking',
213
- __( 'Reset usage tracking', self::$ts_plugin_locale ),
214
- array( __CLASS__, 'ts_rereset_tracking_callback' ),
215
- self::$ts_add_setting_on_page,
216
- self::$ts_add_setting_on_section,
217
- array( 'This will reset your usage tracking settings, causing it to show the opt-in banner again and not sending any data.', self::$ts_plugin_locale )
218
- );
219
-
220
- register_setting(
221
- self::$ts_register_setting,
222
- 'ts_reset_tracking'
223
- );
224
- }
225
- }
226
-
227
- public static function ts_reset_tracking_setting_section_callback ( ) {
228
-
229
- }
230
-
231
- /**
232
- * It will add the Reset button on the settings page.
233
- * @param array $args
234
- */
235
- public static function ts_rereset_tracking_callback ( $args ) {
236
- $wcap_restrict_domain_address = get_option( 'wcap_restrict_domain_address' );
237
- $domain_value = isset( $wcap_restrict_domain_address ) ? esc_attr( $wcap_restrict_domain_address ) : '';
238
- // Next, we update the name attribute to access this element's ID in the context of the display options array
239
- // We also access the show_header element of the options collection in the call to the checked() helper function
240
- $ts_action = self::$ts_settings_page . "&amp;ts_action=reset_tracking";
241
- printf( '<a href="'.$ts_action.'" class="button button-large reset_tracking">Reset</a>' );
242
-
243
- // Here, we'll take the first argument of the array and add it to a label next to the checkbox
244
- $html = '<label for="wcap_restrict_domain_address_label"> ' . $args[0] . '</label>';
245
- echo $html;
246
- }
247
-
248
- /**
249
- * It will add a cron job for sending the tarcking data.
250
- * By default it will set once in a week interval.
251
- * @hook cron_schedules
252
- * @param array $schedules
253
- * @return array $schedules
254
- */
255
- public static function ts_add_cron_schedule( $schedules ) {
256
- $schedules[ 'once_in_week' ] = array(
257
- 'interval' => 604800, // one week in seconds
258
- 'display' => __( 'Once in a Week', self::$ts_plugin_locale )
259
- );
260
-
261
- return $schedules;
262
- }
263
-
264
- /**
265
- * To capture the data from the client site.
266
- */
267
- public static function ts_schedule_cron_job () {
268
- if ( ! wp_next_scheduled( self::$plugin_prefix . '_ts_tracker_send_event' ) ) {
269
- wp_schedule_event( time(), 'once_in_week', self::$plugin_prefix . '_ts_tracker_send_event' );
270
- }
271
- }
272
-
273
- /**
274
- * Load the js file in the admin
275
- *
276
- * @since 6.8
277
- * @access public
278
- */
279
- public static function ts_admin_notices_scripts() {
280
-
281
- wp_enqueue_script(
282
- 'ts_dismiss_notice',
283
- self::$ts_file_path . '/assets/js/dismiss-notice.js',
284
- '',
285
- '',
286
- false
287
- );
288
-
289
- wp_localize_script( 'ts_dismiss_notice', 'ts_dismiss_notice', array (
290
- 'ts_prefix_of_plugin' => self::$plugin_prefix,
291
- 'ts_admin_url' => admin_url( 'admin-ajax.php' )
292
- ) );
293
- }
294
-
295
- /**
296
- * Called when the dismiss icon is clicked on the notice.
297
- *
298
- * @since 6.8
299
- * @access public
300
- */
301
-
302
- public static function ts_admin_notices() {
303
- update_option( self::$plugin_prefix . '_allow_tracking', 'dismissed' );
304
- WPCCPL_TS_Tracker::ts_send_tracking_data( false );
305
- die();
306
- }
307
-
308
- /**
309
- * Send the data tracking data to the server.
310
- *
311
- * @access public
312
- *
313
- */
314
-
315
- private static function ts_tracking_actions() {
316
- if ( isset( $_GET[ self::$plugin_prefix . '_tracker_optin' ] ) && isset( $_GET[ self::$plugin_prefix . '_tracker_nonce' ] ) && wp_verify_nonce( $_GET[ self::$plugin_prefix . '_tracker_nonce' ], self::$plugin_prefix . '_tracker_optin' ) ) {
317
- update_option( self::$plugin_prefix . '_allow_tracking', 'yes' );
318
- WPCCPL_TS_Tracker::ts_send_tracking_data( true );
319
- @header( 'Location: ' . $_SERVER[ 'HTTP_REFERER' ] );
320
- } elseif ( isset( $_GET[ self::$plugin_prefix . '_tracker_optout' ] ) && isset( $_GET[ self::$plugin_prefix . '_tracker_nonce' ] ) && wp_verify_nonce( $_GET[ self::$plugin_prefix . '_tracker_nonce' ], self::$plugin_prefix . '_tracker_optout' ) ) {
321
- update_option( self::$plugin_prefix . '_allow_tracking', 'no' );
322
- WPCCPL_TS_Tracker::ts_send_tracking_data( false );
323
- @header( 'Location: ' . $_SERVER[ 'HTTP_REFERER' ] );
324
- }
325
- }
326
-
327
- /**
328
- * Adds a data usage tracking notice in the admin
329
- *
330
- * @access public
331
- * @since 6.8
332
- */
333
-
334
- public static function ts_track_usage_data() {
335
- $admin_url = get_admin_url();
336
- echo '<input type="hidden" id="admin_url" value="' . $admin_url . '"/>';
337
- self::ts_tracking_actions();
338
- if ( 'unknown' === get_option( self::$plugin_prefix . '_allow_tracking', 'unknown' ) ) : ?>
339
- <div class="<?php echo self::$plugin_prefix; ?>-message <?php echo self::$plugin_prefix; ?>-tracker notice notice-info is-dismissible" style="position: relative;">
340
- <div style="position: absolute;"><img class="site-logo" src= " <?php echo self::$ts_file_path . '/assets/images/site-logo-new.jpg '; ?> "></div>
341
- <p style="margin: 10px 0 42px 130px; font-size: medium;">
342
- <?php print( __( 'Want to help make ' . self::$plugin_name . ' even more awesome? Allow ' . self::$plugin_name . ' to collect non-sensitive diagnostic data and usage information and get 20% off on your next purchase. <a href="' . self::$blog_post_link . '" target="_blank" >Find out more</a>.', self::$plugin_context ) ); ?></p>
343
- <p class="submit">
344
- <a class="button-primary button button-large" href="<?php echo esc_url( wp_nonce_url( add_query_arg( self::$plugin_prefix . '_tracker_optin', 'true' ), self::$plugin_prefix . '_tracker_optin', self::$plugin_prefix . '_tracker_nonce' ) ); ?>"><?php esc_html_e( 'Allow', self::$plugin_context ); ?></a>
345
- <a class="button-secondary button button-large skip" href="<?php echo esc_url( wp_nonce_url( add_query_arg( self::$plugin_prefix . '_tracker_optout', 'true' ), self::$plugin_prefix . '_tracker_optout', self::$plugin_prefix . '_tracker_nonce' ) ); ?>"><?php esc_html_e( 'No thanks', self::$plugin_context ); ?></a>
346
- </p>
347
- </div>
348
- <?php endif;
349
- }
350
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/welcome-page/Instructions DELETED
@@ -1,37 +0,0 @@
1
- Welcome page feature allows you to add an introduction page when a plugin is installed and active for the first time or when it is updated.
2
-
3
- To add this feature to the plugin, you can follow the below steps:
4
-
5
- 1. Copy the ts-welcome.php file into your plugin folder.
6
-
7
- 2. Copy the files in the template folder to template in the plugin.
8
-
9
- 3. Include the file once when on the admin page. This can be done with is_admin() function.
10
-
11
- 4. You need to pass the 6 parameters to the default constructor of the TS_Welcome class. You need to change the value of the variable value as per the respective plugin.
12
-
13
- $wcap_plugin_prefix = 'wcap';
14
- $wcap_plugin_name = 'Abandoned Cart Pro for WooCommerce';
15
- $wcap_blog_post_link = 'https://www.tychesoftwares.com/order-delivery-date-usage-tracking/';
16
- $wcap_locale = 'woocommerce-ac';
17
- define('WCAP_PLUGIN_PATH' , untrailingslashit(plugin_dir_path(__FILE__)) );
18
- $wcap_plugin_folder_name = 'woocommerce-abandon-cart-pro/';
19
- $wcap_plugin_dir_name = WCAP_PLUGIN_PATH . '/woocommerce-ac.php' ;
20
- $wcap_get_previous_version = get_option( 'woocommerce_ac_db_version' );
21
-
22
- new TS_Welcome ( $wcap_plugin_name, $wcap_plugin_prefix, $wcap_locale, $wcap_plugin_folder_name, $wcap_plugin_dir_name, $wcap_get_previous_version );
23
-
24
- 5. Add the below code in the uninstall.php file of the plugin.
25
-
26
- delete_option( '{{plugin-prefix}}_pro_welcome_page_shown' );
27
- delete_option( '{{plugin-prefix}}_pro_welcome_page_shown_time' );
28
-
29
- 6. You need to update the Template as per your update of the plguin. You just need to update the template content.
30
-
31
- Note:
32
-
33
- 1. Please put your all images in the images folder of this folder.
34
- 2. You can use the $ts_dir_image_path for img src. Like <img src="<?php echo $ts_dir_image_path . 'custom-delivery-settings.png'?>"
35
- 3. Please change the Utm parameters
36
-
37
- You just need to append the image name.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/welcome-page/assets/images/icon-256x256.png DELETED
Binary file
includes/component/welcome-page/templates/social-media-elements.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- /**
3
- * Welcome page on activate or updation of the plugin
4
- */
5
- ?>
6
- <div class="social-items-wrap">
7
- <iframe src="//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Ftychesoftwares&amp;send=false&amp;layout=button_count&amp;width=100&amp;show_faces=false&amp;font&amp;colorscheme=light&amp;action=like&amp;height=21&amp;appId=220596284639969" scrolling="no" frameborder="0" style="border:none;overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
8
- <a href="https://twitter.com/tychesoftwares" class="twitter-follow-button" data-show-count="false"><?php
9
- printf(
10
- esc_html_e( 'Follow %s', 'tychesoftwares' ),
11
- '@tychesoftwares'
12
- );
13
- ?></a>
14
- <script>!function (d, s, id) {
15
- var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https';
16
- if (!d.getElementById(id)) {
17
- js = d.createElement(s);
18
- js.id = id;
19
- js.src = p + '://platform.twitter.com/widgets.js';
20
- fjs.parentNode.insertBefore(js, fjs);
21
- }
22
- }(document, 'script', 'twitter-wjs');
23
- </script>
24
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/welcome-page/templates/welcome/welcome-page.php DELETED
@@ -1,96 +0,0 @@
1
- <?php
2
- /**
3
- * Welcome page on activate or updation of the plugin
4
- */
5
-
6
- $shortcodes_array = get_query_var( 'shortcodes_array' );
7
-
8
- $badge_url = $shortcodes_array['badge_url'];
9
-
10
- $ts_dir_image_path = $shortcodes_array['ts_dir_image_path'];
11
-
12
- $ts_plugin_name = $shortcodes_array['plugin_name'];
13
-
14
- ?>
15
- <style>
16
- .feature-section .feature-section-item {
17
- float:left;
18
- width:48%;
19
- }
20
- </style>
21
- <div class="wrap about-wrap">
22
-
23
- <?php echo $shortcodes_array[ 'get_welcome_header'] ?>
24
-
25
- <div style="float:left;width: 80%;">
26
- <p class="about-text" style="margin-right:20px;"><?php
27
- printf(
28
- __( "Thank you for activating or updating to the latest version of $ts_plugin_name! If you're a first time user, welcome! You're well on your way to explore the $ts_plugin_name functionality for your WordPress site." )
29
- );
30
- ?></p>
31
- </div>
32
- <div class="faq-badge"><img src="<?php echo $badge_url; ?>" style="width:150px;"/></div>
33
-
34
- <p>&nbsp;</p>
35
-
36
- <p>
37
- WP Content Copy Protection is a simple, yet effective plugin that uses an array of aggressive techniques in protecting your online content from being stolen.
38
- </p>
39
- <p>
40
- Some of the most common content copy methods (via mouse, keyboard and browser), such as right-click, image drag/drop/save, text selection/drag/drop, source code viewing, and keyboard copy shortcut keys such as CTRL A, C, X, U, S, and P are disabled with this plugin (just to name a few).
41
- </p>
42
- <h4>Basic Features (included)</h4>
43
- <pre><code>√ Disables right click context menu on all content (except href links)
44
-
45
- √ Disables text selection (globally) on PC and mobile devices
46
-
47
- √ Disables text and image drag/drop/save on PC and mobile devices
48
-
49
- √ Basic image protection (image link URL's are automatically removed)
50
-
51
- √ Copy methods disabled from onscreen keyboard and shortcut context key
52
-
53
- √ Secures your uploads directory and sub-directories from public access
54
-
55
- √ Disables right click and save function on default video and audio embeds
56
-
57
- √ Javascript validation (displays error message when disabled in user browser)
58
-
59
- √ Disables keyboard copy controls (CTRL A, C, X) - Windows only
60
-
61
- √ Disables 'Source view', 'Save Page', and 'Print' key functions
62
-
63
- √ Disables f shortcut key for accessing developer tools to view source code
64
-
65
- √ No obtrusive popups or alert messages as they are known to defame your site
66
-
67
- √ No negative side-effects on your SEO (search engines can read your content)
68
-
69
- √ This is a non resource-intensive plugin that works silently in the background
70
-
71
- √ No configuration, customization or coding needed. Simply plug in and leave
72
- </code></pre>
73
-
74
- <div class="feature-section clearfix">
75
-
76
- <div class="content feature-section-item">
77
-
78
- <h3><?php esc_html_e( 'Getting to Know Tyche Softwares', 'acs' ); ?></h3>
79
-
80
- <ul class="ul-disc">
81
- <li><a href="https://tychesoftwares.com/?utm_source=wpaboutp age&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank"><?php esc_html_e( 'Visit the Tyche Softwares Website', 'acs' ); ?></a></li>
82
- <li><a href="https://tychesoftwares.com/premium-woocommerce-plugins/?utm_source=wpaboutpage&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank"><?php esc_html_e( 'View all Premium Plugins', 'acs' ); ?></a>
83
- <ul class="ul-disc">
84
- <li><a href="https://www.tychesoftwares.com/store/premium-plugins/woocommerce-abandoned-cart-pro/?utm_source=wpaboutpage&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank">Abandoned Cart Pro Plugin for WooCommerce</a></li>
85
- <li><a href="https://www.tychesoftwares.com/store/premium-plugins/woocommerce-booking-plugin/?utm_source=wpaboutpage&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank">Booking & Appointment Plugin for WooCommerce</a></li>
86
- <li><a href="https://www.tychesoftwares.com/store/premium-plugins/order-delivery-date-for-woocommerce-pro-21/?utm_source=wpaboutpage&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank">Order Delivery Date for WooCommerce</a></li>
87
- <li><a href="https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/?utm_source=wpaboutpage&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank">Product Delivery Date for WooCommerce</a></li>
88
- <li><a href="https://www.tychesoftwares.com/store/premium-plugins/deposits-for-woocommerce/?utm_source=wpaboutpage&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank">Deposits for WooCommerce</a></li>
89
- </ul>
90
- </li>
91
- <li><a href="https://tychesoftwares.com/about/?utm_source=wpaboutpage&utm_medium=link&utm_campaign=WpContentCopyPlugin" target="_blank"><?php esc_html_e( 'Meet the team', 'acs' ); ?></a></li>
92
- </ul>
93
- </div>
94
- </div>
95
- <!-- /.feature-section -->
96
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/component/welcome-page/ts-welcome.php DELETED
@@ -1,325 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Welcome Page Class
5
- *
6
- * Displays on plugin activation or updation
7
- */
8
-
9
- // Exit if accessed directly.
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
-
14
- /**
15
- * WPCCPL_TS_Welcome Class
16
- *
17
- * A general class for About page.
18
- *
19
- * @since 7.7
20
- */
21
-
22
- class WPCCPL_TS_Welcome {
23
-
24
- /**
25
- * @var string The capability users should have to view the page
26
- */
27
- public $minimum_capability = 'manage_options';
28
-
29
- /**
30
- * @var string The name of the plugin
31
- * @access public
32
- */
33
- public static $plugin_name = "";
34
-
35
- /**
36
- * @var string Unique prefix of the plugin
37
- * @access public
38
- */
39
-
40
- public static $plugin_prefix = '';
41
-
42
- /**
43
- * @var Plugin Context
44
- * @access public
45
- */
46
-
47
- public static $plugin_context = '';
48
-
49
- /**
50
- * @var string Folder of the plugin
51
- * @access public
52
- */
53
- public static $plugin_folder = '';
54
-
55
- /**
56
- * @var string Plugin live version
57
- * @access public
58
- */
59
-
60
- public static $plugin_version = '';
61
-
62
- /**
63
- * @var string Plugin previous version
64
- * @access public
65
- */
66
- public static $previous_plugin_version = '';
67
- /**
68
- * @var string Plugin Url
69
- * @access public
70
- */
71
- public static $plugin_url = '';
72
- /**
73
- * @var string Template base path
74
- * @access public
75
- */
76
- public static $template_base = '';
77
- /**
78
- * @var string Plugin dir name with plugin file name
79
- * @access public
80
- */
81
- public static $plugin_file_path = '';
82
-
83
- /**
84
- * Get things started
85
- *
86
- * @since 7.7
87
- */
88
- public function __construct( $ts_plugin_name = '', $ts_plugin_prefix = '', $ts_plugin_context = '', $ts_plugin_folder_name = '', $ts_plugin_dir_name = '' , $ts_previous_version = '' ) {
89
- self::$plugin_name = $ts_plugin_name;
90
- self::$plugin_prefix = $ts_plugin_prefix;
91
- self::$plugin_context = $ts_plugin_context;
92
- self::$plugin_folder = $ts_plugin_folder_name;
93
- self::$plugin_file_path = $ts_plugin_dir_name;
94
-
95
-
96
- add_action( 'admin_init', array( &$this, 'ts_add_plugin_active_check' ),1 );
97
-
98
- register_deactivation_hook( self::$plugin_file_path, array( &$this, 'ts_delete_plugin_from_active_check' ) );
99
-
100
- //Update plugin
101
- add_action( 'admin_init', array( &$this, 'ts_update_db_check' ) );
102
-
103
- add_action( 'admin_menu', array( $this, 'admin_menus' ) );
104
- add_action( 'admin_head', array( $this, 'admin_head' ) );
105
-
106
- if ( !isset( $_GET[ 'page' ] ) ||
107
- ( isset( $_GET[ 'page' ] ) && $_GET[ 'page' ] != self::$plugin_prefix . '-pro-about' ) ) {
108
- add_action( 'admin_init', array( $this, 'ts_pro_welcome' ) );
109
- }
110
-
111
- self::$plugin_version = $this->ts_get_version();
112
-
113
- self::$previous_plugin_version = $ts_previous_version;
114
- self::$plugin_url = $this->ts_get_plugin_url();
115
- self::$template_base = $this->ts_get_template_path();
116
- }
117
-
118
- /**
119
- * It will remove the plguin from the all activated plugin of TS.
120
- * @hook register_deactivation_hook
121
- */
122
- function ts_delete_plugin_from_active_check ( ){
123
-
124
- $active_ts_plugins = get_option( 'active_TS_plugins', array() );
125
- if ( in_array ( self::$plugin_name , $active_ts_plugins) ){
126
-
127
- $ts_plugin_name = array ( self::$plugin_name );
128
-
129
- $updated_activated_ts_plugins = array_diff( $active_ts_plugins, $ts_plugin_name );
130
- update_option( 'active_TS_plugins', $updated_activated_ts_plugins );
131
- }
132
- }
133
-
134
- /**
135
- * It will add the plugin in the array. This array contain all activated plugin of TS.
136
- * @hook admin_init
137
- */
138
- function ts_add_plugin_active_check () {
139
-
140
- $active_ts_plugins = get_option( 'active_TS_plugins', array() );
141
-
142
- if ( !in_array ( self::$plugin_name , $active_ts_plugins) ){
143
-
144
- $active_ts_plugins [] = self::$plugin_name;
145
-
146
- update_option( 'active_TS_plugins', $active_ts_plugins );
147
- }
148
- }
149
-
150
- /**
151
- * This function returns the plugin version number.
152
- *
153
- * @access public
154
- * @since 7.7
155
- * @return $plugin_version
156
- */
157
- public function ts_get_version() {
158
- $plugin_version = '';
159
-
160
- $plugin_data = get_file_data( self::$plugin_file_path, array( 'Version' => 'Version' ) );
161
- if ( ! empty( $plugin_data['Version'] ) ) {
162
- $plugin_version = $plugin_data[ 'Version' ];
163
- }
164
- return $plugin_version;;
165
- }
166
-
167
- /**
168
- * This function returns the plugin url
169
- *
170
- * @access public
171
- * @since 7.7
172
- * @return string
173
- */
174
- public function ts_get_plugin_url() {
175
- return plugins_url() . '/' . self::$plugin_folder ;
176
- }
177
-
178
- /**
179
- * This function returns the template directory path
180
- *
181
- * @access public
182
- * @since 7.7
183
- * @return string
184
- */
185
- public function ts_get_template_path() {
186
-
187
- return untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/templates/';
188
- }
189
-
190
- /**
191
- * Register the Dashboard Page which is later hidden but this pages
192
- * is used to render the Welcome page.
193
- *
194
- * @access public
195
- * @since 7.7
196
- * @return void
197
- */
198
- public function admin_menus() {
199
- $display_version = self::$plugin_version;
200
-
201
- // About Page
202
- add_dashboard_page(
203
- sprintf( esc_html__( 'Welcome to %s %s', self::$plugin_context ), self::$plugin_name, $display_version ),
204
- esc_html__( 'Welcome to ' . self::$plugin_name, self::$plugin_context ),
205
- $this->minimum_capability,
206
- self::$plugin_prefix . '-pro-about',
207
- array( $this, 'about_screen' )
208
- );
209
-
210
- }
211
-
212
- /**
213
- * Hide Individual Dashboard Pages
214
- *
215
- * @access public
216
- * @since 7.7
217
- * @return void
218
- */
219
- public function admin_head() {
220
- remove_submenu_page( 'index.php', self::$plugin_prefix . '-pro-about' );
221
- }
222
-
223
- /**
224
- * Render About Screen
225
- *
226
- * @access public
227
- * @since 7.7
228
- * @return void
229
- */
230
- public function about_screen() {
231
- $display_version = self::$plugin_version;
232
- $ts_file_path = dirname( __FILE__ ) ;
233
- $ts_plugin_dir_path = plugin_dir_url( __FILE__ );
234
- // Badge for welcome page
235
- $badge_url = $ts_plugin_dir_path . '/assets/images/icon-256x256.png';
236
-
237
- $shortcodes_array = array(
238
- 'plugin_name' => self::$plugin_name,
239
- 'plugin_url' => self::$plugin_url,
240
- 'display_version' => $display_version,
241
- 'badge_url' => $badge_url,
242
- 'ts_dir_image_path' => $ts_plugin_dir_path . '/assets/images/',
243
- 'plugin_context' => self::$plugin_context,
244
- 'get_welcome_header' => self::get_welcome_header()
245
- );
246
- set_query_var( 'shortcodes_array', $shortcodes_array );
247
-
248
- ob_start();
249
- load_template( $ts_file_path . '/templates/welcome/welcome-page.php' );
250
- echo ob_get_clean();
251
-
252
- add_option( self::$plugin_prefix . '_pro_welcome_page_shown', 'yes' );
253
- add_option( self::$plugin_prefix . '_pro_welcome_page_shown_time', current_time( 'timestamp' ) );
254
- }
255
-
256
- /**
257
- * The header section for the welcome screen.
258
- *
259
- * @since 7.7
260
- */
261
- public function get_welcome_header() {
262
- // Badge for welcome page
263
- $ts_file_path = plugin_dir_url( __FILE__ ) ;
264
-
265
- // Badge for welcome page
266
- $badge_url = $ts_file_path . '/assets/images/icon-256x256.png';
267
-
268
- ?>
269
- <h1 class="welcome-h1"><?php echo get_admin_page_title(); ?></h1>
270
- <?php self::social_media_elements();
271
- }
272
-
273
- /**
274
- * Social Media Like Buttons
275
- *
276
- * Various social media elements to Tyche Softwares
277
- */
278
- public function social_media_elements() {
279
- $display_version = self::$plugin_version;
280
- $ts_file_path = dirname ( dirname( __FILE__ ) ) ;
281
- ob_start();
282
-
283
- load_template( $ts_file_path. '/welcome-page/templates/social-media-elements.php' );
284
- echo ob_get_clean();
285
- }
286
- /**
287
- * Sends user to the Welcome page on first activation of the plugin as well as each
288
- * time the plugin is updated is upgraded to a new version
289
- *
290
- * @access public
291
- * @since 7.7
292
- *
293
- * @return void
294
- */
295
- public function ts_pro_welcome() {
296
-
297
- // Bail if activating from network, or bulk
298
- if ( is_network_admin() || isset( $_GET[ 'activate-multi' ] ) ) {
299
- return;
300
- }
301
-
302
- $active_ts_plugins = get_option( 'active_TS_plugins', array() );
303
-
304
- /**
305
- * This count of active plugins indicate that we will not redirect to the welcome page when there are more than 2 of our plugins are activated.
306
- */
307
- if( count ( $active_ts_plugins ) == 1 ) {
308
- if( !get_option( self::$plugin_prefix . '_pro_welcome_page_shown' ) ) {
309
- wp_safe_redirect( admin_url( 'index.php?page=' . self::$plugin_prefix . '-pro-about' ) );
310
- exit;
311
- }
312
- }
313
- }
314
-
315
- /**
316
- * Executed when the plugin is updated using the Automatic Updater.
317
- */
318
- public function ts_update_db_check() {
319
-
320
- if ( self::$plugin_version != self::$previous_plugin_version ) {
321
- delete_option( self::$plugin_prefix . '_pro_welcome_page_shown' );
322
- delete_option( self::$plugin_prefix . '_pro_welcome_page_shown_time' );
323
- }
324
- }
325
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/views/no-script.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Proudly Protected by WordPress Content Copy Protection Pro Edition from TycheSoftwares!
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @since 2.0.0
11
+ * @copyright TycheSoftwares
12
+ * @package wpccp
13
+ */
14
+
15
+ ?>
16
+
17
+ <div align="center">
18
+ <noscript>
19
+ <div style="position:fixed; top:0px; left:0px; z-index:3000; height:100%; width:100%; background-color:#FFFFFF">
20
+ <br/><br/>
21
+ <div style="font-family: Tahoma; font-size: 14px; background-color:#FFFFCC; border: 1pt solid Black; padding: 10pt;">
22
+ Sorry, you have Javascript Disabled! To see this page as it is meant to appear, please enable your Javascript! See instructions <a href="http://www.enable-javascript.com/">here</a>
23
+ </div>
24
+ </div>
25
+ </noscript>
26
+ </div>
includes/views/settings.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Settings
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @since 2.0.0
11
+ * @copyright TycheSoftwares
12
+ * @package wpccp
13
+ */
14
+
15
+ ?>
16
+
17
+ <div class="wrap">
18
+ <h1><?php esc_html_e( 'Content Copy Protection (Lite)', 'wpccp' ); ?></h1>
19
+
20
+ <form id='form_wpccp' action='options.php' method='post'>
21
+ <?php
22
+ settings_fields( 'wpccp' );
23
+ do_settings_sections( 'wpccp' );
24
+ submit_button();
25
+ ?>
26
+ </form>
27
+ </div>
includes/views/upgrade.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Upgrade
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @since 2.0.0
11
+ * @copyright TycheSoftwares
12
+ * @package wpccp
13
+ */
14
+
15
+ ?>
16
+ <div class="ts-upgrade">
17
+ <img src="<?php echo esc_url( WPCCP_PLUGIN_URL . 'assets/img/taison-mascot.png' ); ?>" alt="Mascot">
18
+ <div class="ts-upgrade-cta">
19
+ <h2><?php esc_html_e( 'Upgrade to pro to enable these settings', 'wpccp' ); ?></h2>
20
+ <a class="button-primary" href="https://www.tychesoftwares.com/store/premium-plugins/wp-content-copy-protection-pro/?utm_source=wccpupgradetopro&utm_medium=link&utm_campaign=WCCPLite" target="_blank">
21
+ <?php esc_html_e( 'Upgrade', 'wpccp' ); ?>
22
+ </a>
23
+ </div>
24
+ </div>
includes/wpccpl-all-component.php DELETED
@@ -1,245 +0,0 @@
1
- <?php
2
- /**
3
- * It will Add all the Boilerplate component when we activate the plugin.
4
- * @author Tyche Softwares
5
- *
6
- */
7
- if ( ! defined( 'ABSPATH' ) ) {
8
- exit; // Exit if accessed directly.
9
- }
10
- if ( ! class_exists( 'WPCCPL_Component' ) ) {
11
- /**
12
- * It will Add all the Boilerplate component when we activate the plugin.
13
- *
14
- */
15
- class WPCCPL_Component {
16
-
17
- /**
18
- * It will Add all the Boilerplate component when we activate the plugin.
19
- */
20
- public function __construct() {
21
-
22
- $is_admin = is_admin();
23
-
24
- if ( true === $is_admin ) {
25
-
26
- require_once( "component/tracking-data/ts-tracking.php" );
27
- require_once( "component/deactivate-survey-popup/class-ts-deactivation.php" );
28
-
29
- require_once( "component/welcome-page/ts-welcome.php" );
30
- require_once( "component/faq-support/ts-faq-support.php" );
31
- require_once( "component/pro-notices-in-lite/ts-pro-notices.php" );
32
-
33
- $wpccpl_plugin_name = self::ts_get_plugin_name();;
34
- $wpccpl_locale = self::ts_get_plugin_locale();
35
-
36
- $wpccpl_file_name = 'wp-content-copy-protection/wpccpl.php';
37
- $wpccpl_plugin_prefix = 'wpccpl';
38
- $wpccpl_lite_plugin_prefix = 'wpccpl';
39
- $wpccpl_plugin_folder_name = 'wp-content-copy-protection/';
40
- $wpccpl_plugin_dir_name = dirname ( untrailingslashit( plugin_dir_path ( __FILE__ ) ) ) . '/wpccpl.php' ;
41
- $wpccpl_plugin_url = dirname ( untrailingslashit( plugins_url( '/', __FILE__ ) ) );
42
-
43
- $wpccpl_get_previous_version = get_option( 'wpccpl_version', '1' );
44
-
45
- $wpccpl_blog_post_link = 'https://www.tychesoftwares.com/docs/docs/wp-content-copy-protection/usage-tracking/';
46
-
47
- $wpccpl_plugins_page = '';
48
- $wpccpl_plugin_slug = '';
49
- $wpccpl_pro_file_name = '';
50
-
51
- $wpccpl_settings_page = '';
52
-
53
- new WPCCPL_TS_tracking ( $wpccpl_plugin_prefix, $wpccpl_plugin_name, $wpccpl_blog_post_link, $wpccpl_locale, $wpccpl_plugin_url, $wpccpl_settings_page, '', '', '', $wpccpl_file_name );
54
-
55
- new WPCCPL_TS_Tracker ( $wpccpl_plugin_prefix, $wpccpl_plugin_name );
56
-
57
- $wpccpl_deativate = new WPCCPL_TS_deactivate;
58
- $wpccpl_deativate->init ( $wpccpl_file_name, $wpccpl_plugin_name );
59
-
60
- // $user = wp_get_current_user();
61
-
62
- // if ( in_array( 'administrator', (array) $user->roles ) ) {
63
- // new WPCCPL_TS_Welcome ( $wpccpl_plugin_name, $wpccpl_plugin_prefix, $wpccpl_locale, $wpccpl_plugin_folder_name, $wpccpl_plugin_dir_name, $wpccpl_get_previous_version );
64
- // }
65
-
66
- $ts_pro_wpccpl = self::wpccpl_get_faq ();
67
- new WPCCPL_TS_Faq_Support( $wpccpl_plugin_name, $wpccpl_plugin_prefix, $wpccpl_plugins_page, $wpccpl_locale, $wpccpl_plugin_folder_name, $wpccpl_plugin_slug, $ts_pro_wpccpl, '', $wpccpl_file_name );
68
-
69
- /*if ( in_array('woocommerce/woocommerce.php', get_option('active_plugins') ) ) {
70
- $ts_pro_notices = self::wpccpl_get_notice_text ();
71
- new WPCCPL_ts_pro_notices( $wpccpl_plugin_name, $wpccpl_lite_plugin_prefix, $wpccpl_plugin_prefix, $ts_pro_notices, $wpccpl_file_name, $wpccpl_pro_file_name );
72
- }*/
73
-
74
- }
75
- }
76
-
77
- /**
78
- * It will retrun the plguin name.
79
- * @return string $ts_plugin_name Name of the plugin
80
- */
81
- public static function ts_get_plugin_name () {
82
- $ordd_plugin_dir = dirname ( dirname ( __FILE__ ) ) ;
83
- $ordd_plugin_dir .= '/wpccpl.php';
84
-
85
- $ts_plugin_name = '';
86
- $plugin_data = get_file_data( $ordd_plugin_dir, array( 'name' => 'Plugin Name' ) );
87
- if ( ! empty( $plugin_data['name'] ) ) {
88
- $ts_plugin_name = $plugin_data[ 'name' ];
89
- }
90
- return $ts_plugin_name;
91
- }
92
-
93
- /**
94
- * It will retrun the Plugin text Domain
95
- * @return string $ts_plugin_domain Name of the Plugin domain
96
- */
97
- public static function ts_get_plugin_locale () {
98
- $ordd_plugin_dir = dirname( dirname ( __FILE__ ) ) ;
99
- $ordd_plugin_dir .= '/wpccpl.php';
100
-
101
- $ts_plugin_domain = '';
102
- $plugin_data = get_file_data( $ordd_plugin_dir, array( 'domain' => 'Text Domain' ) );
103
- if ( ! empty( $plugin_data['domain'] ) ) {
104
- $ts_plugin_domain = $plugin_data[ 'domain' ];
105
- }
106
- return $ts_plugin_domain;
107
- }
108
-
109
- /**
110
- * It will Display the notices in the admin dashboard for the pro vesion of the plugin.
111
- * @return array $ts_pro_notices All text of the notices
112
- */
113
- public static function wpccpl_get_notice_text () {
114
- $ts_pro_notices = array();
115
-
116
- $wpccpl_locale = self::ts_get_plugin_locale();
117
-
118
- $message_first = wp_kses_post ( __( 'Thank you for using WooCommerce Print Invoice & Delivery Note plugin! Now make your deliveries more accurate by allowing customers to select their preferred delivery date & time from Product Delivery Date Pro for WooCommerce. <strong><a target="_blank" href= "https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/?utm_source=wpnotice&utm_medium=first&utm_campaign=WpContentCopyPlugin">Get it now!</a></strong>', $wpccpl_locale ) );
119
-
120
- $message_two = wp_kses_post ( __( 'Never login to your admin to check your deliveries by syncing the delivery dates to the Google Calendar from Product Delivery Date Pro for WooCommerce. <strong><a target="_blank" href= "https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/checkout?edd_action=add_to_cart&download_id=16&utm_source=wpnotice&utm_medium=first&utm_campaign=WpContentCopyPlugin">Get it now!</a></strong>', $wpccpl_locale ) );
121
-
122
- $message_three = wp_kses_post ( __( 'You can now view all your deliveries in list view or in calendar view from Product Delivery Date Pro for WooCommerce. <strong><a target="_blank" href= "https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/checkout?edd_action=add_to_cart&download_id=16&utm_source=wpnotice&utm_medium=first&utm_campaign=WpContentCopyPlugin">Get it now!</a></strong>.', $wpccpl_locale ) );
123
-
124
- $message_four = wp_kses_post ( __( 'Allow your customers to pay extra for delivery for certain Weekdays/Dates from Product Delivery Date Pro for WooCommerce. <strong><a target="_blank" href= "https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/checkout?edd_action=add_to_cart&download_id=16&utm_source=wpnotice&utm_medium=first&utm_campaign=WpContentCopyPlugin">Have it now!</a></strong>.', $wpccpl_locale ) );
125
-
126
- $message_five = wp_kses_post ( __( 'Customers can now edit the Delivery date & time on cart and checkout page or they can reschedule the deliveries for the already placed orders from Product Delivery Date Pro for WooCommerce. <strong><a target="_blank" href= "https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/checkout?edd_action=add_to_cart&download_id=16&utm_source=wpnotice&utm_medium=first&utm_campaign=WpContentCopyPlugin">Have it now!</a></strong>.', $wpccpl_locale ) );
127
-
128
- // message six
129
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/woocommerce-abandoned-cart-pro/?utm_source=wpnotice&utm_medium=sixth&utm_campaign=WpContentCopyPlugin';
130
- $message_six = wp_kses_post ( __( 'Boost your sales by recovering up to 60% of the abandoned carts with our Abandoned Cart Pro for WooCommerce plugin. You can capture customer email addresses right when they click the Add To Cart button. <strong><a target="_blank" href= "'.$_link.'">Grab your copy of Abandon Cart Pro plugin now</a></strong>.', $wpccpl_locale ) );
131
-
132
- $wpccpl_message_six = array ( 'message' => $message_six, 'plugin_link' => 'woocommerce-abandon-cart-pro/woocommerce-ac.php' );
133
- // message seven
134
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/woocommerce-abandoned-cart-pro/?utm_source=wpnotice&utm_medium=seventh&utm_campaign=WpContentCopyPlugin';
135
- $message_seven = wp_kses_post ( __( 'Don\'t loose your sales to abandoned carts. Use our Abandon Cart Pro plugin & start recovering your lost sales in less then 60 seconds.<br>
136
- <strong><a target="_blank" href= "'.$_link.'">Get it now!</a></strong>', $wpccpl_locale ) );
137
- $wpccpl_message_seven = array ( 'message' => $message_seven, 'plugin_link' => 'woocommerce-abandon-cart-pro/woocommerce-ac.php' );
138
-
139
- // message eight
140
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/woocommerce-abandoned-cart-pro/?utm_source=wpnotice&utm_medium=eight&utm_campaign=WpContentCopyPlugin';
141
- $message_eight = wp_kses_post ( __( 'Send Abandoned Cart reminders that actually convert. Take advantage of our fully responsive email templates designed specially with an intent to trigger conversion. <br><strong><a target="_blank" href= "'.$_link.'">Grab your copy now!</a></strong>', $wpccpl_locale ) );
142
- $wpccpl_message_eight = array ( 'message' => $message_eight, 'plugin_link' => 'woocommerce-abandon-cart-pro/woocommerce-ac.php' );
143
-
144
- // message nine
145
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/woocommerce-abandoned-cart-pro/?utm_source=wpnotice&utm_medium=ninth&utm_campaign=WpContentCopyPlugin';
146
- $message_nine = wp_kses_post ( __( 'Increase your store sales by recovering your abandoned carts for just $119. No profit sharing, no monthly fees. Our Abandoned Cart Pro plugin comes with a 30 day money back guarantee as well. :). Use coupon code ACPRO20 & save $24!<br>
147
- <strong><a target="_blank" href= "'.$_link.'">Purchase now</a></strong>', $wpccpl_locale ) );
148
- $wpccpl_message_nine = array ( 'message' => $message_nine, 'plugin_link' => 'woocommerce-abandon-cart-pro/woocommerce-ac.php' );
149
-
150
- // message ten
151
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/order-delivery-date-for-woocommerce-pro-21/?utm_source=wpnotice&utm_medium=tenth&utm_campaign=WpContentCopyPlugin';
152
- $message_ten = wp_kses_post ( __( 'Allow your customers to select the Delivery Date & Time on the Checkout Page using our Order Delivery Date Pro for WooCommerce Plugin. <br>
153
- <strong><a target="_blank" href= "'.$_link.'">Shop now</a></strong> & be one of the 20 customers to get 20% discount on the plugin price. Use the code "ORDPRO20". Hurry!!', $wpccpl_locale ) );
154
- $wpccpl_message_ten = array ( 'message' => $message_ten, 'plugin_link' => 'order-delivery-date/order_delivery_date.php' );
155
-
156
- // message eleven
157
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/woocommerce-booking-plugin/?utm_source=wpnotice&utm_medium=eleven&utm_campaign=WpContentCopyPlugin';
158
- $message_eleven = wp_kses_post ( __( ' Allow your customers to book an appointment or rent an apartment with our Booking and Appointment for WooCommerce plugin. You can also sell your product as a resource or integrate with a few Vendor plugins. <br>Shop now & Save 20% on the plugin with the code "BKAP20". Only for first 20 customers. <strong><a target="_blank" href= "'.$_link.'">Have it now!</a></strong>', $wpccpl_locale ) );
159
- $wpccpl_message_eleven = array ( 'message' => $message_eleven, 'plugin_link' => 'woocommerce-booking/woocommerce-booking.php' );
160
-
161
- // message 12
162
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/deposits-for-woocommerce/?utm_source=wpnotice&utm_medium=twelve&utm_campaign=WpContentCopyPlugin';
163
- $message_twelve = wp_kses_post ( __( ' Allow your customers to pay deposits on products using our Deposits for WooCommerce plugin.<br>
164
- <strong><a target="_blank" href= "'.$_link.'">Purchase now</a></strong> & Grab 20% discount with the code "DFWP20". The discount code is valid only for the first 20 customers.', $wpccpl_locale ) );
165
- $wpccpl_message_twelve = array ( 'message' => $message_twelve, 'plugin_link' => 'woocommerce-deposits/deposits-for-woocommerce.php' );
166
-
167
- // message 13
168
- $_link = 'https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/?utm_source=wpnotice&utm_medium=thirteen&utm_campaign=WpContentCopyPlugin';
169
- $message_thirteen = wp_kses_post ( __( 'Allow your customers to select the Delivery Date & Time for your WooCommerce products using our Product Delivery Date Pro for WooCommerce Plugin. <br>
170
- <strong><a target="_blank" href= "'.$_link.'">Shop now</a></strong>', $wpccpl_locale ) );
171
- $wpccpl_message_thirteen = array ( 'message' => $message_thirteen, 'plugin_link' => 'product-delivery-date/product-delivery-date.php' );
172
-
173
- $ts_pro_notices = array (
174
- 1 => $message_first,
175
- 2 => $message_two,
176
- 3 => $message_three,
177
- 4 => $message_four,
178
- 5 => $message_five,
179
- 6 => $wpccpl_message_six,
180
- 7 => $wpccpl_message_seven,
181
- 8 => $wpccpl_message_eight,
182
- 9 => $wpccpl_message_nine,
183
- 10 => $wpccpl_message_ten,
184
- 11 => $wpccpl_message_eleven,
185
- 12 => $wpccpl_message_twelve,
186
- 13 => $wpccpl_message_thirteen
187
- );
188
-
189
- return $ts_pro_notices;
190
- }
191
-
192
- /**
193
- * It will contain all the shortcodes which need to be display on the shortcodes page.
194
- * @return array $ts_shortcodes All questions and answers.
195
- *
196
- */
197
- public static function wpccpl_get_faq() {
198
-
199
- $ts_wpccpl = array ();
200
-
201
- $ts_wpccpl = array(
202
- 1 => array (
203
- 'question' => 'Will WP Content Copy Protection Plugin have a negative impact on my SEO?',
204
- 'answer' => 'Absolutely not! This plugin will only affect the client browser and will have absolutely no negative impact on your SEO. In fact, it would assist in increasing your SEO score as your content will remain unique.'
205
- ),
206
- 2 => array (
207
- 'question' => 'Will this plugin disable the features from the site administrator also?',
208
- 'answer' => 'Yes! However, our Pro version allows the blog administrator to enable/disable copy protect functions for registered and logged in users (globally)
209
- '
210
- ),
211
- 3 => array (
212
- 'question' => 'Will your WP Content Copy Protection Plugin affect my Advertising Units (Adsense)?',
213
- 'answer' => 'Absolutely not! Although this plugin locks your content and prevents it from being copied by anyone else, your advertising units will remain unaffected as the code doesn’t alter any embeddable code or the functioning thereof.'
214
- ),
215
- 4 => array (
216
- 'question' => 'Why Did you Exclude The alert-message (Popup), Function?',
217
- 'answer' => 'This function was removed simply because it could scare away your website visitors – cause a higher bounce rate – and essentially defame your website. We like to be silent! However, this is optional in our Pro edition.'
218
- ),
219
- 5 => array (
220
- 'question' => 'Does your Plugin work on all major Browsers?',
221
- 'answer' => 'This plugin works on all major browsers and theme frameworks. The full functionality of WPCCP was tested on the latest versions of IE (Internet Explorer), Mozilla Firefox, Safari and Chrome without any problems.'
222
- ),
223
- 6 => array (
224
- 'question' => 'What is the difference between the free version and the pro version?',
225
- 'answer' => 'The pro version includes super aggressive image protection (making it near impossible for a user to copy/steal your images using advanced masking), Prt Sc (print screen) deterrent agent, optional alert message for right click, Javascript validation with idle redirect, removed all RSS feeds instances to counter content scraping software/autoblogs and much, much more! See our features above.'
226
- ),
227
- 7 => array (
228
- 'question' => 'Why did you remove the iframe breaker?',
229
- 'answer' => 'We decided to remove the Iframe breaker due to conflict with theme appearance/customization.'
230
- ),
231
- 8 => array (
232
- 'question' => 'How would I break out of Iframes now?',
233
- 'answer' => '<p>We have developed a small plugin that will act as an extension to WP Content Copy Protection. This plugin, WP noFrame/noClickjacking can be found <a href="https://wordpress.org/plugins/wp-noframenoclickjacking/">HERE</a>. This plugin is a simple (yet) effective frame breaking plugin (iframe buster) that protects your site content from being embedded into other sites – effectively defending you against clickjacking attacks. This is achieved by adding a Header always append X-Frame-Options DENY instruction to your .htaccess file – where the DENY rule will prevent ALL domains from framing your content.</p>'
234
- ),
235
- 9 => array (
236
- 'question' => 'How is my Video and Audio Protected?',
237
- 'answer' => 'This plugin inheritently disables right click/copy/save functions on your default HTML5 video and audio embeds.'
238
- )
239
- );
240
-
241
- return $ts_wpccpl;
242
- }
243
- }
244
- $WPCCPL_Component = new WPCCPL_Component();
245
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
index.php CHANGED
@@ -1,9 +1,22 @@
1
- <?php
2
-
3
- /**
4
- * WordPress Content Copy Protection Premium is brought to you by TycheSoftwares.com
5
- */
6
-
7
- ?>
8
- <br /><br />
9
- <center>Sorry, you are not authorized to access this area ! Goodbye !</center><br />
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Proudly Protected by WordPress Content Copy Protection Pro Edition from TycheSoftwares!
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @copyright TycheSoftwares
11
+ * @package wpccp
12
+ */
13
+
14
+ ?>
15
+ <br /><br />
16
+ <center>
17
+ Sorry, you are not authorized to access this area ! Goodbye !
18
+ </center>
19
+ <br /><br />
20
+ <center>
21
+ Protect your online content with <a href="https://www.tychesoftwares.com/premium-plugins/">WP Content Copy Protection Pro</a> - The No.1 WordPress Copy Protection Plugin on the Web
22
+ </center>
languages/.gitkeep ADDED
File without changes
mix-manifest.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "/assets/css/style.min.css": "/assets/css/style.min.css",
3
+ "/assets/css/admin.min.css": "/assets/css/admin.min.css",
4
+ "/assets/js/script.min.js": "/assets/js/script.min.js",
5
+ "/assets/js/admin.min.js": "/assets/js/admin.min.js",
6
+ "/assets/css/select2.css": "/assets/css/select2.css",
7
+ "/assets/css/select2.min.css": "/assets/css/select2.min.css",
8
+ "/assets/js/select2.js": "/assets/js/select2.js",
9
+ "/assets/js/select2.min.js": "/assets/js/select2.min.js"
10
+ }
package.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "wp-content-copy-protection",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "repository": "git@github.com:TycheSoftwares/wp-content-copy-protection.git",
6
+ "author": "TycheSoftwares<support@tychesoftwares.freshdesk.com>",
7
+ "license": "MIT",
8
+ "dependencies": {
9
+ "@wordpress/eslint-plugin": "^3.1.0",
10
+ "eslint": "^6.5.1",
11
+ "select2": "^4.0.10"
12
+ },
13
+ "devDependencies": {
14
+ "cross-env": "^5.2.1",
15
+ "laravel-mix": "^4.0.16",
16
+ "live-server": "^1.2.1",
17
+ "wp-pot": "^1.7.2"
18
+ },
19
+ "eslintConfig": {
20
+ "extends": [
21
+ "plugin:@wordpress/eslint-plugin/recommended"
22
+ ],
23
+ "globals": {
24
+ "jQuery": true,
25
+ "ajaxurl": true,
26
+ "wpccpNonce": true,
27
+ "wpccpMessage": true,
28
+ "wpccpPaste": true,
29
+ "wpccpUrl": true
30
+ }
31
+ },
32
+ "scripts": {
33
+ "serve": "live-server . --host=localhost --port=8080",
34
+ "dev": "yarn run development",
35
+ "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
36
+ "watch": "yarn run development -- --watch",
37
+ "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
38
+ "prod": "yarn run production",
39
+ "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
40
+ }
41
+ }
phpcs.xml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="WordPress Coding Standards">
3
+ <!-- See https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
4
+ <!-- See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/blob/develop/WordPress-Core/ruleset.xml -->
5
+
6
+ <!-- Set a description for this ruleset. -->
7
+ <description>A custom set of code standard rules to check for WordPress wpccp.</description>
8
+
9
+ <!-- Exclude paths -->
10
+ <exclude-pattern>src/</exclude-pattern>
11
+ <exclude-pattern>build/</exclude-pattern>
12
+ <exclude-pattern>assets/</exclude-pattern>
13
+ <exclude-pattern>includes/class-updater.php</exclude-pattern>
14
+ <exclude-pattern>*/node_modules/*</exclude-pattern>
15
+ <exclude-pattern>*/vendor/*</exclude-pattern>
16
+ <exclude-pattern>*/webpack.mix.js</exclude-pattern>
17
+ <exclude-pattern>*/style.css</exclude-pattern>
18
+
19
+ <!-- Configs -->
20
+ <config name="minimum_supported_wp_version" value="5.6" />
21
+ <config name="testVersion" value="7.3-" />
22
+
23
+ <!-- PHPCompatibility -->
24
+ <rule ref="PHPCompatibilityWP">
25
+ <exclude-pattern>tests/</exclude-pattern>
26
+ </rule>
27
+
28
+ <!-- Text Domain -->
29
+ <rule ref="WordPress.WP.I18n">
30
+ <properties>
31
+ <property name="text_domain" type="array" value="wpccp"/>
32
+ </properties>
33
+ </rule>
34
+
35
+ <!-- Include the WordPress ruleset, with exclusions. -->
36
+ <rule ref="WordPress">
37
+ </rule>
38
+ </ruleset>
readme.md ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # WP Content Copy Protection
2
+
3
+ WP Content Copy Protection is a simple, yet effective plugin that uses an array of aggressive techniques in protecting your online content from being stolen.
4
+
5
+ Some of the most common content copy methods (via mouse, keyboard and browser), such as right-click, image drag/drop/save, text selection/drag/drop, source code viewing, and keyboard copy shortcut keys such as CTRL A, C, X, U, S, and P are disabled with this plugin (just to name a few).
6
+
7
+ This is a plugin with teeth - and an absolute must for any business owner, blogger and WordPress site owner who is serious about protecting his online content! Simple, effective, lightweight and non resource-intensive! By far the most effective 360 degree content copy protection plugin you will come across.
8
+
9
+ ## Installation
10
+
11
+ 1. Deactivate AND delete any older version of `WP Content Copy Protection` from your WP `dashboard/plugins`
12
+ 2. Upload and extract the contents of this plugin to your `wp-content/plugins/folder`
13
+ 3. Activate the plugin in your `WP-admin/plugins`
14
+ 4. Enjoy our full house content protection
15
+
16
+ ## Development
17
+
18
+ - `composer install`
19
+ - `yarn install`
20
+ - `yarn dev`
21
+
22
+ ## Production
23
+
24
+ - `composer install --no-dev`
25
+ - `yarn install`
26
+ - `yarn prod`
27
+
28
+ ## Docker
29
+ Start local docker container
30
+
31
+ `docker-compose up -d`
32
+
33
+ Pause docker container
34
+
35
+ `docker-compose stop`
36
+
37
+ Stop and remove docker container
38
+
39
+ `docker-compose down`
40
+
41
+ Access url: http://localhost:9999
42
+
43
+ ## F.A.Q
44
+
45
+ 1. **Will WP Content Copy Protection have a negative impact on my SEO?**
46
+
47
+ No, absolutely not! This plugin will only affect the client's browser (client attempting to copy your content) and will have NO negative impact on your SEO.
48
+
49
+ 2. **Will this plugin disable the features from the site administrator also?**
50
+
51
+ The integrated settings (since v 1.0.7) allows the admin to enable/disable all copy protect features from admin (including registered and logged in users).
52
+
53
+ 3. **Will your WP Content Copy Protection Plugin affect my Advertising Units (Adsense)?**
54
+
55
+ Absolutely not! Although this plugin locks your content and prevents it from being copied by anyone else, embeddable content will remain unaffected.
56
+
57
+ 4. **Why Did you exclude The 'alert-message' ?**
58
+
59
+ We have disabled it due to the fact that it could scare away your visitors - causing a higher bounce rate and essentially, defaming your website. Simply, non-obtrusive!
60
+
61
+ 6. **Does your plugin work on all major browsers?**
62
+
63
+ This plugin works on all major browsers. The full functionality of this plugin was tested on the latest versions of IE (Internet Explorer), Mozilla FF, and Chrome and Safari without any problems.
64
+
65
+ 7. **Why did you remove the iframe breaker?**
66
+
67
+ We have removed the iframe breaker due to a theme customization conflict and also because the javascript frame breaker can easily be bypassed. The good news however, is that we have come up with a more secure frame breaker which is available to you as free extension to WP Content Copy Protection. This extension can be downloaded here: http://wordpress.org/plugins/wp-noframenoclickjacking/
68
+
69
+ 8. **Can I exclude pages and/or posts from being protected?**
70
+
71
+ Absolutely! Prior to v1.2 we only had the option to exclude page, post and category level exclusion. You now have the option to exclude pages, posts and categories from being protected!
72
+
73
+ 9. **Is your plugin Mac OS X compatible?**
74
+
75
+ Yes! While the plugin was initially developed for windows and linux based operating systems - we have made reasonable attempt to prevent most copy functions via Mac osx based systems as well.
76
+
77
+ 10. **Is there a limit as to how many sites I may use this plugin on?**
78
+
79
+ WP Content Copy Protection Pro Edition is available in single site usage license (which allows usage on ONE (1) single site only - and an unlimited site usage license (which allows unlimited usage). Please see https://www.tychesoftwares.com/premium-plugins/ for details or email us: support@tychesoftwares.freshdesk.com
readme.txt CHANGED
@@ -1,384 +1,362 @@
1
- === WP Content Copy Protection ===
2
-
3
- Contributors: tychesoftwares
4
- Donate link: https://www.paypal.me/TycheSoftwares
5
- Tags: protection, copyright, theft, no right click, content protection, image protection, image protect, copyprotect, security, copy protection, protect blog, plagiarism, duplicate, seo, context menu
6
- Requires at least: 3.0
7
- Tested up to: 5.2
8
- Stable tag: 1.1.8.7
9
- License: GPLv2 or Later
10
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
-
12
- WP Content Copy Protection uses aggressive techniques in protecting your online content (text/source/images/video/audio) from being stolen.
13
-
14
- == Description ==
15
-
16
- WP Content Copy Protection is a simple, yet effective plugin that uses an array of aggressive techniques in protecting your online content from being stolen.
17
-
18
- Some of the most common content copy methods (via mouse, keyboard and browser), such as right-click, image drag/drop/save, text selection/drag/drop, source code viewing, and keyboard copy shortcut keys such as CTRL A, C, X, U, S, and P are disabled with this plugin (just to name a few).
19
-
20
- This is a plugin with teeth - and an absolute must for any business owner, blogger and WordPress site owner who is serious about protecting his online content! Simple, effective, lightweight and non resource-intensive! By far the most effective 360 degree content copy protection plugin you will come across.
21
-
22
- = Basic Features (included) =
23
-
24
- √ Disables right click context menu on all content (except href links)
25
- √ Disables text selection (globally) on PC and mobile devices
26
- √ Disables text and image drag/drop/save on PC and mobile devices
27
- √ Basic image protection (image link URL's are automatically removed)
28
- √ Copy methods disabled from onscreen keyboard and shortcut context key
29
- √ Secures your uploads directory and sub-directories from public access
30
- √ Disables right click and save function on default video and audio embeds
31
- √ Javascript validation (displays error message when disabled in user browser)
32
- √ Disables keyboard copy controls (CTRL A, C, X) - Windows only
33
- √ Disables 'Source view', 'Save Page', and 'Print' key functions
34
- √ Disables f shortcut key for accessing developer tools to view source code
35
- √ No obtrusive popups or alert messages as they are known to defame your site
36
- √ No negative side-effects on your SEO (search engines can read your content)
37
- √ This is a non resource-intensive plugin that works silently in the background
38
- √ No configuration, customization or coding needed. Simply plug in and leave
39
-
40
- = Premium Features (Compatible with Windows, Linux and Mac OS X | Woocommerce | Gallery plugins such as NextGEN and NextCellent) =
41
-
42
- √ EVERYTHING in the basic version plus
43
- √ Admin can exclude specific pages/posts/categories from being protected
44
- √ Admin can enable/disable protection for site admins only OR registered users only OR admin and registered/logged in users
45
- √ Advanced/aggressive image protection (makes it near impossible for users to steal your images | pc and mobile friendly)
46
- √ Compatible with all gallery plugins (such as NextGEN and NextCellent) for uncompromised image protection
47
- √ Removes feeds (rdf, rss, rss2, atom, rss2_comments and more) from content scrapers and autoblogs
48
- √ Added extended keyboard copy protection commands (Windows, Linux and Mac OS X compatible)
49
- √ Added Prt Sc (Print Screen) deterrent agent (preventative measure in image theft)
50
- √ Prtsc agent equipped with instant redirect trigger (instantly bounce offender)
51
- √ Added extended CSS for text and image protection (mobile devices and smartphones)
52
- √ Source code view is disabled from F12, Ctrl+Shift+I, Ctrl+U and other combo keys
53
- √ Source code padding added (tricks the user into thinking your source is hidden)
54
- √ NO negative side-effects on your SEO (search engines can read your content)
55
- √ Works (tested) in IE9, IE10, Firefox, Google Chrome, Opera and Safari
56
- √ Compatible with all major theme frameworks and browsers
57
- √ Compatible with WooCommerce and other eCommerce plugins
58
- √ Lightweight, non resource-intensive plugin
59
- √ Quality Support | Dedicated Devs
60
-
61
- √ coming soon : source view page/post encryption and MUCH, MUCH more
62
-
63
- The WP Content Copy Protection plugin is maintained by [OPTIPress](http://optipress.org/)
64
-
65
- == This Plugin will NOT ==
66
-
67
- 1. Have any negative impact on your SEO.
68
- 2. Have any negative effect on your Advertising (such as Adsense) : Embeddable codes, other than the Video and Audio embeds from v3.6 upwards, are not affected by this plugin in any way!
69
-
70
- == Installation ==
71
-
72
- 1. Download the .zip file
73
- 2. Upload and extract the contents of the zip file to your wp-content/plugins/folder
74
- 3. Activate the plugin
75
- 4. Enjoy!
76
-
77
- == Feedback, Questions, Help, Bug Reporting, and Suggestions ==
78
-
79
- Just email us at: support@tychesoftwares.com / Email Subject : WP Content Copy Protection
80
-
81
- == Upgrade Notice ==
82
-
83
- = Version 1.1.8.3 =
84
-
85
- == Screenshots ==
86
-
87
- none
88
-
89
- == Frequently Asked Questions ==
90
-
91
- = Will WP Content Copy Protection Plugin have a negative impact on my SEO? =
92
-
93
- Absolutely not! This plugin will only affect the client browser and will have absolutely no negative impact on your SEO. In fact, it would assist in increasing your SEO score as your content will remain unique.
94
-
95
- = Will this plugin disable the features from the site administrator also? =
96
-
97
- Yes! However, our Pro version allows the blog administrator to enable/disable copy protect functions for registered and logged in users (globally)
98
-
99
- = Will your WP Content Copy Protection Plugin affect my Advertising Units (Adsense)? =
100
-
101
- Absolutely not! Although this plugin locks your content and prevents it from being copied by anyone else, your advertising units will remain unaffected as the code doesn't alter any embeddable code or the functioning thereof.
102
-
103
- = Why Did you Exclude The alert-message (Popup), Function? =
104
-
105
- This function was removed simply because it could scare away your website visitors - cause a higher bounce rate - and essentially defame your website. We like to be silent! However, this is optional in our Pro edition.
106
-
107
- = Does your Plugin work on all major Browsers? =
108
-
109
- This plugin works on all major browsers and theme frameworks. The full functionality of WPCCP was tested on the latest versions of IE (Internet Explorer), Mozilla Firefox, Safari and Chrome without any problems.
110
-
111
- = What is the difference between the free version and the pro version? =
112
-
113
- The pro version includes super aggressive image protection (making it near impossible for a user to copy/steal your images using advanced masking), Prt Sc (print screen) deterrent agent, optional alert message for right click, Javascript validation with idle redirect, removed all RSS feeds instances to counter content scraping software/autoblogs and much, much more! See our features above.
114
-
115
- = Why did you remove the iframe breaker? =
116
-
117
- We decided to remove the Iframe breaker due to conflict with theme appearance/customization.
118
-
119
- = How would I break out of Iframes now? =
120
-
121
- We have developed a small plugin that will act as an extension to WP Content Copy Protection. This plugin, WP noFrame/noClickjacking can be found [HERE](http://wordpress.org/plugins/wp-noframenoclickjacking/). This plugin is a simple (yet) effective frame breaking plugin (iframe buster) that protects your site content from being embedded into other sites - effectively defending you against clickjacking attacks. This is achieved by adding a Header always append X-Frame-Options DENY instruction to your .htaccess file - where the DENY rule will prevent ALL domains from framing your content.
122
-
123
- = How is my Video and Audio Protected? =
124
-
125
- This plugin inheritently disables right click/copy/save functions on your default HTML5 video and audio embeds.
126
-
127
- == Changelog ==
128
-
129
- = 1.0.1 =
130
- * First release version
131
- * Fixed bug that disabled user input via contact form
132
- * Added function to disable Print via keyboard (CTRL+P)
133
-
134
- = 1.0.2 =
135
- * Re-enabled text selection (giving users more "freedom"). However, users are still unable to copy any selected text
136
- * Fixed User input error (this error prevented users from text input via contact, search, and comment forms)
137
- * Fixed a bug in mobile text protection code (conflicted with Chrome specific user input)
138
- * Fixed Javascript drop down menu functionality
139
- * Revamped iFrame breaking code
140
-
141
- = 1.0.3 =
142
- * Added function to automatically remove the image link URL and defaults the image upload settings to 'none' (deters image theft)
143
- * Fixed a bug that prevented text input (via forms) in Chrome browsers
144
- * Did some housekeeping
145
-
146
- = 1.0.4 =
147
- * added settings page
148
- * Cleared ctrl + f5 (hard refresh) issue - no longer conflicts with other ctrl key functions
149
- * Cleared bug that caused dropdown and user input issues
150
- * Changed readme.txt and corrected typo errors
151
- * Removed included screenshots
152
- * General housekeeping
153
-
154
- = 1.0.4.1 =
155
- * fixed callback error
156
- * fixed bug in mobile hold/copy function
157
- * changed settings page
158
- * edited readme.txt
159
- * added tester area links in pro.php
160
- * fixed user input bug for Chrome browsers
161
- * added notice to plugin settings page
162
-
163
- = 1.0.4.2 =
164
- * fixed user input bug (for Chrome browsers)
165
- * changed settings page and added notice
166
- * fixed bug in mobile text select function
167
- * edited readme.txt
168
- * general housekeeping
169
-
170
- = 1.0.5 =
171
-
172
- * fixed bug in mobile text selection function (hold to copy)
173
- * made changes to included pro page and fixed typo errors
174
- * made changes to readme file
175
-
176
- = 1.0.5.1 =
177
-
178
- * changed settings page (added new text, removed some text, fixed typo error)
179
- * renamed pro.php page to settings.php (modified the fwpconsec.php accordingly)
180
- * added license URI to fwpconsec.php file header
181
- * decreased tag count in readme.txt file (best practice)
182
- * changed plugin description in fwpconsec.php file header
183
- * general housekeeping and cleaning
184
-
185
- = 1.0.5.2 =
186
-
187
- * removed imagetoolbar meta from code due to conflict with head content
188
- * removed deprecated code and replaced with correct syntax
189
- * added padding to JS error message
190
- * modified readme file
191
- * general housekeeping
192
-
193
- = 1.0.6 =
194
-
195
- * re-enabled text selection as users could bypass mouse/keyboard copy on selected text by using the browser copy function (text select disabled = nothing to copy even from browser copy option)
196
- * reconstructed and upgraded settings page
197
- * added donation link (settings file)
198
- * general housekeeping and code cleanup
199
- * upgraded from v1.0.5.2 - v1.0.6
200
- * updated and tested compatibility with WP v3.7.1
201
- * updated readme.txt file
202
-
203
- = 1.0.6.1 =
204
-
205
- * removed duplicate javascript function from code
206
- * corrected author name (display issue)
207
- * upgraded from v1.0.6 - v1.0.6.1
208
- * updated settings.php page
209
- * updated readme.txt file
210
- * general housekeeping
211
-
212
- = 1.0.6.2 =
213
-
214
- * tested compatibility with v3.8
215
- * changed version number
216
- * changed support email
217
- * corrected typo error
218
-
219
- = 1.0.6.03 =
220
-
221
- * general housekeeping
222
- * fixed typos in readme.txt
223
- * updated settings.php page
224
-
225
- = 1.0.7 =
226
-
227
- * updated compatibility (tested up to 3.9)
228
- * changes in readme.txt
229
- * changes in settings.php
230
- * changes in fwpconsec.php
231
-
232
- = 1.0.8 =
233
-
234
- * addressed conflict with theme appearance/customization (fwpconsec and readme)
235
- * added missing feature in readme description
236
- * removed some unnecessary spacing in code
237
- * changed external URLs in settings
238
- * changed default (blank) index.php
239
- * added new question to readme faq
240
- * upgraded from v1.0.7-v1.0.8
241
- * fixed iFrame code comment
242
-
243
- = 1.0.8.1 =
244
-
245
- * added new function (ctrl+s = document saving) to keyboard copy protection. Now prevents keyboard shortcut to saving documents/webpages.
246
- * fixed typo error in fwpconsec.php (caused code comments to display in UI)
247
- * renamed plugin name due to conflict with another plugin
248
- * renamed php files (fwpconsec.php to wpccpl.php)
249
- * made changes to settings/readme files
250
- * made changes to blank index.php
251
- * pushed from v1.0.8-v1.0.8.1
252
- * general housekeeping
253
-
254
- = 1.0.8.2 =
255
-
256
- * disabled iframe breaking code due to conflict with theme customizer
257
- * added new function = disabled key command responsible for opening developer tools (another way of viewing source code)
258
- * renamed plugin name (previous plugin conflict resolved)
259
- * changed plugin version from v1.0.8.1-v1.0.8.2
260
- * tested all current functions with v3.9
261
- * made changes to readme
262
-
263
- = 1.0.8.4 =
264
-
265
- * disabled bookmark feature (used as a bypass measure in viewing source code)
266
- * closed style tags in mobile copy disable function
267
- * tested plugin compatibility with v3.9.1
268
- * general housekeeping
269
-
270
- = 1.0.8.5 =
271
-
272
- * removed js for iframe breaking function
273
- * added X-Frame-Options HTTP response header as iframe breaker alternative
274
- * made readme.txt changes to include workaround
275
- * general housekeeping
276
-
277
- = 1.0.8.6 =
278
- * compressed javascript (increase execution times and reduce bandwidth/http requests)
279
- * cleaned up settings page
280
- * disabled ctrlv key
281
- * changed readme.txt
282
-
283
- = 1.0.9.1 =
284
- * corrected typo errors
285
- * general housekeeping
286
-
287
- = 1.1.2 =
288
- * minor code changes
289
- * enabled context menu on href tags
290
- * general housekeeping
291
- * upgraded v1.1.2
292
-
293
- = 1.1.3 =
294
- * fixed img drag/drop bug
295
-
296
- = 1.1.3.2 =
297
- * minified css
298
- * added settings link to plugin menu in dashboard
299
- * updated plugin from v1.1.3 - v1.1.3.2
300
- * tested compatibility on WordPress v4.0
301
- * general housekeeping
302
-
303
- = 1.1.3.3 =
304
- * disabled quickfind option (can be used to bypass all other keyboard commands)
305
- * changed plugin and author URI along with support email
306
- * modified JavaScript validation error message
307
- * made changes to settings.php and readme.txt
308
- * general housekeeping
309
- * upgraded v1.1.3.3
310
-
311
- = 1.1.4 =
312
- * tested compatibility with core v4.1.1
313
- * added rating link setting in plugin menu
314
- * changed version number
315
- * general housekeeping
316
-
317
- = 1.1.4.1 =
318
- * tested context functions on default video and audio embeds
319
- * upgraded readme.txt
320
-
321
- = 1.1.4.2 =
322
- * otimized JS validation (includes an idle redirect when disabled in user browser)
323
- * corrected upgrade notice version number
324
- * readme.txt and settings changes
325
- * general housekeeping
326
-
327
- = 1.1.4.3 =
328
- * tested compatibility with core 4.1.2
329
- * changed support email
330
- * changed stable tag
331
-
332
- = 1.1.5 =
333
- * added function to secure uploads dir from direct user access (without this function, all images and uploads can be accessed by default)
334
- * modified index.php file (this file will be copied to user's uploads dir)
335
- * changed stable tag (v1.1.5)
336
-
337
- = 1.1.6 =
338
- * tested compatibility with core 4.2.2
339
- * extended uploads dir protection function to include subdirectories
340
- * general housekeeping
341
-
342
- = 1.1.7 =
343
- * removed conflicting redeclare issue with another plugin
344
- * updated the readme file and settings page
345
- * general housekeeping
346
-
347
- = 1.1.7.1 =
348
-
349
- * removed idle redirect in js disable function due to conflict with open graph protocol
350
- * tested functionality alongside social sharing (no issues present)
351
- * removed duplicated code
352
- * altered keywords
353
-
354
- = 1.1.8.1 =
355
-
356
- * added pro link on plugin screen
357
- * tested compatibility on core 4.2.4
358
- * modified plugin description in plugin screen
359
- * modified keywords in readme file
360
- * minor housekeeping on wpccpl.php, settings.php and readme files
361
-
362
- = 1.1.8.3 =
363
-
364
- * tested compatibility with core 4.3
365
- * minor link change in settings file
366
- * changed version number
367
-
368
- = 1.1.8.4 =
369
-
370
- * removed links of yooplugins
371
-
372
- = 1.1.8.5 =
373
-
374
- * Usage Tracking has been added in the plugin. It provides an option to allow tracking of the non-sensitive data of our plugin from the website. You can read more about it [here](https://www.tychesoftwares.com/docs/docs/wp-content-copy-protection/usage-tracking/).
375
-
376
- = 1.1.8.6 =
377
-
378
- * When the plugin is activated, it was blocking the FavIcon of the website. It has been fixed.
379
-
380
- * While using MAC, the customers are able to print the screen using the Command + p key. It has been fixed.
381
-
382
- = 1.1.8.7 =
383
-
384
- * Removed the promotional notices being displayed at the backend of WordPress website.
1
+ === WP Content Copy Protection ===
2
+
3
+ Contributors: tychesoftwares, dhruvin
4
+ Donate link: https://www.paypal.me/TycheSoftwares
5
+ Tags: protection, copyright, theft, no right click, content protection, image protection, image protect, copyprotect, security, copy protection, protect blog, plagiarism, duplicate, seo, context menu
6
+ Requires at least: 3.0
7
+ Tested up to: 5.2
8
+ Stable tag: trunk
9
+ License: GPLv2 or Later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
+
12
+ WP Content Copy Protection uses aggressive techniques in protecting your online content (text/source/images/video/audio) from being stolen.
13
+
14
+ == Description ==
15
+
16
+ WP Content Copy Protection is a simple, yet effective plugin that uses an array of aggressive techniques in protecting your online content from being stolen.
17
+
18
+ Some of the most common content copy methods (via mouse, keyboard and browser), such as right-click, image drag/drop/save, text selection/drag/drop, source code viewing, and keyboard copy shortcut keys such as CTRL A, C, X, U, S, and P are disabled with this plugin (just to name a few).
19
+
20
+ This is a plugin with teeth - and an absolute must for any business owner, blogger and WordPress site owner who is serious about protecting his online content! Simple, effective, lightweight and non resource-intensive! By far the most effective 360 degree content copy protection plugin you will come across.
21
+
22
+ = Basic Features (included) =
23
+
24
+ √ Disables right click context menu on all content
25
+ √ Disables text selection (globally) on PC and mobile devices
26
+ √ Disables text and image drag/drop/save on PC and mobile devices
27
+ √ Basic image protection (image link URL's are automatically removed)
28
+ √ Copy methods disabled from onscreen keyboard and shortcut context key
29
+ √ Secures your uploads directory and sub-directories from public access
30
+ √ Disables right click and save function on default video and audio embeds
31
+ √ Javascript validation (displays error message when disabled in user browser)
32
+ √ Disables keyboard copy controls (CTRL A, C, X) - Windows only
33
+ √ Disables 'Source view', 'Save Page', and 'Print' key functions
34
+ √ Disables f shortcut key for accessing developer tools to view source code
35
+ √ No obtrusive popups or alert messages as they are known to defame your site
36
+ √ No negative side-effects on your SEO (search engines can read your content)
37
+ √ This is a non resource-intensive plugin that works silently in the background
38
+ √ No configuration, customization or coding needed. Simply plug in and leave
39
+
40
+ ### Check out the PRO version of [WP Content Copy Protection plugin](https://www.tychesoftwares.com/store/premium-plugins/wp-content-copy-protection-pro/?utm_source=wprepo&utm_medium=prolink&utm_campaign=WCCPLite).
41
+
42
+ = Premium Features (Compatible with Windows, Linux and Mac OS X | Woocommerce | All Custom Post Types) =
43
+
44
+ √ EVERYTHING in the basic version plus
45
+ √ Admin can exclude specific pages/posts/categories from being protected
46
+ √ Admin can enable/disable protection for site admins only OR registered users only OR admin and registered/logged in users
47
+ √ Advanced/aggressive image protection (makes it near impossible for users to steal your images | pc and mobile friendly)
48
+ √ Compatible with all gallery plugins (such as NextGEN and NextCellent) for uncompromised image protection
49
+ √ Removes feeds (rdf, rss, rss2, atom, rss2_comments and more) from content scrapers and autoblogs
50
+ √ Added extended keyboard copy protection commands (Windows, Linux and Mac OS X compatible)
51
+ √ Added Prt Sc (Print Screen) deterrent agent (preventative measure in image theft)
52
+ √ Prtsc agent equipped with instant redirect trigger (instantly bounce offender)
53
+ √ Added extended CSS for text and image protection (mobile devices and smartphones)
54
+ √ Source code view is disabled from F12, Ctrl+Shift+I, Ctrl+U and other combo keys
55
+ √ Source code padding added (tricks the user into thinking your source is hidden)
56
+ √ NO negative side-effects on your SEO (search engines can read your content)
57
+ √ Works (tested) in IE9, IE10, Firefox, Google Chrome, Opera and Safari
58
+ √ Compatible with all major theme frameworks and browsers
59
+ √ Compatible with WooCommerce and other eCommerce plugins
60
+ √ Lightweight, non resource-intensive plugin
61
+ √ Quality Support | Dedicated Devs
62
+
63
+ √ coming soon : Watermarking images, Gutenberg Block Protection and MUCH, MUCH more
64
+
65
+ == This Plugin will NOT ==
66
+
67
+ 1. Have any negative impact on your SEO.
68
+ 2. Have any negative effect on your Advertising (such as Adsense) : Embeddable codes, other than the Video and Audio embeds from v3.6 upwards, are not affected by this plugin in any way!
69
+
70
+ ### Some of our Pro plugins
71
+
72
+ 1. **[Abandoned Cart Pro for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/woocommerce-abandoned-cart-pro/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Abandoned Cart Pro for WooCommerce")**
73
+
74
+ 2. **[Booking & Appointment Plugin for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/woocommerce-booking-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Booking & Appointment Plugin for WooCommerce")**
75
+
76
+ 3. **[Order Delivery Date Pro for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/order-delivery-date-for-woocommerce-pro-21/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Order Delivery Date Pro for WooCommerce")**
77
+
78
+ 4. **[Product Delivery Date Pro for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Product Delivery Date Pro for WooCommerce")**
79
+
80
+ 5. **[Deposits For WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/deposits-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Deposits For WooCommerce")**
81
+
82
+ 6. **[Payment Gateway Based Fees and Discounts for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/payment-gateway-based-fees-and-discounts-for-woocommerce-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Payment Gateway Based Fees and Discounts for WooCommerce - Pro")**
83
+
84
+ 7. **[Custom Order Numbers for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/custom-order-numbers-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Custom Order Numbers for WooCommerce - Pro")**
85
+
86
+ 8. **[Product Input Fields for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/product-input-fields-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Product Input Fields for WooCommerce - Pro")**
87
+
88
+ 9. **[Call for Price for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/woocommerce-call-for-price-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Call for Price for WooCommerce - Pro")**
89
+
90
+ 10. **[Price based on User Role for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/price-user-role-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Price based on User Role for WooCommerce - Pro")**
91
+
92
+ 11. **[Currency per Product for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/currency-per-product-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCCPLite "Currency per Product for WooCommerce - Pro")**
93
+
94
+ ### Some of our other free plugins
95
+
96
+ 1. **[Abandoned Cart for WooCommerce](https://wordpress.org/plugins/woocommerce-abandoned-cart/ "Abandoned Cart for WooCommerce")**
97
+
98
+ 2. **[Order Delivery Date for WooCommerce - Lite](https://wordpress.org/plugins/order-delivery-date-for-woocommerce/ "Order Delivery Date for WooCommerce - Lite")**
99
+
100
+ 3. **[Product Delivery Date for WooCommerce - Lite](https://wordpress.org/plugins/product-delivery-date-for-woocommerce-lite/ "Product Delivery Date for WooCommerce")**
101
+
102
+ 4. **[Payment Gateway Based Fees and Discounts for WooCommerce](https://wordpress.org/plugins/checkout-fees-for-woocommerce/ "Payment Gateway Based Fees and Discounts for WooCommerce")**
103
+
104
+ 5. **[Custom Order Numbers for WooCommerce](https://wordpress.org/plugins/custom-order-numbers-for-woocommerce/ "Custom Order Numbers for WooCommerce")**
105
+
106
+ 6. **[Product Input Fields for WooCommerce](https://wordpress.org/plugins/product-input-fields-for-woocommerce/ "Product Input Fields for WooCommerce")**
107
+
108
+ 7. **[Call for Price for WooCommerce](https://wordpress.org/plugins/woocommerce-call-for-price/ "Call for Price for WooCommerce")**
109
+
110
+ 8. **[Price based on User Role for WooCommerce](https://wordpress.org/plugins/price-by-user-role-for-woocommerce/ "Price based on User Role for WooCommerce")**
111
+
112
+ 9. **[Currency per Product for WooCommerce](https://wordpress.org/plugins/currency-per-product-for-woocommerce/ "Currency per Product for WooCommerce")**
113
+
114
+ == Installation ==
115
+
116
+ 1. Download the .zip file
117
+ 2. Upload and extract the contents of the zip file to your wp-content/plugins/folder
118
+ 3. Activate the plugin
119
+ 4. Enjoy!
120
+
121
+ == Feedback, Questions, Help, Bug Reporting, and Suggestions ==
122
+
123
+ Just email us at: support@tychesoftwares.com / Email Subject : WP Content Copy Protection
124
+
125
+ == Upgrade Notice ==
126
+
127
+ = Version 2.0.0 =
128
+
129
+ == Screenshots ==
130
+
131
+ none
132
+
133
+ == Frequently Asked Questions ==
134
+
135
+ = Will WP Content Copy Protection Plugin have a negative impact on my SEO? =
136
+
137
+ Absolutely not! This plugin will only affect the client browser and will have absolutely no negative impact on your SEO. In fact, it would assist in increasing your SEO score as your content will remain unique.
138
+
139
+ = Will this plugin disable the features for the site administrator also? =
140
+
141
+ Yes! However, you can disable the features for site administrators and registered users. With the Pro version you can also disable the features for different roles.
142
+
143
+ = Will your WP Content Copy Protection Plugin affect my Advertising Units (Adsense)? =
144
+
145
+ Absolutely not! Although this plugin locks your content and prevents it from being copied by anyone else, your advertising units will remain unaffected as the code doesn't alter any embeddable code or the functioning thereof.
146
+
147
+ = Why Did you add The alert-message (Popup), Function? =
148
+
149
+ The message is optional and can be excluded. Many a times user might need to be told that right click has been disabled. The message can now be customized as well.
150
+
151
+ = Does your Plugin work on all major Browsers? =
152
+
153
+ This plugin works on all major browsers and theme frameworks. The full functionality of WPCCP was tested on the latest versions of IE (Internet Explorer), Mozilla Firefox, Safari and Chrome without any problems. Although, there might be some issues with mobile browsers such as Opera Mini and UC Browsers.
154
+
155
+ = What is the difference between the free version and the pro version? =
156
+
157
+ The pro version includes super aggressive image protection (making it near impossible for a user to copy/steal your images using advanced masking), Prt Sc (print screen) deterrent agent, optional alert message for right click, Javascript validation with idle redirect, removed all RSS feeds instances to counter content scraping software/autoblogs and much, much more! See our features above.
158
+
159
+ = How is my Video and Audio Protected? =
160
+
161
+ This plugin inheritently disables right click/copy/save functions on your default HTML5 video and audio embeds.
162
+
163
+ == Changelog ==
164
+
165
+ = 2.0.1 (04 Nov 2019) =
166
+
167
+ * Fixed an issue where links were getting freezed when an image is wrapped around anchor(<a>) tags.
168
+
169
+ = 2.0.0 (24 Oct 2019) =
170
+
171
+ * Complete code refactored and WPCS standards applied
172
+
173
+ * Added a settings page to allow the plugin to be configured as per the needs.
174
+
175
+ * Added a message that can be displayed on Right Click. This is optional though
176
+
177
+ * Administrators can now be excluded from protection.
178
+
179
+ * Specific Pages and Posts can now be excluded from protection.
180
+
181
+ = 1.1.8.7 =
182
+
183
+ * Removed the promotional notices being displayed at the backend of WordPress website.
184
+
185
+ = 1.1.8.6 =
186
+
187
+ * When the plugin is activated, it was blocking the FavIcon of the website. It has been fixed.
188
+
189
+ * While using MAC, the customers are able to print the screen using the Command + p key. It has been fixed.
190
+
191
+ = 1.1.8.5 =
192
+
193
+ * Usage Tracking has been added in the plugin. It provides an option to allow tracking of the non-sensitive data of our plugin from the website. You can read more about it [here](https://www.tychesoftwares.com/docs/docs/wp-content-copy-protection/usage-tracking/).
194
+
195
+ = 1.1.8.4 =
196
+
197
+ * removed links of yooplugins
198
+
199
+ = 1.1.8.3 =
200
+
201
+ * tested compatibility with core 4.3
202
+ * minor link change in settings file
203
+ * changed version number
204
+
205
+ = 1.1.8.1 =
206
+
207
+ * added pro link on plugin screen
208
+ * tested compatibility on core 4.2.4
209
+ * modified plugin description in plugin screen
210
+ * modified keywords in readme file
211
+ * minor housekeeping on wpccpl.php, settings.php and readme files
212
+
213
+ = 1.1.7.1 =
214
+
215
+ * removed idle redirect in js disable function due to conflict with open graph protocol
216
+ * tested functionality alongside social sharing (no issues present)
217
+ * removed duplicated code
218
+ * altered keywords
219
+
220
+ = 1.1.7 =
221
+ * removed conflicting redeclare issue with another plugin
222
+ * updated the readme file and settings page
223
+ * general housekeeping
224
+
225
+ = 1.1.6 =
226
+ * tested compatibility with core 4.2.2
227
+ * extended uploads dir protection function to include subdirectories
228
+ * general housekeeping
229
+
230
+ = 1.1.5 =
231
+ * added function to secure uploads dir from direct user access (without this function, all images and uploads can be accessed by default)
232
+ * modified index.php file (this file will be copied to user's uploads dir)
233
+ * changed stable tag (v1.1.5)
234
+
235
+ = 1.1.4 =
236
+ * tested compatibility with core v4.1.1
237
+ * added rating link setting in plugin menu
238
+ * changed version number
239
+ * general housekeeping
240
+
241
+ = 1.1.3.3 =
242
+ * disabled quickfind option (can be used to bypass all other keyboard commands)
243
+ * changed plugin and author URI along with support email
244
+ * modified JavaScript validation error message
245
+ * made changes to settings.php and readme.txt
246
+ * general housekeeping
247
+ * upgraded v1.1.3.3
248
+
249
+ = 1.1.3.2 =
250
+ * minified css
251
+ * added settings link to plugin menu in dashboard
252
+ * updated plugin from v1.1.3 - v1.1.3.2
253
+ * tested compatibility on WordPress v4.0
254
+ * general housekeeping
255
+
256
+ = 1.0.8 =
257
+
258
+ * addressed conflict with theme appearance/customization (fwpconsec and readme)
259
+ * added missing feature in readme description
260
+ * removed some unnecessary spacing in code
261
+ * changed external URLs in settings
262
+ * changed default (blank) index.php
263
+ * added new question to readme faq
264
+ * upgraded from v1.0.7-v1.0.8
265
+ * fixed iFrame code comment
266
+
267
+ = 1.0.7 =
268
+
269
+ * updated compatibility (tested up to 3.9)
270
+ * changes in readme.txt
271
+ * changes in settings.php
272
+ * changes in fwpconsec.php
273
+
274
+ = 1.0.6.2 =
275
+
276
+ * tested compatibility with v3.8
277
+ * changed version number
278
+ * changed support email
279
+ * corrected typo error
280
+
281
+ = 1.0.6.1 =
282
+
283
+ * removed duplicate javascript function from code
284
+ * corrected author name (display issue)
285
+ * upgraded from v1.0.6 - v1.0.6.1
286
+ * updated settings.php page
287
+ * updated readme.txt file
288
+ * general housekeeping
289
+
290
+ = 1.0.6 =
291
+
292
+ * re-enabled text selection as users could bypass mouse/keyboard copy on selected text by using the browser copy function (text select disabled = nothing to copy even from browser copy option)
293
+ * reconstructed and upgraded settings page
294
+ * added donation link (settings file)
295
+ * general housekeeping and code cleanup
296
+ * upgraded from v1.0.5.2 - v1.0.6
297
+ * updated and tested compatibility with WP v3.7.1
298
+ * updated readme.txt file
299
+
300
+ = 1.0.5.2 =
301
+
302
+ * removed imagetoolbar meta from code due to conflict with head content
303
+ * removed deprecated code and replaced with correct syntax
304
+ * added padding to JS error message
305
+ * modified readme file
306
+ * general housekeeping
307
+
308
+ = 1.0.5.1 =
309
+
310
+ * changed settings page (added new text, removed some text, fixed typo error)
311
+ * renamed pro.php page to settings.php (modified the fwpconsec.php accordingly)
312
+ * added license URI to fwpconsec.php file header
313
+ * decreased tag count in readme.txt file (best practice)
314
+ * changed plugin description in fwpconsec.php file header
315
+ * general housekeeping and cleaning
316
+
317
+ = 1.0.5 =
318
+
319
+ * fixed bug in mobile text selection function (hold to copy)
320
+ * made changes to included pro page and fixed typo errors
321
+ * made changes to readme file
322
+
323
+ = 1.0.4.2 =
324
+ * fixed user input bug (for Chrome browsers)
325
+ * changed settings page and added notice
326
+ * fixed bug in mobile text select function
327
+ * edited readme.txt
328
+ * general housekeeping
329
+
330
+ = 1.0.4.1 =
331
+ * fixed callback error
332
+ * fixed bug in mobile hold/copy function
333
+ * changed settings page
334
+ * edited readme.txt
335
+ * added tester area links in pro.php
336
+ * fixed user input bug for Chrome browsers
337
+ * added notice to plugin settings page
338
+
339
+ = 1.0.4 =
340
+ * added settings page
341
+ * Cleared ctrl + f5 (hard refresh) issue - no longer conflicts with other ctrl key functions
342
+ * Cleared bug that caused dropdown and user input issues
343
+ * Changed readme.txt and corrected typo errors
344
+ * Removed included screenshots
345
+ * General housekeeping
346
+
347
+ = 1.0.3 =
348
+ * Added function to automatically remove the image link URL and defaults the image upload settings to 'none' (deters image theft)
349
+ * Fixed a bug that prevented text input (via forms) in Chrome browsers
350
+ * Did some housekeeping
351
+
352
+ = 1.0.2 =
353
+ * Re-enabled text selection (giving users more "freedom"). However, users are still unable to copy any selected text
354
+ * Fixed User input error (this error prevented users from text input via contact, search, and comment forms)
355
+ * Fixed a bug in mobile text protection code (conflicted with Chrome specific user input)
356
+ * Fixed Javascript drop down menu functionality
357
+ * Revamped iFrame breaking code
358
+
359
+ = 1.0.1 =
360
+ * First release version
361
+ * Fixed bug that disabled user input via contact form
362
+ * Added function to disable Print via keyboard (CTRL+P)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
settings.php DELETED
@@ -1,4 +0,0 @@
1
- <div class="wrap">
2
- <h2><?php _e('WP Content Copy Protection Settings', 'wpcp'); ?></h2><br />
3
- We have just taken over the development of this plugin & will be updating this page in the next release.<br/>
4
- </div>
 
 
 
 
uninstall.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Uninstall plugin
4
+ *
5
+ * @author Tyche Softwares
6
+ * @license MIT
7
+ *
8
+ * @see https://www.tychesoftwares.com/premium-plugins/
9
+ *
10
+ * @since 2.0.0
11
+ * @copyright TycheSoftwares
12
+ * @package wpccp
13
+ */
14
+
15
+ // if uninstall.php is not called by WordPress, die.
16
+ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
17
+ die;
18
+ }
19
+
20
+ // Delete all wpccp options.
21
+ $all_options = wp_load_alloptions();
22
+
23
+ foreach ( $all_options as $name => $value ) {
24
+ if ( stristr( $name, 'wpccp' ) ) {
25
+ delete_option( $name );
26
+ }
27
+ }
webpack.mix.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Dependencies
3
+ */
4
+ const mix = require( 'laravel-mix' );
5
+ const wpPot = require( 'wp-pot' );
6
+
7
+ /**
8
+ * Minify assets
9
+ */
10
+ const assets = [
11
+ 'assets/css/style.css',
12
+ 'assets/css/admin.css',
13
+ 'assets/js/script.js',
14
+ 'assets/js/admin.js',
15
+ ];
16
+
17
+ mix.minify( assets );
18
+
19
+ /**
20
+ * Copy vendor assets
21
+ */
22
+ // Select2
23
+ mix.copy( 'node_modules/select2/dist/css/select2.css', 'assets/css' );
24
+ mix.copy( 'node_modules/select2/dist/css/select2.min.css', 'assets/css' );
25
+ mix.copy( 'node_modules/select2/dist/js/select2.js', 'assets/js' );
26
+ mix.copy( 'node_modules/select2/dist/js/select2.min.js', 'assets/js' );
27
+
28
+ /**
29
+ * Production Task
30
+ */
31
+ if ( mix.inProduction() ) {
32
+ // Generate POT file
33
+ wpPot( {
34
+ package: 'wp-content-copy-protection',
35
+ domain: 'wpccp',
36
+ destFile: 'languages/wp-content-copy-protection.pot',
37
+ relativeTo: './',
38
+ src: [ './**/*.php', '!./vendor/**/*' ],
39
+ bugReport: 'https://github.com/TycheSoftwares/wp-content-copy-protection/issues/new',
40
+ team: 'TycheSoftwares<support@tychesoftwares.freshdesk.com>',
41
+ } );
42
+ }
wpccpl.php CHANGED
@@ -1,271 +1,65 @@
1
- <?php
2
-
3
- /*
4
- Plugin Name: WP Content Copy Protection
5
- Plugin URI: https://www.tychesoftwares.com/premium-plugins/
6
- Description: WP Content Copy Protection prevents plagiarism and protects your valuable online content (such as source code, text and images) from being copied illegally. Copy methods are disabled via mouse and keyboard. See <a href="options-general.php?page=wpcp_options">Settings > WP Content Copy Protection</a> to learn more about WP Content Copy Protection - The complete content protection plugin for WordPress.
7
- Version: 1.1.8.7
8
- Text Domain: wpccpl
9
- Author: Tyche Softwares
10
- Author URI: https://www.tychesoftwares.com/
11
- License: GPLv2 or later
12
- License URI: http://www.gnu.org/licenses/gpl-2.0.html/
13
- */
14
-
15
- define ( 'wpccpl_version', '1.1.8.7' );
16
-
17
- /*
18
- Original work: Copyright 2013-2015 Rynaldo Stoltz (email: rcstoltz@gmail.com )
19
- Modified work: Copyright 2017 Vishal Kothari (email: vishal@tychesoftwares.com )
20
-
21
- This program is free software; you can redistribute it and/or modify
22
- it under the terms of the GNU General Public License as published by
23
- the Free Software Foundation; either version 2 of the License, or
24
- (at your option) any later version.
25
-
26
- This program is distributed in the hope that it will be useful,
27
- but WITHOUT ANY WARRANTY; without even the implied warranty of
28
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29
- GNU General Public License for more details.
30
-
31
- You should have received a copy of the GNU General Public License
32
- along with this program; if not, write to the Free Software
33
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
34
- */
35
-
36
- if(is_admin()) {
37
- add_action('admin_menu', 'constr_menu');
38
- add_action ('init', 'wpccl_add_all_component');
39
-
40
- add_filter( 'ts_deativate_plugin_questions', 'wpccpl_deactivate_add_questions' );
41
- add_filter( 'ts_tracker_data', 'wpccpl_ts_add_plugin_tracking_data' );
42
- add_filter( 'ts_tracker_opt_out_data', 'wpccpl_get_data_for_opt_out' );
43
-
44
- add_action( 'admin_init', 'wpccl_admin_actions' );
45
- }
46
-
47
- function wpccl_add_all_component () {
48
-
49
- include_once ('includes/wpccpl-all-component.php');
50
- do_action ('wpccpl_activate');
51
- }
52
-
53
- function wpccpl_deactivate_add_questions ( $wpccpl_deactivate_questions ) {
54
-
55
- $wpccpl_deactivate_questions = array(
56
- 0 => array(
57
- 'id' => 4,
58
- 'text' => __( "Some keys does not blocked.", "wpccpl" ),
59
- 'input_type' => 'textfield',
60
- 'input_placeholder' => 'Which keys?'
61
- ),
62
- 1 => array(
63
- 'id' => 5,
64
- 'text' => __( "I need more keys need to be blocked.", "wpccpl" ),
65
- 'input_type' => 'textfield',
66
- 'input_placeholder' => 'Which keys?'
67
- ),
68
- 2 => array(
69
- 'id' => 6,
70
- 'text' => __( "The plugin does not protect Audio and video files on my site.", "wpccpl" ),
71
- 'input_type' => '',
72
- 'input_placeholder' => ''
73
- ),
74
- 3 => array(
75
- 'id' => 7,
76
- 'text' => __( "The plugin is not compatible with my browser.", "wpccpl" ),
77
- 'input_type' => 'textfield',
78
- 'input_placeholder' => 'Which browser?'
79
- )
80
-
81
- );
82
- return $wpccpl_deactivate_questions;
83
- }
84
- /**
85
- * Plugin's data to be tracked when Allow option is choosed.
86
- *
87
- * @hook ts_tracker_data
88
- *
89
- * @param array $data Contains the data to be tracked.
90
- *
91
- * @return array Plugin's data to track.
92
- *
93
- */
94
-
95
- function wpccpl_ts_add_plugin_tracking_data ( $data ) {
96
- if ( isset( $_GET[ 'wpccpl_tracker_optin' ] ) && isset( $_GET[ 'wpccpl_tracker_nonce' ] ) && wp_verify_nonce( $_GET[ 'wpccpl_tracker_nonce' ], 'wpccpl_tracker_optin' ) ) {
97
-
98
- $plugin_data[ 'ts_meta_data_table_name' ] = 'ts_tracking_wpccpl_meta_data';
99
- $plugin_data[ 'ts_plugin_name' ] = 'WP Content Copy Protection';
100
- /**
101
- * Add Plugin data
102
- */
103
- $plugin_data[ 'wpccpl_plugin_version' ] = wpccpl_version;
104
-
105
- $plugin_data[ 'wpccpl_allow_tracking' ] = get_option ( 'wpccpl_allow_tracking' );
106
- $data[ 'plugin_data' ] = $plugin_data;
107
- }
108
- return $data;
109
- }
110
-
111
- /**
112
- * Tracking data to send when No, thanks. button is clicked.
113
- *
114
- * @hook ts_tracker_opt_out_data
115
- *
116
- * @param array $params Parameters to pass for tracking data.
117
- *
118
- * @return array Data to track when opted out.
119
- *
120
- */
121
- function wpccpl_get_data_for_opt_out ( $params ) {
122
- $plugin_data[ 'ts_meta_data_table_name'] = 'ts_tracking_wpccpl_meta_data';
123
- $plugin_data[ 'ts_plugin_name' ] = 'WP Content Copy Protection';
124
-
125
- // Store count info
126
- $params[ 'plugin_data' ] = $plugin_data;
127
-
128
- return $params;
129
- }
130
-
131
- function wpccl_admin_actions () {
132
- /**
133
- * We need to store the plugin version in DB, so we can show the welcome page and other contents.
134
- */
135
- $wpccpl_version_in_db = get_option( 'wpccpl_version' );
136
- if ( $wpccpl_version_in_db != wpccpl_version ){
137
- update_option( 'wpccpl_version', wpccpl_version );
138
- }
139
- }
140
-
141
- function constr_menu() {
142
- add_options_page('WP Content Copy Protection', 'WP Content Copy Protection', 'manage_options', 'wpcp_options', 'return_settings');
143
- }
144
-
145
- function return_settings() {
146
- require_once('settings.php');
147
- }
148
-
149
- function ccp_config_link($links) {
150
- $settings_link = '<a href="options-general.php?page=wpcp_options">Settings</a>';
151
- array_unshift($links, $settings_link);
152
- return $links;
153
- }
154
-
155
- $plugin = plugin_basename(__FILE__);
156
- add_filter("plugin_action_links_$plugin", 'ccp_config_link' );
157
-
158
- function rate_wpccp_yoo ($links, $file) {
159
- if ($file == plugin_basename(__FILE__)) {
160
- $rate_url = 'http://wordpress.org/support/view/plugin-reviews/' . basename(dirname(__FILE__)) . '?rate=5#postform';
161
- $links[] = '<a href="' . $rate_url . '" target="_blank" title="Click here to rate and review this plugin on WordPress.org">Rate this plugin</a>';
162
- }
163
- return $links;
164
- }
165
-
166
- add_filter('plugin_row_meta', 'rate_wpccp_yoo', 10, 2);
167
-
168
- function secure_uploads_dir() {
169
- $start_dir = wp_upload_dir();
170
- secure_copy_file($start_dir['basedir']);
171
- }
172
-
173
- function secure_copy_file($dir){
174
- $empty_file = realpath( dirname( __FILE__ ) ) . '/index.php';
175
- copy($empty_file, $dir . '/index.php');
176
- if ($dh = opendir($dir)) {
177
- while (($file = readdir($dh)) !== false) {
178
- if ( is_dir($dir . '/' . $file) && $file!='.' && $file!='..' ) {
179
- secure_copy_file( $dir . '/' . $file );
180
- }
181
- }
182
- closedir($dh);
183
- }
184
- }
185
-
186
- register_activation_hook( __FILE__, 'secure_uploads_dir' );
187
-
188
- add_action('wp_head', 'fwpcon_pro');
189
- update_option('image_default_link_type','none');
190
-
191
- function fwpcon_pro() {
192
-
193
- ?>
194
-
195
- <!-- WP Content Copy Protection script by Rynaldo Stoltz Starts -->
196
-
197
-
198
- <noscript>
199
- <div style="position:fixed; top:0px; left:0px; z-index:3000; height:100%; width:100%; background-color:#FFFFFF">
200
- <div style="font-family: Trebuchet MS; font-size: 14px; background-color:#FFF000; padding: 10pt;">Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!</div></div>
201
- </noscript>
202
-
203
-
204
- <script type="text/javascript">
205
- function disableSelection(e){if(typeof e.onselectstart!="undefined")e.onselectstart=function(){return false};else if(typeof e.style.MozUserSelect!="undefined")e.style.MozUserSelect="none";else e.onmousedown=function(){return false};e.style.cursor="default"}window.onload=function(){disableSelection(document.body)}
206
- </script>
207
-
208
- <script type="text/javascript">
209
- document.oncontextmenu=function(e){var t=e||window.event;var n=t.target||t.srcElement;if(n.nodeName!="A")return false};
210
- document.ondragstart=function(){return false};
211
- </script>
212
-
213
- <style type="text/css">
214
- * : (input, textarea) {
215
- -webkit-touch-callout:none;
216
- -webkit-user-select:none;
217
- }
218
- </style>
219
-
220
- <style type="text/css">
221
- img {
222
- -webkit-touch-callout:none;
223
- -webkit-user-select:none;
224
- }
225
- </style>
226
-
227
- <script type="text/javascript">
228
- window.addEventListener("keydown",function(e){if(e.ctrlKey&&(e.which==65||e.which==66||e.which==67||e.which==70||e.which==73||e.which==80||e.which==83||e.which==85||e.which==86)){e.preventDefault()}});document.keypress=function(e){if(e.ctrlKey&&(e.which==65||e.which==66||e.which==70||e.which==67||e.which==73||e.which==80||e.which==83||e.which==85||e.which==86)){}return false}
229
- /**
230
- * For mac we need to check metakey
231
- */
232
- window.addEventListener("keydown",function(e){if( event.metaKey&&(e.which==65||e.which==66||e.which==67||e.which==70||e.which==73||e.which==80||e.which==83||e.which==85||e.which==86)){e.preventDefault()}});document.keypress=function(e){if(e.ctrlKey&&(e.which==65||e.which==66||e.which==70||e.which==67||e.which==73||e.which==80||e.which==83||e.which==85||e.which==86)){}return false}
233
-
234
- </script>
235
-
236
-
237
- <script type="text/javascript">
238
- document.onkeydown=function(e){e=e||window.event;if(e.keyCode==123||e.keyCode==18){return false}}
239
- </script>
240
-
241
- <!-- WP Content Copy Protection script by Rynaldo Stoltz Ends -->
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
- <?php } ?>
1
+ <?php
2
+ /**
3
+ * Plugin Name: WP Content Copy Protection (Lite)
4
+ * Plugin URI: https://www.tychesoftwares.com/premium-plugins/
5
+ * Description: WP Content Copy Protection prevents plagiarism and protects your valuable online content (such as source code, text and images) from being copied illegally. Copy methods are disabled via mouse and keyboard.
6
+ * Author: Tyche Softwares
7
+ * Author URI: https://www.tychesoftwares.com/
8
+ * Version: 2.0.1
9
+ * Text Domain: wpccp
10
+ * Domain Path: /languages
11
+ * Tags: content, protection,
12
+ * Requires at least: 3.0.1
13
+ * Tested up to: 5.2
14
+ * Stable tag: 2.0.0
15
+ * License: GPLv2 or later
16
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.html/
17
+ *
18
+ * @package wpccp
19
+ */
20
+
21
+ // If this file is called directly, abort.
22
+ if ( ! defined( 'WPINC' ) ) {
23
+ die;
24
+ }
25
+ /**
26
+ * Setup Constants
27
+ */
28
+ // Plugin version.
29
+ if ( ! defined( 'WPCCP_VERSION' ) ) {
30
+ define( 'WPCCP_VERSION', '2.0.1' );
31
+ }
32
+ // Plugin Root File.
33
+ if ( ! defined( 'WPCCP_PLUGIN_FILE' ) ) {
34
+ define( 'WPCCP_PLUGIN_FILE', __FILE__ );
35
+ }
36
+ // Plugin Folder Path.
37
+ if ( ! defined( 'WPCCP_PLUGIN_DIR' ) ) {
38
+ define( 'WPCCP_PLUGIN_DIR', plugin_dir_path( WPCCP_PLUGIN_FILE ) );
39
+ }
40
+ // Plugin Folder URL.
41
+ if ( ! defined( 'WPCCP_PLUGIN_URL' ) ) {
42
+ define( 'WPCCP_PLUGIN_URL', plugin_dir_url( WPCCP_PLUGIN_FILE ) );
43
+ }
44
+ // Plugin Basename aka: "wp-content-copy-protection-pro/wp-content-copy-protection-pro.php".
45
+ if ( ! defined( 'WPCCP_PLUGIN_BASENAME' ) ) {
46
+ define( 'WPCCP_PLUGIN_BASENAME', plugin_basename( WPCCP_PLUGIN_FILE ) );
47
+ }
48
+ // Autoloader.
49
+ require_once 'vendor/autoload.php';
50
+
51
+ // Bootstrap WPCCP.
52
+ use TycheSoftwares\Wpccp\Wpccp;
53
+
54
+ /**
55
+ * Main instance of Wpccp.
56
+ *
57
+ * Returns the main instance of Wpccp to prevent the need to use globals.
58
+ *
59
+ * @since 2.0.0
60
+ * @return Wpccp
61
+ */
62
+ function wpccp() {
63
+ return Wpccp::get_instance();
64
+ }
65
+ wpccp();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
yarn.lock ADDED
@@ -0,0 +1,7356 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
6
+ version "7.5.5"
7
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
8
+ integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
9
+ dependencies:
10
+ "@babel/highlight" "^7.0.0"
11
+
12
+ "@babel/core@^7.0.0-beta.49", "@babel/core@^7.2.0":
13
+ version "7.6.2"
14
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91"
15
+ integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==
16
+ dependencies:
17
+ "@babel/code-frame" "^7.5.5"
18
+ "@babel/generator" "^7.6.2"
19
+ "@babel/helpers" "^7.6.2"
20
+ "@babel/parser" "^7.6.2"
21
+ "@babel/template" "^7.6.0"
22
+ "@babel/traverse" "^7.6.2"
23
+ "@babel/types" "^7.6.0"
24
+ convert-source-map "^1.1.0"
25
+ debug "^4.1.0"
26
+ json5 "^2.1.0"
27
+ lodash "^4.17.13"
28
+ resolve "^1.3.2"
29
+ semver "^5.4.1"
30
+ source-map "^0.5.0"
31
+
32
+ "@babel/generator@^7.6.2":
33
+ version "7.6.2"
34
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03"
35
+ integrity sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==
36
+ dependencies:
37
+ "@babel/types" "^7.6.0"
38
+ jsesc "^2.5.1"
39
+ lodash "^4.17.13"
40
+ source-map "^0.5.0"
41
+
42
+ "@babel/helper-annotate-as-pure@^7.0.0":
43
+ version "7.0.0"
44
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
45
+ integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
46
+ dependencies:
47
+ "@babel/types" "^7.0.0"
48
+
49
+ "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
50
+ version "7.1.0"
51
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
52
+ integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
53
+ dependencies:
54
+ "@babel/helper-explode-assignable-expression" "^7.1.0"
55
+ "@babel/types" "^7.0.0"
56
+
57
+ "@babel/helper-call-delegate@^7.4.4":
58
+ version "7.4.4"
59
+ resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
60
+ integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
61
+ dependencies:
62
+ "@babel/helper-hoist-variables" "^7.4.4"
63
+ "@babel/traverse" "^7.4.4"
64
+ "@babel/types" "^7.4.4"
65
+
66
+ "@babel/helper-define-map@^7.5.5":
67
+ version "7.5.5"
68
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369"
69
+ integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==
70
+ dependencies:
71
+ "@babel/helper-function-name" "^7.1.0"
72
+ "@babel/types" "^7.5.5"
73
+ lodash "^4.17.13"
74
+
75
+ "@babel/helper-explode-assignable-expression@^7.1.0":
76
+ version "7.1.0"
77
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
78
+ integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
79
+ dependencies:
80
+ "@babel/traverse" "^7.1.0"
81
+ "@babel/types" "^7.0.0"
82
+
83
+ "@babel/helper-function-name@^7.1.0":
84
+ version "7.1.0"
85
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
86
+ integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
87
+ dependencies:
88
+ "@babel/helper-get-function-arity" "^7.0.0"
89
+ "@babel/template" "^7.1.0"
90
+ "@babel/types" "^7.0.0"
91
+
92
+ "@babel/helper-get-function-arity@^7.0.0":
93
+ version "7.0.0"
94
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
95
+ integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
96
+ dependencies:
97
+ "@babel/types" "^7.0.0"
98
+
99
+ "@babel/helper-hoist-variables@^7.4.4":
100
+ version "7.4.4"
101
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
102
+ integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
103
+ dependencies:
104
+ "@babel/types" "^7.4.4"
105
+
106
+ "@babel/helper-member-expression-to-functions@^7.5.5":
107
+ version "7.5.5"
108
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
109
+ integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==
110
+ dependencies:
111
+ "@babel/types" "^7.5.5"
112
+
113
+ "@babel/helper-module-imports@^7.0.0":
114
+ version "7.0.0"
115
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
116
+ integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
117
+ dependencies:
118
+ "@babel/types" "^7.0.0"
119
+
120
+ "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4":
121
+ version "7.5.5"
122
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
123
+ integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==
124
+ dependencies:
125
+ "@babel/helper-module-imports" "^7.0.0"
126
+ "@babel/helper-simple-access" "^7.1.0"
127
+ "@babel/helper-split-export-declaration" "^7.4.4"
128
+ "@babel/template" "^7.4.4"
129
+ "@babel/types" "^7.5.5"
130
+ lodash "^4.17.13"
131
+
132
+ "@babel/helper-optimise-call-expression@^7.0.0":
133
+ version "7.0.0"
134
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
135
+ integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
136
+ dependencies:
137
+ "@babel/types" "^7.0.0"
138
+
139
+ "@babel/helper-plugin-utils@^7.0.0":
140
+ version "7.0.0"
141
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
142
+ integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
143
+
144
+ "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4":
145
+ version "7.5.5"
146
+ resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
147
+ integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==
148
+ dependencies:
149
+ lodash "^4.17.13"
150
+
151
+ "@babel/helper-remap-async-to-generator@^7.1.0":
152
+ version "7.1.0"
153
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
154
+ integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
155
+ dependencies:
156
+ "@babel/helper-annotate-as-pure" "^7.0.0"
157
+ "@babel/helper-wrap-function" "^7.1.0"
158
+ "@babel/template" "^7.1.0"
159
+ "@babel/traverse" "^7.1.0"
160
+ "@babel/types" "^7.0.0"
161
+
162
+ "@babel/helper-replace-supers@^7.5.5":
163
+ version "7.5.5"
164
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
165
+ integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==
166
+ dependencies:
167
+ "@babel/helper-member-expression-to-functions" "^7.5.5"
168
+ "@babel/helper-optimise-call-expression" "^7.0.0"
169
+ "@babel/traverse" "^7.5.5"
170
+ "@babel/types" "^7.5.5"
171
+
172
+ "@babel/helper-simple-access@^7.1.0":
173
+ version "7.1.0"
174
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
175
+ integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
176
+ dependencies:
177
+ "@babel/template" "^7.1.0"
178
+ "@babel/types" "^7.0.0"
179
+
180
+ "@babel/helper-split-export-declaration@^7.4.4":
181
+ version "7.4.4"
182
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
183
+ integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
184
+ dependencies:
185
+ "@babel/types" "^7.4.4"
186
+
187
+ "@babel/helper-wrap-function@^7.1.0":
188
+ version "7.2.0"
189
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
190
+ integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==
191
+ dependencies:
192
+ "@babel/helper-function-name" "^7.1.0"
193
+ "@babel/template" "^7.1.0"
194
+ "@babel/traverse" "^7.1.0"
195
+ "@babel/types" "^7.2.0"
196
+
197
+ "@babel/helpers@^7.6.2":
198
+ version "7.6.2"
199
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153"
200
+ integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==
201
+ dependencies:
202
+ "@babel/template" "^7.6.0"
203
+ "@babel/traverse" "^7.6.2"
204
+ "@babel/types" "^7.6.0"
205
+
206
+ "@babel/highlight@^7.0.0":
207
+ version "7.5.0"
208
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
209
+ integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
210
+ dependencies:
211
+ chalk "^2.0.0"
212
+ esutils "^2.0.2"
213
+ js-tokens "^4.0.0"
214
+
215
+ "@babel/parser@^7.0.0", "@babel/parser@^7.6.0", "@babel/parser@^7.6.2":
216
+ version "7.6.2"
217
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1"
218
+ integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==
219
+
220
+ "@babel/plugin-proposal-async-generator-functions@^7.2.0":
221
+ version "7.2.0"
222
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
223
+ integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==
224
+ dependencies:
225
+ "@babel/helper-plugin-utils" "^7.0.0"
226
+ "@babel/helper-remap-async-to-generator" "^7.1.0"
227
+ "@babel/plugin-syntax-async-generators" "^7.2.0"
228
+
229
+ "@babel/plugin-proposal-dynamic-import@^7.5.0":
230
+ version "7.5.0"
231
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506"
232
+ integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==
233
+ dependencies:
234
+ "@babel/helper-plugin-utils" "^7.0.0"
235
+ "@babel/plugin-syntax-dynamic-import" "^7.2.0"
236
+
237
+ "@babel/plugin-proposal-json-strings@^7.2.0":
238
+ version "7.2.0"
239
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317"
240
+ integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==
241
+ dependencies:
242
+ "@babel/helper-plugin-utils" "^7.0.0"
243
+ "@babel/plugin-syntax-json-strings" "^7.2.0"
244
+
245
+ "@babel/plugin-proposal-object-rest-spread@^7.2.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2":
246
+ version "7.6.2"
247
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096"
248
+ integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==
249
+ dependencies:
250
+ "@babel/helper-plugin-utils" "^7.0.0"
251
+ "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
252
+
253
+ "@babel/plugin-proposal-optional-catch-binding@^7.2.0":
254
+ version "7.2.0"
255
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
256
+ integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==
257
+ dependencies:
258
+ "@babel/helper-plugin-utils" "^7.0.0"
259
+ "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
260
+
261
+ "@babel/plugin-proposal-unicode-property-regex@^7.6.2":
262
+ version "7.6.2"
263
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802"
264
+ integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==
265
+ dependencies:
266
+ "@babel/helper-plugin-utils" "^7.0.0"
267
+ "@babel/helper-regex" "^7.4.4"
268
+ regexpu-core "^4.6.0"
269
+
270
+ "@babel/plugin-syntax-async-generators@^7.2.0":
271
+ version "7.2.0"
272
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f"
273
+ integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==
274
+ dependencies:
275
+ "@babel/helper-plugin-utils" "^7.0.0"
276
+
277
+ "@babel/plugin-syntax-dynamic-import@^7.2.0":
278
+ version "7.2.0"
279
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
280
+ integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
281
+ dependencies:
282
+ "@babel/helper-plugin-utils" "^7.0.0"
283
+
284
+ "@babel/plugin-syntax-json-strings@^7.2.0":
285
+ version "7.2.0"
286
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
287
+ integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==
288
+ dependencies:
289
+ "@babel/helper-plugin-utils" "^7.0.0"
290
+
291
+ "@babel/plugin-syntax-object-rest-spread@^7.2.0":
292
+ version "7.2.0"
293
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
294
+ integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
295
+ dependencies:
296
+ "@babel/helper-plugin-utils" "^7.0.0"
297
+
298
+ "@babel/plugin-syntax-optional-catch-binding@^7.2.0":
299
+ version "7.2.0"
300
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
301
+ integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==
302
+ dependencies:
303
+ "@babel/helper-plugin-utils" "^7.0.0"
304
+
305
+ "@babel/plugin-transform-arrow-functions@^7.2.0":
306
+ version "7.2.0"
307
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
308
+ integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
309
+ dependencies:
310
+ "@babel/helper-plugin-utils" "^7.0.0"
311
+
312
+ "@babel/plugin-transform-async-to-generator@^7.5.0":
313
+ version "7.5.0"
314
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e"
315
+ integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==
316
+ dependencies:
317
+ "@babel/helper-module-imports" "^7.0.0"
318
+ "@babel/helper-plugin-utils" "^7.0.0"
319
+ "@babel/helper-remap-async-to-generator" "^7.1.0"
320
+
321
+ "@babel/plugin-transform-block-scoped-functions@^7.2.0":
322
+ version "7.2.0"
323
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
324
+ integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==
325
+ dependencies:
326
+ "@babel/helper-plugin-utils" "^7.0.0"
327
+
328
+ "@babel/plugin-transform-block-scoping@^7.6.2":
329
+ version "7.6.2"
330
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz#96c33ab97a9ae500cc6f5b19e04a7e6553360a79"
331
+ integrity sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ==
332
+ dependencies:
333
+ "@babel/helper-plugin-utils" "^7.0.0"
334
+ lodash "^4.17.13"
335
+
336
+ "@babel/plugin-transform-classes@^7.5.5":
337
+ version "7.5.5"
338
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9"
339
+ integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==
340
+ dependencies:
341
+ "@babel/helper-annotate-as-pure" "^7.0.0"
342
+ "@babel/helper-define-map" "^7.5.5"
343
+ "@babel/helper-function-name" "^7.1.0"
344
+ "@babel/helper-optimise-call-expression" "^7.0.0"
345
+ "@babel/helper-plugin-utils" "^7.0.0"
346
+ "@babel/helper-replace-supers" "^7.5.5"
347
+ "@babel/helper-split-export-declaration" "^7.4.4"
348
+ globals "^11.1.0"
349
+
350
+ "@babel/plugin-transform-computed-properties@^7.2.0":
351
+ version "7.2.0"
352
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
353
+ integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
354
+ dependencies:
355
+ "@babel/helper-plugin-utils" "^7.0.0"
356
+
357
+ "@babel/plugin-transform-destructuring@^7.6.0":
358
+ version "7.6.0"
359
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6"
360
+ integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==
361
+ dependencies:
362
+ "@babel/helper-plugin-utils" "^7.0.0"
363
+
364
+ "@babel/plugin-transform-dotall-regex@^7.6.2":
365
+ version "7.6.2"
366
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9"
367
+ integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==
368
+ dependencies:
369
+ "@babel/helper-plugin-utils" "^7.0.0"
370
+ "@babel/helper-regex" "^7.4.4"
371
+ regexpu-core "^4.6.0"
372
+
373
+ "@babel/plugin-transform-duplicate-keys@^7.5.0":
374
+ version "7.5.0"
375
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853"
376
+ integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==
377
+ dependencies:
378
+ "@babel/helper-plugin-utils" "^7.0.0"
379
+
380
+ "@babel/plugin-transform-exponentiation-operator@^7.2.0":
381
+ version "7.2.0"
382
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
383
+ integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
384
+ dependencies:
385
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
386
+ "@babel/helper-plugin-utils" "^7.0.0"
387
+
388
+ "@babel/plugin-transform-for-of@^7.4.4":
389
+ version "7.4.4"
390
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
391
+ integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
392
+ dependencies:
393
+ "@babel/helper-plugin-utils" "^7.0.0"
394
+
395
+ "@babel/plugin-transform-function-name@^7.4.4":
396
+ version "7.4.4"
397
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
398
+ integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
399
+ dependencies:
400
+ "@babel/helper-function-name" "^7.1.0"
401
+ "@babel/helper-plugin-utils" "^7.0.0"
402
+
403
+ "@babel/plugin-transform-literals@^7.2.0":
404
+ version "7.2.0"
405
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
406
+ integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
407
+ dependencies:
408
+ "@babel/helper-plugin-utils" "^7.0.0"
409
+
410
+ "@babel/plugin-transform-member-expression-literals@^7.2.0":
411
+ version "7.2.0"
412
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d"
413
+ integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==
414
+ dependencies:
415
+ "@babel/helper-plugin-utils" "^7.0.0"
416
+
417
+ "@babel/plugin-transform-modules-amd@^7.5.0":
418
+ version "7.5.0"
419
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91"
420
+ integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==
421
+ dependencies:
422
+ "@babel/helper-module-transforms" "^7.1.0"
423
+ "@babel/helper-plugin-utils" "^7.0.0"
424
+ babel-plugin-dynamic-import-node "^2.3.0"
425
+
426
+ "@babel/plugin-transform-modules-commonjs@^7.6.0":
427
+ version "7.6.0"
428
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486"
429
+ integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==
430
+ dependencies:
431
+ "@babel/helper-module-transforms" "^7.4.4"
432
+ "@babel/helper-plugin-utils" "^7.0.0"
433
+ "@babel/helper-simple-access" "^7.1.0"
434
+ babel-plugin-dynamic-import-node "^2.3.0"
435
+
436
+ "@babel/plugin-transform-modules-systemjs@^7.5.0":
437
+ version "7.5.0"
438
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249"
439
+ integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==
440
+ dependencies:
441
+ "@babel/helper-hoist-variables" "^7.4.4"
442
+ "@babel/helper-plugin-utils" "^7.0.0"
443
+ babel-plugin-dynamic-import-node "^2.3.0"
444
+
445
+ "@babel/plugin-transform-modules-umd@^7.2.0":
446
+ version "7.2.0"
447
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae"
448
+ integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==
449
+ dependencies:
450
+ "@babel/helper-module-transforms" "^7.1.0"
451
+ "@babel/helper-plugin-utils" "^7.0.0"
452
+
453
+ "@babel/plugin-transform-named-capturing-groups-regex@^7.6.2":
454
+ version "7.6.2"
455
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz#c1ca0bb84b94f385ca302c3932e870b0fb0e522b"
456
+ integrity sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g==
457
+ dependencies:
458
+ regexpu-core "^4.6.0"
459
+
460
+ "@babel/plugin-transform-new-target@^7.4.4":
461
+ version "7.4.4"
462
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5"
463
+ integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==
464
+ dependencies:
465
+ "@babel/helper-plugin-utils" "^7.0.0"
466
+
467
+ "@babel/plugin-transform-object-super@^7.5.5":
468
+ version "7.5.5"
469
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9"
470
+ integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==
471
+ dependencies:
472
+ "@babel/helper-plugin-utils" "^7.0.0"
473
+ "@babel/helper-replace-supers" "^7.5.5"
474
+
475
+ "@babel/plugin-transform-parameters@^7.4.4":
476
+ version "7.4.4"
477
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
478
+ integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
479
+ dependencies:
480
+ "@babel/helper-call-delegate" "^7.4.4"
481
+ "@babel/helper-get-function-arity" "^7.0.0"
482
+ "@babel/helper-plugin-utils" "^7.0.0"
483
+
484
+ "@babel/plugin-transform-property-literals@^7.2.0":
485
+ version "7.2.0"
486
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905"
487
+ integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==
488
+ dependencies:
489
+ "@babel/helper-plugin-utils" "^7.0.0"
490
+
491
+ "@babel/plugin-transform-regenerator@^7.4.5":
492
+ version "7.4.5"
493
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
494
+ integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==
495
+ dependencies:
496
+ regenerator-transform "^0.14.0"
497
+
498
+ "@babel/plugin-transform-reserved-words@^7.2.0":
499
+ version "7.2.0"
500
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634"
501
+ integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==
502
+ dependencies:
503
+ "@babel/helper-plugin-utils" "^7.0.0"
504
+
505
+ "@babel/plugin-transform-runtime@^7.2.0":
506
+ version "7.6.2"
507
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz#2669f67c1fae0ae8d8bf696e4263ad52cb98b6f8"
508
+ integrity sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA==
509
+ dependencies:
510
+ "@babel/helper-module-imports" "^7.0.0"
511
+ "@babel/helper-plugin-utils" "^7.0.0"
512
+ resolve "^1.8.1"
513
+ semver "^5.5.1"
514
+
515
+ "@babel/plugin-transform-shorthand-properties@^7.2.0":
516
+ version "7.2.0"
517
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
518
+ integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
519
+ dependencies:
520
+ "@babel/helper-plugin-utils" "^7.0.0"
521
+
522
+ "@babel/plugin-transform-spread@^7.6.2":
523
+ version "7.6.2"
524
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd"
525
+ integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==
526
+ dependencies:
527
+ "@babel/helper-plugin-utils" "^7.0.0"
528
+
529
+ "@babel/plugin-transform-sticky-regex@^7.2.0":
530
+ version "7.2.0"
531
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
532
+ integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==
533
+ dependencies:
534
+ "@babel/helper-plugin-utils" "^7.0.0"
535
+ "@babel/helper-regex" "^7.0.0"
536
+
537
+ "@babel/plugin-transform-template-literals@^7.4.4":
538
+ version "7.4.4"
539
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
540
+ integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
541
+ dependencies:
542
+ "@babel/helper-annotate-as-pure" "^7.0.0"
543
+ "@babel/helper-plugin-utils" "^7.0.0"
544
+
545
+ "@babel/plugin-transform-typeof-symbol@^7.2.0":
546
+ version "7.2.0"
547
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2"
548
+ integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==
549
+ dependencies:
550
+ "@babel/helper-plugin-utils" "^7.0.0"
551
+
552
+ "@babel/plugin-transform-unicode-regex@^7.6.2":
553
+ version "7.6.2"
554
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698"
555
+ integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==
556
+ dependencies:
557
+ "@babel/helper-plugin-utils" "^7.0.0"
558
+ "@babel/helper-regex" "^7.4.4"
559
+ regexpu-core "^4.6.0"
560
+
561
+ "@babel/preset-env@^7.2.0":
562
+ version "7.6.2"
563
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz#abbb3ed785c7fe4220d4c82a53621d71fc0c75d3"
564
+ integrity sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q==
565
+ dependencies:
566
+ "@babel/helper-module-imports" "^7.0.0"
567
+ "@babel/helper-plugin-utils" "^7.0.0"
568
+ "@babel/plugin-proposal-async-generator-functions" "^7.2.0"
569
+ "@babel/plugin-proposal-dynamic-import" "^7.5.0"
570
+ "@babel/plugin-proposal-json-strings" "^7.2.0"
571
+ "@babel/plugin-proposal-object-rest-spread" "^7.6.2"
572
+ "@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
573
+ "@babel/plugin-proposal-unicode-property-regex" "^7.6.2"
574
+ "@babel/plugin-syntax-async-generators" "^7.2.0"
575
+ "@babel/plugin-syntax-dynamic-import" "^7.2.0"
576
+ "@babel/plugin-syntax-json-strings" "^7.2.0"
577
+ "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
578
+ "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
579
+ "@babel/plugin-transform-arrow-functions" "^7.2.0"
580
+ "@babel/plugin-transform-async-to-generator" "^7.5.0"
581
+ "@babel/plugin-transform-block-scoped-functions" "^7.2.0"
582
+ "@babel/plugin-transform-block-scoping" "^7.6.2"
583
+ "@babel/plugin-transform-classes" "^7.5.5"
584
+ "@babel/plugin-transform-computed-properties" "^7.2.0"
585
+ "@babel/plugin-transform-destructuring" "^7.6.0"
586
+ "@babel/plugin-transform-dotall-regex" "^7.6.2"
587
+ "@babel/plugin-transform-duplicate-keys" "^7.5.0"
588
+ "@babel/plugin-transform-exponentiation-operator" "^7.2.0"
589
+ "@babel/plugin-transform-for-of" "^7.4.4"
590
+ "@babel/plugin-transform-function-name" "^7.4.4"
591
+ "@babel/plugin-transform-literals" "^7.2.0"
592
+ "@babel/plugin-transform-member-expression-literals" "^7.2.0"
593
+ "@babel/plugin-transform-modules-amd" "^7.5.0"
594
+ "@babel/plugin-transform-modules-commonjs" "^7.6.0"
595
+ "@babel/plugin-transform-modules-systemjs" "^7.5.0"
596
+ "@babel/plugin-transform-modules-umd" "^7.2.0"
597
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.2"
598
+ "@babel/plugin-transform-new-target" "^7.4.4"
599
+ "@babel/plugin-transform-object-super" "^7.5.5"
600
+ "@babel/plugin-transform-parameters" "^7.4.4"
601
+ "@babel/plugin-transform-property-literals" "^7.2.0"
602
+ "@babel/plugin-transform-regenerator" "^7.4.5"
603
+ "@babel/plugin-transform-reserved-words" "^7.2.0"
604
+ "@babel/plugin-transform-shorthand-properties" "^7.2.0"
605
+ "@babel/plugin-transform-spread" "^7.6.2"
606
+ "@babel/plugin-transform-sticky-regex" "^7.2.0"
607
+ "@babel/plugin-transform-template-literals" "^7.4.4"
608
+ "@babel/plugin-transform-typeof-symbol" "^7.2.0"
609
+ "@babel/plugin-transform-unicode-regex" "^7.6.2"
610
+ "@babel/types" "^7.6.0"
611
+ browserslist "^4.6.0"
612
+ core-js-compat "^3.1.1"
613
+ invariant "^2.2.2"
614
+ js-levenshtein "^1.1.3"
615
+ semver "^5.5.0"
616
+
617
+ "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.5":
618
+ version "7.6.2"
619
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.2.tgz#c3d6e41b304ef10dcf13777a33e7694ec4a9a6dd"
620
+ integrity sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg==
621
+ dependencies:
622
+ regenerator-runtime "^0.13.2"
623
+
624
+ "@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
625
+ version "7.6.0"
626
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
627
+ integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==
628
+ dependencies:
629
+ "@babel/code-frame" "^7.0.0"
630
+ "@babel/parser" "^7.6.0"
631
+ "@babel/types" "^7.6.0"
632
+
633
+ "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2":
634
+ version "7.6.2"
635
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c"
636
+ integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==
637
+ dependencies:
638
+ "@babel/code-frame" "^7.5.5"
639
+ "@babel/generator" "^7.6.2"
640
+ "@babel/helper-function-name" "^7.1.0"
641
+ "@babel/helper-split-export-declaration" "^7.4.4"
642
+ "@babel/parser" "^7.6.2"
643
+ "@babel/types" "^7.6.0"
644
+ debug "^4.1.0"
645
+ globals "^11.1.0"
646
+ lodash "^4.17.13"
647
+
648
+ "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0":
649
+ version "7.6.1"
650
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648"
651
+ integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==
652
+ dependencies:
653
+ esutils "^2.0.2"
654
+ lodash "^4.17.13"
655
+ to-fast-properties "^2.0.0"
656
+
657
+ "@mrmlnc/readdir-enhanced@^2.2.1":
658
+ version "2.2.1"
659
+ resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
660
+ integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
661
+ dependencies:
662
+ call-me-maybe "^1.0.1"
663
+ glob-to-regexp "^0.3.0"
664
+
665
+ "@nodelib/fs.stat@^1.1.2":
666
+ version "1.1.3"
667
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
668
+ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
669
+
670
+ "@types/events@*":
671
+ version "3.0.0"
672
+ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
673
+ integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
674
+
675
+ "@types/glob@^7.1.1":
676
+ version "7.1.1"
677
+ resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
678
+ integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
679
+ dependencies:
680
+ "@types/events" "*"
681
+ "@types/minimatch" "*"
682
+ "@types/node" "*"
683
+
684
+ "@types/json-schema@^7.0.3":
685
+ version "7.0.3"
686
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636"
687
+ integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==
688
+
689
+ "@types/minimatch@*":
690
+ version "3.0.3"
691
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
692
+ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
693
+
694
+ "@types/node@*":
695
+ version "12.7.7"
696
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.7.tgz#f9bd8c00fa9e1a8129af910fc829f6139c397d6c"
697
+ integrity sha512-4jUncNe2tj1nmrO/34PsRpZqYVnRV1svbU78cKhuQKkMntKB/AmdLyGgswcZKjFHEHGpiY8pVD8CuVI55nP54w==
698
+
699
+ "@types/q@^1.5.1":
700
+ version "1.5.2"
701
+ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
702
+ integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
703
+
704
+ "@typescript-eslint/experimental-utils@^1.13.0":
705
+ version "1.13.0"
706
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz#b08c60d780c0067de2fb44b04b432f540138301e"
707
+ integrity sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==
708
+ dependencies:
709
+ "@types/json-schema" "^7.0.3"
710
+ "@typescript-eslint/typescript-estree" "1.13.0"
711
+ eslint-scope "^4.0.0"
712
+
713
+ "@typescript-eslint/typescript-estree@1.13.0":
714
+ version "1.13.0"
715
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e"
716
+ integrity sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==
717
+ dependencies:
718
+ lodash.unescape "4.0.1"
719
+ semver "5.5.0"
720
+
721
+ "@vue/component-compiler-utils@^3.0.0":
722
+ version "3.0.0"
723
+ resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634"
724
+ integrity sha512-am+04/0UX7ektcmvhYmrf84BDVAD8afFOf4asZjN84q8xzxFclbk5x0MtxuKGfp+zjN5WWPJn3fjFAWtDdIGSw==
725
+ dependencies:
726
+ consolidate "^0.15.1"
727
+ hash-sum "^1.0.2"
728
+ lru-cache "^4.1.2"
729
+ merge-source-map "^1.1.0"
730
+ postcss "^7.0.14"
731
+ postcss-selector-parser "^5.0.0"
732
+ prettier "1.16.3"
733
+ source-map "~0.6.1"
734
+ vue-template-es2015-compiler "^1.9.0"
735
+
736
+ "@webassemblyjs/ast@1.8.5":
737
+ version "1.8.5"
738
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
739
+ integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==
740
+ dependencies:
741
+ "@webassemblyjs/helper-module-context" "1.8.5"
742
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
743
+ "@webassemblyjs/wast-parser" "1.8.5"
744
+
745
+ "@webassemblyjs/floating-point-hex-parser@1.8.5":
746
+ version "1.8.5"
747
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721"
748
+ integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==
749
+
750
+ "@webassemblyjs/helper-api-error@1.8.5":
751
+ version "1.8.5"
752
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7"
753
+ integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==
754
+
755
+ "@webassemblyjs/helper-buffer@1.8.5":
756
+ version "1.8.5"
757
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204"
758
+ integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==
759
+
760
+ "@webassemblyjs/helper-code-frame@1.8.5":
761
+ version "1.8.5"
762
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e"
763
+ integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==
764
+ dependencies:
765
+ "@webassemblyjs/wast-printer" "1.8.5"
766
+
767
+ "@webassemblyjs/helper-fsm@1.8.5":
768
+ version "1.8.5"
769
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452"
770
+ integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==
771
+
772
+ "@webassemblyjs/helper-module-context@1.8.5":
773
+ version "1.8.5"
774
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245"
775
+ integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==
776
+ dependencies:
777
+ "@webassemblyjs/ast" "1.8.5"
778
+ mamacro "^0.0.3"
779
+
780
+ "@webassemblyjs/helper-wasm-bytecode@1.8.5":
781
+ version "1.8.5"
782
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61"
783
+ integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==
784
+
785
+ "@webassemblyjs/helper-wasm-section@1.8.5":
786
+ version "1.8.5"
787
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf"
788
+ integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==
789
+ dependencies:
790
+ "@webassemblyjs/ast" "1.8.5"
791
+ "@webassemblyjs/helper-buffer" "1.8.5"
792
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
793
+ "@webassemblyjs/wasm-gen" "1.8.5"
794
+
795
+ "@webassemblyjs/ieee754@1.8.5":
796
+ version "1.8.5"
797
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e"
798
+ integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==
799
+ dependencies:
800
+ "@xtuc/ieee754" "^1.2.0"
801
+
802
+ "@webassemblyjs/leb128@1.8.5":
803
+ version "1.8.5"
804
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10"
805
+ integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==
806
+ dependencies:
807
+ "@xtuc/long" "4.2.2"
808
+
809
+ "@webassemblyjs/utf8@1.8.5":
810
+ version "1.8.5"
811
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc"
812
+ integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==
813
+
814
+ "@webassemblyjs/wasm-edit@1.8.5":
815
+ version "1.8.5"
816
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a"
817
+ integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==
818
+ dependencies:
819
+ "@webassemblyjs/ast" "1.8.5"
820
+ "@webassemblyjs/helper-buffer" "1.8.5"
821
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
822
+ "@webassemblyjs/helper-wasm-section" "1.8.5"
823
+ "@webassemblyjs/wasm-gen" "1.8.5"
824
+ "@webassemblyjs/wasm-opt" "1.8.5"
825
+ "@webassemblyjs/wasm-parser" "1.8.5"
826
+ "@webassemblyjs/wast-printer" "1.8.5"
827
+
828
+ "@webassemblyjs/wasm-gen@1.8.5":
829
+ version "1.8.5"
830
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc"
831
+ integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==
832
+ dependencies:
833
+ "@webassemblyjs/ast" "1.8.5"
834
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
835
+ "@webassemblyjs/ieee754" "1.8.5"
836
+ "@webassemblyjs/leb128" "1.8.5"
837
+ "@webassemblyjs/utf8" "1.8.5"
838
+
839
+ "@webassemblyjs/wasm-opt@1.8.5":
840
+ version "1.8.5"
841
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264"
842
+ integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==
843
+ dependencies:
844
+ "@webassemblyjs/ast" "1.8.5"
845
+ "@webassemblyjs/helper-buffer" "1.8.5"
846
+ "@webassemblyjs/wasm-gen" "1.8.5"
847
+ "@webassemblyjs/wasm-parser" "1.8.5"
848
+
849
+ "@webassemblyjs/wasm-parser@1.8.5":
850
+ version "1.8.5"
851
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d"
852
+ integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==
853
+ dependencies:
854
+ "@webassemblyjs/ast" "1.8.5"
855
+ "@webassemblyjs/helper-api-error" "1.8.5"
856
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
857
+ "@webassemblyjs/ieee754" "1.8.5"
858
+ "@webassemblyjs/leb128" "1.8.5"
859
+ "@webassemblyjs/utf8" "1.8.5"
860
+
861
+ "@webassemblyjs/wast-parser@1.8.5":
862
+ version "1.8.5"
863
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c"
864
+ integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==
865
+ dependencies:
866
+ "@webassemblyjs/ast" "1.8.5"
867
+ "@webassemblyjs/floating-point-hex-parser" "1.8.5"
868
+ "@webassemblyjs/helper-api-error" "1.8.5"
869
+ "@webassemblyjs/helper-code-frame" "1.8.5"
870
+ "@webassemblyjs/helper-fsm" "1.8.5"
871
+ "@xtuc/long" "4.2.2"
872
+
873
+ "@webassemblyjs/wast-printer@1.8.5":
874
+ version "1.8.5"
875
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc"
876
+ integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==
877
+ dependencies:
878
+ "@webassemblyjs/ast" "1.8.5"
879
+ "@webassemblyjs/wast-parser" "1.8.5"
880
+ "@xtuc/long" "4.2.2"
881
+
882
+ "@wordpress/eslint-plugin@^3.1.0":
883
+ version "3.1.0"
884
+ resolved "https://registry.yarnpkg.com/@wordpress/eslint-plugin/-/eslint-plugin-3.1.0.tgz#a552ac18893714947c25a0b24eb7489894b762b0"
885
+ integrity sha512-i/eNTWll3OH7rFukG2pNZXlOl0xihnuxg/2maEEMGzLS8dA8TEwyzCUXCqKycpOLR9sqODhdWFjeQBAPIjpZHg==
886
+ dependencies:
887
+ babel-eslint "^10.0.2"
888
+ eslint-plugin-jest "^22.15.1"
889
+ eslint-plugin-jsdoc "^15.8.0"
890
+ eslint-plugin-jsx-a11y "^6.2.3"
891
+ eslint-plugin-react "^7.14.3"
892
+ eslint-plugin-react-hooks "^1.6.1"
893
+ globals "^12.0.0"
894
+ requireindex "^1.2.0"
895
+
896
+ "@xtuc/ieee754@^1.2.0":
897
+ version "1.2.0"
898
+ resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
899
+ integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
900
+
901
+ "@xtuc/long@4.2.2":
902
+ version "4.2.2"
903
+ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
904
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
905
+
906
+ abbrev@1:
907
+ version "1.1.1"
908
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
909
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
910
+
911
+ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
912
+ version "1.3.7"
913
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
914
+ integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
915
+ dependencies:
916
+ mime-types "~2.1.24"
917
+ negotiator "0.6.2"
918
+
919
+ acorn-jsx@^5.0.2:
920
+ version "5.0.2"
921
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f"
922
+ integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==
923
+
924
+ acorn@^6.2.1:
925
+ version "6.3.0"
926
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e"
927
+ integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==
928
+
929
+ acorn@^7.0.0:
930
+ version "7.1.0"
931
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
932
+ integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
933
+
934
+ ajv-errors@^1.0.0:
935
+ version "1.0.1"
936
+ resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
937
+ integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
938
+
939
+ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
940
+ version "3.4.1"
941
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da"
942
+ integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==
943
+
944
+ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2:
945
+ version "6.10.2"
946
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
947
+ integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
948
+ dependencies:
949
+ fast-deep-equal "^2.0.1"
950
+ fast-json-stable-stringify "^2.0.0"
951
+ json-schema-traverse "^0.4.1"
952
+ uri-js "^4.2.2"
953
+
954
+ alphanum-sort@^1.0.0:
955
+ version "1.0.2"
956
+ resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
957
+ integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
958
+
959
+ ansi-colors@^3.0.0:
960
+ version "3.2.4"
961
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
962
+ integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
963
+
964
+ ansi-escapes@^3.2.0:
965
+ version "3.2.0"
966
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
967
+ integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
968
+
969
+ ansi-html@0.0.7:
970
+ version "0.0.7"
971
+ resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
972
+ integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
973
+
974
+ ansi-regex@^2.0.0:
975
+ version "2.1.1"
976
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
977
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
978
+
979
+ ansi-regex@^3.0.0:
980
+ version "3.0.0"
981
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
982
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
983
+
984
+ ansi-regex@^4.1.0:
985
+ version "4.1.0"
986
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
987
+ integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
988
+
989
+ ansi-styles@^2.2.1:
990
+ version "2.2.1"
991
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
992
+ integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
993
+
994
+ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
995
+ version "3.2.1"
996
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
997
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
998
+ dependencies:
999
+ color-convert "^1.9.0"
1000
+
1001
+ anymatch@^2.0.0:
1002
+ version "2.0.0"
1003
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
1004
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
1005
+ dependencies:
1006
+ micromatch "^3.1.4"
1007
+ normalize-path "^2.1.1"
1008
+
1009
+ apache-crypt@^1.1.2:
1010
+ version "1.2.1"
1011
+ resolved "https://registry.yarnpkg.com/apache-crypt/-/apache-crypt-1.2.1.tgz#d6fc72aa6d27d99c95a94fd188d731eefffa663c"
1012
+ integrity sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=
1013
+ dependencies:
1014
+ unix-crypt-td-js "^1.0.0"
1015
+
1016
+ apache-md5@^1.0.6:
1017
+ version "1.1.2"
1018
+ resolved "https://registry.yarnpkg.com/apache-md5/-/apache-md5-1.1.2.tgz#ee49736b639b4f108b6e9e626c6da99306b41692"
1019
+ integrity sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=
1020
+
1021
+ aproba@^1.0.3, aproba@^1.1.1:
1022
+ version "1.2.0"
1023
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
1024
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
1025
+
1026
+ are-we-there-yet@~1.1.2:
1027
+ version "1.1.5"
1028
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
1029
+ integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
1030
+ dependencies:
1031
+ delegates "^1.0.0"
1032
+ readable-stream "^2.0.6"
1033
+
1034
+ argparse@^1.0.7:
1035
+ version "1.0.10"
1036
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
1037
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
1038
+ dependencies:
1039
+ sprintf-js "~1.0.2"
1040
+
1041
+ aria-query@^3.0.0:
1042
+ version "3.0.0"
1043
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc"
1044
+ integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=
1045
+ dependencies:
1046
+ ast-types-flow "0.0.7"
1047
+ commander "^2.11.0"
1048
+
1049
+ arr-diff@^4.0.0:
1050
+ version "4.0.0"
1051
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
1052
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
1053
+
1054
+ arr-flatten@^1.1.0:
1055
+ version "1.1.0"
1056
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
1057
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
1058
+
1059
+ arr-union@^3.1.0:
1060
+ version "3.1.0"
1061
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
1062
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
1063
+
1064
+ array-flatten@1.1.1:
1065
+ version "1.1.1"
1066
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
1067
+ integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
1068
+
1069
+ array-flatten@^2.1.0:
1070
+ version "2.1.2"
1071
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
1072
+ integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
1073
+
1074
+ array-includes@^3.0.3:
1075
+ version "3.0.3"
1076
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
1077
+ integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=
1078
+ dependencies:
1079
+ define-properties "^1.1.2"
1080
+ es-abstract "^1.7.0"
1081
+
1082
+ array-union@^1.0.1:
1083
+ version "1.0.2"
1084
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
1085
+ integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
1086
+ dependencies:
1087
+ array-uniq "^1.0.1"
1088
+
1089
+ array-uniq@^1.0.1:
1090
+ version "1.0.3"
1091
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
1092
+ integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
1093
+
1094
+ array-unique@^0.3.2:
1095
+ version "0.3.2"
1096
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
1097
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
1098
+
1099
+ arrify@^1.0.1:
1100
+ version "1.0.1"
1101
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
1102
+ integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
1103
+
1104
+ asn1.js@^4.0.0:
1105
+ version "4.10.1"
1106
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
1107
+ integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
1108
+ dependencies:
1109
+ bn.js "^4.0.0"
1110
+ inherits "^2.0.1"
1111
+ minimalistic-assert "^1.0.0"
1112
+
1113
+ assert@^1.1.1:
1114
+ version "1.5.0"
1115
+ resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
1116
+ integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
1117
+ dependencies:
1118
+ object-assign "^4.1.1"
1119
+ util "0.10.3"
1120
+
1121
+ assign-symbols@^1.0.0:
1122
+ version "1.0.0"
1123
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
1124
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
1125
+
1126
+ ast-types-flow@0.0.7, ast-types-flow@^0.0.7:
1127
+ version "0.0.7"
1128
+ resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
1129
+ integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
1130
+
1131
+ ast-types@0.9.6:
1132
+ version "0.9.6"
1133
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
1134
+ integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=
1135
+
1136
+ astral-regex@^1.0.0:
1137
+ version "1.0.0"
1138
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
1139
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
1140
+
1141
+ async-each@^1.0.1:
1142
+ version "1.0.3"
1143
+ resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
1144
+ integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
1145
+
1146
+ async-limiter@~1.0.0:
1147
+ version "1.0.1"
1148
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
1149
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
1150
+
1151
+ async@^1.5.2:
1152
+ version "1.5.2"
1153
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
1154
+ integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
1155
+
1156
+ async@^2.4.1:
1157
+ version "2.6.3"
1158
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
1159
+ integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
1160
+ dependencies:
1161
+ lodash "^4.17.14"
1162
+
1163
+ atob@^2.1.1:
1164
+ version "2.1.2"
1165
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
1166
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
1167
+
1168
+ autoprefixer@^9.4.2:
1169
+ version "9.6.1"
1170
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47"
1171
+ integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==
1172
+ dependencies:
1173
+ browserslist "^4.6.3"
1174
+ caniuse-lite "^1.0.30000980"
1175
+ chalk "^2.4.2"
1176
+ normalize-range "^0.1.2"
1177
+ num2fraction "^1.2.2"
1178
+ postcss "^7.0.17"
1179
+ postcss-value-parser "^4.0.0"
1180
+
1181
+ axobject-query@^2.0.2:
1182
+ version "2.0.2"
1183
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9"
1184
+ integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==
1185
+ dependencies:
1186
+ ast-types-flow "0.0.7"
1187
+
1188
+ babel-code-frame@^6.26.0:
1189
+ version "6.26.0"
1190
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
1191
+ integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
1192
+ dependencies:
1193
+ chalk "^1.1.3"
1194
+ esutils "^2.0.2"
1195
+ js-tokens "^3.0.2"
1196
+
1197
+ babel-eslint@^10.0.2:
1198
+ version "10.0.3"
1199
+ resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a"
1200
+ integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==
1201
+ dependencies:
1202
+ "@babel/code-frame" "^7.0.0"
1203
+ "@babel/parser" "^7.0.0"
1204
+ "@babel/traverse" "^7.0.0"
1205
+ "@babel/types" "^7.0.0"
1206
+ eslint-visitor-keys "^1.0.0"
1207
+ resolve "^1.12.0"
1208
+
1209
+ babel-loader@^8.0.4:
1210
+ version "8.0.6"
1211
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb"
1212
+ integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==
1213
+ dependencies:
1214
+ find-cache-dir "^2.0.0"
1215
+ loader-utils "^1.0.2"
1216
+ mkdirp "^0.5.1"
1217
+ pify "^4.0.1"
1218
+
1219
+ babel-merge@^2.0.1:
1220
+ version "2.0.1"
1221
+ resolved "https://registry.yarnpkg.com/babel-merge/-/babel-merge-2.0.1.tgz#6b2dfad78a655df66e3418eb37b1c3c5e676ad1a"
1222
+ integrity sha512-puTQQxuzS+0JlMyVdfsTVaCgzqjBXKPMv7oUANpYcHFY+7IptWZ4PZDYX+qBxrRMtrriuBA44LkKpS99EJzqVA==
1223
+ dependencies:
1224
+ "@babel/core" "^7.0.0-beta.49"
1225
+ deepmerge "^2.1.0"
1226
+ object.omit "^3.0.0"
1227
+
1228
+ babel-plugin-dynamic-import-node@^2.3.0:
1229
+ version "2.3.0"
1230
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
1231
+ integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
1232
+ dependencies:
1233
+ object.assign "^4.1.0"
1234
+
1235
+ balanced-match@^1.0.0:
1236
+ version "1.0.0"
1237
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
1238
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
1239
+
1240
+ base64-js@^1.0.2:
1241
+ version "1.3.1"
1242
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
1243
+ integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
1244
+
1245
+ base@^0.11.1:
1246
+ version "0.11.2"
1247
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
1248
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
1249
+ dependencies:
1250
+ cache-base "^1.0.1"
1251
+ class-utils "^0.3.5"
1252
+ component-emitter "^1.2.1"
1253
+ define-property "^1.0.0"
1254
+ isobject "^3.0.1"
1255
+ mixin-deep "^1.2.0"
1256
+ pascalcase "^0.1.1"
1257
+
1258
+ basic-auth@~2.0.0:
1259
+ version "2.0.1"
1260
+ resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"
1261
+ integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
1262
+ dependencies:
1263
+ safe-buffer "5.1.2"
1264
+
1265
+ batch@0.6.1:
1266
+ version "0.6.1"
1267
+ resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
1268
+ integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
1269
+
1270
+ bcryptjs@^2.3.0:
1271
+ version "2.4.3"
1272
+ resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb"
1273
+ integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=
1274
+
1275
+ big.js@^5.2.2:
1276
+ version "5.2.2"
1277
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
1278
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
1279
+
1280
+ binary-extensions@^1.0.0:
1281
+ version "1.13.1"
1282
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
1283
+ integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
1284
+
1285
+ bluebird@^3.1.1, bluebird@^3.5.5:
1286
+ version "3.5.5"
1287
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
1288
+ integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
1289
+
1290
+ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
1291
+ version "4.11.8"
1292
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
1293
+ integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
1294
+
1295
+ body-parser@1.19.0:
1296
+ version "1.19.0"
1297
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
1298
+ integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
1299
+ dependencies:
1300
+ bytes "3.1.0"
1301
+ content-type "~1.0.4"
1302
+ debug "2.6.9"
1303
+ depd "~1.1.2"
1304
+ http-errors "1.7.2"
1305
+ iconv-lite "0.4.24"
1306
+ on-finished "~2.3.0"
1307
+ qs "6.7.0"
1308
+ raw-body "2.4.0"
1309
+ type-is "~1.6.17"
1310
+
1311
+ bonjour@^3.5.0:
1312
+ version "3.5.0"
1313
+ resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
1314
+ integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
1315
+ dependencies:
1316
+ array-flatten "^2.1.0"
1317
+ deep-equal "^1.0.1"
1318
+ dns-equal "^1.0.0"
1319
+ dns-txt "^2.0.2"
1320
+ multicast-dns "^6.0.1"
1321
+ multicast-dns-service-types "^1.1.0"
1322
+
1323
+ boolbase@^1.0.0, boolbase@~1.0.0:
1324
+ version "1.0.0"
1325
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
1326
+ integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
1327
+
1328
+ brace-expansion@^1.1.7:
1329
+ version "1.1.11"
1330
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
1331
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
1332
+ dependencies:
1333
+ balanced-match "^1.0.0"
1334
+ concat-map "0.0.1"
1335
+
1336
+ braces@^2.3.1, braces@^2.3.2:
1337
+ version "2.3.2"
1338
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
1339
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
1340
+ dependencies:
1341
+ arr-flatten "^1.1.0"
1342
+ array-unique "^0.3.2"
1343
+ extend-shallow "^2.0.1"
1344
+ fill-range "^4.0.0"
1345
+ isobject "^3.0.1"
1346
+ repeat-element "^1.1.2"
1347
+ snapdragon "^0.8.1"
1348
+ snapdragon-node "^2.0.1"
1349
+ split-string "^3.0.2"
1350
+ to-regex "^3.0.1"
1351
+
1352
+ brorand@^1.0.1:
1353
+ version "1.1.0"
1354
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
1355
+ integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
1356
+
1357
+ browserify-aes@^1.0.0, browserify-aes@^1.0.4:
1358
+ version "1.2.0"
1359
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
1360
+ integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
1361
+ dependencies:
1362
+ buffer-xor "^1.0.3"
1363
+ cipher-base "^1.0.0"
1364
+ create-hash "^1.1.0"
1365
+ evp_bytestokey "^1.0.3"
1366
+ inherits "^2.0.1"
1367
+ safe-buffer "^5.0.1"
1368
+
1369
+ browserify-cipher@^1.0.0:
1370
+ version "1.0.1"
1371
+ resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
1372
+ integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
1373
+ dependencies:
1374
+ browserify-aes "^1.0.4"
1375
+ browserify-des "^1.0.0"
1376
+ evp_bytestokey "^1.0.0"
1377
+
1378
+ browserify-des@^1.0.0:
1379
+ version "1.0.2"
1380
+ resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
1381
+ integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
1382
+ dependencies:
1383
+ cipher-base "^1.0.1"
1384
+ des.js "^1.0.0"
1385
+ inherits "^2.0.1"
1386
+ safe-buffer "^5.1.2"
1387
+
1388
+ browserify-rsa@^4.0.0:
1389
+ version "4.0.1"
1390
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
1391
+ integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
1392
+ dependencies:
1393
+ bn.js "^4.1.0"
1394
+ randombytes "^2.0.1"
1395
+
1396
+ browserify-sign@^4.0.0:
1397
+ version "4.0.4"
1398
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
1399
+ integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
1400
+ dependencies:
1401
+ bn.js "^4.1.1"
1402
+ browserify-rsa "^4.0.0"
1403
+ create-hash "^1.1.0"
1404
+ create-hmac "^1.1.2"
1405
+ elliptic "^6.0.0"
1406
+ inherits "^2.0.1"
1407
+ parse-asn1 "^5.0.0"
1408
+
1409
+ browserify-zlib@^0.2.0:
1410
+ version "0.2.0"
1411
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
1412
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
1413
+ dependencies:
1414
+ pako "~1.0.5"
1415
+
1416
+ browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.6:
1417
+ version "4.7.0"
1418
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17"
1419
+ integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==
1420
+ dependencies:
1421
+ caniuse-lite "^1.0.30000989"
1422
+ electron-to-chromium "^1.3.247"
1423
+ node-releases "^1.1.29"
1424
+
1425
+ buffer-from@^1.0.0:
1426
+ version "1.1.1"
1427
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
1428
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
1429
+
1430
+ buffer-indexof@^1.0.0:
1431
+ version "1.1.1"
1432
+ resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
1433
+ integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
1434
+
1435
+ buffer-xor@^1.0.3:
1436
+ version "1.0.3"
1437
+ resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
1438
+ integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
1439
+
1440
+ buffer@^4.3.0:
1441
+ version "4.9.1"
1442
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
1443
+ integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
1444
+ dependencies:
1445
+ base64-js "^1.0.2"
1446
+ ieee754 "^1.1.4"
1447
+ isarray "^1.0.0"
1448
+
1449
+ builtin-status-codes@^3.0.0:
1450
+ version "3.0.0"
1451
+ resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
1452
+ integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
1453
+
1454
+ bytes@3.0.0:
1455
+ version "3.0.0"
1456
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
1457
+ integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
1458
+
1459
+ bytes@3.1.0:
1460
+ version "3.1.0"
1461
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
1462
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
1463
+
1464
+ cacache@^12.0.2:
1465
+ version "12.0.3"
1466
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
1467
+ integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==
1468
+ dependencies:
1469
+ bluebird "^3.5.5"
1470
+ chownr "^1.1.1"
1471
+ figgy-pudding "^3.5.1"
1472
+ glob "^7.1.4"
1473
+ graceful-fs "^4.1.15"
1474
+ infer-owner "^1.0.3"
1475
+ lru-cache "^5.1.1"
1476
+ mississippi "^3.0.0"
1477
+ mkdirp "^0.5.1"
1478
+ move-concurrently "^1.0.1"
1479
+ promise-inflight "^1.0.1"
1480
+ rimraf "^2.6.3"
1481
+ ssri "^6.0.1"
1482
+ unique-filename "^1.1.1"
1483
+ y18n "^4.0.0"
1484
+
1485
+ cache-base@^1.0.1:
1486
+ version "1.0.1"
1487
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
1488
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
1489
+ dependencies:
1490
+ collection-visit "^1.0.0"
1491
+ component-emitter "^1.2.1"
1492
+ get-value "^2.0.6"
1493
+ has-value "^1.0.0"
1494
+ isobject "^3.0.1"
1495
+ set-value "^2.0.0"
1496
+ to-object-path "^0.3.0"
1497
+ union-value "^1.0.0"
1498
+ unset-value "^1.0.0"
1499
+
1500
+ call-me-maybe@^1.0.1:
1501
+ version "1.0.1"
1502
+ resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
1503
+ integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
1504
+
1505
+ caller-callsite@^2.0.0:
1506
+ version "2.0.0"
1507
+ resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
1508
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
1509
+ dependencies:
1510
+ callsites "^2.0.0"
1511
+
1512
+ caller-path@^2.0.0:
1513
+ version "2.0.0"
1514
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
1515
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
1516
+ dependencies:
1517
+ caller-callsite "^2.0.0"
1518
+
1519
+ callsites@^2.0.0:
1520
+ version "2.0.0"
1521
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
1522
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
1523
+
1524
+ callsites@^3.0.0:
1525
+ version "3.1.0"
1526
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
1527
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
1528
+
1529
+ camel-case@3.0.x:
1530
+ version "3.0.0"
1531
+ resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
1532
+ integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
1533
+ dependencies:
1534
+ no-case "^2.2.0"
1535
+ upper-case "^1.1.1"
1536
+
1537
+ camelcase@^5.0.0:
1538
+ version "5.3.1"
1539
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
1540
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
1541
+
1542
+ caniuse-api@^3.0.0:
1543
+ version "3.0.0"
1544
+ resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
1545
+ integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
1546
+ dependencies:
1547
+ browserslist "^4.0.0"
1548
+ caniuse-lite "^1.0.0"
1549
+ lodash.memoize "^4.1.2"
1550
+ lodash.uniq "^4.5.0"
1551
+
1552
+ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000989:
1553
+ version "1.0.30000997"
1554
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000997.tgz#ba44a606804f8680894b7042612c2c7f65685b7e"
1555
+ integrity sha512-BQLFPIdj2ntgBNWp9Q64LGUIEmvhKkzzHhUHR3CD5A9Lb7ZKF20/+sgadhFap69lk5XmK1fTUleDclaRFvgVUA==
1556
+
1557
+ chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
1558
+ version "2.4.2"
1559
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1560
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
1561
+ dependencies:
1562
+ ansi-styles "^3.2.1"
1563
+ escape-string-regexp "^1.0.5"
1564
+ supports-color "^5.3.0"
1565
+
1566
+ chalk@^1.1.3:
1567
+ version "1.1.3"
1568
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
1569
+ integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
1570
+ dependencies:
1571
+ ansi-styles "^2.2.1"
1572
+ escape-string-regexp "^1.0.2"
1573
+ has-ansi "^2.0.0"
1574
+ strip-ansi "^3.0.0"
1575
+ supports-color "^2.0.0"
1576
+
1577
+ chardet@^0.7.0:
1578
+ version "0.7.0"
1579
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
1580
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
1581
+
1582
+ charenc@~0.0.1:
1583
+ version "0.0.2"
1584
+ resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
1585
+ integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
1586
+
1587
+ chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.8:
1588
+ version "2.1.8"
1589
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
1590
+ integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
1591
+ dependencies:
1592
+ anymatch "^2.0.0"
1593
+ async-each "^1.0.1"
1594
+ braces "^2.3.2"
1595
+ glob-parent "^3.1.0"
1596
+ inherits "^2.0.3"
1597
+ is-binary-path "^1.0.0"
1598
+ is-glob "^4.0.0"
1599
+ normalize-path "^3.0.0"
1600
+ path-is-absolute "^1.0.0"
1601
+ readdirp "^2.2.1"
1602
+ upath "^1.1.1"
1603
+ optionalDependencies:
1604
+ fsevents "^1.2.7"
1605
+
1606
+ chownr@^1.1.1:
1607
+ version "1.1.3"
1608
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
1609
+ integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==
1610
+
1611
+ chrome-trace-event@^1.0.2:
1612
+ version "1.0.2"
1613
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
1614
+ integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==
1615
+ dependencies:
1616
+ tslib "^1.9.0"
1617
+
1618
+ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
1619
+ version "1.0.4"
1620
+ resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
1621
+ integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
1622
+ dependencies:
1623
+ inherits "^2.0.1"
1624
+ safe-buffer "^5.0.1"
1625
+
1626
+ class-utils@^0.3.5:
1627
+ version "0.3.6"
1628
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
1629
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
1630
+ dependencies:
1631
+ arr-union "^3.1.0"
1632
+ define-property "^0.2.5"
1633
+ isobject "^3.0.0"
1634
+ static-extend "^0.1.1"
1635
+
1636
+ clean-css@4.2.x, clean-css@^4.1.3:
1637
+ version "4.2.1"
1638
+ resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17"
1639
+ integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==
1640
+ dependencies:
1641
+ source-map "~0.6.0"
1642
+
1643
+ cli-cursor@^2.1.0:
1644
+ version "2.1.0"
1645
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
1646
+ integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
1647
+ dependencies:
1648
+ restore-cursor "^2.0.0"
1649
+
1650
+ cli-width@^2.0.0:
1651
+ version "2.2.0"
1652
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
1653
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
1654
+
1655
+ cliui@^4.0.0:
1656
+ version "4.1.0"
1657
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
1658
+ integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
1659
+ dependencies:
1660
+ string-width "^2.1.1"
1661
+ strip-ansi "^4.0.0"
1662
+ wrap-ansi "^2.0.0"
1663
+
1664
+ cliui@^5.0.0:
1665
+ version "5.0.0"
1666
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
1667
+ integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
1668
+ dependencies:
1669
+ string-width "^3.1.0"
1670
+ strip-ansi "^5.2.0"
1671
+ wrap-ansi "^5.1.0"
1672
+
1673
+ coa@^2.0.2:
1674
+ version "2.0.2"
1675
+ resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
1676
+ integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
1677
+ dependencies:
1678
+ "@types/q" "^1.5.1"
1679
+ chalk "^2.4.1"
1680
+ q "^1.1.2"
1681
+
1682
+ code-point-at@^1.0.0:
1683
+ version "1.1.0"
1684
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
1685
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
1686
+
1687
+ collect.js@^4.12.8:
1688
+ version "4.16.6"
1689
+ resolved "https://registry.yarnpkg.com/collect.js/-/collect.js-4.16.6.tgz#666f19964fbfe599297ba5aceffdfea9ae22e920"
1690
+ integrity sha512-Y0mR+JAWmUmA7HOByjdtc4dnQF/PRl4ap3jpG7RpC5vJjMmjDxBC8SFtp0s0vcRKoY+9WhJG0HUk1H2ze0Ao7A==
1691
+
1692
+ collection-visit@^1.0.0:
1693
+ version "1.0.0"
1694
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
1695
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
1696
+ dependencies:
1697
+ map-visit "^1.0.0"
1698
+ object-visit "^1.0.0"
1699
+
1700
+ color-convert@^1.9.0, color-convert@^1.9.1:
1701
+ version "1.9.3"
1702
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1703
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1704
+ dependencies:
1705
+ color-name "1.1.3"
1706
+
1707
+ color-name@1.1.3:
1708
+ version "1.1.3"
1709
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1710
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
1711
+
1712
+ color-name@^1.0.0:
1713
+ version "1.1.4"
1714
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1715
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1716
+
1717
+ color-string@^1.5.2:
1718
+ version "1.5.3"
1719
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
1720
+ integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
1721
+ dependencies:
1722
+ color-name "^1.0.0"
1723
+ simple-swizzle "^0.2.2"
1724
+
1725
+ color@^3.0.0:
1726
+ version "3.1.2"
1727
+ resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
1728
+ integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
1729
+ dependencies:
1730
+ color-convert "^1.9.1"
1731
+ color-string "^1.5.2"
1732
+
1733
+ colors@latest:
1734
+ version "1.4.0"
1735
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
1736
+ integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
1737
+
1738
+ commander@2.17.x:
1739
+ version "2.17.1"
1740
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
1741
+ integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
1742
+
1743
+ commander@^2.11.0:
1744
+ version "2.20.1"
1745
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9"
1746
+ integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==
1747
+
1748
+ commander@^2.19.0, commander@^2.20.0:
1749
+ version "2.20.0"
1750
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
1751
+ integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
1752
+
1753
+ commander@~2.19.0:
1754
+ version "2.19.0"
1755
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
1756
+ integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
1757
+
1758
+ comment-parser@^0.6.2:
1759
+ version "0.6.2"
1760
+ resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.6.2.tgz#b71e8fcacad954bea616779391838150d0096dcb"
1761
+ integrity sha512-Wdms0Q8d4vvb2Yk72OwZjwNWtMklbC5Re7lD9cjCP/AG1fhocmc0TrxGBBAXPLy8fZQPrfHGgyygwI0lA7pbzA==
1762
+
1763
+ commondir@^1.0.1:
1764
+ version "1.0.1"
1765
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
1766
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
1767
+
1768
+ component-emitter@^1.2.1:
1769
+ version "1.3.0"
1770
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
1771
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
1772
+
1773
+ compressible@~2.0.16:
1774
+ version "2.0.17"
1775
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1"
1776
+ integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==
1777
+ dependencies:
1778
+ mime-db ">= 1.40.0 < 2"
1779
+
1780
+ compression@^1.7.4:
1781
+ version "1.7.4"
1782
+ resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
1783
+ integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
1784
+ dependencies:
1785
+ accepts "~1.3.5"
1786
+ bytes "3.0.0"
1787
+ compressible "~2.0.16"
1788
+ debug "2.6.9"
1789
+ on-headers "~1.0.2"
1790
+ safe-buffer "5.1.2"
1791
+ vary "~1.1.2"
1792
+
1793
+ concat-map@0.0.1:
1794
+ version "0.0.1"
1795
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1796
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
1797
+
1798
+ concat-stream@^1.5.0:
1799
+ version "1.6.2"
1800
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
1801
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
1802
+ dependencies:
1803
+ buffer-from "^1.0.0"
1804
+ inherits "^2.0.3"
1805
+ readable-stream "^2.2.2"
1806
+ typedarray "^0.0.6"
1807
+
1808
+ concatenate@0.0.2:
1809
+ version "0.0.2"
1810
+ resolved "https://registry.yarnpkg.com/concatenate/-/concatenate-0.0.2.tgz#0b49d6e8c41047d7728cdc8d62a086623397b49f"
1811
+ integrity sha1-C0nW6MQQR9dyjNyNYqCGYjOXtJ8=
1812
+ dependencies:
1813
+ globs "^0.1.2"
1814
+
1815
+ connect-history-api-fallback@^1.6.0:
1816
+ version "1.6.0"
1817
+ resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
1818
+ integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
1819
+
1820
+ connect@^3.6.6:
1821
+ version "3.7.0"
1822
+ resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8"
1823
+ integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
1824
+ dependencies:
1825
+ debug "2.6.9"
1826
+ finalhandler "1.1.2"
1827
+ parseurl "~1.3.3"
1828
+ utils-merge "1.0.1"
1829
+
1830
+ console-browserify@^1.1.0:
1831
+ version "1.1.0"
1832
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
1833
+ integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
1834
+ dependencies:
1835
+ date-now "^0.1.4"
1836
+
1837
+ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
1838
+ version "1.1.0"
1839
+ resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
1840
+ integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
1841
+
1842
+ consolidate@^0.15.1:
1843
+ version "0.15.1"
1844
+ resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
1845
+ integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==
1846
+ dependencies:
1847
+ bluebird "^3.1.1"
1848
+
1849
+ constants-browserify@^1.0.0:
1850
+ version "1.0.0"
1851
+ resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
1852
+ integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
1853
+
1854
+ content-disposition@0.5.3:
1855
+ version "0.5.3"
1856
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
1857
+ integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
1858
+ dependencies:
1859
+ safe-buffer "5.1.2"
1860
+
1861
+ content-type@~1.0.4:
1862
+ version "1.0.4"
1863
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
1864
+ integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
1865
+
1866
+ convert-source-map@^1.1.0:
1867
+ version "1.6.0"
1868
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
1869
+ integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
1870
+ dependencies:
1871
+ safe-buffer "~5.1.1"
1872
+
1873
+ cookie-signature@1.0.6:
1874
+ version "1.0.6"
1875
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
1876
+ integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
1877
+
1878
+ cookie@0.4.0:
1879
+ version "0.4.0"
1880
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
1881
+ integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
1882
+
1883
+ copy-concurrently@^1.0.0:
1884
+ version "1.0.5"
1885
+ resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
1886
+ integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
1887
+ dependencies:
1888
+ aproba "^1.1.1"
1889
+ fs-write-stream-atomic "^1.0.8"
1890
+ iferr "^0.1.5"
1891
+ mkdirp "^0.5.1"
1892
+ rimraf "^2.5.4"
1893
+ run-queue "^1.0.0"
1894
+
1895
+ copy-descriptor@^0.1.0:
1896
+ version "0.1.1"
1897
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
1898
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
1899
+
1900
+ core-js-compat@^3.1.1:
1901
+ version "3.2.1"
1902
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150"
1903
+ integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==
1904
+ dependencies:
1905
+ browserslist "^4.6.6"
1906
+ semver "^6.3.0"
1907
+
1908
+ core-util-is@~1.0.0:
1909
+ version "1.0.2"
1910
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
1911
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
1912
+
1913
+ cors@latest:
1914
+ version "2.8.5"
1915
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
1916
+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
1917
+ dependencies:
1918
+ object-assign "^4"
1919
+ vary "^1"
1920
+
1921
+ cosmiconfig@^5.0.0:
1922
+ version "5.2.1"
1923
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
1924
+ integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
1925
+ dependencies:
1926
+ import-fresh "^2.0.0"
1927
+ is-directory "^0.3.1"
1928
+ js-yaml "^3.13.1"
1929
+ parse-json "^4.0.0"
1930
+
1931
+ create-ecdh@^4.0.0:
1932
+ version "4.0.3"
1933
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
1934
+ integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
1935
+ dependencies:
1936
+ bn.js "^4.1.0"
1937
+ elliptic "^6.0.0"
1938
+
1939
+ create-hash@^1.1.0, create-hash@^1.1.2:
1940
+ version "1.2.0"
1941
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
1942
+ integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
1943
+ dependencies:
1944
+ cipher-base "^1.0.1"
1945
+ inherits "^2.0.1"
1946
+ md5.js "^1.3.4"
1947
+ ripemd160 "^2.0.1"
1948
+ sha.js "^2.4.0"
1949
+
1950
+ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
1951
+ version "1.1.7"
1952
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
1953
+ integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
1954
+ dependencies:
1955
+ cipher-base "^1.0.3"
1956
+ create-hash "^1.1.0"
1957
+ inherits "^2.0.1"
1958
+ ripemd160 "^2.0.0"
1959
+ safe-buffer "^5.0.1"
1960
+ sha.js "^2.4.8"
1961
+
1962
+ cross-env@^5.2.1:
1963
+ version "5.2.1"
1964
+ resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d"
1965
+ integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==
1966
+ dependencies:
1967
+ cross-spawn "^6.0.5"
1968
+
1969
+ cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
1970
+ version "6.0.5"
1971
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
1972
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
1973
+ dependencies:
1974
+ nice-try "^1.0.4"
1975
+ path-key "^2.0.1"
1976
+ semver "^5.5.0"
1977
+ shebang-command "^1.2.0"
1978
+ which "^1.2.9"
1979
+
1980
+ crypt@~0.0.1:
1981
+ version "0.0.2"
1982
+ resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
1983
+ integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
1984
+
1985
+ crypto-browserify@^3.11.0:
1986
+ version "3.12.0"
1987
+ resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
1988
+ integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
1989
+ dependencies:
1990
+ browserify-cipher "^1.0.0"
1991
+ browserify-sign "^4.0.0"
1992
+ create-ecdh "^4.0.0"
1993
+ create-hash "^1.1.0"
1994
+ create-hmac "^1.1.0"
1995
+ diffie-hellman "^5.0.0"
1996
+ inherits "^2.0.1"
1997
+ pbkdf2 "^3.0.3"
1998
+ public-encrypt "^4.0.0"
1999
+ randombytes "^2.0.0"
2000
+ randomfill "^1.0.3"
2001
+
2002
+ css-color-names@0.0.4, css-color-names@^0.0.4:
2003
+ version "0.0.4"
2004
+ resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
2005
+ integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
2006
+
2007
+ css-declaration-sorter@^4.0.1:
2008
+ version "4.0.1"
2009
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
2010
+ integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
2011
+ dependencies:
2012
+ postcss "^7.0.1"
2013
+ timsort "^0.3.0"
2014
+
2015
+ css-loader@^1.0.1:
2016
+ version "1.0.1"
2017
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe"
2018
+ integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==
2019
+ dependencies:
2020
+ babel-code-frame "^6.26.0"
2021
+ css-selector-tokenizer "^0.7.0"
2022
+ icss-utils "^2.1.0"
2023
+ loader-utils "^1.0.2"
2024
+ lodash "^4.17.11"
2025
+ postcss "^6.0.23"
2026
+ postcss-modules-extract-imports "^1.2.0"
2027
+ postcss-modules-local-by-default "^1.2.0"
2028
+ postcss-modules-scope "^1.1.0"
2029
+ postcss-modules-values "^1.3.0"
2030
+ postcss-value-parser "^3.3.0"
2031
+ source-list-map "^2.0.0"
2032
+
2033
+ css-select-base-adapter@^0.1.1:
2034
+ version "0.1.1"
2035
+ resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
2036
+ integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
2037
+
2038
+ css-select@^2.0.0:
2039
+ version "2.0.2"
2040
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
2041
+ integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==
2042
+ dependencies:
2043
+ boolbase "^1.0.0"
2044
+ css-what "^2.1.2"
2045
+ domutils "^1.7.0"
2046
+ nth-check "^1.0.2"
2047
+
2048
+ css-selector-tokenizer@^0.7.0:
2049
+ version "0.7.1"
2050
+ resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d"
2051
+ integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==
2052
+ dependencies:
2053
+ cssesc "^0.1.0"
2054
+ fastparse "^1.1.1"
2055
+ regexpu-core "^1.0.0"
2056
+
2057
+ css-tree@1.0.0-alpha.29:
2058
+ version "1.0.0-alpha.29"
2059
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
2060
+ integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==
2061
+ dependencies:
2062
+ mdn-data "~1.1.0"
2063
+ source-map "^0.5.3"
2064
+
2065
+ css-tree@1.0.0-alpha.33:
2066
+ version "1.0.0-alpha.33"
2067
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e"
2068
+ integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==
2069
+ dependencies:
2070
+ mdn-data "2.0.4"
2071
+ source-map "^0.5.3"
2072
+
2073
+ css-unit-converter@^1.1.1:
2074
+ version "1.1.1"
2075
+ resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
2076
+ integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
2077
+
2078
+ css-what@^2.1.2:
2079
+ version "2.1.3"
2080
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
2081
+ integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
2082
+
2083
+ cssesc@^0.1.0:
2084
+ version "0.1.0"
2085
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
2086
+ integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
2087
+
2088
+ cssesc@^2.0.0:
2089
+ version "2.0.0"
2090
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
2091
+ integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
2092
+
2093
+ cssnano-preset-default@^4.0.7:
2094
+ version "4.0.7"
2095
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
2096
+ integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
2097
+ dependencies:
2098
+ css-declaration-sorter "^4.0.1"
2099
+ cssnano-util-raw-cache "^4.0.1"
2100
+ postcss "^7.0.0"
2101
+ postcss-calc "^7.0.1"
2102
+ postcss-colormin "^4.0.3"
2103
+ postcss-convert-values "^4.0.1"
2104
+ postcss-discard-comments "^4.0.2"
2105
+ postcss-discard-duplicates "^4.0.2"
2106
+ postcss-discard-empty "^4.0.1"
2107
+ postcss-discard-overridden "^4.0.1"
2108
+ postcss-merge-longhand "^4.0.11"
2109
+ postcss-merge-rules "^4.0.3"
2110
+ postcss-minify-font-values "^4.0.2"
2111
+ postcss-minify-gradients "^4.0.2"
2112
+ postcss-minify-params "^4.0.2"
2113
+ postcss-minify-selectors "^4.0.2"
2114
+ postcss-normalize-charset "^4.0.1"
2115
+ postcss-normalize-display-values "^4.0.2"
2116
+ postcss-normalize-positions "^4.0.2"
2117
+ postcss-normalize-repeat-style "^4.0.2"
2118
+ postcss-normalize-string "^4.0.2"
2119
+ postcss-normalize-timing-functions "^4.0.2"
2120
+ postcss-normalize-unicode "^4.0.1"
2121
+ postcss-normalize-url "^4.0.1"
2122
+ postcss-normalize-whitespace "^4.0.2"
2123
+ postcss-ordered-values "^4.1.2"
2124
+ postcss-reduce-initial "^4.0.3"
2125
+ postcss-reduce-transforms "^4.0.2"
2126
+ postcss-svgo "^4.0.2"
2127
+ postcss-unique-selectors "^4.0.1"
2128
+
2129
+ cssnano-util-get-arguments@^4.0.0:
2130
+ version "4.0.0"
2131
+ resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
2132
+ integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
2133
+
2134
+ cssnano-util-get-match@^4.0.0:
2135
+ version "4.0.0"
2136
+ resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
2137
+ integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
2138
+
2139
+ cssnano-util-raw-cache@^4.0.1:
2140
+ version "4.0.1"
2141
+ resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
2142
+ integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
2143
+ dependencies:
2144
+ postcss "^7.0.0"
2145
+
2146
+ cssnano-util-same-parent@^4.0.0:
2147
+ version "4.0.1"
2148
+ resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
2149
+ integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
2150
+
2151
+ cssnano@^4.1.10:
2152
+ version "4.1.10"
2153
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
2154
+ integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
2155
+ dependencies:
2156
+ cosmiconfig "^5.0.0"
2157
+ cssnano-preset-default "^4.0.7"
2158
+ is-resolvable "^1.0.0"
2159
+ postcss "^7.0.0"
2160
+
2161
+ csso@^3.5.1:
2162
+ version "3.5.1"
2163
+ resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
2164
+ integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==
2165
+ dependencies:
2166
+ css-tree "1.0.0-alpha.29"
2167
+
2168
+ cyclist@^1.0.1:
2169
+ version "1.0.1"
2170
+ resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
2171
+ integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
2172
+
2173
+ damerau-levenshtein@^1.0.4:
2174
+ version "1.0.5"
2175
+ resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414"
2176
+ integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==
2177
+
2178
+ date-now@^0.1.4:
2179
+ version "0.1.4"
2180
+ resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
2181
+ integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
2182
+
2183
+ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
2184
+ version "2.6.9"
2185
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
2186
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
2187
+ dependencies:
2188
+ ms "2.0.0"
2189
+
2190
+ debug@^3.0.0, debug@^3.2.5, debug@^3.2.6:
2191
+ version "3.2.6"
2192
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
2193
+ integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
2194
+ dependencies:
2195
+ ms "^2.1.1"
2196
+
2197
+ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
2198
+ version "4.1.1"
2199
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
2200
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
2201
+ dependencies:
2202
+ ms "^2.1.1"
2203
+
2204
+ decamelize@^1.2.0:
2205
+ version "1.2.0"
2206
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
2207
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
2208
+
2209
+ decode-uri-component@^0.2.0:
2210
+ version "0.2.0"
2211
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
2212
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
2213
+
2214
+ deep-equal@^1.0.1:
2215
+ version "1.1.0"
2216
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745"
2217
+ integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==
2218
+ dependencies:
2219
+ is-arguments "^1.0.4"
2220
+ is-date-object "^1.0.1"
2221
+ is-regex "^1.0.4"
2222
+ object-is "^1.0.1"
2223
+ object-keys "^1.1.1"
2224
+ regexp.prototype.flags "^1.2.0"
2225
+
2226
+ deep-extend@^0.6.0:
2227
+ version "0.6.0"
2228
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
2229
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
2230
+
2231
+ deep-is@~0.1.3:
2232
+ version "0.1.3"
2233
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
2234
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
2235
+
2236
+ deepmerge@^2.1.0:
2237
+ version "2.2.1"
2238
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
2239
+ integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
2240
+
2241
+ default-gateway@^4.2.0:
2242
+ version "4.2.0"
2243
+ resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
2244
+ integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==
2245
+ dependencies:
2246
+ execa "^1.0.0"
2247
+ ip-regex "^2.1.0"
2248
+
2249
+ define-properties@^1.1.2, define-properties@^1.1.3:
2250
+ version "1.1.3"
2251
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
2252
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
2253
+ dependencies:
2254
+ object-keys "^1.0.12"
2255
+
2256
+ define-property@^0.2.5:
2257
+ version "0.2.5"
2258
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
2259
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
2260
+ dependencies:
2261
+ is-descriptor "^0.1.0"
2262
+
2263
+ define-property@^1.0.0:
2264
+ version "1.0.0"
2265
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
2266
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
2267
+ dependencies:
2268
+ is-descriptor "^1.0.0"
2269
+
2270
+ define-property@^2.0.2:
2271
+ version "2.0.2"
2272
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
2273
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
2274
+ dependencies:
2275
+ is-descriptor "^1.0.2"
2276
+ isobject "^3.0.1"
2277
+
2278
+ del@^4.1.1:
2279
+ version "4.1.1"
2280
+ resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
2281
+ integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==
2282
+ dependencies:
2283
+ "@types/glob" "^7.1.1"
2284
+ globby "^6.1.0"
2285
+ is-path-cwd "^2.0.0"
2286
+ is-path-in-cwd "^2.0.0"
2287
+ p-map "^2.0.0"
2288
+ pify "^4.0.1"
2289
+ rimraf "^2.6.3"
2290
+
2291
+ delegates@^1.0.0:
2292
+ version "1.0.0"
2293
+ resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
2294
+ integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
2295
+
2296
+ depd@~1.1.2:
2297
+ version "1.1.2"
2298
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
2299
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
2300
+
2301
+ des.js@^1.0.0:
2302
+ version "1.0.0"
2303
+ resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
2304
+ integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
2305
+ dependencies:
2306
+ inherits "^2.0.1"
2307
+ minimalistic-assert "^1.0.0"
2308
+
2309
+ destroy@~1.0.4:
2310
+ version "1.0.4"
2311
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
2312
+ integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
2313
+
2314
+ detect-file@^1.0.0:
2315
+ version "1.0.0"
2316
+ resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
2317
+ integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
2318
+
2319
+ detect-libc@^1.0.2:
2320
+ version "1.0.3"
2321
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
2322
+ integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
2323
+
2324
+ detect-node@^2.0.4:
2325
+ version "2.0.4"
2326
+ resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
2327
+ integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
2328
+
2329
+ diffie-hellman@^5.0.0:
2330
+ version "5.0.3"
2331
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
2332
+ integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
2333
+ dependencies:
2334
+ bn.js "^4.1.0"
2335
+ miller-rabin "^4.0.0"
2336
+ randombytes "^2.0.0"
2337
+
2338
+ dir-glob@2.0.0:
2339
+ version "2.0.0"
2340
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
2341
+ integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==
2342
+ dependencies:
2343
+ arrify "^1.0.1"
2344
+ path-type "^3.0.0"
2345
+
2346
+ dns-equal@^1.0.0:
2347
+ version "1.0.0"
2348
+ resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
2349
+ integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
2350
+
2351
+ dns-packet@^1.3.1:
2352
+ version "1.3.1"
2353
+ resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
2354
+ integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
2355
+ dependencies:
2356
+ ip "^1.1.0"
2357
+ safe-buffer "^5.0.1"
2358
+
2359
+ dns-txt@^2.0.2:
2360
+ version "2.0.2"
2361
+ resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
2362
+ integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
2363
+ dependencies:
2364
+ buffer-indexof "^1.0.0"
2365
+
2366
+ doctrine@^2.1.0:
2367
+ version "2.1.0"
2368
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
2369
+ integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
2370
+ dependencies:
2371
+ esutils "^2.0.2"
2372
+
2373
+ doctrine@^3.0.0:
2374
+ version "3.0.0"
2375
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
2376
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
2377
+ dependencies:
2378
+ esutils "^2.0.2"
2379
+
2380
+ dom-serializer@0:
2381
+ version "0.2.1"
2382
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb"
2383
+ integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==
2384
+ dependencies:
2385
+ domelementtype "^2.0.1"
2386
+ entities "^2.0.0"
2387
+
2388
+ domain-browser@^1.1.1:
2389
+ version "1.2.0"
2390
+ resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
2391
+ integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
2392
+
2393
+ domelementtype@1:
2394
+ version "1.3.1"
2395
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
2396
+ integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
2397
+
2398
+ domelementtype@^2.0.1:
2399
+ version "2.0.1"
2400
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
2401
+ integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
2402
+
2403
+ domutils@^1.7.0:
2404
+ version "1.7.0"
2405
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
2406
+ integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
2407
+ dependencies:
2408
+ dom-serializer "0"
2409
+ domelementtype "1"
2410
+
2411
+ dot-prop@^4.1.1:
2412
+ version "4.2.0"
2413
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
2414
+ integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
2415
+ dependencies:
2416
+ is-obj "^1.0.0"
2417
+
2418
+ dotenv-expand@^4.2.0:
2419
+ version "4.2.0"
2420
+ resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275"
2421
+ integrity sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=
2422
+
2423
+ dotenv@^6.2.0:
2424
+ version "6.2.0"
2425
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064"
2426
+ integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==
2427
+
2428
+ duplexer@~0.1.1:
2429
+ version "0.1.1"
2430
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
2431
+ integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
2432
+
2433
+ duplexify@^3.4.2, duplexify@^3.6.0:
2434
+ version "3.7.1"
2435
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
2436
+ integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
2437
+ dependencies:
2438
+ end-of-stream "^1.0.0"
2439
+ inherits "^2.0.1"
2440
+ readable-stream "^2.0.0"
2441
+ stream-shift "^1.0.0"
2442
+
2443
+ ee-first@1.1.1:
2444
+ version "1.1.1"
2445
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
2446
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
2447
+
2448
+ electron-to-chromium@^1.3.247:
2449
+ version "1.3.266"
2450
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.266.tgz#a33fb529c75f8d133e75ea7cbedb73a62f2158d2"
2451
+ integrity sha512-UTuTZ4v8T0gLPHI7U75PXLQePWI65MTS3mckRrnLCkNljHvsutbYs+hn2Ua/RFul3Jt/L3Ht2rLP+dU/AlBfrQ==
2452
+
2453
+ elliptic@^6.0.0:
2454
+ version "6.5.1"
2455
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b"
2456
+ integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==
2457
+ dependencies:
2458
+ bn.js "^4.4.0"
2459
+ brorand "^1.0.1"
2460
+ hash.js "^1.0.0"
2461
+ hmac-drbg "^1.0.0"
2462
+ inherits "^2.0.1"
2463
+ minimalistic-assert "^1.0.0"
2464
+ minimalistic-crypto-utils "^1.0.0"
2465
+
2466
+ emoji-regex@^7.0.1, emoji-regex@^7.0.2:
2467
+ version "7.0.3"
2468
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
2469
+ integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
2470
+
2471
+ emojis-list@^2.0.0:
2472
+ version "2.1.0"
2473
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
2474
+ integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
2475
+
2476
+ encodeurl@~1.0.2:
2477
+ version "1.0.2"
2478
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
2479
+ integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
2480
+
2481
+ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
2482
+ version "1.4.4"
2483
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
2484
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
2485
+ dependencies:
2486
+ once "^1.4.0"
2487
+
2488
+ enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0:
2489
+ version "4.1.0"
2490
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
2491
+ integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
2492
+ dependencies:
2493
+ graceful-fs "^4.1.2"
2494
+ memory-fs "^0.4.0"
2495
+ tapable "^1.0.0"
2496
+
2497
+ entities@^2.0.0:
2498
+ version "2.0.0"
2499
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
2500
+ integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
2501
+
2502
+ errno@^0.1.3, errno@~0.1.7:
2503
+ version "0.1.7"
2504
+ resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
2505
+ integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
2506
+ dependencies:
2507
+ prr "~1.0.1"
2508
+
2509
+ error-ex@^1.3.1:
2510
+ version "1.3.2"
2511
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
2512
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
2513
+ dependencies:
2514
+ is-arrayish "^0.2.1"
2515
+
2516
+ error-stack-parser@^2.0.0:
2517
+ version "2.0.4"
2518
+ resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.4.tgz#a757397dc5d9de973ac9a5d7d4e8ade7cfae9101"
2519
+ integrity sha512-fZ0KkoxSjLFmhW5lHbUT3tLwy3nX1qEzMYo8koY1vrsAco53CMT1djnBSeC/wUjTEZRhZl9iRw7PaMaxfJ4wzQ==
2520
+ dependencies:
2521
+ stackframe "^1.1.0"
2522
+
2523
+ es-abstract@^1.11.0, es-abstract@^1.7.0:
2524
+ version "1.15.0"
2525
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.15.0.tgz#8884928ec7e40a79e3c9bc812d37d10c8b24cc57"
2526
+ integrity sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==
2527
+ dependencies:
2528
+ es-to-primitive "^1.2.0"
2529
+ function-bind "^1.1.1"
2530
+ has "^1.0.3"
2531
+ has-symbols "^1.0.0"
2532
+ is-callable "^1.1.4"
2533
+ is-regex "^1.0.4"
2534
+ object-inspect "^1.6.0"
2535
+ object-keys "^1.1.1"
2536
+ string.prototype.trimleft "^2.1.0"
2537
+ string.prototype.trimright "^2.1.0"
2538
+
2539
+ es-abstract@^1.12.0, es-abstract@^1.5.1:
2540
+ version "1.14.2"
2541
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497"
2542
+ integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==
2543
+ dependencies:
2544
+ es-to-primitive "^1.2.0"
2545
+ function-bind "^1.1.1"
2546
+ has "^1.0.3"
2547
+ has-symbols "^1.0.0"
2548
+ is-callable "^1.1.4"
2549
+ is-regex "^1.0.4"
2550
+ object-inspect "^1.6.0"
2551
+ object-keys "^1.1.1"
2552
+ string.prototype.trimleft "^2.0.0"
2553
+ string.prototype.trimright "^2.0.0"
2554
+
2555
+ es-to-primitive@^1.2.0:
2556
+ version "1.2.0"
2557
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
2558
+ integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
2559
+ dependencies:
2560
+ is-callable "^1.1.4"
2561
+ is-date-object "^1.0.1"
2562
+ is-symbol "^1.0.2"
2563
+
2564
+ es6-templates@^0.2.3:
2565
+ version "0.2.3"
2566
+ resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4"
2567
+ integrity sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=
2568
+ dependencies:
2569
+ recast "~0.11.12"
2570
+ through "~2.3.6"
2571
+
2572
+ escape-html@~1.0.3:
2573
+ version "1.0.3"
2574
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
2575
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
2576
+
2577
+ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
2578
+ version "1.0.5"
2579
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
2580
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
2581
+
2582
+ eslint-plugin-jest@^22.15.1:
2583
+ version "22.17.0"
2584
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.17.0.tgz#dc170ec8369cd1bff9c5dd8589344e3f73c88cf6"
2585
+ integrity sha512-WT4DP4RoGBhIQjv+5D0FM20fAdAUstfYAf/mkufLNTojsfgzc5/IYW22cIg/Q4QBavAZsROQlqppiWDpFZDS8Q==
2586
+ dependencies:
2587
+ "@typescript-eslint/experimental-utils" "^1.13.0"
2588
+
2589
+ eslint-plugin-jsdoc@^15.8.0:
2590
+ version "15.9.8"
2591
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-15.9.8.tgz#adc491e66d8f824c6f6920c2ddb0201524f14e31"
2592
+ integrity sha512-aJKMPuLkWe4HyTociywq48uUaxU79uvsCZ0ZcE6TynxI+SLySXbdPQTSxNZnn6FjMf8Tv/7h1BHC3dIkcqwTdQ==
2593
+ dependencies:
2594
+ comment-parser "^0.6.2"
2595
+ debug "^4.1.1"
2596
+ jsdoctypeparser "5.0.1"
2597
+ lodash "^4.17.15"
2598
+ object.entries-ponyfill "^1.0.1"
2599
+ regextras "^0.6.1"
2600
+
2601
+ eslint-plugin-jsx-a11y@^6.2.3:
2602
+ version "6.2.3"
2603
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa"
2604
+ integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==
2605
+ dependencies:
2606
+ "@babel/runtime" "^7.4.5"
2607
+ aria-query "^3.0.0"
2608
+ array-includes "^3.0.3"
2609
+ ast-types-flow "^0.0.7"
2610
+ axobject-query "^2.0.2"
2611
+ damerau-levenshtein "^1.0.4"
2612
+ emoji-regex "^7.0.2"
2613
+ has "^1.0.3"
2614
+ jsx-ast-utils "^2.2.1"
2615
+
2616
+ eslint-plugin-react-hooks@^1.6.1:
2617
+ version "1.7.0"
2618
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04"
2619
+ integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==
2620
+
2621
+ eslint-plugin-react@^7.14.3:
2622
+ version "7.15.1"
2623
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.15.1.tgz#db5f8ed66c6ba46922518f08e1df9dac52ccaa49"
2624
+ integrity sha512-YotSItgMPwLGlr3df44MGVyXnHkmKcpkHTzpte3QwJtocr3nFqCXCuoxFZeBtnT8RHdj038NlTvam3dcAFrMcA==
2625
+ dependencies:
2626
+ array-includes "^3.0.3"
2627
+ doctrine "^2.1.0"
2628
+ has "^1.0.3"
2629
+ jsx-ast-utils "^2.2.1"
2630
+ object.entries "^1.1.0"
2631
+ object.fromentries "^2.0.0"
2632
+ object.values "^1.1.0"
2633
+ prop-types "^15.7.2"
2634
+ resolve "^1.12.0"
2635
+
2636
+ eslint-scope@^4.0.0, eslint-scope@^4.0.3:
2637
+ version "4.0.3"
2638
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
2639
+ integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
2640
+ dependencies:
2641
+ esrecurse "^4.1.0"
2642
+ estraverse "^4.1.1"
2643
+
2644
+ eslint-scope@^5.0.0:
2645
+ version "5.0.0"
2646
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
2647
+ integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==
2648
+ dependencies:
2649
+ esrecurse "^4.1.0"
2650
+ estraverse "^4.1.1"
2651
+
2652
+ eslint-utils@^1.4.2:
2653
+ version "1.4.2"
2654
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab"
2655
+ integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==
2656
+ dependencies:
2657
+ eslint-visitor-keys "^1.0.0"
2658
+
2659
+ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
2660
+ version "1.1.0"
2661
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
2662
+ integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
2663
+
2664
+ eslint@^6.5.1:
2665
+ version "6.5.1"
2666
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.5.1.tgz#828e4c469697d43bb586144be152198b91e96ed6"
2667
+ integrity sha512-32h99BoLYStT1iq1v2P9uwpyznQ4M2jRiFB6acitKz52Gqn+vPaMDUTB1bYi1WN4Nquj2w+t+bimYUG83DC55A==
2668
+ dependencies:
2669
+ "@babel/code-frame" "^7.0.0"
2670
+ ajv "^6.10.0"
2671
+ chalk "^2.1.0"
2672
+ cross-spawn "^6.0.5"
2673
+ debug "^4.0.1"
2674
+ doctrine "^3.0.0"
2675
+ eslint-scope "^5.0.0"
2676
+ eslint-utils "^1.4.2"
2677
+ eslint-visitor-keys "^1.1.0"
2678
+ espree "^6.1.1"
2679
+ esquery "^1.0.1"
2680
+ esutils "^2.0.2"
2681
+ file-entry-cache "^5.0.1"
2682
+ functional-red-black-tree "^1.0.1"
2683
+ glob-parent "^5.0.0"
2684
+ globals "^11.7.0"
2685
+ ignore "^4.0.6"
2686
+ import-fresh "^3.0.0"
2687
+ imurmurhash "^0.1.4"
2688
+ inquirer "^6.4.1"
2689
+ is-glob "^4.0.0"
2690
+ js-yaml "^3.13.1"
2691
+ json-stable-stringify-without-jsonify "^1.0.1"
2692
+ levn "^0.3.0"
2693
+ lodash "^4.17.14"
2694
+ minimatch "^3.0.4"
2695
+ mkdirp "^0.5.1"
2696
+ natural-compare "^1.4.0"
2697
+ optionator "^0.8.2"
2698
+ progress "^2.0.0"
2699
+ regexpp "^2.0.1"
2700
+ semver "^6.1.2"
2701
+ strip-ansi "^5.2.0"
2702
+ strip-json-comments "^3.0.1"
2703
+ table "^5.2.3"
2704
+ text-table "^0.2.0"
2705
+ v8-compile-cache "^2.0.3"
2706
+
2707
+ espree@^6.1.1:
2708
+ version "6.1.1"
2709
+ resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de"
2710
+ integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==
2711
+ dependencies:
2712
+ acorn "^7.0.0"
2713
+ acorn-jsx "^5.0.2"
2714
+ eslint-visitor-keys "^1.1.0"
2715
+
2716
+ esprima@^4.0.0:
2717
+ version "4.0.1"
2718
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
2719
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
2720
+
2721
+ esprima@~3.1.0:
2722
+ version "3.1.3"
2723
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
2724
+ integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
2725
+
2726
+ esquery@^1.0.1:
2727
+ version "1.0.1"
2728
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
2729
+ integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
2730
+ dependencies:
2731
+ estraverse "^4.0.0"
2732
+
2733
+ esrecurse@^4.1.0:
2734
+ version "4.2.1"
2735
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
2736
+ integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
2737
+ dependencies:
2738
+ estraverse "^4.1.0"
2739
+
2740
+ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
2741
+ version "4.3.0"
2742
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
2743
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
2744
+
2745
+ esutils@^2.0.2:
2746
+ version "2.0.3"
2747
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
2748
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
2749
+
2750
+ etag@~1.8.1:
2751
+ version "1.8.1"
2752
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
2753
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
2754
+
2755
+ event-stream@3.3.4:
2756
+ version "3.3.4"
2757
+ resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
2758
+ integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=
2759
+ dependencies:
2760
+ duplexer "~0.1.1"
2761
+ from "~0"
2762
+ map-stream "~0.1.0"
2763
+ pause-stream "0.0.11"
2764
+ split "0.3"
2765
+ stream-combiner "~0.0.4"
2766
+ through "~2.3.1"
2767
+
2768
+ eventemitter3@^4.0.0:
2769
+ version "4.0.0"
2770
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
2771
+ integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==
2772
+
2773
+ events@^3.0.0:
2774
+ version "3.0.0"
2775
+ resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
2776
+ integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==
2777
+
2778
+ eventsource@^1.0.7:
2779
+ version "1.0.7"
2780
+ resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"
2781
+ integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==
2782
+ dependencies:
2783
+ original "^1.0.0"
2784
+
2785
+ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
2786
+ version "1.0.3"
2787
+ resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
2788
+ integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
2789
+ dependencies:
2790
+ md5.js "^1.3.4"
2791
+ safe-buffer "^5.1.1"
2792
+
2793
+ execa@^1.0.0:
2794
+ version "1.0.0"
2795
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
2796
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
2797
+ dependencies:
2798
+ cross-spawn "^6.0.0"
2799
+ get-stream "^4.0.0"
2800
+ is-stream "^1.1.0"
2801
+ npm-run-path "^2.0.0"
2802
+ p-finally "^1.0.0"
2803
+ signal-exit "^3.0.0"
2804
+ strip-eof "^1.0.0"
2805
+
2806
+ expand-brackets@^2.1.4:
2807
+ version "2.1.4"
2808
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
2809
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
2810
+ dependencies:
2811
+ debug "^2.3.3"
2812
+ define-property "^0.2.5"
2813
+ extend-shallow "^2.0.1"
2814
+ posix-character-classes "^0.1.0"
2815
+ regex-not "^1.0.0"
2816
+ snapdragon "^0.8.1"
2817
+ to-regex "^3.0.1"
2818
+
2819
+ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
2820
+ version "2.0.2"
2821
+ resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
2822
+ integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=
2823
+ dependencies:
2824
+ homedir-polyfill "^1.0.1"
2825
+
2826
+ express@^4.17.1:
2827
+ version "4.17.1"
2828
+ resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
2829
+ integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
2830
+ dependencies:
2831
+ accepts "~1.3.7"
2832
+ array-flatten "1.1.1"
2833
+ body-parser "1.19.0"
2834
+ content-disposition "0.5.3"
2835
+ content-type "~1.0.4"
2836
+ cookie "0.4.0"
2837
+ cookie-signature "1.0.6"
2838
+ debug "2.6.9"
2839
+ depd "~1.1.2"
2840
+ encodeurl "~1.0.2"
2841
+ escape-html "~1.0.3"
2842
+ etag "~1.8.1"
2843
+ finalhandler "~1.1.2"
2844
+ fresh "0.5.2"
2845
+ merge-descriptors "1.0.1"
2846
+ methods "~1.1.2"
2847
+ on-finished "~2.3.0"
2848
+ parseurl "~1.3.3"
2849
+ path-to-regexp "0.1.7"
2850
+ proxy-addr "~2.0.5"
2851
+ qs "6.7.0"
2852
+ range-parser "~1.2.1"
2853
+ safe-buffer "5.1.2"
2854
+ send "0.17.1"
2855
+ serve-static "1.14.1"
2856
+ setprototypeof "1.1.1"
2857
+ statuses "~1.5.0"
2858
+ type-is "~1.6.18"
2859
+ utils-merge "1.0.1"
2860
+ vary "~1.1.2"
2861
+
2862
+ extend-shallow@^2.0.1:
2863
+ version "2.0.1"
2864
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
2865
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
2866
+ dependencies:
2867
+ is-extendable "^0.1.0"
2868
+
2869
+ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
2870
+ version "3.0.2"
2871
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
2872
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
2873
+ dependencies:
2874
+ assign-symbols "^1.0.0"
2875
+ is-extendable "^1.0.1"
2876
+
2877
+ external-editor@^3.0.3:
2878
+ version "3.1.0"
2879
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
2880
+ integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
2881
+ dependencies:
2882
+ chardet "^0.7.0"
2883
+ iconv-lite "^0.4.24"
2884
+ tmp "^0.0.33"
2885
+
2886
+ extglob@^2.0.4:
2887
+ version "2.0.4"
2888
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
2889
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
2890
+ dependencies:
2891
+ array-unique "^0.3.2"
2892
+ define-property "^1.0.0"
2893
+ expand-brackets "^2.1.4"
2894
+ extend-shallow "^2.0.1"
2895
+ fragment-cache "^0.2.1"
2896
+ regex-not "^1.0.0"
2897
+ snapdragon "^0.8.1"
2898
+ to-regex "^3.0.1"
2899
+
2900
+ extract-text-webpack-plugin@v4.0.0-beta.0:
2901
+ version "4.0.0-beta.0"
2902
+ resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz#f7361d7ff430b42961f8d1321ba8c1757b5d4c42"
2903
+ integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==
2904
+ dependencies:
2905
+ async "^2.4.1"
2906
+ loader-utils "^1.1.0"
2907
+ schema-utils "^0.4.5"
2908
+ webpack-sources "^1.1.0"
2909
+
2910
+ fast-deep-equal@^2.0.1:
2911
+ version "2.0.1"
2912
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
2913
+ integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
2914
+
2915
+ fast-glob@^2.0.2:
2916
+ version "2.2.7"
2917
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
2918
+ integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
2919
+ dependencies:
2920
+ "@mrmlnc/readdir-enhanced" "^2.2.1"
2921
+ "@nodelib/fs.stat" "^1.1.2"
2922
+ glob-parent "^3.1.0"
2923
+ is-glob "^4.0.0"
2924
+ merge2 "^1.2.3"
2925
+ micromatch "^3.1.10"
2926
+
2927
+ fast-json-stable-stringify@^2.0.0:
2928
+ version "2.0.0"
2929
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
2930
+ integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
2931
+
2932
+ fast-levenshtein@~2.0.4:
2933
+ version "2.0.6"
2934
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
2935
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
2936
+
2937
+ fastparse@^1.1.1:
2938
+ version "1.1.2"
2939
+ resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
2940
+ integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
2941
+
2942
+ faye-websocket@0.11.x, faye-websocket@~0.11.1:
2943
+ version "0.11.3"
2944
+ resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
2945
+ integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==
2946
+ dependencies:
2947
+ websocket-driver ">=0.5.1"
2948
+
2949
+ faye-websocket@^0.10.0:
2950
+ version "0.10.0"
2951
+ resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
2952
+ integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
2953
+ dependencies:
2954
+ websocket-driver ">=0.5.1"
2955
+
2956
+ figgy-pudding@^3.5.1:
2957
+ version "3.5.1"
2958
+ resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
2959
+ integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
2960
+
2961
+ figures@^2.0.0:
2962
+ version "2.0.0"
2963
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
2964
+ integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
2965
+ dependencies:
2966
+ escape-string-regexp "^1.0.5"
2967
+
2968
+ file-entry-cache@^5.0.1:
2969
+ version "5.0.1"
2970
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
2971
+ integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
2972
+ dependencies:
2973
+ flat-cache "^2.0.1"
2974
+
2975
+ file-loader@^2.0.0:
2976
+ version "2.0.0"
2977
+ resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde"
2978
+ integrity sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==
2979
+ dependencies:
2980
+ loader-utils "^1.0.2"
2981
+ schema-utils "^1.0.0"
2982
+
2983
+ file-type@^10.7.0:
2984
+ version "10.11.0"
2985
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890"
2986
+ integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==
2987
+
2988
+ fill-range@^4.0.0:
2989
+ version "4.0.0"
2990
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
2991
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
2992
+ dependencies:
2993
+ extend-shallow "^2.0.1"
2994
+ is-number "^3.0.0"
2995
+ repeat-string "^1.6.1"
2996
+ to-regex-range "^2.1.0"
2997
+
2998
+ finalhandler@1.1.2, finalhandler@~1.1.2:
2999
+ version "1.1.2"
3000
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
3001
+ integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
3002
+ dependencies:
3003
+ debug "2.6.9"
3004
+ encodeurl "~1.0.2"
3005
+ escape-html "~1.0.3"
3006
+ on-finished "~2.3.0"
3007
+ parseurl "~1.3.3"
3008
+ statuses "~1.5.0"
3009
+ unpipe "~1.0.0"
3010
+
3011
+ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
3012
+ version "2.1.0"
3013
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
3014
+ integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
3015
+ dependencies:
3016
+ commondir "^1.0.1"
3017
+ make-dir "^2.0.0"
3018
+ pkg-dir "^3.0.0"
3019
+
3020
+ find-up@^3.0.0:
3021
+ version "3.0.0"
3022
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
3023
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
3024
+ dependencies:
3025
+ locate-path "^3.0.0"
3026
+
3027
+ findup-sync@3.0.0:
3028
+ version "3.0.0"
3029
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
3030
+ integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==
3031
+ dependencies:
3032
+ detect-file "^1.0.0"
3033
+ is-glob "^4.0.0"
3034
+ micromatch "^3.0.4"
3035
+ resolve-dir "^1.0.1"
3036
+
3037
+ flat-cache@^2.0.1:
3038
+ version "2.0.1"
3039
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
3040
+ integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
3041
+ dependencies:
3042
+ flatted "^2.0.0"
3043
+ rimraf "2.6.3"
3044
+ write "1.0.3"
3045
+
3046
+ flatted@^2.0.0:
3047
+ version "2.0.1"
3048
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
3049
+ integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==
3050
+
3051
+ flush-write-stream@^1.0.0:
3052
+ version "1.1.1"
3053
+ resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
3054
+ integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
3055
+ dependencies:
3056
+ inherits "^2.0.3"
3057
+ readable-stream "^2.3.6"
3058
+
3059
+ follow-redirects@^1.0.0:
3060
+ version "1.9.0"
3061
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f"
3062
+ integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==
3063
+ dependencies:
3064
+ debug "^3.0.0"
3065
+
3066
+ for-in@^1.0.2:
3067
+ version "1.0.2"
3068
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
3069
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
3070
+
3071
+ forwarded@~0.1.2:
3072
+ version "0.1.2"
3073
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
3074
+ integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
3075
+
3076
+ fragment-cache@^0.2.1:
3077
+ version "0.2.1"
3078
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
3079
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
3080
+ dependencies:
3081
+ map-cache "^0.2.2"
3082
+
3083
+ fresh@0.5.2:
3084
+ version "0.5.2"
3085
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
3086
+ integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
3087
+
3088
+ friendly-errors-webpack-plugin@^1.6.1:
3089
+ version "1.7.0"
3090
+ resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136"
3091
+ integrity sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==
3092
+ dependencies:
3093
+ chalk "^1.1.3"
3094
+ error-stack-parser "^2.0.0"
3095
+ string-width "^2.0.0"
3096
+
3097
+ from2@^2.1.0:
3098
+ version "2.3.0"
3099
+ resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
3100
+ integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
3101
+ dependencies:
3102
+ inherits "^2.0.1"
3103
+ readable-stream "^2.0.0"
3104
+
3105
+ from@~0:
3106
+ version "0.1.7"
3107
+ resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
3108
+ integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
3109
+
3110
+ fs-extra@^7.0.1:
3111
+ version "7.0.1"
3112
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
3113
+ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
3114
+ dependencies:
3115
+ graceful-fs "^4.1.2"
3116
+ jsonfile "^4.0.0"
3117
+ universalify "^0.1.0"
3118
+
3119
+ fs-minipass@^1.2.5:
3120
+ version "1.2.7"
3121
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
3122
+ integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
3123
+ dependencies:
3124
+ minipass "^2.6.0"
3125
+
3126
+ fs-write-stream-atomic@^1.0.8:
3127
+ version "1.0.10"
3128
+ resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
3129
+ integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
3130
+ dependencies:
3131
+ graceful-fs "^4.1.2"
3132
+ iferr "^0.1.5"
3133
+ imurmurhash "^0.1.4"
3134
+ readable-stream "1 || 2"
3135
+
3136
+ fs.realpath@^1.0.0:
3137
+ version "1.0.0"
3138
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
3139
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
3140
+
3141
+ fsevents@^1.2.7:
3142
+ version "1.2.9"
3143
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
3144
+ integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
3145
+ dependencies:
3146
+ nan "^2.12.1"
3147
+ node-pre-gyp "^0.12.0"
3148
+
3149
+ function-bind@^1.1.1:
3150
+ version "1.1.1"
3151
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
3152
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
3153
+
3154
+ functional-red-black-tree@^1.0.1:
3155
+ version "1.0.1"
3156
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
3157
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
3158
+
3159
+ gauge@~2.7.3:
3160
+ version "2.7.4"
3161
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
3162
+ integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
3163
+ dependencies:
3164
+ aproba "^1.0.3"
3165
+ console-control-strings "^1.0.0"
3166
+ has-unicode "^2.0.0"
3167
+ object-assign "^4.1.0"
3168
+ signal-exit "^3.0.0"
3169
+ string-width "^1.0.1"
3170
+ strip-ansi "^3.0.1"
3171
+ wide-align "^1.1.0"
3172
+
3173
+ get-caller-file@^1.0.1:
3174
+ version "1.0.3"
3175
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
3176
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
3177
+
3178
+ get-caller-file@^2.0.1:
3179
+ version "2.0.5"
3180
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
3181
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
3182
+
3183
+ get-stream@^4.0.0:
3184
+ version "4.1.0"
3185
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
3186
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
3187
+ dependencies:
3188
+ pump "^3.0.0"
3189
+
3190
+ get-value@^2.0.3, get-value@^2.0.6:
3191
+ version "2.0.6"
3192
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
3193
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
3194
+
3195
+ glob-parent@^3.1.0:
3196
+ version "3.1.0"
3197
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
3198
+ integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
3199
+ dependencies:
3200
+ is-glob "^3.1.0"
3201
+ path-dirname "^1.0.0"
3202
+
3203
+ glob-parent@^5.0.0:
3204
+ version "5.1.0"
3205
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
3206
+ integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
3207
+ dependencies:
3208
+ is-glob "^4.0.1"
3209
+
3210
+ glob-to-regexp@^0.3.0:
3211
+ version "0.3.0"
3212
+ resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
3213
+ integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
3214
+
3215
+ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
3216
+ version "7.1.4"
3217
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
3218
+ integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
3219
+ dependencies:
3220
+ fs.realpath "^1.0.0"
3221
+ inflight "^1.0.4"
3222
+ inherits "2"
3223
+ minimatch "^3.0.4"
3224
+ once "^1.3.0"
3225
+ path-is-absolute "^1.0.0"
3226
+
3227
+ global-modules@2.0.0:
3228
+ version "2.0.0"
3229
+ resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
3230
+ integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
3231
+ dependencies:
3232
+ global-prefix "^3.0.0"
3233
+
3234
+ global-modules@^1.0.0:
3235
+ version "1.0.0"
3236
+ resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
3237
+ integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
3238
+ dependencies:
3239
+ global-prefix "^1.0.1"
3240
+ is-windows "^1.0.1"
3241
+ resolve-dir "^1.0.0"
3242
+
3243
+ global-prefix@^1.0.1:
3244
+ version "1.0.2"
3245
+ resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
3246
+ integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=
3247
+ dependencies:
3248
+ expand-tilde "^2.0.2"
3249
+ homedir-polyfill "^1.0.1"
3250
+ ini "^1.3.4"
3251
+ is-windows "^1.0.1"
3252
+ which "^1.2.14"
3253
+
3254
+ global-prefix@^3.0.0:
3255
+ version "3.0.0"
3256
+ resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
3257
+ integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
3258
+ dependencies:
3259
+ ini "^1.3.5"
3260
+ kind-of "^6.0.2"
3261
+ which "^1.3.1"
3262
+
3263
+ globals@^11.1.0, globals@^11.7.0:
3264
+ version "11.12.0"
3265
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
3266
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
3267
+
3268
+ globals@^12.0.0:
3269
+ version "12.1.0"
3270
+ resolved "https://registry.yarnpkg.com/globals/-/globals-12.1.0.tgz#ce672adc93cb3303513ec62b5b97bad510db028f"
3271
+ integrity sha512-GQ4xcAfbMWx/Lly8PUHIn8/t2o7YEoMWnQ7nhJtjEJ1gs8I4Y+koc0GiraVMaSjc9Ghz99obkMau/tSK/ACEsQ==
3272
+ dependencies:
3273
+ type-fest "^0.6.0"
3274
+
3275
+ globby@^6.1.0:
3276
+ version "6.1.0"
3277
+ resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
3278
+ integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
3279
+ dependencies:
3280
+ array-union "^1.0.1"
3281
+ glob "^7.0.3"
3282
+ object-assign "^4.0.1"
3283
+ pify "^2.0.0"
3284
+ pinkie-promise "^2.0.0"
3285
+
3286
+ globby@^8.0.1:
3287
+ version "8.0.2"
3288
+ resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
3289
+ integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==
3290
+ dependencies:
3291
+ array-union "^1.0.1"
3292
+ dir-glob "2.0.0"
3293
+ fast-glob "^2.0.2"
3294
+ glob "^7.1.2"
3295
+ ignore "^3.3.5"
3296
+ pify "^3.0.0"
3297
+ slash "^1.0.0"
3298
+
3299
+ globs@^0.1.2:
3300
+ version "0.1.4"
3301
+ resolved "https://registry.yarnpkg.com/globs/-/globs-0.1.4.tgz#1d13639f6174e4ae73a7f936da7d9a079f657c1c"
3302
+ integrity sha512-D23dWbOq48vlOraoSigbcQV4tWrnhwk+E/Um2cMuDS3/5dwGmdFeA7L/vAvDhLFlQOTDqHcXh35m/71g2A2WzQ==
3303
+ dependencies:
3304
+ glob "^7.1.1"
3305
+
3306
+ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
3307
+ version "4.2.2"
3308
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
3309
+ integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
3310
+
3311
+ growly@^1.3.0:
3312
+ version "1.3.0"
3313
+ resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
3314
+ integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
3315
+
3316
+ handle-thing@^2.0.0:
3317
+ version "2.0.0"
3318
+ resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
3319
+ integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
3320
+
3321
+ has-ansi@^2.0.0:
3322
+ version "2.0.0"
3323
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
3324
+ integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
3325
+ dependencies:
3326
+ ansi-regex "^2.0.0"
3327
+
3328
+ has-flag@^3.0.0:
3329
+ version "3.0.0"
3330
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
3331
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
3332
+
3333
+ has-symbols@^1.0.0:
3334
+ version "1.0.0"
3335
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
3336
+ integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
3337
+
3338
+ has-unicode@^2.0.0:
3339
+ version "2.0.1"
3340
+ resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
3341
+ integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
3342
+
3343
+ has-value@^0.3.1:
3344
+ version "0.3.1"
3345
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
3346
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
3347
+ dependencies:
3348
+ get-value "^2.0.3"
3349
+ has-values "^0.1.4"
3350
+ isobject "^2.0.0"
3351
+
3352
+ has-value@^1.0.0:
3353
+ version "1.0.0"
3354
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
3355
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
3356
+ dependencies:
3357
+ get-value "^2.0.6"
3358
+ has-values "^1.0.0"
3359
+ isobject "^3.0.0"
3360
+
3361
+ has-values@^0.1.4:
3362
+ version "0.1.4"
3363
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
3364
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
3365
+
3366
+ has-values@^1.0.0:
3367
+ version "1.0.0"
3368
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
3369
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
3370
+ dependencies:
3371
+ is-number "^3.0.0"
3372
+ kind-of "^4.0.0"
3373
+
3374
+ has@^1.0.0, has@^1.0.1, has@^1.0.3:
3375
+ version "1.0.3"
3376
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
3377
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
3378
+ dependencies:
3379
+ function-bind "^1.1.1"
3380
+
3381
+ hash-base@^3.0.0:
3382
+ version "3.0.4"
3383
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
3384
+ integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
3385
+ dependencies:
3386
+ inherits "^2.0.1"
3387
+ safe-buffer "^5.0.1"
3388
+
3389
+ hash-sum@^1.0.2:
3390
+ version "1.0.2"
3391
+ resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
3392
+ integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=
3393
+
3394
+ hash.js@^1.0.0, hash.js@^1.0.3:
3395
+ version "1.1.7"
3396
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
3397
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
3398
+ dependencies:
3399
+ inherits "^2.0.3"
3400
+ minimalistic-assert "^1.0.1"
3401
+
3402
+ he@1.2.x:
3403
+ version "1.2.0"
3404
+ resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
3405
+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
3406
+
3407
+ hex-color-regex@^1.1.0:
3408
+ version "1.1.0"
3409
+ resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
3410
+ integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
3411
+
3412
+ hmac-drbg@^1.0.0:
3413
+ version "1.0.1"
3414
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
3415
+ integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
3416
+ dependencies:
3417
+ hash.js "^1.0.3"
3418
+ minimalistic-assert "^1.0.0"
3419
+ minimalistic-crypto-utils "^1.0.1"
3420
+
3421
+ homedir-polyfill@^1.0.1:
3422
+ version "1.0.3"
3423
+ resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
3424
+ integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
3425
+ dependencies:
3426
+ parse-passwd "^1.0.0"
3427
+
3428
+ hpack.js@^2.1.6:
3429
+ version "2.1.6"
3430
+ resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
3431
+ integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
3432
+ dependencies:
3433
+ inherits "^2.0.1"
3434
+ obuf "^1.0.0"
3435
+ readable-stream "^2.0.1"
3436
+ wbuf "^1.1.0"
3437
+
3438
+ hsl-regex@^1.0.0:
3439
+ version "1.0.0"
3440
+ resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
3441
+ integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
3442
+
3443
+ hsla-regex@^1.0.0:
3444
+ version "1.0.0"
3445
+ resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
3446
+ integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
3447
+
3448
+ html-comment-regex@^1.1.0:
3449
+ version "1.1.2"
3450
+ resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
3451
+ integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
3452
+
3453
+ html-entities@^1.2.1:
3454
+ version "1.2.1"
3455
+ resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
3456
+ integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
3457
+
3458
+ html-loader@^0.5.5:
3459
+ version "0.5.5"
3460
+ resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea"
3461
+ integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==
3462
+ dependencies:
3463
+ es6-templates "^0.2.3"
3464
+ fastparse "^1.1.1"
3465
+ html-minifier "^3.5.8"
3466
+ loader-utils "^1.1.0"
3467
+ object-assign "^4.1.1"
3468
+
3469
+ html-minifier@^3.5.8:
3470
+ version "3.5.21"
3471
+ resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
3472
+ integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==
3473
+ dependencies:
3474
+ camel-case "3.0.x"
3475
+ clean-css "4.2.x"
3476
+ commander "2.17.x"
3477
+ he "1.2.x"
3478
+ param-case "2.1.x"
3479
+ relateurl "0.2.x"
3480
+ uglify-js "3.4.x"
3481
+
3482
+ http-auth@3.1.x:
3483
+ version "3.1.3"
3484
+ resolved "https://registry.yarnpkg.com/http-auth/-/http-auth-3.1.3.tgz#945cfadd66521eaf8f7c84913d377d7b15f24e31"
3485
+ integrity sha1-lFz63WZSHq+PfISRPTd9exXyTjE=
3486
+ dependencies:
3487
+ apache-crypt "^1.1.2"
3488
+ apache-md5 "^1.0.6"
3489
+ bcryptjs "^2.3.0"
3490
+ uuid "^3.0.0"
3491
+
3492
+ http-deceiver@^1.2.7:
3493
+ version "1.2.7"
3494
+ resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
3495
+ integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
3496
+
3497
+ http-errors@1.7.2:
3498
+ version "1.7.2"
3499
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
3500
+ integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
3501
+ dependencies:
3502
+ depd "~1.1.2"
3503
+ inherits "2.0.3"
3504
+ setprototypeof "1.1.1"
3505
+ statuses ">= 1.5.0 < 2"
3506
+ toidentifier "1.0.0"
3507
+
3508
+ http-errors@~1.6.2:
3509
+ version "1.6.3"
3510
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
3511
+ integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
3512
+ dependencies:
3513
+ depd "~1.1.2"
3514
+ inherits "2.0.3"
3515
+ setprototypeof "1.1.0"
3516
+ statuses ">= 1.4.0 < 2"
3517
+
3518
+ http-errors@~1.7.2:
3519
+ version "1.7.3"
3520
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
3521
+ integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
3522
+ dependencies:
3523
+ depd "~1.1.2"
3524
+ inherits "2.0.4"
3525
+ setprototypeof "1.1.1"
3526
+ statuses ">= 1.5.0 < 2"
3527
+ toidentifier "1.0.0"
3528
+
3529
+ "http-parser-js@>=0.4.0 <0.4.11":
3530
+ version "0.4.10"
3531
+ resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
3532
+ integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=
3533
+
3534
+ http-proxy-middleware@^0.19.1:
3535
+ version "0.19.1"
3536
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
3537
+ integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==
3538
+ dependencies:
3539
+ http-proxy "^1.17.0"
3540
+ is-glob "^4.0.0"
3541
+ lodash "^4.17.11"
3542
+ micromatch "^3.1.10"
3543
+
3544
+ http-proxy@^1.17.0:
3545
+ version "1.18.0"
3546
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a"
3547
+ integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==
3548
+ dependencies:
3549
+ eventemitter3 "^4.0.0"
3550
+ follow-redirects "^1.0.0"
3551
+ requires-port "^1.0.0"
3552
+
3553
+ https-browserify@^1.0.0:
3554
+ version "1.0.0"
3555
+ resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
3556
+ integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
3557
+
3558
+ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
3559
+ version "0.4.24"
3560
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
3561
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
3562
+ dependencies:
3563
+ safer-buffer ">= 2.1.2 < 3"
3564
+
3565
+ icss-replace-symbols@^1.1.0:
3566
+ version "1.1.0"
3567
+ resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
3568
+ integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
3569
+
3570
+ icss-utils@^2.1.0:
3571
+ version "2.1.0"
3572
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
3573
+ integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=
3574
+ dependencies:
3575
+ postcss "^6.0.1"
3576
+
3577
+ ieee754@^1.1.4:
3578
+ version "1.1.13"
3579
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
3580
+ integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
3581
+
3582
+ iferr@^0.1.5:
3583
+ version "0.1.5"
3584
+ resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
3585
+ integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
3586
+
3587
+ ignore-walk@^3.0.1:
3588
+ version "3.0.2"
3589
+ resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b"
3590
+ integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw==
3591
+ dependencies:
3592
+ minimatch "^3.0.4"
3593
+
3594
+ ignore@^3.3.5:
3595
+ version "3.3.10"
3596
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
3597
+ integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
3598
+
3599
+ ignore@^4.0.6:
3600
+ version "4.0.6"
3601
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
3602
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
3603
+
3604
+ imagemin@^6.0.0:
3605
+ version "6.1.0"
3606
+ resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-6.1.0.tgz#62508b465728fea36c03cdc07d915fe2d8cf9e13"
3607
+ integrity sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==
3608
+ dependencies:
3609
+ file-type "^10.7.0"
3610
+ globby "^8.0.1"
3611
+ make-dir "^1.0.0"
3612
+ p-pipe "^1.1.0"
3613
+ pify "^4.0.1"
3614
+ replace-ext "^1.0.0"
3615
+
3616
+ img-loader@^3.0.0:
3617
+ version "3.0.1"
3618
+ resolved "https://registry.yarnpkg.com/img-loader/-/img-loader-3.0.1.tgz#c279691c0a9e6b94fa7d8318d2a6596d98bcee78"
3619
+ integrity sha512-0jDJqexgzOuq3zlXwFTBKJlMcaP1uXyl5t4Qu6b1IgXb3IwBDjPfVylBC8vHFIIESDw/S+5QkBbtBrt4T8wESA==
3620
+ dependencies:
3621
+ loader-utils "^1.1.0"
3622
+
3623
+ import-cwd@^2.0.0:
3624
+ version "2.1.0"
3625
+ resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
3626
+ integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
3627
+ dependencies:
3628
+ import-from "^2.1.0"
3629
+
3630
+ import-fresh@^2.0.0:
3631
+ version "2.0.0"
3632
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
3633
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
3634
+ dependencies:
3635
+ caller-path "^2.0.0"
3636
+ resolve-from "^3.0.0"
3637
+
3638
+ import-fresh@^3.0.0:
3639
+ version "3.1.0"
3640
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118"
3641
+ integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==
3642
+ dependencies:
3643
+ parent-module "^1.0.0"
3644
+ resolve-from "^4.0.0"
3645
+
3646
+ import-from@^2.1.0:
3647
+ version "2.1.0"
3648
+ resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
3649
+ integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
3650
+ dependencies:
3651
+ resolve-from "^3.0.0"
3652
+
3653
+ import-local@2.0.0, import-local@^2.0.0:
3654
+ version "2.0.0"
3655
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
3656
+ integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
3657
+ dependencies:
3658
+ pkg-dir "^3.0.0"
3659
+ resolve-cwd "^2.0.0"
3660
+
3661
+ imurmurhash@^0.1.4:
3662
+ version "0.1.4"
3663
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
3664
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
3665
+
3666
+ indexes-of@^1.0.1:
3667
+ version "1.0.1"
3668
+ resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
3669
+ integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
3670
+
3671
+ infer-owner@^1.0.3:
3672
+ version "1.0.4"
3673
+ resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
3674
+ integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
3675
+
3676
+ inflight@^1.0.4:
3677
+ version "1.0.6"
3678
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
3679
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
3680
+ dependencies:
3681
+ once "^1.3.0"
3682
+ wrappy "1"
3683
+
3684
+ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
3685
+ version "2.0.4"
3686
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
3687
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
3688
+
3689
+ inherits@2.0.1:
3690
+ version "2.0.1"
3691
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
3692
+ integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
3693
+
3694
+ inherits@2.0.3:
3695
+ version "2.0.3"
3696
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
3697
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
3698
+
3699
+ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
3700
+ version "1.3.5"
3701
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
3702
+ integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
3703
+
3704
+ inquirer@^6.4.1:
3705
+ version "6.5.2"
3706
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
3707
+ integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
3708
+ dependencies:
3709
+ ansi-escapes "^3.2.0"
3710
+ chalk "^2.4.2"
3711
+ cli-cursor "^2.1.0"
3712
+ cli-width "^2.0.0"
3713
+ external-editor "^3.0.3"
3714
+ figures "^2.0.0"
3715
+ lodash "^4.17.12"
3716
+ mute-stream "0.0.7"
3717
+ run-async "^2.2.0"
3718
+ rxjs "^6.4.0"
3719
+ string-width "^2.1.0"
3720
+ strip-ansi "^5.1.0"
3721
+ through "^2.3.6"
3722
+
3723
+ internal-ip@^4.3.0:
3724
+ version "4.3.0"
3725
+ resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
3726
+ integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==
3727
+ dependencies:
3728
+ default-gateway "^4.2.0"
3729
+ ipaddr.js "^1.9.0"
3730
+
3731
+ interpret@1.2.0:
3732
+ version "1.2.0"
3733
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
3734
+ integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
3735
+
3736
+ invariant@^2.2.2:
3737
+ version "2.2.4"
3738
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
3739
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
3740
+ dependencies:
3741
+ loose-envify "^1.0.0"
3742
+
3743
+ invert-kv@^2.0.0:
3744
+ version "2.0.0"
3745
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
3746
+ integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
3747
+
3748
+ ip-regex@^2.1.0:
3749
+ version "2.1.0"
3750
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
3751
+ integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
3752
+
3753
+ ip@^1.1.0, ip@^1.1.5:
3754
+ version "1.1.5"
3755
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
3756
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
3757
+
3758
+ ipaddr.js@1.9.0:
3759
+ version "1.9.0"
3760
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
3761
+ integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==
3762
+
3763
+ ipaddr.js@^1.9.0:
3764
+ version "1.9.1"
3765
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
3766
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
3767
+
3768
+ is-absolute-url@^2.0.0:
3769
+ version "2.1.0"
3770
+ resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
3771
+ integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
3772
+
3773
+ is-absolute-url@^3.0.2:
3774
+ version "3.0.2"
3775
+ resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.2.tgz#554f2933e7385cc46e94351977ca2081170a206e"
3776
+ integrity sha512-+5g/wLlcm1AcxSP7014m6GvbPHswDx980vD/3bZaap8aGV9Yfs7Q6y6tfaupgZ5O74Byzc8dGrSCJ+bFXx0KdA==
3777
+
3778
+ is-accessor-descriptor@^0.1.6:
3779
+ version "0.1.6"
3780
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
3781
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
3782
+ dependencies:
3783
+ kind-of "^3.0.2"
3784
+
3785
+ is-accessor-descriptor@^1.0.0:
3786
+ version "1.0.0"
3787
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
3788
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
3789
+ dependencies:
3790
+ kind-of "^6.0.0"
3791
+
3792
+ is-arguments@^1.0.4:
3793
+ version "1.0.4"
3794
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
3795
+ integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
3796
+
3797
+ is-arrayish@^0.2.1:
3798
+ version "0.2.1"
3799
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
3800
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
3801
+
3802
+ is-arrayish@^0.3.1:
3803
+ version "0.3.2"
3804
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
3805
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
3806
+
3807
+ is-binary-path@^1.0.0:
3808
+ version "1.0.1"
3809
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
3810
+ integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
3811
+ dependencies:
3812
+ binary-extensions "^1.0.0"
3813
+
3814
+ is-buffer@^1.1.5, is-buffer@~1.1.1:
3815
+ version "1.1.6"
3816
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
3817
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
3818
+
3819
+ is-callable@^1.1.4:
3820
+ version "1.1.4"
3821
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
3822
+ integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
3823
+
3824
+ is-color-stop@^1.0.0:
3825
+ version "1.1.0"
3826
+ resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
3827
+ integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
3828
+ dependencies:
3829
+ css-color-names "^0.0.4"
3830
+ hex-color-regex "^1.1.0"
3831
+ hsl-regex "^1.0.0"
3832
+ hsla-regex "^1.0.0"
3833
+ rgb-regex "^1.0.1"
3834
+ rgba-regex "^1.0.0"
3835
+
3836
+ is-data-descriptor@^0.1.4:
3837
+ version "0.1.4"
3838
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
3839
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
3840
+ dependencies:
3841
+ kind-of "^3.0.2"
3842
+
3843
+ is-data-descriptor@^1.0.0:
3844
+ version "1.0.0"
3845
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
3846
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
3847
+ dependencies:
3848
+ kind-of "^6.0.0"
3849
+
3850
+ is-date-object@^1.0.1:
3851
+ version "1.0.1"
3852
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
3853
+ integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
3854
+
3855
+ is-descriptor@^0.1.0:
3856
+ version "0.1.6"
3857
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
3858
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
3859
+ dependencies:
3860
+ is-accessor-descriptor "^0.1.6"
3861
+ is-data-descriptor "^0.1.4"
3862
+ kind-of "^5.0.0"
3863
+
3864
+ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
3865
+ version "1.0.2"
3866
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
3867
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
3868
+ dependencies:
3869
+ is-accessor-descriptor "^1.0.0"
3870
+ is-data-descriptor "^1.0.0"
3871
+ kind-of "^6.0.2"
3872
+
3873
+ is-directory@^0.3.1:
3874
+ version "0.3.1"
3875
+ resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
3876
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
3877
+
3878
+ is-extendable@^0.1.0, is-extendable@^0.1.1:
3879
+ version "0.1.1"
3880
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
3881
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
3882
+
3883
+ is-extendable@^1.0.0, is-extendable@^1.0.1:
3884
+ version "1.0.1"
3885
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
3886
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
3887
+ dependencies:
3888
+ is-plain-object "^2.0.4"
3889
+
3890
+ is-extglob@^2.1.0, is-extglob@^2.1.1:
3891
+ version "2.1.1"
3892
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
3893
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
3894
+
3895
+ is-fullwidth-code-point@^1.0.0:
3896
+ version "1.0.0"
3897
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
3898
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
3899
+ dependencies:
3900
+ number-is-nan "^1.0.0"
3901
+
3902
+ is-fullwidth-code-point@^2.0.0:
3903
+ version "2.0.0"
3904
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
3905
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
3906
+
3907
+ is-glob@^3.1.0:
3908
+ version "3.1.0"
3909
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
3910
+ integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
3911
+ dependencies:
3912
+ is-extglob "^2.1.0"
3913
+
3914
+ is-glob@^4.0.0, is-glob@^4.0.1:
3915
+ version "4.0.1"
3916
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
3917
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
3918
+ dependencies:
3919
+ is-extglob "^2.1.1"
3920
+
3921
+ is-number@^3.0.0:
3922
+ version "3.0.0"
3923
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
3924
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
3925
+ dependencies:
3926
+ kind-of "^3.0.2"
3927
+
3928
+ is-obj@^1.0.0:
3929
+ version "1.0.1"
3930
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
3931
+ integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
3932
+
3933
+ is-path-cwd@^2.0.0:
3934
+ version "2.2.0"
3935
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
3936
+ integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
3937
+
3938
+ is-path-in-cwd@^2.0.0:
3939
+ version "2.1.0"
3940
+ resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
3941
+ integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
3942
+ dependencies:
3943
+ is-path-inside "^2.1.0"
3944
+
3945
+ is-path-inside@^2.1.0:
3946
+ version "2.1.0"
3947
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
3948
+ integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
3949
+ dependencies:
3950
+ path-is-inside "^1.0.2"
3951
+
3952
+ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
3953
+ version "2.0.4"
3954
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
3955
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
3956
+ dependencies:
3957
+ isobject "^3.0.1"
3958
+
3959
+ is-promise@^2.1.0:
3960
+ version "2.1.0"
3961
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
3962
+ integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
3963
+
3964
+ is-regex@^1.0.4:
3965
+ version "1.0.4"
3966
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
3967
+ integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
3968
+ dependencies:
3969
+ has "^1.0.1"
3970
+
3971
+ is-resolvable@^1.0.0:
3972
+ version "1.1.0"
3973
+ resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
3974
+ integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
3975
+
3976
+ is-stream@^1.1.0:
3977
+ version "1.1.0"
3978
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
3979
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
3980
+
3981
+ is-svg@^3.0.0:
3982
+ version "3.0.0"
3983
+ resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
3984
+ integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
3985
+ dependencies:
3986
+ html-comment-regex "^1.1.0"
3987
+
3988
+ is-symbol@^1.0.2:
3989
+ version "1.0.2"
3990
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
3991
+ integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
3992
+ dependencies:
3993
+ has-symbols "^1.0.0"
3994
+
3995
+ is-windows@^1.0.1, is-windows@^1.0.2:
3996
+ version "1.0.2"
3997
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
3998
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
3999
+
4000
+ is-wsl@^1.1.0:
4001
+ version "1.1.0"
4002
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
4003
+ integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
4004
+
4005
+ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
4006
+ version "1.0.0"
4007
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
4008
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
4009
+
4010
+ isexe@^2.0.0:
4011
+ version "2.0.0"
4012
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
4013
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
4014
+
4015
+ isobject@^2.0.0:
4016
+ version "2.1.0"
4017
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
4018
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
4019
+ dependencies:
4020
+ isarray "1.0.0"
4021
+
4022
+ isobject@^3.0.0, isobject@^3.0.1:
4023
+ version "3.0.1"
4024
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
4025
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
4026
+
4027
+ js-levenshtein@^1.1.3:
4028
+ version "1.1.6"
4029
+ resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
4030
+ integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==
4031
+
4032
+ "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
4033
+ version "4.0.0"
4034
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
4035
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
4036
+
4037
+ js-tokens@^3.0.2:
4038
+ version "3.0.2"
4039
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
4040
+ integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
4041
+
4042
+ js-yaml@^3.13.1:
4043
+ version "3.13.1"
4044
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
4045
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
4046
+ dependencies:
4047
+ argparse "^1.0.7"
4048
+ esprima "^4.0.0"
4049
+
4050
+ jsdoctypeparser@5.0.1:
4051
+ version "5.0.1"
4052
+ resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-5.0.1.tgz#0d6bc09bb8bebeca5a588fcd508228d2189409a3"
4053
+ integrity sha512-dYwcK6TKzvq+ZKtbp4sbQSW9JMo6s+4YFfUs5D/K7bZsn3s1NhEhZ+jmIPzby0HbkbECBe+hNPEa6a+E21o94w==
4054
+
4055
+ jsesc@^2.5.1:
4056
+ version "2.5.2"
4057
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
4058
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
4059
+
4060
+ jsesc@~0.5.0:
4061
+ version "0.5.0"
4062
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
4063
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
4064
+
4065
+ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
4066
+ version "1.0.2"
4067
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
4068
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
4069
+
4070
+ json-schema-traverse@^0.4.1:
4071
+ version "0.4.1"
4072
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
4073
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
4074
+
4075
+ json-stable-stringify-without-jsonify@^1.0.1:
4076
+ version "1.0.1"
4077
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
4078
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
4079
+
4080
+ json3@^3.3.2:
4081
+ version "3.3.3"
4082
+ resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
4083
+ integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
4084
+
4085
+ json5@^1.0.1:
4086
+ version "1.0.1"
4087
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
4088
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
4089
+ dependencies:
4090
+ minimist "^1.2.0"
4091
+
4092
+ json5@^2.1.0:
4093
+ version "2.1.0"
4094
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
4095
+ integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
4096
+ dependencies:
4097
+ minimist "^1.2.0"
4098
+
4099
+ jsonfile@^4.0.0:
4100
+ version "4.0.0"
4101
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
4102
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
4103
+ optionalDependencies:
4104
+ graceful-fs "^4.1.6"
4105
+
4106
+ jsx-ast-utils@^2.2.1:
4107
+ version "2.2.1"
4108
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb"
4109
+ integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==
4110
+ dependencies:
4111
+ array-includes "^3.0.3"
4112
+ object.assign "^4.1.0"
4113
+
4114
+ killable@^1.0.1:
4115
+ version "1.0.1"
4116
+ resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
4117
+ integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
4118
+
4119
+ kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
4120
+ version "3.2.2"
4121
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
4122
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
4123
+ dependencies:
4124
+ is-buffer "^1.1.5"
4125
+
4126
+ kind-of@^4.0.0:
4127
+ version "4.0.0"
4128
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
4129
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
4130
+ dependencies:
4131
+ is-buffer "^1.1.5"
4132
+
4133
+ kind-of@^5.0.0:
4134
+ version "5.1.0"
4135
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
4136
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
4137
+
4138
+ kind-of@^6.0.0, kind-of@^6.0.2:
4139
+ version "6.0.2"
4140
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
4141
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
4142
+
4143
+ laravel-mix@^4.0.16:
4144
+ version "4.1.4"
4145
+ resolved "https://registry.yarnpkg.com/laravel-mix/-/laravel-mix-4.1.4.tgz#3260b89a2a85ff5e21c7f9db860a5086cbf75dca"
4146
+ integrity sha512-fpFNpPyYAdeZ5mozlKbHpw+tCiRFUCCdSsK/D2+yYhlyIEbzPcAe4ar5cjeT33TnDNiKXSS42cB58yUSW5Y5tg==
4147
+ dependencies:
4148
+ "@babel/core" "^7.2.0"
4149
+ "@babel/plugin-proposal-object-rest-spread" "^7.2.0"
4150
+ "@babel/plugin-syntax-dynamic-import" "^7.2.0"
4151
+ "@babel/plugin-transform-runtime" "^7.2.0"
4152
+ "@babel/preset-env" "^7.2.0"
4153
+ "@babel/runtime" "^7.2.0"
4154
+ autoprefixer "^9.4.2"
4155
+ babel-loader "^8.0.4"
4156
+ babel-merge "^2.0.1"
4157
+ chokidar "^2.0.3"
4158
+ clean-css "^4.1.3"
4159
+ collect.js "^4.12.8"
4160
+ concatenate "0.0.2"
4161
+ css-loader "^1.0.1"
4162
+ dotenv "^6.2.0"
4163
+ dotenv-expand "^4.2.0"
4164
+ extract-text-webpack-plugin v4.0.0-beta.0
4165
+ file-loader "^2.0.0"
4166
+ friendly-errors-webpack-plugin "^1.6.1"
4167
+ fs-extra "^7.0.1"
4168
+ glob "^7.1.2"
4169
+ html-loader "^0.5.5"
4170
+ imagemin "^6.0.0"
4171
+ img-loader "^3.0.0"
4172
+ lodash "^4.17.15"
4173
+ md5 "^2.2.1"
4174
+ optimize-css-assets-webpack-plugin "^5.0.1"
4175
+ postcss-loader "^3.0.0"
4176
+ style-loader "^0.23.1"
4177
+ terser "^3.11.0"
4178
+ terser-webpack-plugin "^1.2.2"
4179
+ vue-loader "^15.4.2"
4180
+ webpack "^4.27.1"
4181
+ webpack-cli "^3.1.2"
4182
+ webpack-dev-server "^3.1.14"
4183
+ webpack-merge "^4.1.0"
4184
+ webpack-notifier "^1.5.1"
4185
+ yargs "^12.0.5"
4186
+
4187
+ last-call-webpack-plugin@^3.0.0:
4188
+ version "3.0.0"
4189
+ resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555"
4190
+ integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==
4191
+ dependencies:
4192
+ lodash "^4.17.5"
4193
+ webpack-sources "^1.1.0"
4194
+
4195
+ lcid@^2.0.0:
4196
+ version "2.0.0"
4197
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
4198
+ integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
4199
+ dependencies:
4200
+ invert-kv "^2.0.0"
4201
+
4202
+ levn@^0.3.0, levn@~0.3.0:
4203
+ version "0.3.0"
4204
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
4205
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
4206
+ dependencies:
4207
+ prelude-ls "~1.1.2"
4208
+ type-check "~0.3.2"
4209
+
4210
+ live-server@^1.2.1:
4211
+ version "1.2.1"
4212
+ resolved "https://registry.yarnpkg.com/live-server/-/live-server-1.2.1.tgz#670630dd409d22fe9c513ab1c1894686c757153e"
4213
+ integrity sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==
4214
+ dependencies:
4215
+ chokidar "^2.0.4"
4216
+ colors latest
4217
+ connect "^3.6.6"
4218
+ cors latest
4219
+ event-stream "3.3.4"
4220
+ faye-websocket "0.11.x"
4221
+ http-auth "3.1.x"
4222
+ morgan "^1.9.1"
4223
+ object-assign latest
4224
+ opn latest
4225
+ proxy-middleware latest
4226
+ send latest
4227
+ serve-index "^1.9.1"
4228
+
4229
+ loader-runner@^2.4.0:
4230
+ version "2.4.0"
4231
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
4232
+ integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
4233
+
4234
+ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
4235
+ version "1.2.3"
4236
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
4237
+ integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
4238
+ dependencies:
4239
+ big.js "^5.2.2"
4240
+ emojis-list "^2.0.0"
4241
+ json5 "^1.0.1"
4242
+
4243
+ locate-path@^3.0.0:
4244
+ version "3.0.0"
4245
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
4246
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
4247
+ dependencies:
4248
+ p-locate "^3.0.0"
4249
+ path-exists "^3.0.0"
4250
+
4251
+ lodash.memoize@^4.1.2:
4252
+ version "4.1.2"
4253
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
4254
+ integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
4255
+
4256
+ lodash.unescape@4.0.1:
4257
+ version "4.0.1"
4258
+ resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
4259
+ integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
4260
+
4261
+ lodash.uniq@^4.5.0:
4262
+ version "4.5.0"
4263
+ resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
4264
+ integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
4265
+
4266
+ lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5:
4267
+ version "4.17.15"
4268
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
4269
+ integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
4270
+
4271
+ loglevel@^1.6.4:
4272
+ version "1.6.4"
4273
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56"
4274
+ integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==
4275
+
4276
+ loose-envify@^1.0.0, loose-envify@^1.4.0:
4277
+ version "1.4.0"
4278
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
4279
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
4280
+ dependencies:
4281
+ js-tokens "^3.0.0 || ^4.0.0"
4282
+
4283
+ lower-case@^1.1.1:
4284
+ version "1.1.4"
4285
+ resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
4286
+ integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
4287
+
4288
+ lru-cache@^4.1.2:
4289
+ version "4.1.5"
4290
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
4291
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
4292
+ dependencies:
4293
+ pseudomap "^1.0.2"
4294
+ yallist "^2.1.2"
4295
+
4296
+ lru-cache@^5.1.1:
4297
+ version "5.1.1"
4298
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
4299
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
4300
+ dependencies:
4301
+ yallist "^3.0.2"
4302
+
4303
+ make-dir@^1.0.0:
4304
+ version "1.3.0"
4305
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
4306
+ integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
4307
+ dependencies:
4308
+ pify "^3.0.0"
4309
+
4310
+ make-dir@^2.0.0:
4311
+ version "2.1.0"
4312
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
4313
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
4314
+ dependencies:
4315
+ pify "^4.0.1"
4316
+ semver "^5.6.0"
4317
+
4318
+ mamacro@^0.0.3:
4319
+ version "0.0.3"
4320
+ resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
4321
+ integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
4322
+
4323
+ map-age-cleaner@^0.1.1:
4324
+ version "0.1.3"
4325
+ resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
4326
+ integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
4327
+ dependencies:
4328
+ p-defer "^1.0.0"
4329
+
4330
+ map-cache@^0.2.2:
4331
+ version "0.2.2"
4332
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
4333
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
4334
+
4335
+ map-stream@~0.1.0:
4336
+ version "0.1.0"
4337
+ resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
4338
+ integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=
4339
+
4340
+ map-visit@^1.0.0:
4341
+ version "1.0.0"
4342
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
4343
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
4344
+ dependencies:
4345
+ object-visit "^1.0.0"
4346
+
4347
+ matched@^4.0.0:
4348
+ version "4.0.0"
4349
+ resolved "https://registry.yarnpkg.com/matched/-/matched-4.0.0.tgz#826f35f6751ec9fc7e655fd12e8c672bde9ee79b"
4350
+ integrity sha512-mD08ireECeLL/CCgum8EeLx/SZiAmhbbt4FPlCZ4GG2xKBJ/yB8qn0uvuvouQzCORknElll2jSNVdtCWNQdR2g==
4351
+ dependencies:
4352
+ glob "^7.1.3"
4353
+ picomatch "^2.0.5"
4354
+
4355
+ md5.js@^1.3.4:
4356
+ version "1.3.5"
4357
+ resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
4358
+ integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
4359
+ dependencies:
4360
+ hash-base "^3.0.0"
4361
+ inherits "^2.0.1"
4362
+ safe-buffer "^5.1.2"
4363
+
4364
+ md5@^2.2.1:
4365
+ version "2.2.1"
4366
+ resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
4367
+ integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
4368
+ dependencies:
4369
+ charenc "~0.0.1"
4370
+ crypt "~0.0.1"
4371
+ is-buffer "~1.1.1"
4372
+
4373
+ mdn-data@2.0.4:
4374
+ version "2.0.4"
4375
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
4376
+ integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
4377
+
4378
+ mdn-data@~1.1.0:
4379
+ version "1.1.4"
4380
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
4381
+ integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==
4382
+
4383
+ media-typer@0.3.0:
4384
+ version "0.3.0"
4385
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
4386
+ integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
4387
+
4388
+ mem@^4.0.0:
4389
+ version "4.3.0"
4390
+ resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
4391
+ integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
4392
+ dependencies:
4393
+ map-age-cleaner "^0.1.1"
4394
+ mimic-fn "^2.0.0"
4395
+ p-is-promise "^2.0.0"
4396
+
4397
+ memory-fs@^0.4.0, memory-fs@^0.4.1:
4398
+ version "0.4.1"
4399
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
4400
+ integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
4401
+ dependencies:
4402
+ errno "^0.1.3"
4403
+ readable-stream "^2.0.1"
4404
+
4405
+ merge-descriptors@1.0.1:
4406
+ version "1.0.1"
4407
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
4408
+ integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
4409
+
4410
+ merge-source-map@^1.1.0:
4411
+ version "1.1.0"
4412
+ resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
4413
+ integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
4414
+ dependencies:
4415
+ source-map "^0.6.1"
4416
+
4417
+ merge2@^1.2.3:
4418
+ version "1.3.0"
4419
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
4420
+ integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==
4421
+
4422
+ methods@~1.1.2:
4423
+ version "1.1.2"
4424
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
4425
+ integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
4426
+
4427
+ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
4428
+ version "3.1.10"
4429
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
4430
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
4431
+ dependencies:
4432
+ arr-diff "^4.0.0"
4433
+ array-unique "^0.3.2"
4434
+ braces "^2.3.1"
4435
+ define-property "^2.0.2"
4436
+ extend-shallow "^3.0.2"
4437
+ extglob "^2.0.4"
4438
+ fragment-cache "^0.2.1"
4439
+ kind-of "^6.0.2"
4440
+ nanomatch "^1.2.9"
4441
+ object.pick "^1.3.0"
4442
+ regex-not "^1.0.0"
4443
+ snapdragon "^0.8.1"
4444
+ to-regex "^3.0.2"
4445
+
4446
+ miller-rabin@^4.0.0:
4447
+ version "4.0.1"
4448
+ resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
4449
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
4450
+ dependencies:
4451
+ bn.js "^4.0.0"
4452
+ brorand "^1.0.1"
4453
+
4454
+ mime-db@1.40.0:
4455
+ version "1.40.0"
4456
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
4457
+ integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
4458
+
4459
+ "mime-db@>= 1.40.0 < 2":
4460
+ version "1.41.0"
4461
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0"
4462
+ integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw==
4463
+
4464
+ mime-types@~2.1.17, mime-types@~2.1.24:
4465
+ version "2.1.24"
4466
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
4467
+ integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
4468
+ dependencies:
4469
+ mime-db "1.40.0"
4470
+
4471
+ mime@1.6.0:
4472
+ version "1.6.0"
4473
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
4474
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
4475
+
4476
+ mime@^2.4.4:
4477
+ version "2.4.4"
4478
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
4479
+ integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
4480
+
4481
+ mimic-fn@^1.0.0:
4482
+ version "1.2.0"
4483
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
4484
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
4485
+
4486
+ mimic-fn@^2.0.0:
4487
+ version "2.1.0"
4488
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
4489
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
4490
+
4491
+ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
4492
+ version "1.0.1"
4493
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
4494
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
4495
+
4496
+ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
4497
+ version "1.0.1"
4498
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
4499
+ integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
4500
+
4501
+ minimatch@^3.0.4:
4502
+ version "3.0.4"
4503
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
4504
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
4505
+ dependencies:
4506
+ brace-expansion "^1.1.7"
4507
+
4508
+ minimist@0.0.8:
4509
+ version "0.0.8"
4510
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
4511
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
4512
+
4513
+ minimist@^1.2.0:
4514
+ version "1.2.0"
4515
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
4516
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
4517
+
4518
+ minipass@^2.2.1, minipass@^2.6.0, minipass@^2.8.6:
4519
+ version "2.8.6"
4520
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.8.6.tgz#620d889ace26356391d010ecb9458749df9b6db5"
4521
+ integrity sha512-lFG7d6g3+/UaFDCOtqPiKAC9zngWWsQZl1g5q6gaONqrjq61SX2xFqXMleQiFVyDpYwa018E9hmlAFY22PCb+A==
4522
+ dependencies:
4523
+ safe-buffer "^5.1.2"
4524
+ yallist "^3.0.0"
4525
+
4526
+ minizlib@^1.2.1:
4527
+ version "1.2.2"
4528
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.2.tgz#6f0ccc82fa53e1bf2ff145f220d2da9fa6e3a166"
4529
+ integrity sha512-hR3At21uSrsjjDTWrbu0IMLTpnkpv8IIMFDFaoz43Tmu4LkmAXfH44vNNzpTnf+OAQQCHrb91y/wc2J4x5XgSQ==
4530
+ dependencies:
4531
+ minipass "^2.2.1"
4532
+
4533
+ mississippi@^3.0.0:
4534
+ version "3.0.0"
4535
+ resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
4536
+ integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
4537
+ dependencies:
4538
+ concat-stream "^1.5.0"
4539
+ duplexify "^3.4.2"
4540
+ end-of-stream "^1.1.0"
4541
+ flush-write-stream "^1.0.0"
4542
+ from2 "^2.1.0"
4543
+ parallel-transform "^1.1.0"
4544
+ pump "^3.0.0"
4545
+ pumpify "^1.3.3"
4546
+ stream-each "^1.1.0"
4547
+ through2 "^2.0.0"
4548
+
4549
+ mixin-deep@^1.2.0:
4550
+ version "1.3.2"
4551
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
4552
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
4553
+ dependencies:
4554
+ for-in "^1.0.2"
4555
+ is-extendable "^1.0.1"
4556
+
4557
+ mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
4558
+ version "0.5.1"
4559
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
4560
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
4561
+ dependencies:
4562
+ minimist "0.0.8"
4563
+
4564
+ morgan@^1.9.1:
4565
+ version "1.9.1"
4566
+ resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
4567
+ integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==
4568
+ dependencies:
4569
+ basic-auth "~2.0.0"
4570
+ debug "2.6.9"
4571
+ depd "~1.1.2"
4572
+ on-finished "~2.3.0"
4573
+ on-headers "~1.0.1"
4574
+
4575
+ move-concurrently@^1.0.1:
4576
+ version "1.0.1"
4577
+ resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
4578
+ integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
4579
+ dependencies:
4580
+ aproba "^1.1.1"
4581
+ copy-concurrently "^1.0.0"
4582
+ fs-write-stream-atomic "^1.0.8"
4583
+ mkdirp "^0.5.1"
4584
+ rimraf "^2.5.4"
4585
+ run-queue "^1.0.3"
4586
+
4587
+ ms@2.0.0:
4588
+ version "2.0.0"
4589
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
4590
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
4591
+
4592
+ ms@2.1.1:
4593
+ version "2.1.1"
4594
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
4595
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
4596
+
4597
+ ms@^2.1.1:
4598
+ version "2.1.2"
4599
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
4600
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
4601
+
4602
+ multicast-dns-service-types@^1.1.0:
4603
+ version "1.1.0"
4604
+ resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
4605
+ integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
4606
+
4607
+ multicast-dns@^6.0.1:
4608
+ version "6.2.3"
4609
+ resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
4610
+ integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
4611
+ dependencies:
4612
+ dns-packet "^1.3.1"
4613
+ thunky "^1.0.2"
4614
+
4615
+ mute-stream@0.0.7:
4616
+ version "0.0.7"
4617
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
4618
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
4619
+
4620
+ nan@^2.12.1:
4621
+ version "2.14.0"
4622
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
4623
+ integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
4624
+
4625
+ nanomatch@^1.2.9:
4626
+ version "1.2.13"
4627
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
4628
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
4629
+ dependencies:
4630
+ arr-diff "^4.0.0"
4631
+ array-unique "^0.3.2"
4632
+ define-property "^2.0.2"
4633
+ extend-shallow "^3.0.2"
4634
+ fragment-cache "^0.2.1"
4635
+ is-windows "^1.0.2"
4636
+ kind-of "^6.0.2"
4637
+ object.pick "^1.3.0"
4638
+ regex-not "^1.0.0"
4639
+ snapdragon "^0.8.1"
4640
+ to-regex "^3.0.1"
4641
+
4642
+ natural-compare@^1.4.0:
4643
+ version "1.4.0"
4644
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
4645
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
4646
+
4647
+ needle@^2.2.1:
4648
+ version "2.4.0"
4649
+ resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
4650
+ integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
4651
+ dependencies:
4652
+ debug "^3.2.6"
4653
+ iconv-lite "^0.4.4"
4654
+ sax "^1.2.4"
4655
+
4656
+ negotiator@0.6.2:
4657
+ version "0.6.2"
4658
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
4659
+ integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
4660
+
4661
+ neo-async@^2.5.0, neo-async@^2.6.1:
4662
+ version "2.6.1"
4663
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
4664
+ integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
4665
+
4666
+ nice-try@^1.0.4:
4667
+ version "1.0.5"
4668
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
4669
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
4670
+
4671
+ no-case@^2.2.0:
4672
+ version "2.3.2"
4673
+ resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
4674
+ integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
4675
+ dependencies:
4676
+ lower-case "^1.1.1"
4677
+
4678
+ node-forge@0.8.2:
4679
+ version "0.8.2"
4680
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz#b4bcc59fb12ce77a8825fc6a783dfe3182499c5a"
4681
+ integrity sha512-mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg==
4682
+
4683
+ node-libs-browser@^2.2.1:
4684
+ version "2.2.1"
4685
+ resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
4686
+ integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
4687
+ dependencies:
4688
+ assert "^1.1.1"
4689
+ browserify-zlib "^0.2.0"
4690
+ buffer "^4.3.0"
4691
+ console-browserify "^1.1.0"
4692
+ constants-browserify "^1.0.0"
4693
+ crypto-browserify "^3.11.0"
4694
+ domain-browser "^1.1.1"
4695
+ events "^3.0.0"
4696
+ https-browserify "^1.0.0"
4697
+ os-browserify "^0.3.0"
4698
+ path-browserify "0.0.1"
4699
+ process "^0.11.10"
4700
+ punycode "^1.2.4"
4701
+ querystring-es3 "^0.2.0"
4702
+ readable-stream "^2.3.3"
4703
+ stream-browserify "^2.0.1"
4704
+ stream-http "^2.7.2"
4705
+ string_decoder "^1.0.0"
4706
+ timers-browserify "^2.0.4"
4707
+ tty-browserify "0.0.0"
4708
+ url "^0.11.0"
4709
+ util "^0.11.0"
4710
+ vm-browserify "^1.0.1"
4711
+
4712
+ node-notifier@^5.1.2:
4713
+ version "5.4.3"
4714
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50"
4715
+ integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==
4716
+ dependencies:
4717
+ growly "^1.3.0"
4718
+ is-wsl "^1.1.0"
4719
+ semver "^5.5.0"
4720
+ shellwords "^0.1.1"
4721
+ which "^1.3.0"
4722
+
4723
+ node-pre-gyp@^0.12.0:
4724
+ version "0.12.0"
4725
+ resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
4726
+ integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
4727
+ dependencies:
4728
+ detect-libc "^1.0.2"
4729
+ mkdirp "^0.5.1"
4730
+ needle "^2.2.1"
4731
+ nopt "^4.0.1"
4732
+ npm-packlist "^1.1.6"
4733
+ npmlog "^4.0.2"
4734
+ rc "^1.2.7"
4735
+ rimraf "^2.6.1"
4736
+ semver "^5.3.0"
4737
+ tar "^4"
4738
+
4739
+ node-releases@^1.1.29:
4740
+ version "1.1.32"
4741
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.32.tgz#485b35c1bf9b4d8baa105d782f8ca731e518276e"
4742
+ integrity sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A==
4743
+ dependencies:
4744
+ semver "^5.3.0"
4745
+
4746
+ nopt@^4.0.1:
4747
+ version "4.0.1"
4748
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
4749
+ integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
4750
+ dependencies:
4751
+ abbrev "1"
4752
+ osenv "^0.1.4"
4753
+
4754
+ normalize-path@^2.1.1:
4755
+ version "2.1.1"
4756
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
4757
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
4758
+ dependencies:
4759
+ remove-trailing-separator "^1.0.1"
4760
+
4761
+ normalize-path@^3.0.0:
4762
+ version "3.0.0"
4763
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
4764
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
4765
+
4766
+ normalize-range@^0.1.2:
4767
+ version "0.1.2"
4768
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
4769
+ integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
4770
+
4771
+ normalize-url@^3.0.0:
4772
+ version "3.3.0"
4773
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
4774
+ integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
4775
+
4776
+ npm-bundled@^1.0.1:
4777
+ version "1.0.6"
4778
+ resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
4779
+ integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
4780
+
4781
+ npm-packlist@^1.1.6:
4782
+ version "1.4.4"
4783
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44"
4784
+ integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==
4785
+ dependencies:
4786
+ ignore-walk "^3.0.1"
4787
+ npm-bundled "^1.0.1"
4788
+
4789
+ npm-run-path@^2.0.0:
4790
+ version "2.0.2"
4791
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
4792
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
4793
+ dependencies:
4794
+ path-key "^2.0.0"
4795
+
4796
+ npmlog@^4.0.2:
4797
+ version "4.1.2"
4798
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
4799
+ integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
4800
+ dependencies:
4801
+ are-we-there-yet "~1.1.2"
4802
+ console-control-strings "~1.1.0"
4803
+ gauge "~2.7.3"
4804
+ set-blocking "~2.0.0"
4805
+
4806
+ nth-check@^1.0.2:
4807
+ version "1.0.2"
4808
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
4809
+ integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
4810
+ dependencies:
4811
+ boolbase "~1.0.0"
4812
+
4813
+ num2fraction@^1.2.2:
4814
+ version "1.2.2"
4815
+ resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
4816
+ integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
4817
+
4818
+ number-is-nan@^1.0.0:
4819
+ version "1.0.1"
4820
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
4821
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
4822
+
4823
+ object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1, object-assign@latest:
4824
+ version "4.1.1"
4825
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
4826
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
4827
+
4828
+ object-copy@^0.1.0:
4829
+ version "0.1.0"
4830
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
4831
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
4832
+ dependencies:
4833
+ copy-descriptor "^0.1.0"
4834
+ define-property "^0.2.5"
4835
+ kind-of "^3.0.3"
4836
+
4837
+ object-inspect@^1.6.0:
4838
+ version "1.6.0"
4839
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
4840
+ integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==
4841
+
4842
+ object-is@^1.0.1:
4843
+ version "1.0.1"
4844
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
4845
+ integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=
4846
+
4847
+ object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
4848
+ version "1.1.1"
4849
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
4850
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
4851
+
4852
+ object-visit@^1.0.0:
4853
+ version "1.0.1"
4854
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
4855
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
4856
+ dependencies:
4857
+ isobject "^3.0.0"
4858
+
4859
+ object.assign@^4.1.0:
4860
+ version "4.1.0"
4861
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
4862
+ integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
4863
+ dependencies:
4864
+ define-properties "^1.1.2"
4865
+ function-bind "^1.1.1"
4866
+ has-symbols "^1.0.0"
4867
+ object-keys "^1.0.11"
4868
+
4869
+ object.entries-ponyfill@^1.0.1:
4870
+ version "1.0.1"
4871
+ resolved "https://registry.yarnpkg.com/object.entries-ponyfill/-/object.entries-ponyfill-1.0.1.tgz#29abdf77cbfbd26566dd1aa24e9d88f65433d256"
4872
+ integrity sha1-Kavfd8v70mVm3RqiTp2I9lQz0lY=
4873
+
4874
+ object.entries@^1.1.0:
4875
+ version "1.1.0"
4876
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
4877
+ integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==
4878
+ dependencies:
4879
+ define-properties "^1.1.3"
4880
+ es-abstract "^1.12.0"
4881
+ function-bind "^1.1.1"
4882
+ has "^1.0.3"
4883
+
4884
+ object.fromentries@^2.0.0:
4885
+ version "2.0.0"
4886
+ resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
4887
+ integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
4888
+ dependencies:
4889
+ define-properties "^1.1.2"
4890
+ es-abstract "^1.11.0"
4891
+ function-bind "^1.1.1"
4892
+ has "^1.0.1"
4893
+
4894
+ object.getownpropertydescriptors@^2.0.3:
4895
+ version "2.0.3"
4896
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
4897
+ integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
4898
+ dependencies:
4899
+ define-properties "^1.1.2"
4900
+ es-abstract "^1.5.1"
4901
+
4902
+ object.omit@^3.0.0:
4903
+ version "3.0.0"
4904
+ resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af"
4905
+ integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==
4906
+ dependencies:
4907
+ is-extendable "^1.0.0"
4908
+
4909
+ object.pick@^1.3.0:
4910
+ version "1.3.0"
4911
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
4912
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
4913
+ dependencies:
4914
+ isobject "^3.0.1"
4915
+
4916
+ object.values@^1.1.0:
4917
+ version "1.1.0"
4918
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
4919
+ integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==
4920
+ dependencies:
4921
+ define-properties "^1.1.3"
4922
+ es-abstract "^1.12.0"
4923
+ function-bind "^1.1.1"
4924
+ has "^1.0.3"
4925
+
4926
+ obuf@^1.0.0, obuf@^1.1.2:
4927
+ version "1.1.2"
4928
+ resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
4929
+ integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
4930
+
4931
+ on-finished@~2.3.0:
4932
+ version "2.3.0"
4933
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
4934
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
4935
+ dependencies:
4936
+ ee-first "1.1.1"
4937
+
4938
+ on-headers@~1.0.1, on-headers@~1.0.2:
4939
+ version "1.0.2"
4940
+ resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
4941
+ integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
4942
+
4943
+ once@^1.3.0, once@^1.3.1, once@^1.4.0:
4944
+ version "1.4.0"
4945
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
4946
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
4947
+ dependencies:
4948
+ wrappy "1"
4949
+
4950
+ onetime@^2.0.0:
4951
+ version "2.0.1"
4952
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
4953
+ integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
4954
+ dependencies:
4955
+ mimic-fn "^1.0.0"
4956
+
4957
+ opn@^5.5.0:
4958
+ version "5.5.0"
4959
+ resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
4960
+ integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==
4961
+ dependencies:
4962
+ is-wsl "^1.1.0"
4963
+
4964
+ opn@latest:
4965
+ version "6.0.0"
4966
+ resolved "https://registry.yarnpkg.com/opn/-/opn-6.0.0.tgz#3c5b0db676d5f97da1233d1ed42d182bc5a27d2d"
4967
+ integrity sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==
4968
+ dependencies:
4969
+ is-wsl "^1.1.0"
4970
+
4971
+ optimize-css-assets-webpack-plugin@^5.0.1:
4972
+ version "5.0.3"
4973
+ resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572"
4974
+ integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==
4975
+ dependencies:
4976
+ cssnano "^4.1.10"
4977
+ last-call-webpack-plugin "^3.0.0"
4978
+
4979
+ optionator@^0.8.2:
4980
+ version "0.8.2"
4981
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
4982
+ integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
4983
+ dependencies:
4984
+ deep-is "~0.1.3"
4985
+ fast-levenshtein "~2.0.4"
4986
+ levn "~0.3.0"
4987
+ prelude-ls "~1.1.2"
4988
+ type-check "~0.3.2"
4989
+ wordwrap "~1.0.0"
4990
+
4991
+ original@^1.0.0:
4992
+ version "1.0.2"
4993
+ resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
4994
+ integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==
4995
+ dependencies:
4996
+ url-parse "^1.4.3"
4997
+
4998
+ os-browserify@^0.3.0:
4999
+ version "0.3.0"
5000
+ resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
5001
+ integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
5002
+
5003
+ os-homedir@^1.0.0:
5004
+ version "1.0.2"
5005
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
5006
+ integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
5007
+
5008
+ os-locale@^3.0.0, os-locale@^3.1.0:
5009
+ version "3.1.0"
5010
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
5011
+ integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
5012
+ dependencies:
5013
+ execa "^1.0.0"
5014
+ lcid "^2.0.0"
5015
+ mem "^4.0.0"
5016
+
5017
+ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
5018
+ version "1.0.2"
5019
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
5020
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
5021
+
5022
+ osenv@^0.1.4:
5023
+ version "0.1.5"
5024
+ resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
5025
+ integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
5026
+ dependencies:
5027
+ os-homedir "^1.0.0"
5028
+ os-tmpdir "^1.0.0"
5029
+
5030
+ p-defer@^1.0.0:
5031
+ version "1.0.0"
5032
+ resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
5033
+ integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
5034
+
5035
+ p-finally@^1.0.0:
5036
+ version "1.0.0"
5037
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
5038
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
5039
+
5040
+ p-is-promise@^2.0.0:
5041
+ version "2.1.0"
5042
+ resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
5043
+ integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
5044
+
5045
+ p-limit@^2.0.0:
5046
+ version "2.2.1"
5047
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
5048
+ integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==
5049
+ dependencies:
5050
+ p-try "^2.0.0"
5051
+
5052
+ p-locate@^3.0.0:
5053
+ version "3.0.0"
5054
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
5055
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
5056
+ dependencies:
5057
+ p-limit "^2.0.0"
5058
+
5059
+ p-map@^2.0.0:
5060
+ version "2.1.0"
5061
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
5062
+ integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
5063
+
5064
+ p-pipe@^1.1.0:
5065
+ version "1.2.0"
5066
+ resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9"
5067
+ integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k=
5068
+
5069
+ p-retry@^3.0.1:
5070
+ version "3.0.1"
5071
+ resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
5072
+ integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==
5073
+ dependencies:
5074
+ retry "^0.12.0"
5075
+
5076
+ p-try@^2.0.0:
5077
+ version "2.2.0"
5078
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
5079
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
5080
+
5081
+ pako@~1.0.5:
5082
+ version "1.0.10"
5083
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732"
5084
+ integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==
5085
+
5086
+ parallel-transform@^1.1.0:
5087
+ version "1.2.0"
5088
+ resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
5089
+ integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
5090
+ dependencies:
5091
+ cyclist "^1.0.1"
5092
+ inherits "^2.0.3"
5093
+ readable-stream "^2.1.5"
5094
+
5095
+ param-case@2.1.x:
5096
+ version "2.1.1"
5097
+ resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
5098
+ integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
5099
+ dependencies:
5100
+ no-case "^2.2.0"
5101
+
5102
+ parent-module@^1.0.0:
5103
+ version "1.0.1"
5104
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
5105
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
5106
+ dependencies:
5107
+ callsites "^3.0.0"
5108
+
5109
+ parse-asn1@^5.0.0:
5110
+ version "5.1.5"
5111
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e"
5112
+ integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==
5113
+ dependencies:
5114
+ asn1.js "^4.0.0"
5115
+ browserify-aes "^1.0.0"
5116
+ create-hash "^1.1.0"
5117
+ evp_bytestokey "^1.0.0"
5118
+ pbkdf2 "^3.0.3"
5119
+ safe-buffer "^5.1.1"
5120
+
5121
+ parse-json@^4.0.0:
5122
+ version "4.0.0"
5123
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
5124
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
5125
+ dependencies:
5126
+ error-ex "^1.3.1"
5127
+ json-parse-better-errors "^1.0.1"
5128
+
5129
+ parse-passwd@^1.0.0:
5130
+ version "1.0.0"
5131
+ resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
5132
+ integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
5133
+
5134
+ parseurl@~1.3.2, parseurl@~1.3.3:
5135
+ version "1.3.3"
5136
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
5137
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
5138
+
5139
+ pascalcase@^0.1.1:
5140
+ version "0.1.1"
5141
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
5142
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
5143
+
5144
+ path-browserify@0.0.1:
5145
+ version "0.0.1"
5146
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
5147
+ integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
5148
+
5149
+ path-dirname@^1.0.0:
5150
+ version "1.0.2"
5151
+ resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
5152
+ integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
5153
+
5154
+ path-exists@^3.0.0:
5155
+ version "3.0.0"
5156
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
5157
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
5158
+
5159
+ path-is-absolute@^1.0.0:
5160
+ version "1.0.1"
5161
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
5162
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
5163
+
5164
+ path-is-inside@^1.0.2:
5165
+ version "1.0.2"
5166
+ resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
5167
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
5168
+
5169
+ path-key@^2.0.0, path-key@^2.0.1:
5170
+ version "2.0.1"
5171
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
5172
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
5173
+
5174
+ path-parse@^1.0.6:
5175
+ version "1.0.6"
5176
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
5177
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
5178
+
5179
+ path-sort@^0.1.0:
5180
+ version "0.1.0"
5181
+ resolved "https://registry.yarnpkg.com/path-sort/-/path-sort-0.1.0.tgz#cb0175d4ecbfa5a18fe674cc6d720bfe15e0b805"
5182
+ integrity sha1-ywF11Oy/paGP5nTMbXIL/hXguAU=
5183
+
5184
+ path-to-regexp@0.1.7:
5185
+ version "0.1.7"
5186
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
5187
+ integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
5188
+
5189
+ path-type@^3.0.0:
5190
+ version "3.0.0"
5191
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
5192
+ integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
5193
+ dependencies:
5194
+ pify "^3.0.0"
5195
+
5196
+ pause-stream@0.0.11:
5197
+ version "0.0.11"
5198
+ resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
5199
+ integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=
5200
+ dependencies:
5201
+ through "~2.3"
5202
+
5203
+ pbkdf2@^3.0.3:
5204
+ version "3.0.17"
5205
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
5206
+ integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
5207
+ dependencies:
5208
+ create-hash "^1.1.2"
5209
+ create-hmac "^1.1.4"
5210
+ ripemd160 "^2.0.1"
5211
+ safe-buffer "^5.0.1"
5212
+ sha.js "^2.4.8"
5213
+
5214
+ php-parser@^3.0.0-prerelease.8:
5215
+ version "3.0.0-prerelease.9"
5216
+ resolved "https://registry.yarnpkg.com/php-parser/-/php-parser-3.0.0-prerelease.9.tgz#d04cc65c793a5bce4883460cdc1b43b0d19a3058"
5217
+ integrity sha512-QTVGKeiGZyRq7NpXMx15Dkiq9+B2KLGStck1Wrik+Hui+vb70rDBF+dY1RD6/IC8Wy/tUAhcKiCfKWVJUjymDA==
5218
+
5219
+ picomatch@^2.0.5:
5220
+ version "2.0.7"
5221
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
5222
+ integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
5223
+
5224
+ pify@^2.0.0:
5225
+ version "2.3.0"
5226
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
5227
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
5228
+
5229
+ pify@^3.0.0:
5230
+ version "3.0.0"
5231
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
5232
+ integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
5233
+
5234
+ pify@^4.0.1:
5235
+ version "4.0.1"
5236
+ resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
5237
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
5238
+
5239
+ pinkie-promise@^2.0.0:
5240
+ version "2.0.1"
5241
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
5242
+ integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
5243
+ dependencies:
5244
+ pinkie "^2.0.0"
5245
+
5246
+ pinkie@^2.0.0:
5247
+ version "2.0.4"
5248
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
5249
+ integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
5250
+
5251
+ pkg-dir@^3.0.0:
5252
+ version "3.0.0"
5253
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
5254
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
5255
+ dependencies:
5256
+ find-up "^3.0.0"
5257
+
5258
+ portfinder@^1.0.24:
5259
+ version "1.0.24"
5260
+ resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz#11efbc6865f12f37624b6531ead1d809ed965cfa"
5261
+ integrity sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg==
5262
+ dependencies:
5263
+ async "^1.5.2"
5264
+ debug "^2.2.0"
5265
+ mkdirp "0.5.x"
5266
+
5267
+ posix-character-classes@^0.1.0:
5268
+ version "0.1.1"
5269
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
5270
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
5271
+
5272
+ postcss-calc@^7.0.1:
5273
+ version "7.0.1"
5274
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
5275
+ integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
5276
+ dependencies:
5277
+ css-unit-converter "^1.1.1"
5278
+ postcss "^7.0.5"
5279
+ postcss-selector-parser "^5.0.0-rc.4"
5280
+ postcss-value-parser "^3.3.1"
5281
+
5282
+ postcss-colormin@^4.0.3:
5283
+ version "4.0.3"
5284
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
5285
+ integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
5286
+ dependencies:
5287
+ browserslist "^4.0.0"
5288
+ color "^3.0.0"
5289
+ has "^1.0.0"
5290
+ postcss "^7.0.0"
5291
+ postcss-value-parser "^3.0.0"
5292
+
5293
+ postcss-convert-values@^4.0.1:
5294
+ version "4.0.1"
5295
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
5296
+ integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
5297
+ dependencies:
5298
+ postcss "^7.0.0"
5299
+ postcss-value-parser "^3.0.0"
5300
+
5301
+ postcss-discard-comments@^4.0.2:
5302
+ version "4.0.2"
5303
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
5304
+ integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
5305
+ dependencies:
5306
+ postcss "^7.0.0"
5307
+
5308
+ postcss-discard-duplicates@^4.0.2:
5309
+ version "4.0.2"
5310
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
5311
+ integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
5312
+ dependencies:
5313
+ postcss "^7.0.0"
5314
+
5315
+ postcss-discard-empty@^4.0.1:
5316
+ version "4.0.1"
5317
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
5318
+ integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
5319
+ dependencies:
5320
+ postcss "^7.0.0"
5321
+
5322
+ postcss-discard-overridden@^4.0.1:
5323
+ version "4.0.1"
5324
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
5325
+ integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
5326
+ dependencies:
5327
+ postcss "^7.0.0"
5328
+
5329
+ postcss-load-config@^2.0.0:
5330
+ version "2.1.0"
5331
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
5332
+ integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==
5333
+ dependencies:
5334
+ cosmiconfig "^5.0.0"
5335
+ import-cwd "^2.0.0"
5336
+
5337
+ postcss-loader@^3.0.0:
5338
+ version "3.0.0"
5339
+ resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
5340
+ integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
5341
+ dependencies:
5342
+ loader-utils "^1.1.0"
5343
+ postcss "^7.0.0"
5344
+ postcss-load-config "^2.0.0"
5345
+ schema-utils "^1.0.0"
5346
+
5347
+ postcss-merge-longhand@^4.0.11:
5348
+ version "4.0.11"
5349
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
5350
+ integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
5351
+ dependencies:
5352
+ css-color-names "0.0.4"
5353
+ postcss "^7.0.0"
5354
+ postcss-value-parser "^3.0.0"
5355
+ stylehacks "^4.0.0"
5356
+
5357
+ postcss-merge-rules@^4.0.3:
5358
+ version "4.0.3"
5359
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
5360
+ integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
5361
+ dependencies:
5362
+ browserslist "^4.0.0"
5363
+ caniuse-api "^3.0.0"
5364
+ cssnano-util-same-parent "^4.0.0"
5365
+ postcss "^7.0.0"
5366
+ postcss-selector-parser "^3.0.0"
5367
+ vendors "^1.0.0"
5368
+
5369
+ postcss-minify-font-values@^4.0.2:
5370
+ version "4.0.2"
5371
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
5372
+ integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
5373
+ dependencies:
5374
+ postcss "^7.0.0"
5375
+ postcss-value-parser "^3.0.0"
5376
+
5377
+ postcss-minify-gradients@^4.0.2:
5378
+ version "4.0.2"
5379
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
5380
+ integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
5381
+ dependencies:
5382
+ cssnano-util-get-arguments "^4.0.0"
5383
+ is-color-stop "^1.0.0"
5384
+ postcss "^7.0.0"
5385
+ postcss-value-parser "^3.0.0"
5386
+
5387
+ postcss-minify-params@^4.0.2:
5388
+ version "4.0.2"
5389
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
5390
+ integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
5391
+ dependencies:
5392
+ alphanum-sort "^1.0.0"
5393
+ browserslist "^4.0.0"
5394
+ cssnano-util-get-arguments "^4.0.0"
5395
+ postcss "^7.0.0"
5396
+ postcss-value-parser "^3.0.0"
5397
+ uniqs "^2.0.0"
5398
+
5399
+ postcss-minify-selectors@^4.0.2:
5400
+ version "4.0.2"
5401
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
5402
+ integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
5403
+ dependencies:
5404
+ alphanum-sort "^1.0.0"
5405
+ has "^1.0.0"
5406
+ postcss "^7.0.0"
5407
+ postcss-selector-parser "^3.0.0"
5408
+
5409
+ postcss-modules-extract-imports@^1.2.0:
5410
+ version "1.2.1"
5411
+ resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a"
5412
+ integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==
5413
+ dependencies:
5414
+ postcss "^6.0.1"
5415
+
5416
+ postcss-modules-local-by-default@^1.2.0:
5417
+ version "1.2.0"
5418
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
5419
+ integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
5420
+ dependencies:
5421
+ css-selector-tokenizer "^0.7.0"
5422
+ postcss "^6.0.1"
5423
+
5424
+ postcss-modules-scope@^1.1.0:
5425
+ version "1.1.0"
5426
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
5427
+ integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A=
5428
+ dependencies:
5429
+ css-selector-tokenizer "^0.7.0"
5430
+ postcss "^6.0.1"
5431
+
5432
+ postcss-modules-values@^1.3.0:
5433
+ version "1.3.0"
5434
+ resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
5435
+ integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
5436
+ dependencies:
5437
+ icss-replace-symbols "^1.1.0"
5438
+ postcss "^6.0.1"
5439
+
5440
+ postcss-normalize-charset@^4.0.1:
5441
+ version "4.0.1"
5442
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
5443
+ integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
5444
+ dependencies:
5445
+ postcss "^7.0.0"
5446
+
5447
+ postcss-normalize-display-values@^4.0.2:
5448
+ version "4.0.2"
5449
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
5450
+ integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
5451
+ dependencies:
5452
+ cssnano-util-get-match "^4.0.0"
5453
+ postcss "^7.0.0"
5454
+ postcss-value-parser "^3.0.0"
5455
+
5456
+ postcss-normalize-positions@^4.0.2:
5457
+ version "4.0.2"
5458
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
5459
+ integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
5460
+ dependencies:
5461
+ cssnano-util-get-arguments "^4.0.0"
5462
+ has "^1.0.0"
5463
+ postcss "^7.0.0"
5464
+ postcss-value-parser "^3.0.0"
5465
+
5466
+ postcss-normalize-repeat-style@^4.0.2:
5467
+ version "4.0.2"
5468
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
5469
+ integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
5470
+ dependencies:
5471
+ cssnano-util-get-arguments "^4.0.0"
5472
+ cssnano-util-get-match "^4.0.0"
5473
+ postcss "^7.0.0"
5474
+ postcss-value-parser "^3.0.0"
5475
+
5476
+ postcss-normalize-string@^4.0.2:
5477
+ version "4.0.2"
5478
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
5479
+ integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
5480
+ dependencies:
5481
+ has "^1.0.0"
5482
+ postcss "^7.0.0"
5483
+ postcss-value-parser "^3.0.0"
5484
+
5485
+ postcss-normalize-timing-functions@^4.0.2:
5486
+ version "4.0.2"
5487
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
5488
+ integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
5489
+ dependencies:
5490
+ cssnano-util-get-match "^4.0.0"
5491
+ postcss "^7.0.0"
5492
+ postcss-value-parser "^3.0.0"
5493
+
5494
+ postcss-normalize-unicode@^4.0.1:
5495
+ version "4.0.1"
5496
+ resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
5497
+ integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
5498
+ dependencies:
5499
+ browserslist "^4.0.0"
5500
+ postcss "^7.0.0"
5501
+ postcss-value-parser "^3.0.0"
5502
+
5503
+ postcss-normalize-url@^4.0.1:
5504
+ version "4.0.1"
5505
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
5506
+ integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
5507
+ dependencies:
5508
+ is-absolute-url "^2.0.0"
5509
+ normalize-url "^3.0.0"
5510
+ postcss "^7.0.0"
5511
+ postcss-value-parser "^3.0.0"
5512
+
5513
+ postcss-normalize-whitespace@^4.0.2:
5514
+ version "4.0.2"
5515
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
5516
+ integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
5517
+ dependencies:
5518
+ postcss "^7.0.0"
5519
+ postcss-value-parser "^3.0.0"
5520
+
5521
+ postcss-ordered-values@^4.1.2:
5522
+ version "4.1.2"
5523
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
5524
+ integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
5525
+ dependencies:
5526
+ cssnano-util-get-arguments "^4.0.0"
5527
+ postcss "^7.0.0"
5528
+ postcss-value-parser "^3.0.0"
5529
+
5530
+ postcss-reduce-initial@^4.0.3:
5531
+ version "4.0.3"
5532
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
5533
+ integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
5534
+ dependencies:
5535
+ browserslist "^4.0.0"
5536
+ caniuse-api "^3.0.0"
5537
+ has "^1.0.0"
5538
+ postcss "^7.0.0"
5539
+
5540
+ postcss-reduce-transforms@^4.0.2:
5541
+ version "4.0.2"
5542
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
5543
+ integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
5544
+ dependencies:
5545
+ cssnano-util-get-match "^4.0.0"
5546
+ has "^1.0.0"
5547
+ postcss "^7.0.0"
5548
+ postcss-value-parser "^3.0.0"
5549
+
5550
+ postcss-selector-parser@^3.0.0:
5551
+ version "3.1.1"
5552
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
5553
+ integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
5554
+ dependencies:
5555
+ dot-prop "^4.1.1"
5556
+ indexes-of "^1.0.1"
5557
+ uniq "^1.0.1"
5558
+
5559
+ postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.4:
5560
+ version "5.0.0"
5561
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
5562
+ integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
5563
+ dependencies:
5564
+ cssesc "^2.0.0"
5565
+ indexes-of "^1.0.1"
5566
+ uniq "^1.0.1"
5567
+
5568
+ postcss-svgo@^4.0.2:
5569
+ version "4.0.2"
5570
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
5571
+ integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==
5572
+ dependencies:
5573
+ is-svg "^3.0.0"
5574
+ postcss "^7.0.0"
5575
+ postcss-value-parser "^3.0.0"
5576
+ svgo "^1.0.0"
5577
+
5578
+ postcss-unique-selectors@^4.0.1:
5579
+ version "4.0.1"
5580
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
5581
+ integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
5582
+ dependencies:
5583
+ alphanum-sort "^1.0.0"
5584
+ postcss "^7.0.0"
5585
+ uniqs "^2.0.0"
5586
+
5587
+ postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
5588
+ version "3.3.1"
5589
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
5590
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
5591
+
5592
+ postcss-value-parser@^4.0.0:
5593
+ version "4.0.2"
5594
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
5595
+ integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
5596
+
5597
+ postcss@^6.0.1, postcss@^6.0.23:
5598
+ version "6.0.23"
5599
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
5600
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
5601
+ dependencies:
5602
+ chalk "^2.4.1"
5603
+ source-map "^0.6.1"
5604
+ supports-color "^5.4.0"
5605
+
5606
+ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.5:
5607
+ version "7.0.18"
5608
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233"
5609
+ integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==
5610
+ dependencies:
5611
+ chalk "^2.4.2"
5612
+ source-map "^0.6.1"
5613
+ supports-color "^6.1.0"
5614
+
5615
+ prelude-ls@~1.1.2:
5616
+ version "1.1.2"
5617
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
5618
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
5619
+
5620
+ prettier@1.16.3:
5621
+ version "1.16.3"
5622
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d"
5623
+ integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==
5624
+
5625
+ private@^0.1.6, private@~0.1.5:
5626
+ version "0.1.8"
5627
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
5628
+ integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
5629
+
5630
+ process-nextick-args@~2.0.0:
5631
+ version "2.0.1"
5632
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
5633
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
5634
+
5635
+ process@^0.11.10:
5636
+ version "0.11.10"
5637
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
5638
+ integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
5639
+
5640
+ progress@^2.0.0:
5641
+ version "2.0.3"
5642
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
5643
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
5644
+
5645
+ promise-inflight@^1.0.1:
5646
+ version "1.0.1"
5647
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
5648
+ integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
5649
+
5650
+ prop-types@^15.7.2:
5651
+ version "15.7.2"
5652
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
5653
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
5654
+ dependencies:
5655
+ loose-envify "^1.4.0"
5656
+ object-assign "^4.1.1"
5657
+ react-is "^16.8.1"
5658
+
5659
+ proxy-addr@~2.0.5:
5660
+ version "2.0.5"
5661
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
5662
+ integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==
5663
+ dependencies:
5664
+ forwarded "~0.1.2"
5665
+ ipaddr.js "1.9.0"
5666
+
5667
+ proxy-middleware@latest:
5668
+ version "0.15.0"
5669
+ resolved "https://registry.yarnpkg.com/proxy-middleware/-/proxy-middleware-0.15.0.tgz#a3fdf1befb730f951965872ac2f6074c61477a56"
5670
+ integrity sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=
5671
+
5672
+ prr@~1.0.1:
5673
+ version "1.0.1"
5674
+ resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
5675
+ integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
5676
+
5677
+ pseudomap@^1.0.2:
5678
+ version "1.0.2"
5679
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
5680
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
5681
+
5682
+ public-encrypt@^4.0.0:
5683
+ version "4.0.3"
5684
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
5685
+ integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
5686
+ dependencies:
5687
+ bn.js "^4.1.0"
5688
+ browserify-rsa "^4.0.0"
5689
+ create-hash "^1.1.0"
5690
+ parse-asn1 "^5.0.0"
5691
+ randombytes "^2.0.1"
5692
+ safe-buffer "^5.1.2"
5693
+
5694
+ pump@^2.0.0:
5695
+ version "2.0.1"
5696
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
5697
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
5698
+ dependencies:
5699
+ end-of-stream "^1.1.0"
5700
+ once "^1.3.1"
5701
+
5702
+ pump@^3.0.0:
5703
+ version "3.0.0"
5704
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
5705
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
5706
+ dependencies:
5707
+ end-of-stream "^1.1.0"
5708
+ once "^1.3.1"
5709
+
5710
+ pumpify@^1.3.3:
5711
+ version "1.5.1"
5712
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
5713
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
5714
+ dependencies:
5715
+ duplexify "^3.6.0"
5716
+ inherits "^2.0.3"
5717
+ pump "^2.0.0"
5718
+
5719
+ punycode@1.3.2:
5720
+ version "1.3.2"
5721
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
5722
+ integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
5723
+
5724
+ punycode@^1.2.4:
5725
+ version "1.4.1"
5726
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
5727
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
5728
+
5729
+ punycode@^2.1.0:
5730
+ version "2.1.1"
5731
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
5732
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
5733
+
5734
+ q@^1.1.2:
5735
+ version "1.5.1"
5736
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
5737
+ integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
5738
+
5739
+ qs@6.7.0:
5740
+ version "6.7.0"
5741
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
5742
+ integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
5743
+
5744
+ querystring-es3@^0.2.0:
5745
+ version "0.2.1"
5746
+ resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
5747
+ integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
5748
+
5749
+ querystring@0.2.0:
5750
+ version "0.2.0"
5751
+ resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
5752
+ integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
5753
+
5754
+ querystringify@^2.1.1:
5755
+ version "2.1.1"
5756
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
5757
+ integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==
5758
+
5759
+ randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
5760
+ version "2.1.0"
5761
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
5762
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
5763
+ dependencies:
5764
+ safe-buffer "^5.1.0"
5765
+
5766
+ randomfill@^1.0.3:
5767
+ version "1.0.4"
5768
+ resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
5769
+ integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
5770
+ dependencies:
5771
+ randombytes "^2.0.5"
5772
+ safe-buffer "^5.1.0"
5773
+
5774
+ range-parser@^1.2.1, range-parser@~1.2.1:
5775
+ version "1.2.1"
5776
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
5777
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
5778
+
5779
+ raw-body@2.4.0:
5780
+ version "2.4.0"
5781
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
5782
+ integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
5783
+ dependencies:
5784
+ bytes "3.1.0"
5785
+ http-errors "1.7.2"
5786
+ iconv-lite "0.4.24"
5787
+ unpipe "1.0.0"
5788
+
5789
+ rc@^1.2.7:
5790
+ version "1.2.8"
5791
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
5792
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
5793
+ dependencies:
5794
+ deep-extend "^0.6.0"
5795
+ ini "~1.3.0"
5796
+ minimist "^1.2.0"
5797
+ strip-json-comments "~2.0.1"
5798
+
5799
+ react-is@^16.8.1:
5800
+ version "16.10.1"
5801
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.10.1.tgz#0612786bf19df406502d935494f0450b40b8294f"
5802
+ integrity sha512-BXUMf9sIOPXXZWqr7+c5SeOKJykyVr2u0UDzEf4LNGc6taGkQe1A9DFD07umCIXz45RLr9oAAwZbAJ0Pkknfaw==
5803
+
5804
+ "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
5805
+ version "2.3.6"
5806
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
5807
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
5808
+ dependencies:
5809
+ core-util-is "~1.0.0"
5810
+ inherits "~2.0.3"
5811
+ isarray "~1.0.0"
5812
+ process-nextick-args "~2.0.0"
5813
+ safe-buffer "~5.1.1"
5814
+ string_decoder "~1.1.1"
5815
+ util-deprecate "~1.0.1"
5816
+
5817
+ readable-stream@^3.0.6:
5818
+ version "3.4.0"
5819
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
5820
+ integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==
5821
+ dependencies:
5822
+ inherits "^2.0.3"
5823
+ string_decoder "^1.1.1"
5824
+ util-deprecate "^1.0.1"
5825
+
5826
+ readdirp@^2.2.1:
5827
+ version "2.2.1"
5828
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
5829
+ integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
5830
+ dependencies:
5831
+ graceful-fs "^4.1.11"
5832
+ micromatch "^3.1.10"
5833
+ readable-stream "^2.0.2"
5834
+
5835
+ recast@~0.11.12:
5836
+ version "0.11.23"
5837
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
5838
+ integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=
5839
+ dependencies:
5840
+ ast-types "0.9.6"
5841
+ esprima "~3.1.0"
5842
+ private "~0.1.5"
5843
+ source-map "~0.5.0"
5844
+
5845
+ regenerate-unicode-properties@^8.1.0:
5846
+ version "8.1.0"
5847
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
5848
+ integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
5849
+ dependencies:
5850
+ regenerate "^1.4.0"
5851
+
5852
+ regenerate@^1.2.1, regenerate@^1.4.0:
5853
+ version "1.4.0"
5854
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
5855
+ integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
5856
+
5857
+ regenerator-runtime@^0.13.2:
5858
+ version "0.13.3"
5859
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
5860
+ integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
5861
+
5862
+ regenerator-transform@^0.14.0:
5863
+ version "0.14.1"
5864
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
5865
+ integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==
5866
+ dependencies:
5867
+ private "^0.1.6"
5868
+
5869
+ regex-not@^1.0.0, regex-not@^1.0.2:
5870
+ version "1.0.2"
5871
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
5872
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
5873
+ dependencies:
5874
+ extend-shallow "^3.0.2"
5875
+ safe-regex "^1.1.0"
5876
+
5877
+ regexp.prototype.flags@^1.2.0:
5878
+ version "1.2.0"
5879
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
5880
+ integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==
5881
+ dependencies:
5882
+ define-properties "^1.1.2"
5883
+
5884
+ regexpp@^2.0.1:
5885
+ version "2.0.1"
5886
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
5887
+ integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
5888
+
5889
+ regexpu-core@^1.0.0:
5890
+ version "1.0.0"
5891
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
5892
+ integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=
5893
+ dependencies:
5894
+ regenerate "^1.2.1"
5895
+ regjsgen "^0.2.0"
5896
+ regjsparser "^0.1.4"
5897
+
5898
+ regexpu-core@^4.6.0:
5899
+ version "4.6.0"
5900
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
5901
+ integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
5902
+ dependencies:
5903
+ regenerate "^1.4.0"
5904
+ regenerate-unicode-properties "^8.1.0"
5905
+ regjsgen "^0.5.0"
5906
+ regjsparser "^0.6.0"
5907
+ unicode-match-property-ecmascript "^1.0.4"
5908
+ unicode-match-property-value-ecmascript "^1.1.0"
5909
+
5910
+ regextras@^0.6.1:
5911
+ version "0.6.1"
5912
+ resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.6.1.tgz#9689641bbb338e0ff7001a5c507c6a2008df7b36"
5913
+ integrity sha512-EzIHww9xV2Kpqx+corS/I7OBmf2rZ0pKKJPsw5Dc+l6Zq1TslDmtRIP9maVn3UH+72MIXmn8zzDgP07ihQogUA==
5914
+
5915
+ regjsgen@^0.2.0:
5916
+ version "0.2.0"
5917
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
5918
+ integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
5919
+
5920
+ regjsgen@^0.5.0:
5921
+ version "0.5.0"
5922
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
5923
+ integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==
5924
+
5925
+ regjsparser@^0.1.4:
5926
+ version "0.1.5"
5927
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
5928
+ integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=
5929
+ dependencies:
5930
+ jsesc "~0.5.0"
5931
+
5932
+ regjsparser@^0.6.0:
5933
+ version "0.6.0"
5934
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
5935
+ integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
5936
+ dependencies:
5937
+ jsesc "~0.5.0"
5938
+
5939
+ relateurl@0.2.x:
5940
+ version "0.2.7"
5941
+ resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
5942
+ integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
5943
+
5944
+ remove-trailing-separator@^1.0.1:
5945
+ version "1.1.0"
5946
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
5947
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
5948
+
5949
+ repeat-element@^1.1.2:
5950
+ version "1.1.3"
5951
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
5952
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
5953
+
5954
+ repeat-string@^1.6.1:
5955
+ version "1.6.1"
5956
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
5957
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
5958
+
5959
+ replace-ext@^1.0.0:
5960
+ version "1.0.0"
5961
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
5962
+ integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
5963
+
5964
+ require-directory@^2.1.1:
5965
+ version "2.1.1"
5966
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
5967
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
5968
+
5969
+ require-main-filename@^1.0.1:
5970
+ version "1.0.1"
5971
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
5972
+ integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
5973
+
5974
+ require-main-filename@^2.0.0:
5975
+ version "2.0.0"
5976
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
5977
+ integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
5978
+
5979
+ requireindex@^1.2.0:
5980
+ version "1.2.0"
5981
+ resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
5982
+ integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==
5983
+
5984
+ requires-port@^1.0.0:
5985
+ version "1.0.0"
5986
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
5987
+ integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
5988
+
5989
+ resolve-cwd@^2.0.0:
5990
+ version "2.0.0"
5991
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
5992
+ integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
5993
+ dependencies:
5994
+ resolve-from "^3.0.0"
5995
+
5996
+ resolve-dir@^1.0.0, resolve-dir@^1.0.1:
5997
+ version "1.0.1"
5998
+ resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
5999
+ integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=
6000
+ dependencies:
6001
+ expand-tilde "^2.0.0"
6002
+ global-modules "^1.0.0"
6003
+
6004
+ resolve-from@^3.0.0:
6005
+ version "3.0.0"
6006
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
6007
+ integrity sha1-six699nWiBvItuZTM17rywoYh0g=
6008
+
6009
+ resolve-from@^4.0.0:
6010
+ version "4.0.0"
6011
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
6012
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
6013
+
6014
+ resolve-url@^0.2.1:
6015
+ version "0.2.1"
6016
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
6017
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
6018
+
6019
+ resolve@^1.12.0, resolve@^1.3.2, resolve@^1.8.1:
6020
+ version "1.12.0"
6021
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
6022
+ integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
6023
+ dependencies:
6024
+ path-parse "^1.0.6"
6025
+
6026
+ restore-cursor@^2.0.0:
6027
+ version "2.0.0"
6028
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
6029
+ integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
6030
+ dependencies:
6031
+ onetime "^2.0.0"
6032
+ signal-exit "^3.0.2"
6033
+
6034
+ ret@~0.1.10:
6035
+ version "0.1.15"
6036
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
6037
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
6038
+
6039
+ retry@^0.12.0:
6040
+ version "0.12.0"
6041
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
6042
+ integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
6043
+
6044
+ rgb-regex@^1.0.1:
6045
+ version "1.0.1"
6046
+ resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
6047
+ integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
6048
+
6049
+ rgba-regex@^1.0.0:
6050
+ version "1.0.0"
6051
+ resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
6052
+ integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
6053
+
6054
+ rimraf@2.6.3:
6055
+ version "2.6.3"
6056
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
6057
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
6058
+ dependencies:
6059
+ glob "^7.1.3"
6060
+
6061
+ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
6062
+ version "2.7.1"
6063
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
6064
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
6065
+ dependencies:
6066
+ glob "^7.1.3"
6067
+
6068
+ ripemd160@^2.0.0, ripemd160@^2.0.1:
6069
+ version "2.0.2"
6070
+ resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
6071
+ integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
6072
+ dependencies:
6073
+ hash-base "^3.0.0"
6074
+ inherits "^2.0.1"
6075
+
6076
+ run-async@^2.2.0:
6077
+ version "2.3.0"
6078
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
6079
+ integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
6080
+ dependencies:
6081
+ is-promise "^2.1.0"
6082
+
6083
+ run-queue@^1.0.0, run-queue@^1.0.3:
6084
+ version "1.0.3"
6085
+ resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
6086
+ integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
6087
+ dependencies:
6088
+ aproba "^1.1.1"
6089
+
6090
+ rxjs@^6.4.0:
6091
+ version "6.5.3"
6092
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
6093
+ integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==
6094
+ dependencies:
6095
+ tslib "^1.9.0"
6096
+
6097
+ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
6098
+ version "5.1.2"
6099
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
6100
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
6101
+
6102
+ safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
6103
+ version "5.2.0"
6104
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
6105
+ integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
6106
+
6107
+ safe-regex@^1.1.0:
6108
+ version "1.1.0"
6109
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
6110
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
6111
+ dependencies:
6112
+ ret "~0.1.10"
6113
+
6114
+ "safer-buffer@>= 2.1.2 < 3":
6115
+ version "2.1.2"
6116
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
6117
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
6118
+
6119
+ sax@^1.2.4, sax@~1.2.4:
6120
+ version "1.2.4"
6121
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
6122
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
6123
+
6124
+ schema-utils@^0.4.5:
6125
+ version "0.4.7"
6126
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
6127
+ integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
6128
+ dependencies:
6129
+ ajv "^6.1.0"
6130
+ ajv-keywords "^3.1.0"
6131
+
6132
+ schema-utils@^1.0.0:
6133
+ version "1.0.0"
6134
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
6135
+ integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
6136
+ dependencies:
6137
+ ajv "^6.1.0"
6138
+ ajv-errors "^1.0.0"
6139
+ ajv-keywords "^3.1.0"
6140
+
6141
+ select-hose@^2.0.0:
6142
+ version "2.0.0"
6143
+ resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
6144
+ integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
6145
+
6146
+ select2@^4.0.10:
6147
+ version "4.0.10"
6148
+ resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.10.tgz#c8d4e3e2504f49956b3dfd9018ab1d7bc601a41b"
6149
+ integrity sha512-g9fWMdEif4eQ901eiJV3os0MG5y20/3E2WNy0PfYf0T6Q/zZB/NOroJwAxcfE6uv5x0/BGeCDGNtoj9PqCdQEg==
6150
+
6151
+ selfsigned@^1.10.6:
6152
+ version "1.10.6"
6153
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.6.tgz#7b3cd37ed9c2034261a173af1a1aae27d8169b67"
6154
+ integrity sha512-i3+CeqxL7DpAazgVpAGdKMwHuL63B5nhJMh9NQ7xmChGkA3jNFflq6Jyo1LLJYcr3idWiNOPWHCrm4zMayLG4w==
6155
+ dependencies:
6156
+ node-forge "0.8.2"
6157
+
6158
+ semver@5.5.0:
6159
+ version "5.5.0"
6160
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
6161
+ integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
6162
+
6163
+ semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
6164
+ version "5.7.1"
6165
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
6166
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
6167
+
6168
+ semver@^6.1.2, semver@^6.3.0:
6169
+ version "6.3.0"
6170
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
6171
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
6172
+
6173
+ send@0.17.1, send@latest:
6174
+ version "0.17.1"
6175
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
6176
+ integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
6177
+ dependencies:
6178
+ debug "2.6.9"
6179
+ depd "~1.1.2"
6180
+ destroy "~1.0.4"
6181
+ encodeurl "~1.0.2"
6182
+ escape-html "~1.0.3"
6183
+ etag "~1.8.1"
6184
+ fresh "0.5.2"
6185
+ http-errors "~1.7.2"
6186
+ mime "1.6.0"
6187
+ ms "2.1.1"
6188
+ on-finished "~2.3.0"
6189
+ range-parser "~1.2.1"
6190
+ statuses "~1.5.0"
6191
+
6192
+ serialize-javascript@^1.7.0:
6193
+ version "1.9.1"
6194
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
6195
+ integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
6196
+
6197
+ serve-index@^1.9.1:
6198
+ version "1.9.1"
6199
+ resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
6200
+ integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
6201
+ dependencies:
6202
+ accepts "~1.3.4"
6203
+ batch "0.6.1"
6204
+ debug "2.6.9"
6205
+ escape-html "~1.0.3"
6206
+ http-errors "~1.6.2"
6207
+ mime-types "~2.1.17"
6208
+ parseurl "~1.3.2"
6209
+
6210
+ serve-static@1.14.1:
6211
+ version "1.14.1"
6212
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
6213
+ integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
6214
+ dependencies:
6215
+ encodeurl "~1.0.2"
6216
+ escape-html "~1.0.3"
6217
+ parseurl "~1.3.3"
6218
+ send "0.17.1"
6219
+
6220
+ set-blocking@^2.0.0, set-blocking@~2.0.0:
6221
+ version "2.0.0"
6222
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
6223
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
6224
+
6225
+ set-value@^2.0.0, set-value@^2.0.1:
6226
+ version "2.0.1"
6227
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
6228
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
6229
+ dependencies:
6230
+ extend-shallow "^2.0.1"
6231
+ is-extendable "^0.1.1"
6232
+ is-plain-object "^2.0.3"
6233
+ split-string "^3.0.1"
6234
+
6235
+ setimmediate@^1.0.4:
6236
+ version "1.0.5"
6237
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
6238
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
6239
+
6240
+ setprototypeof@1.1.0:
6241
+ version "1.1.0"
6242
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
6243
+ integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
6244
+
6245
+ setprototypeof@1.1.1:
6246
+ version "1.1.1"
6247
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
6248
+ integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
6249
+
6250
+ sha.js@^2.4.0, sha.js@^2.4.8:
6251
+ version "2.4.11"
6252
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
6253
+ integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
6254
+ dependencies:
6255
+ inherits "^2.0.1"
6256
+ safe-buffer "^5.0.1"
6257
+
6258
+ shebang-command@^1.2.0:
6259
+ version "1.2.0"
6260
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
6261
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
6262
+ dependencies:
6263
+ shebang-regex "^1.0.0"
6264
+
6265
+ shebang-regex@^1.0.0:
6266
+ version "1.0.0"
6267
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
6268
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
6269
+
6270
+ shellwords@^0.1.1:
6271
+ version "0.1.1"
6272
+ resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
6273
+ integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
6274
+
6275
+ signal-exit@^3.0.0, signal-exit@^3.0.2:
6276
+ version "3.0.2"
6277
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
6278
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
6279
+
6280
+ simple-swizzle@^0.2.2:
6281
+ version "0.2.2"
6282
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
6283
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
6284
+ dependencies:
6285
+ is-arrayish "^0.3.1"
6286
+
6287
+ slash@^1.0.0:
6288
+ version "1.0.0"
6289
+ resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
6290
+ integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
6291
+
6292
+ slice-ansi@^2.1.0:
6293
+ version "2.1.0"
6294
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
6295
+ integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
6296
+ dependencies:
6297
+ ansi-styles "^3.2.0"
6298
+ astral-regex "^1.0.0"
6299
+ is-fullwidth-code-point "^2.0.0"
6300
+
6301
+ snapdragon-node@^2.0.1:
6302
+ version "2.1.1"
6303
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
6304
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
6305
+ dependencies:
6306
+ define-property "^1.0.0"
6307
+ isobject "^3.0.0"
6308
+ snapdragon-util "^3.0.1"
6309
+
6310
+ snapdragon-util@^3.0.1:
6311
+ version "3.0.1"
6312
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
6313
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
6314
+ dependencies:
6315
+ kind-of "^3.2.0"
6316
+
6317
+ snapdragon@^0.8.1:
6318
+ version "0.8.2"
6319
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
6320
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
6321
+ dependencies:
6322
+ base "^0.11.1"
6323
+ debug "^2.2.0"
6324
+ define-property "^0.2.5"
6325
+ extend-shallow "^2.0.1"
6326
+ map-cache "^0.2.2"
6327
+ source-map "^0.5.6"
6328
+ source-map-resolve "^0.5.0"
6329
+ use "^3.1.0"
6330
+
6331
+ sockjs-client@1.4.0:
6332
+ version "1.4.0"
6333
+ resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5"
6334
+ integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==
6335
+ dependencies:
6336
+ debug "^3.2.5"
6337
+ eventsource "^1.0.7"
6338
+ faye-websocket "~0.11.1"
6339
+ inherits "^2.0.3"
6340
+ json3 "^3.3.2"
6341
+ url-parse "^1.4.3"
6342
+
6343
+ sockjs@0.3.19:
6344
+ version "0.3.19"
6345
+ resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
6346
+ integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==
6347
+ dependencies:
6348
+ faye-websocket "^0.10.0"
6349
+ uuid "^3.0.1"
6350
+
6351
+ source-list-map@^2.0.0:
6352
+ version "2.0.1"
6353
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
6354
+ integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
6355
+
6356
+ source-map-resolve@^0.5.0:
6357
+ version "0.5.2"
6358
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
6359
+ integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
6360
+ dependencies:
6361
+ atob "^2.1.1"
6362
+ decode-uri-component "^0.2.0"
6363
+ resolve-url "^0.2.1"
6364
+ source-map-url "^0.4.0"
6365
+ urix "^0.1.0"
6366
+
6367
+ source-map-support@~0.5.10, source-map-support@~0.5.12:
6368
+ version "0.5.13"
6369
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
6370
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
6371
+ dependencies:
6372
+ buffer-from "^1.0.0"
6373
+ source-map "^0.6.0"
6374
+
6375
+ source-map-url@^0.4.0:
6376
+ version "0.4.0"
6377
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
6378
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
6379
+
6380
+ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0:
6381
+ version "0.5.7"
6382
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
6383
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
6384
+
6385
+ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
6386
+ version "0.6.1"
6387
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
6388
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
6389
+
6390
+ spdy-transport@^3.0.0:
6391
+ version "3.0.0"
6392
+ resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
6393
+ integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
6394
+ dependencies:
6395
+ debug "^4.1.0"
6396
+ detect-node "^2.0.4"
6397
+ hpack.js "^2.1.6"
6398
+ obuf "^1.1.2"
6399
+ readable-stream "^3.0.6"
6400
+ wbuf "^1.7.3"
6401
+
6402
+ spdy@^4.0.1:
6403
+ version "4.0.1"
6404
+ resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2"
6405
+ integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==
6406
+ dependencies:
6407
+ debug "^4.1.0"
6408
+ handle-thing "^2.0.0"
6409
+ http-deceiver "^1.2.7"
6410
+ select-hose "^2.0.0"
6411
+ spdy-transport "^3.0.0"
6412
+
6413
+ split-string@^3.0.1, split-string@^3.0.2:
6414
+ version "3.1.0"
6415
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
6416
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
6417
+ dependencies:
6418
+ extend-shallow "^3.0.0"
6419
+
6420
+ split@0.3:
6421
+ version "0.3.3"
6422
+ resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
6423
+ integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=
6424
+ dependencies:
6425
+ through "2"
6426
+
6427
+ sprintf-js@~1.0.2:
6428
+ version "1.0.3"
6429
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
6430
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
6431
+
6432
+ ssri@^6.0.1:
6433
+ version "6.0.1"
6434
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
6435
+ integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
6436
+ dependencies:
6437
+ figgy-pudding "^3.5.1"
6438
+
6439
+ stable@^0.1.8:
6440
+ version "0.1.8"
6441
+ resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
6442
+ integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
6443
+
6444
+ stackframe@^1.1.0:
6445
+ version "1.1.0"
6446
+ resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.1.0.tgz#e3fc2eb912259479c9822f7d1f1ff365bd5cbc83"
6447
+ integrity sha512-Vx6W1Yvy+AM1R/ckVwcHQHV147pTPBKWCRLrXMuPrFVfvBUc3os7PR1QLIWCMhPpRg5eX9ojzbQIMLGBwyLjqg==
6448
+
6449
+ static-extend@^0.1.1:
6450
+ version "0.1.2"
6451
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
6452
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
6453
+ dependencies:
6454
+ define-property "^0.2.5"
6455
+ object-copy "^0.1.0"
6456
+
6457
+ "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
6458
+ version "1.5.0"
6459
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
6460
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
6461
+
6462
+ stream-browserify@^2.0.1:
6463
+ version "2.0.2"
6464
+ resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
6465
+ integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
6466
+ dependencies:
6467
+ inherits "~2.0.1"
6468
+ readable-stream "^2.0.2"
6469
+
6470
+ stream-combiner@~0.0.4:
6471
+ version "0.0.4"
6472
+ resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
6473
+ integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=
6474
+ dependencies:
6475
+ duplexer "~0.1.1"
6476
+
6477
+ stream-each@^1.1.0:
6478
+ version "1.2.3"
6479
+ resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
6480
+ integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
6481
+ dependencies:
6482
+ end-of-stream "^1.1.0"
6483
+ stream-shift "^1.0.0"
6484
+
6485
+ stream-http@^2.7.2:
6486
+ version "2.8.3"
6487
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
6488
+ integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
6489
+ dependencies:
6490
+ builtin-status-codes "^3.0.0"
6491
+ inherits "^2.0.1"
6492
+ readable-stream "^2.3.6"
6493
+ to-arraybuffer "^1.0.0"
6494
+ xtend "^4.0.0"
6495
+
6496
+ stream-shift@^1.0.0:
6497
+ version "1.0.0"
6498
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
6499
+ integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
6500
+
6501
+ string-width@^1.0.1:
6502
+ version "1.0.2"
6503
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
6504
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
6505
+ dependencies:
6506
+ code-point-at "^1.0.0"
6507
+ is-fullwidth-code-point "^1.0.0"
6508
+ strip-ansi "^3.0.0"
6509
+
6510
+ "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
6511
+ version "2.1.1"
6512
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
6513
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
6514
+ dependencies:
6515
+ is-fullwidth-code-point "^2.0.0"
6516
+ strip-ansi "^4.0.0"
6517
+
6518
+ string-width@^3.0.0, string-width@^3.1.0:
6519
+ version "3.1.0"
6520
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
6521
+ integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
6522
+ dependencies:
6523
+ emoji-regex "^7.0.1"
6524
+ is-fullwidth-code-point "^2.0.0"
6525
+ strip-ansi "^5.1.0"
6526
+
6527
+ string.prototype.trimleft@^2.0.0, string.prototype.trimleft@^2.1.0:
6528
+ version "2.1.0"
6529
+ resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
6530
+ integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==
6531
+ dependencies:
6532
+ define-properties "^1.1.3"
6533
+ function-bind "^1.1.1"
6534
+
6535
+ string.prototype.trimright@^2.0.0, string.prototype.trimright@^2.1.0:
6536
+ version "2.1.0"
6537
+ resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
6538
+ integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==
6539
+ dependencies:
6540
+ define-properties "^1.1.3"
6541
+ function-bind "^1.1.1"
6542
+
6543
+ string_decoder@^1.0.0, string_decoder@^1.1.1:
6544
+ version "1.3.0"
6545
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
6546
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
6547
+ dependencies:
6548
+ safe-buffer "~5.2.0"
6549
+
6550
+ string_decoder@~1.1.1:
6551
+ version "1.1.1"
6552
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
6553
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
6554
+ dependencies:
6555
+ safe-buffer "~5.1.0"
6556
+
6557
+ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
6558
+ version "3.0.1"
6559
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
6560
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
6561
+ dependencies:
6562
+ ansi-regex "^2.0.0"
6563
+
6564
+ strip-ansi@^4.0.0:
6565
+ version "4.0.0"
6566
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
6567
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
6568
+ dependencies:
6569
+ ansi-regex "^3.0.0"
6570
+
6571
+ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
6572
+ version "5.2.0"
6573
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
6574
+ integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
6575
+ dependencies:
6576
+ ansi-regex "^4.1.0"
6577
+
6578
+ strip-eof@^1.0.0:
6579
+ version "1.0.0"
6580
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
6581
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
6582
+
6583
+ strip-json-comments@^3.0.1:
6584
+ version "3.0.1"
6585
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
6586
+ integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
6587
+
6588
+ strip-json-comments@~2.0.1:
6589
+ version "2.0.1"
6590
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
6591
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
6592
+
6593
+ style-loader@^0.23.1:
6594
+ version "0.23.1"
6595
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
6596
+ integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==
6597
+ dependencies:
6598
+ loader-utils "^1.1.0"
6599
+ schema-utils "^1.0.0"
6600
+
6601
+ stylehacks@^4.0.0:
6602
+ version "4.0.3"
6603
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
6604
+ integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
6605
+ dependencies:
6606
+ browserslist "^4.0.0"
6607
+ postcss "^7.0.0"
6608
+ postcss-selector-parser "^3.0.0"
6609
+
6610
+ supports-color@6.1.0, supports-color@^6.1.0:
6611
+ version "6.1.0"
6612
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
6613
+ integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
6614
+ dependencies:
6615
+ has-flag "^3.0.0"
6616
+
6617
+ supports-color@^2.0.0:
6618
+ version "2.0.0"
6619
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
6620
+ integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
6621
+
6622
+ supports-color@^5.3.0, supports-color@^5.4.0:
6623
+ version "5.5.0"
6624
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
6625
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
6626
+ dependencies:
6627
+ has-flag "^3.0.0"
6628
+
6629
+ svgo@^1.0.0:
6630
+ version "1.3.0"
6631
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313"
6632
+ integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==
6633
+ dependencies:
6634
+ chalk "^2.4.1"
6635
+ coa "^2.0.2"
6636
+ css-select "^2.0.0"
6637
+ css-select-base-adapter "^0.1.1"
6638
+ css-tree "1.0.0-alpha.33"
6639
+ csso "^3.5.1"
6640
+ js-yaml "^3.13.1"
6641
+ mkdirp "~0.5.1"
6642
+ object.values "^1.1.0"
6643
+ sax "~1.2.4"
6644
+ stable "^0.1.8"
6645
+ unquote "~1.1.1"
6646
+ util.promisify "~1.0.0"
6647
+
6648
+ table@^5.2.3:
6649
+ version "5.4.6"
6650
+ resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
6651
+ integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
6652
+ dependencies:
6653
+ ajv "^6.10.2"
6654
+ lodash "^4.17.14"
6655
+ slice-ansi "^2.1.0"
6656
+ string-width "^3.0.0"
6657
+
6658
+ tapable@^1.0.0, tapable@^1.1.3:
6659
+ version "1.1.3"
6660
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
6661
+ integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
6662
+
6663
+ tar@^4:
6664
+ version "4.4.13"
6665
+ resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
6666
+ integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
6667
+ dependencies:
6668
+ chownr "^1.1.1"
6669
+ fs-minipass "^1.2.5"
6670
+ minipass "^2.8.6"
6671
+ minizlib "^1.2.1"
6672
+ mkdirp "^0.5.0"
6673
+ safe-buffer "^5.1.2"
6674
+ yallist "^3.0.3"
6675
+
6676
+ terser-webpack-plugin@^1.2.2, terser-webpack-plugin@^1.4.1:
6677
+ version "1.4.1"
6678
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4"
6679
+ integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==
6680
+ dependencies:
6681
+ cacache "^12.0.2"
6682
+ find-cache-dir "^2.1.0"
6683
+ is-wsl "^1.1.0"
6684
+ schema-utils "^1.0.0"
6685
+ serialize-javascript "^1.7.0"
6686
+ source-map "^0.6.1"
6687
+ terser "^4.1.2"
6688
+ webpack-sources "^1.4.0"
6689
+ worker-farm "^1.7.0"
6690
+
6691
+ terser@^3.11.0:
6692
+ version "3.17.0"
6693
+ resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2"
6694
+ integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==
6695
+ dependencies:
6696
+ commander "^2.19.0"
6697
+ source-map "~0.6.1"
6698
+ source-map-support "~0.5.10"
6699
+
6700
+ terser@^4.1.2:
6701
+ version "4.3.2"
6702
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.2.tgz#ed830de484b0103652799063e605618e80f97f93"
6703
+ integrity sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg==
6704
+ dependencies:
6705
+ commander "^2.20.0"
6706
+ source-map "~0.6.1"
6707
+ source-map-support "~0.5.12"
6708
+
6709
+ text-table@^0.2.0:
6710
+ version "0.2.0"
6711
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
6712
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
6713
+
6714
+ through2@^2.0.0:
6715
+ version "2.0.5"
6716
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
6717
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
6718
+ dependencies:
6719
+ readable-stream "~2.3.6"
6720
+ xtend "~4.0.1"
6721
+
6722
+ through@2, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.6:
6723
+ version "2.3.8"
6724
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
6725
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
6726
+
6727
+ thunky@^1.0.2:
6728
+ version "1.0.3"
6729
+ resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
6730
+ integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==
6731
+
6732
+ timers-browserify@^2.0.4:
6733
+ version "2.0.11"
6734
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
6735
+ integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==
6736
+ dependencies:
6737
+ setimmediate "^1.0.4"
6738
+
6739
+ timsort@^0.3.0:
6740
+ version "0.3.0"
6741
+ resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
6742
+ integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
6743
+
6744
+ tmp@^0.0.33:
6745
+ version "0.0.33"
6746
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
6747
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
6748
+ dependencies:
6749
+ os-tmpdir "~1.0.2"
6750
+
6751
+ to-arraybuffer@^1.0.0:
6752
+ version "1.0.1"
6753
+ resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
6754
+ integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
6755
+
6756
+ to-fast-properties@^2.0.0:
6757
+ version "2.0.0"
6758
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
6759
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
6760
+
6761
+ to-object-path@^0.3.0:
6762
+ version "0.3.0"
6763
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
6764
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
6765
+ dependencies:
6766
+ kind-of "^3.0.2"
6767
+
6768
+ to-regex-range@^2.1.0:
6769
+ version "2.1.1"
6770
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
6771
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
6772
+ dependencies:
6773
+ is-number "^3.0.0"
6774
+ repeat-string "^1.6.1"
6775
+
6776
+ to-regex@^3.0.1, to-regex@^3.0.2:
6777
+ version "3.0.2"
6778
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
6779
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
6780
+ dependencies:
6781
+ define-property "^2.0.2"
6782
+ extend-shallow "^3.0.2"
6783
+ regex-not "^1.0.2"
6784
+ safe-regex "^1.1.0"
6785
+
6786
+ toidentifier@1.0.0:
6787
+ version "1.0.0"
6788
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
6789
+ integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
6790
+
6791
+ tslib@^1.9.0:
6792
+ version "1.10.0"
6793
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
6794
+ integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
6795
+
6796
+ tty-browserify@0.0.0:
6797
+ version "0.0.0"
6798
+ resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
6799
+ integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
6800
+
6801
+ type-check@~0.3.2:
6802
+ version "0.3.2"
6803
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
6804
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
6805
+ dependencies:
6806
+ prelude-ls "~1.1.2"
6807
+
6808
+ type-fest@^0.6.0:
6809
+ version "0.6.0"
6810
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
6811
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
6812
+
6813
+ type-is@~1.6.17, type-is@~1.6.18:
6814
+ version "1.6.18"
6815
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
6816
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
6817
+ dependencies:
6818
+ media-typer "0.3.0"
6819
+ mime-types "~2.1.24"
6820
+
6821
+ typedarray@^0.0.6:
6822
+ version "0.0.6"
6823
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
6824
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
6825
+
6826
+ uglify-js@3.4.x:
6827
+ version "3.4.10"
6828
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
6829
+ integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
6830
+ dependencies:
6831
+ commander "~2.19.0"
6832
+ source-map "~0.6.1"
6833
+
6834
+ unicode-canonical-property-names-ecmascript@^1.0.4:
6835
+ version "1.0.4"
6836
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
6837
+ integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
6838
+
6839
+ unicode-match-property-ecmascript@^1.0.4:
6840
+ version "1.0.4"
6841
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
6842
+ integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
6843
+ dependencies:
6844
+ unicode-canonical-property-names-ecmascript "^1.0.4"
6845
+ unicode-property-aliases-ecmascript "^1.0.4"
6846
+
6847
+ unicode-match-property-value-ecmascript@^1.1.0:
6848
+ version "1.1.0"
6849
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
6850
+ integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
6851
+
6852
+ unicode-property-aliases-ecmascript@^1.0.4:
6853
+ version "1.0.5"
6854
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
6855
+ integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
6856
+
6857
+ union-value@^1.0.0:
6858
+ version "1.0.1"
6859
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
6860
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
6861
+ dependencies:
6862
+ arr-union "^3.1.0"
6863
+ get-value "^2.0.6"
6864
+ is-extendable "^0.1.1"
6865
+ set-value "^2.0.1"
6866
+
6867
+ uniq@^1.0.1:
6868
+ version "1.0.1"
6869
+ resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
6870
+ integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
6871
+
6872
+ uniqs@^2.0.0:
6873
+ version "2.0.0"
6874
+ resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
6875
+ integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
6876
+
6877
+ unique-filename@^1.1.1:
6878
+ version "1.1.1"
6879
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
6880
+ integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
6881
+ dependencies:
6882
+ unique-slug "^2.0.0"
6883
+
6884
+ unique-slug@^2.0.0:
6885
+ version "2.0.2"
6886
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
6887
+ integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
6888
+ dependencies:
6889
+ imurmurhash "^0.1.4"
6890
+
6891
+ universalify@^0.1.0:
6892
+ version "0.1.2"
6893
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
6894
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
6895
+
6896
+ unix-crypt-td-js@^1.0.0:
6897
+ version "1.0.0"
6898
+ resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz#1c0824150481bc7a01d49e98f1ec668d82412f3b"
6899
+ integrity sha1-HAgkFQSBvHoB1J6Y8exmjYJBLzs=
6900
+
6901
+ unpipe@1.0.0, unpipe@~1.0.0:
6902
+ version "1.0.0"
6903
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
6904
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
6905
+
6906
+ unquote@~1.1.1:
6907
+ version "1.1.1"
6908
+ resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
6909
+ integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
6910
+
6911
+ unset-value@^1.0.0:
6912
+ version "1.0.0"
6913
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
6914
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
6915
+ dependencies:
6916
+ has-value "^0.3.1"
6917
+ isobject "^3.0.0"
6918
+
6919
+ upath@^1.1.1:
6920
+ version "1.2.0"
6921
+ resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
6922
+ integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
6923
+
6924
+ upper-case@^1.1.1:
6925
+ version "1.1.3"
6926
+ resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
6927
+ integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
6928
+
6929
+ uri-js@^4.2.2:
6930
+ version "4.2.2"
6931
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
6932
+ integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
6933
+ dependencies:
6934
+ punycode "^2.1.0"
6935
+
6936
+ urix@^0.1.0:
6937
+ version "0.1.0"
6938
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
6939
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
6940
+
6941
+ url-parse@^1.4.3:
6942
+ version "1.4.7"
6943
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278"
6944
+ integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==
6945
+ dependencies:
6946
+ querystringify "^2.1.1"
6947
+ requires-port "^1.0.0"
6948
+
6949
+ url@^0.11.0:
6950
+ version "0.11.0"
6951
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
6952
+ integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
6953
+ dependencies:
6954
+ punycode "1.3.2"
6955
+ querystring "0.2.0"
6956
+
6957
+ use@^3.1.0:
6958
+ version "3.1.1"
6959
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
6960
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
6961
+
6962
+ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
6963
+ version "1.0.2"
6964
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
6965
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
6966
+
6967
+ util.promisify@~1.0.0:
6968
+ version "1.0.0"
6969
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
6970
+ integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
6971
+ dependencies:
6972
+ define-properties "^1.1.2"
6973
+ object.getownpropertydescriptors "^2.0.3"
6974
+
6975
+ util@0.10.3:
6976
+ version "0.10.3"
6977
+ resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
6978
+ integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
6979
+ dependencies:
6980
+ inherits "2.0.1"
6981
+
6982
+ util@^0.11.0:
6983
+ version "0.11.1"
6984
+ resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
6985
+ integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
6986
+ dependencies:
6987
+ inherits "2.0.3"
6988
+
6989
+ utils-merge@1.0.1:
6990
+ version "1.0.1"
6991
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
6992
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
6993
+
6994
+ uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2:
6995
+ version "3.3.3"
6996
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
6997
+ integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
6998
+
6999
+ v8-compile-cache@2.0.3:
7000
+ version "2.0.3"
7001
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
7002
+ integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==
7003
+
7004
+ v8-compile-cache@^2.0.3:
7005
+ version "2.1.0"
7006
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
7007
+ integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==
7008
+
7009
+ vary@^1, vary@~1.1.2:
7010
+ version "1.1.2"
7011
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
7012
+ integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
7013
+
7014
+ vendors@^1.0.0:
7015
+ version "1.0.3"
7016
+ resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0"
7017
+ integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==
7018
+
7019
+ vm-browserify@^1.0.1:
7020
+ version "1.1.0"
7021
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
7022
+ integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==
7023
+
7024
+ vue-hot-reload-api@^2.3.0:
7025
+ version "2.3.4"
7026
+ resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
7027
+ integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
7028
+
7029
+ vue-loader@^15.4.2:
7030
+ version "15.7.1"
7031
+ resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.1.tgz#6ccacd4122aa80f69baaac08ff295a62e3aefcfd"
7032
+ integrity sha512-fwIKtA23Pl/rqfYP5TSGK7gkEuLhoTvRYW+TU7ER3q9GpNLt/PjG5NLv3XHRDiTg7OPM1JcckBgds+VnAc+HbA==
7033
+ dependencies:
7034
+ "@vue/component-compiler-utils" "^3.0.0"
7035
+ hash-sum "^1.0.2"
7036
+ loader-utils "^1.1.0"
7037
+ vue-hot-reload-api "^2.3.0"
7038
+ vue-style-loader "^4.1.0"
7039
+
7040
+ vue-style-loader@^4.1.0:
7041
+ version "4.1.2"
7042
+ resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"
7043
+ integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==
7044
+ dependencies:
7045
+ hash-sum "^1.0.2"
7046
+ loader-utils "^1.0.2"
7047
+
7048
+ vue-template-es2015-compiler@^1.9.0:
7049
+ version "1.9.1"
7050
+ resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
7051
+ integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
7052
+
7053
+ watchpack@^1.6.0:
7054
+ version "1.6.0"
7055
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
7056
+ integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
7057
+ dependencies:
7058
+ chokidar "^2.0.2"
7059
+ graceful-fs "^4.1.2"
7060
+ neo-async "^2.5.0"
7061
+
7062
+ wbuf@^1.1.0, wbuf@^1.7.3:
7063
+ version "1.7.3"
7064
+ resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
7065
+ integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
7066
+ dependencies:
7067
+ minimalistic-assert "^1.0.0"
7068
+
7069
+ webpack-cli@^3.1.2:
7070
+ version "3.3.9"
7071
+ resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz#79c27e71f94b7fe324d594ab64a8e396b9daa91a"
7072
+ integrity sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==
7073
+ dependencies:
7074
+ chalk "2.4.2"
7075
+ cross-spawn "6.0.5"
7076
+ enhanced-resolve "4.1.0"
7077
+ findup-sync "3.0.0"
7078
+ global-modules "2.0.0"
7079
+ import-local "2.0.0"
7080
+ interpret "1.2.0"
7081
+ loader-utils "1.2.3"
7082
+ supports-color "6.1.0"
7083
+ v8-compile-cache "2.0.3"
7084
+ yargs "13.2.4"
7085
+
7086
+ webpack-dev-middleware@^3.7.1:
7087
+ version "3.7.1"
7088
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.1.tgz#1167aea02afa034489869b8368fe9fed1aea7d09"
7089
+ integrity sha512-5MWu9SH1z3hY7oHOV6Kbkz5x7hXbxK56mGHNqHTe6d+ewxOwKUxoUJBs7QIaJb33lPjl9bJZ3X0vCoooUzC36A==
7090
+ dependencies:
7091
+ memory-fs "^0.4.1"
7092
+ mime "^2.4.4"
7093
+ mkdirp "^0.5.1"
7094
+ range-parser "^1.2.1"
7095
+ webpack-log "^2.0.0"
7096
+
7097
+ webpack-dev-server@^3.1.14:
7098
+ version "3.8.1"
7099
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.8.1.tgz#485b64c4aadc23f601e72114b40c1b1fea31d9f1"
7100
+ integrity sha512-9F5DnfFA9bsrhpUCAfQic/AXBVHvq+3gQS+x6Zj0yc1fVVE0erKh2MV4IV12TBewuTrYeeTIRwCH9qLMvdNvTw==
7101
+ dependencies:
7102
+ ansi-html "0.0.7"
7103
+ bonjour "^3.5.0"
7104
+ chokidar "^2.1.8"
7105
+ compression "^1.7.4"
7106
+ connect-history-api-fallback "^1.6.0"
7107
+ debug "^4.1.1"
7108
+ del "^4.1.1"
7109
+ express "^4.17.1"
7110
+ html-entities "^1.2.1"
7111
+ http-proxy-middleware "^0.19.1"
7112
+ import-local "^2.0.0"
7113
+ internal-ip "^4.3.0"
7114
+ ip "^1.1.5"
7115
+ is-absolute-url "^3.0.2"
7116
+ killable "^1.0.1"
7117
+ loglevel "^1.6.4"
7118
+ opn "^5.5.0"
7119
+ p-retry "^3.0.1"
7120
+ portfinder "^1.0.24"
7121
+ schema-utils "^1.0.0"
7122
+ selfsigned "^1.10.6"
7123
+ semver "^6.3.0"
7124
+ serve-index "^1.9.1"
7125
+ sockjs "0.3.19"
7126
+ sockjs-client "1.4.0"
7127
+ spdy "^4.0.1"
7128
+ strip-ansi "^3.0.1"
7129
+ supports-color "^6.1.0"
7130
+ url "^0.11.0"
7131
+ webpack-dev-middleware "^3.7.1"
7132
+ webpack-log "^2.0.0"
7133
+ ws "^6.2.1"
7134
+ yargs "12.0.5"
7135
+
7136
+ webpack-log@^2.0.0:
7137
+ version "2.0.0"
7138
+ resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
7139
+ integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
7140
+ dependencies:
7141
+ ansi-colors "^3.0.0"
7142
+ uuid "^3.3.2"
7143
+
7144
+ webpack-merge@^4.1.0:
7145
+ version "4.2.2"
7146
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
7147
+ integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
7148
+ dependencies:
7149
+ lodash "^4.17.15"
7150
+
7151
+ webpack-notifier@^1.5.1:
7152
+ version "1.8.0"
7153
+ resolved "https://registry.yarnpkg.com/webpack-notifier/-/webpack-notifier-1.8.0.tgz#994bdde0fcefc5f1a92b6d91353c8152ddd9c583"
7154
+ integrity sha512-I6t76NoPe5DZCCm5geELmDV2wlJ89LbU425uN6T2FG8Ywrrt1ZcUMz6g8yWGNg4pttqTPFQJYUPjWAlzUEQ+cQ==
7155
+ dependencies:
7156
+ node-notifier "^5.1.2"
7157
+ object-assign "^4.1.0"
7158
+ strip-ansi "^3.0.1"
7159
+
7160
+ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
7161
+ version "1.4.3"
7162
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
7163
+ integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
7164
+ dependencies:
7165
+ source-list-map "^2.0.0"
7166
+ source-map "~0.6.1"
7167
+
7168
+ webpack@^4.27.1:
7169
+ version "4.41.0"
7170
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.0.tgz#db6a254bde671769f7c14e90a1a55e73602fc70b"
7171
+ integrity sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==
7172
+ dependencies:
7173
+ "@webassemblyjs/ast" "1.8.5"
7174
+ "@webassemblyjs/helper-module-context" "1.8.5"
7175
+ "@webassemblyjs/wasm-edit" "1.8.5"
7176
+ "@webassemblyjs/wasm-parser" "1.8.5"
7177
+ acorn "^6.2.1"
7178
+ ajv "^6.10.2"
7179
+ ajv-keywords "^3.4.1"
7180
+ chrome-trace-event "^1.0.2"
7181
+ enhanced-resolve "^4.1.0"
7182
+ eslint-scope "^4.0.3"
7183
+ json-parse-better-errors "^1.0.2"
7184
+ loader-runner "^2.4.0"
7185
+ loader-utils "^1.2.3"
7186
+ memory-fs "^0.4.1"
7187
+ micromatch "^3.1.10"
7188
+ mkdirp "^0.5.1"
7189
+ neo-async "^2.6.1"
7190
+ node-libs-browser "^2.2.1"
7191
+ schema-utils "^1.0.0"
7192
+ tapable "^1.1.3"
7193
+ terser-webpack-plugin "^1.4.1"
7194
+ watchpack "^1.6.0"
7195
+ webpack-sources "^1.4.1"
7196
+
7197
+ websocket-driver@>=0.5.1:
7198
+ version "0.7.3"
7199
+ resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
7200
+ integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==
7201
+ dependencies:
7202
+ http-parser-js ">=0.4.0 <0.4.11"
7203
+ safe-buffer ">=5.1.0"
7204
+ websocket-extensions ">=0.1.1"
7205
+
7206
+ websocket-extensions@>=0.1.1:
7207
+ version "0.1.3"
7208
+ resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
7209
+ integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
7210
+
7211
+ which-module@^2.0.0:
7212
+ version "2.0.0"
7213
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
7214
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
7215
+
7216
+ which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1:
7217
+ version "1.3.1"
7218
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
7219
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
7220
+ dependencies:
7221
+ isexe "^2.0.0"
7222
+
7223
+ wide-align@^1.1.0:
7224
+ version "1.1.3"
7225
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
7226
+ integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
7227
+ dependencies:
7228
+ string-width "^1.0.2 || 2"
7229
+
7230
+ wordwrap@~1.0.0:
7231
+ version "1.0.0"
7232
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
7233
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
7234
+
7235
+ worker-farm@^1.7.0:
7236
+ version "1.7.0"
7237
+ resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
7238
+ integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
7239
+ dependencies:
7240
+ errno "~0.1.7"
7241
+
7242
+ wp-pot@^1.7.2:
7243
+ version "1.7.2"
7244
+ resolved "https://registry.yarnpkg.com/wp-pot/-/wp-pot-1.7.2.tgz#ea633dfd734c15daf4258998b8d25e0b0300987b"
7245
+ integrity sha512-aIw67uR+wbkiaPrltYz4N+6jSA327I5K0Ggr0m8+oJDQMkrVeFvTupWIfnUftMxs92Id4z4HvdYkUxO+/nOVPQ==
7246
+ dependencies:
7247
+ matched "^4.0.0"
7248
+ path-sort "^0.1.0"
7249
+ php-parser "^3.0.0-prerelease.8"
7250
+
7251
+ wrap-ansi@^2.0.0:
7252
+ version "2.1.0"
7253
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
7254
+ integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
7255
+ dependencies:
7256
+ string-width "^1.0.1"
7257
+ strip-ansi "^3.0.1"
7258
+
7259
+ wrap-ansi@^5.1.0:
7260
+ version "5.1.0"
7261
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
7262
+ integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
7263
+ dependencies:
7264
+ ansi-styles "^3.2.0"
7265
+ string-width "^3.0.0"
7266
+ strip-ansi "^5.0.0"
7267
+
7268
+ wrappy@1:
7269
+ version "1.0.2"
7270
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
7271
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
7272
+
7273
+ write@1.0.3:
7274
+ version "1.0.3"
7275
+ resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
7276
+ integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
7277
+ dependencies:
7278
+ mkdirp "^0.5.1"
7279
+
7280
+ ws@^6.2.1:
7281
+ version "6.2.1"
7282
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
7283
+ integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
7284
+ dependencies:
7285
+ async-limiter "~1.0.0"
7286
+
7287
+ xtend@^4.0.0, xtend@~4.0.1:
7288
+ version "4.0.2"
7289
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
7290
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
7291
+
7292
+ "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
7293
+ version "4.0.0"
7294
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
7295
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
7296
+
7297
+ yallist@^2.1.2:
7298
+ version "2.1.2"
7299
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
7300
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
7301
+
7302
+ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
7303
+ version "3.0.3"
7304
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
7305
+ integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
7306
+
7307
+ yargs-parser@^11.1.1:
7308
+ version "11.1.1"
7309
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
7310
+ integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
7311
+ dependencies:
7312
+ camelcase "^5.0.0"
7313
+ decamelize "^1.2.0"
7314
+
7315
+ yargs-parser@^13.1.0:
7316
+ version "13.1.1"
7317
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
7318
+ integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
7319
+ dependencies:
7320
+ camelcase "^5.0.0"
7321
+ decamelize "^1.2.0"
7322
+
7323
+ yargs@12.0.5, yargs@^12.0.5:
7324
+ version "12.0.5"
7325
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
7326
+ integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
7327
+ dependencies:
7328
+ cliui "^4.0.0"
7329
+ decamelize "^1.2.0"
7330
+ find-up "^3.0.0"
7331
+ get-caller-file "^1.0.1"
7332
+ os-locale "^3.0.0"
7333
+ require-directory "^2.1.1"
7334
+ require-main-filename "^1.0.1"
7335
+ set-blocking "^2.0.0"
7336
+ string-width "^2.0.0"
7337
+ which-module "^2.0.0"
7338
+ y18n "^3.2.1 || ^4.0.0"
7339
+ yargs-parser "^11.1.1"
7340
+
7341
+ yargs@13.2.4:
7342
+ version "13.2.4"
7343
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
7344
+ integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==
7345
+ dependencies:
7346
+ cliui "^5.0.0"
7347
+ find-up "^3.0.0"
7348
+ get-caller-file "^2.0.1"
7349
+ os-locale "^3.1.0"
7350
+ require-directory "^2.1.1"
7351
+ require-main-filename "^2.0.0"
7352
+ set-blocking "^2.0.0"
7353
+ string-width "^3.0.0"
7354
+ which-module "^2.0.0"
7355
+ y18n "^4.0.0"
7356
+ yargs-parser "^13.1.0"