Simple History - Version 2.33.2

Version Description

(January 2020) = - Fix history displaying blank white space on smaller screens. Fixes https://wordpress.org/support/topic/viewing-the-log-on-a-iphone/.

Download this release

Release Info

Developer eskapism
Plugin Icon 128x128 Simple History
Version 2.33.2
Comparing to
See all releases

Code changes from version 2.33 to 2.33.2

README.md DELETED
@@ -1,70 +0,0 @@
1
- # Simple History 2 – a simple, lightweight, extendable logger for WordPress
2
-
3
- Simple History is a WordPress audit log plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI. It's great way to view user activity and keep an eye on what the admin users of a website are doing.
4
-
5
- Download from WordPress.org:
6
- https://wordpress.org/plugins/simple-history/
7
-
8
- [![Build Status](https://travis-ci.org/bonny/WordPress-Simple-History.svg?branch=master)](https://travis-ci.org/bonny/WordPress-Simple-History)
9
- ![Rating at wordpress.org](https://img.shields.io/wordpress/plugin/r/simple-history.svg)
10
- ![Number of downloads](https://img.shields.io/wordpress/plugin/dt/simple-history.svg)
11
- [![WordPress plugin](https://img.shields.io/wordpress/plugin/v/simple-history.svg)]()
12
- [![WordPress](https://img.shields.io/wordpress/v/simple-history.svg)]()
13
-
14
- # Screenshots
15
-
16
- ## Viewing history events
17
-
18
- This screenshot show the log view + it also shows the filter function in use: the log only shows event that
19
- are of type post and pages and media (i.e. images & other uploads), and only events
20
- initiated by a specific user.
21
-
22
- ![Simple History screenshot](https://ps.w.org/simple-history/assets/screenshot-1.png?rev=1)
23
-
24
- ## Events with different severity
25
-
26
- Simple History uses the log levels specified in the [PHP PSR-3 standard](http://www.php-fig.org/psr/psr-3/).
27
-
28
- ![Simple History screenshot](https://ps.w.org/simple-history/assets/screenshot-2.png?rev=1096689)
29
-
30
- ## Events have context with extra details
31
-
32
- Each logged event can include useful rich formatted extra information. For example: a plugin install can contain author info and a the url to the plugin, and an uploaded image can contain a thumbnail of the image.
33
-
34
- ![Simple History screenshot](http://ps.w.org/simple-history/assets/screenshot-3.png?rev=1096689)
35
-
36
- # Plugin API
37
-
38
- Developers can easily log their own things using a simple API:
39
-
40
- ```php
41
- <?php
42
-
43
- // This is the easiest and safest way to add messages to the log
44
- // If the plugin is disabled this way will not generate in any error
45
- apply_filters("simple_history_log", "This is a logged message");
46
-
47
- // Or with some context and with log level debug:
48
- apply_filters(
49
- 'simple_history_log',
50
- 'My message about something',
51
- [
52
- 'debugThing' => $myThingThatIWantIncludedInTheLoggedEvent,
53
- 'anotherThing' => $anotherThing
54
- ],
55
- 'debug'
56
- );
57
-
58
- // Or just debug a message quickly
59
- apply_filters('simple_history_log_debug', 'My debug message');
60
-
61
- // You can also use functions/methods to add events to the log
62
- SimpleLogger()->info("This is a message sent to the log");
63
-
64
- // Add events of different severity
65
- SimpleLogger()->info("User admin edited page 'About our company'");
66
- SimpleLogger()->warning("User 'Jessie' deleted user 'Kim'");
67
- SimpleLogger()->debug("Ok, cron job is running!");
68
- ```
69
-
70
- You will find more examples in the [examples.php](https://github.com/bonny/WordPress-Simple-History/blob/master/examples/examples.php) file.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bin/install-wp-tests.sh DELETED
@@ -1,112 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- if [ $# -lt 3 ]; then
4
- echo "usage: $0 <db-name> <db-user> <db-pass> [db-host] [wp-version]"
5
- exit 1
6
- fi
7
-
8
- DB_NAME=$1
9
- DB_USER=$2
10
- DB_PASS=$3
11
- DB_HOST=${4-localhost}
12
- WP_VERSION=${5-latest}
13
-
14
- WP_TESTS_DIR=${WP_TESTS_DIR-/tmp/wordpress-tests-lib}
15
- WP_CORE_DIR=${WP_CORE_DIR-/tmp/wordpress/}
16
-
17
- download() {
18
- if [ `which curl` ]; then
19
- curl -s "$1" > "$2";
20
- elif [ `which wget` ]; then
21
- wget -nv -O "$2" "$1"
22
- fi
23
- }
24
-
25
- if [[ $WP_VERSION =~ [0-9]+\.[0-9]+(\.[0-9]+)? ]]; then
26
- WP_TESTS_TAG="tags/$WP_VERSION"
27
- else
28
- # http serves a single offer, whereas https serves multiple. we only want one
29
- download http://api.wordpress.org/core/version-check/1.7/ /tmp/wp-latest.json
30
- grep '[0-9]+\.[0-9]+(\.[0-9]+)?' /tmp/wp-latest.json
31
- LATEST_VERSION=$(grep -o '"version":"[^"]*' /tmp/wp-latest.json | sed 's/"version":"//')
32
- if [[ -z "$LATEST_VERSION" ]]; then
33
- echo "Latest WordPress version could not be found"
34
- exit 1
35
- fi
36
- WP_TESTS_TAG="tags/$LATEST_VERSION"
37
- fi
38
-
39
- set -ex
40
-
41
- install_wp() {
42
-
43
- if [ -d $WP_CORE_DIR ]; then
44
- return;
45
- fi
46
-
47
- mkdir -p $WP_CORE_DIR
48
-
49
- if [ $WP_VERSION == 'latest' ]; then
50
- local ARCHIVE_NAME='latest'
51
- else
52
- local ARCHIVE_NAME="wordpress-$WP_VERSION"
53
- fi
54
-
55
- download https://wordpress.org/${ARCHIVE_NAME}.tar.gz /tmp/wordpress.tar.gz
56
- tar --strip-components=1 -zxmf /tmp/wordpress.tar.gz -C $WP_CORE_DIR
57
-
58
- download https://raw.github.com/markoheijnen/wp-mysqli/master/db.php $WP_CORE_DIR/wp-content/db.php
59
- }
60
-
61
- install_test_suite() {
62
- # portable in-place argument for both GNU sed and Mac OSX sed
63
- if [[ $(uname -s) == 'Darwin' ]]; then
64
- local ioption='-i .bak'
65
- else
66
- local ioption='-i'
67
- fi
68
-
69
- # set up testing suite if it doesn't yet exist
70
- if [ ! -d $WP_TESTS_DIR ]; then
71
- # set up testing suite
72
- mkdir -p $WP_TESTS_DIR
73
- svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/includes/ $WP_TESTS_DIR/includes
74
- fi
75
-
76
- cd $WP_TESTS_DIR
77
-
78
- if [ ! -f wp-tests-config.php ]; then
79
- download https://develop.svn.wordpress.org/${WP_TESTS_TAG}/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php
80
- sed $ioption "s:dirname( __FILE__ ) . '/src/':'$WP_CORE_DIR':" "$WP_TESTS_DIR"/wp-tests-config.php
81
- sed $ioption "s/youremptytestdbnamehere/$DB_NAME/" "$WP_TESTS_DIR"/wp-tests-config.php
82
- sed $ioption "s/yourusernamehere/$DB_USER/" "$WP_TESTS_DIR"/wp-tests-config.php
83
- sed $ioption "s/yourpasswordhere/$DB_PASS/" "$WP_TESTS_DIR"/wp-tests-config.php
84
- sed $ioption "s|localhost|${DB_HOST}|" "$WP_TESTS_DIR"/wp-tests-config.php
85
- fi
86
-
87
- }
88
-
89
- install_db() {
90
- # parse DB_HOST for port or socket references
91
- local PARTS=(${DB_HOST//\:/ })
92
- local DB_HOSTNAME=${PARTS[0]};
93
- local DB_SOCK_OR_PORT=${PARTS[1]};
94
- local EXTRA=""
95
-
96
- if ! [ -z $DB_HOSTNAME ] ; then
97
- if [ $(echo $DB_SOCK_OR_PORT | grep -e '^[0-9]\{1,\}$') ]; then
98
- EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp"
99
- elif ! [ -z $DB_SOCK_OR_PORT ] ; then
100
- EXTRA=" --socket=$DB_SOCK_OR_PORT"
101
- elif ! [ -z $DB_HOSTNAME ] ; then
102
- EXTRA=" --host=$DB_HOSTNAME --protocol=tcp"
103
- fi
104
- fi
105
-
106
- # create database
107
- mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA
108
- }
109
-
110
- install_wp
111
- install_test_suite
112
- install_db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
css/styles.css CHANGED
@@ -1,4 +1,3 @@
1
-
2
  /*
3
 
4
  The spinner that wp uses:;
@@ -7,9 +6,17 @@ The spinner that wp uses:;
7
  */
8
 
9
  /* clearfix */
10
- .SimpleHistory__cf:before, .SimpleHistory__cf:after { content:""; display:table; }
11
- .SimpleHistory__cf:after { clear:both; }
12
- .SimpleHistory__cf { zoom:1; } /* For IE 6/7 (trigger hasLayout) */
 
 
 
 
 
 
 
 
13
 
14
  .SimpleHistoryGui,
15
  .SimpleHistoryGuiExample {
@@ -34,7 +41,7 @@ The spinner that wp uses:;
34
 
35
  /* wrap around the log items and the pagination */
36
  .SimpleHistoryLogitemsWrap {
37
- transition: opacity .1s ease-out;
38
  }
39
 
40
  /* on its own page */
@@ -44,7 +51,7 @@ The spinner that wp uses:;
44
  position: relative;
45
  margin-right: 340px;
46
  min-height: 200px;
47
- background-color: rgba(255,255,255,.75);
48
  }
49
 
50
  .SimpleHistory--isLoaded .SimpleHistoryGuiWrap {
@@ -66,8 +73,6 @@ The spinner that wp uses:;
66
  }
67
  }
68
 
69
-
70
-
71
  /*
72
  .SimpleHistoryGui:after {
73
  content: "\f206";
@@ -89,7 +94,7 @@ The spinner that wp uses:;
89
  background: #fff;
90
  border: 1px solid rgb(229, 229, 229);
91
  opacity: 0;
92
- transition: all .25s ease-out;
93
  }
94
 
95
  .SimpleHistory--isLoaded .SimpleHistoryLogitems,
@@ -97,8 +102,6 @@ The spinner that wp uses:;
97
  opacity: 1;
98
  }
99
 
100
-
101
-
102
  /**
103
  * Log items
104
  * There is always a 4px left border, just with differents colors
@@ -135,7 +138,7 @@ The spinner that wp uses:;
135
  Style different log levels.
136
  */
137
 
138
- .SimpleHistoryLogitem--logleveltag {
139
  display: inline-block;
140
  background-color: rgba(238, 238, 238, 1);
141
  font-size: 10px;
@@ -146,16 +149,14 @@ Style different log levels.
146
  line-height: 1;
147
  }
148
 
149
-
150
  .SimpleHistoryLogitem--loglevel-debug {
151
- border-left-color: #CEF6D8;
152
  }
153
  .SimpleHistoryLogitem--logleveltag-debug {
154
- background-color: #CEF6D8;
155
  color: #111;
156
  }
157
 
158
-
159
  .SimpleHistoryLogitem--loglevel-info {
160
  border-left-color: white;
161
  }
@@ -164,37 +165,35 @@ Style different log levels.
164
  }
165
 
166
  .SimpleHistoryLogitem--loglevel-notice {
167
- border-left-color: #FFFFE0;
168
  border-left-color: rgb(219, 219, 183);
169
  }
170
  .SimpleHistoryLogitem--logleveltag-notice {
171
  background-color: rgb(219, 219, 183);
172
- color: #111
173
  }
174
 
175
  .SimpleHistoryLogitem--loglevel-warning {
176
- border-left-color: #F7D358;
 
 
 
 
177
  }
178
- .SimpleHistoryLogitem--logleveltag-warning {
179
- background-color: #F7D358;
180
- color: #111;
181
- }
182
-
183
 
184
  .SimpleHistoryLogitem--loglevel-error {
185
- border-left-color: #F79F81;
186
  }
187
  .SimpleHistoryLogitem--logleveltag-error {
188
- background-color: #F79F81;
189
  color: #000;
190
  }
191
 
192
-
193
  .SimpleHistoryLogitem--loglevel-critical {
194
- border-left-color: #FA5858;
195
  }
196
  .SimpleHistoryLogitem--logleveltag-critical {
197
- background-color: #FA5858;
198
  color: #fff;
199
  }
200
 
@@ -207,12 +206,12 @@ Style different log levels.
207
  }
208
 
209
  .SimpleHistoryLogitem--loglevel-emergency {
210
- border-left-color: #610B0B;
211
- border-left-color: #DF0101;
212
  }
213
  .SimpleHistoryLogitem--logleveltag-emergency {
214
- background-color: #610B0B;
215
- background-color: #DF0101;
216
  color: #eee;
217
  }
218
 
@@ -282,8 +281,8 @@ Style different log levels.
282
  }
283
 
284
  .SimpleHistoryLogitem__details p {
285
- margin-top: .4em;
286
- margin-bottom: .4em;
287
  }
288
 
289
  .SimpleHistoryLogitem__occasions {
@@ -329,7 +328,6 @@ Style different log levels.
329
  margin: 0;
330
  }
331
 
332
-
333
  .SimpleHistoryLogitem__keyValueTable__addedThing {
334
  text-decoration: none;
335
  }
@@ -339,7 +337,6 @@ Style different log levels.
339
  color: #999;
340
  }
341
 
342
-
343
  /* wrap span.SimpleHistoryLogitem__inlineDivided around things that should have a bullet between them */
344
  .SimpleHistoryLogitem__inlineDivided {
345
  white-space: nowrap;
@@ -353,14 +350,14 @@ Style different log levels.
353
  .SimpleHistoryLogitem__inlineDivided:before {
354
  /* \b7 = middot, \a0 = space */
355
  /*content: '\a0\b7\a0\a0';*/
356
- content: '\b7\a0';
357
  /* \2022 = bullet */
358
  /*content: '\a0\a0\2022\a0\a0';*/
359
  color: rgb(137, 143, 156);
360
  }
361
 
362
  .SimpleHistoryLogitem__inlineDivided:first-child:before {
363
- content: '';
364
  }
365
 
366
  /*
@@ -368,11 +365,10 @@ Images/thumbs can be styles nicely
368
  */
369
  .SimpleHistoryLogitemThumbnail {
370
  display: inline-block;
371
- margin: .5em 0 0 0;
372
  padding: 5px;
373
  border: 1px solid #ddd;
374
  border-radius: 2px;
375
-
376
  }
377
 
378
  .SimpleHistoryLogitemThumbnailLink {
@@ -385,13 +381,12 @@ Images/thumbs can be styles nicely
385
  so user can see that an image have transparency
386
  */
387
  display: block;
388
- background-image: url('data:image/gif;base64,R0lGODlhEAAQAIAAAOXl5f///yH5BAAAAAAALAAAAAAQABAAAAIfhG+hq4jM3IFLJhoswNly/XkcBpIiVaInlLJr9FZWAQA7');
389
  max-width: 200px;
390
  max-height: 125px;
391
  height: auto;
392
  }
393
 
394
-
395
  /*
396
  when occasions are added
397
  */
@@ -432,7 +427,8 @@ when occasions are added
432
  .SimpleHistoryLogitem__occasionsItems {
433
  opacity: 0;
434
  max-height: 0;
435
- transition: opacity .25s ease-out .5s, max-height 2s ease-out 0s, margin .25s .0s ease-out;
 
436
  background-color: white;
437
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.25);
438
  }
@@ -441,7 +437,7 @@ when occasions are added
441
  opacity: 1;
442
  max-height: 2000px;
443
  margin-left: -5px;
444
- margin-right: -5px;;
445
  }
446
 
447
  /*
@@ -474,13 +470,12 @@ when occasions are added
474
  .SimpleHistoryLogitem--occasionAdded {
475
  max-height: 1000px;
476
  opacity: 1;
477
- border-top-width : 1px;
478
- border-bottom-width : 1px;
479
  padding-top: 15px;
480
  padding-bottom: 15px;
481
  }
482
 
483
-
484
  /*
485
  customizations for the dashboard
486
  i.e. the log is inside a .postbox element
@@ -488,75 +483,81 @@ i.e. the log is inside a .postbox element
488
 
489
  .postbox {
490
  }
491
- #simple_history_dashboard_widget .inside {
492
- padding: 0;
493
- margin-top: 0;
494
- }
495
-
496
- .postbox .SimpleHistoryQuickStats {
497
- margin-left: 13px;
498
- margin-right: 13px;
499
- font-size: 14px;
500
- }
501
 
502
- .postbox .SimpleHistoryQuickStats p {
503
- font-size: 14px;
504
- }
 
 
505
 
506
- .postbox .SimpleHistoryLogitems {
507
- border: none;
508
- }
509
 
510
- .postbox .SimpleHistoryLogitem {
511
- padding: 12px 5px 12px 16px;
512
- }
513
 
514
- .postbox .SimpleHistoryLogitem:first-child {
515
- /*padding-top: 0;*/
516
- }
517
 
518
- .postbox .SimpleHistoryLogitem::before {
519
- left: 55px;
520
- }
521
 
522
- .postbox .SimpleHistoryLogitem__senderImage {
523
- width: 24px;
524
- height: 24px;;
525
- }
526
 
527
- .postbox .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
528
- .postbox .SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:before,
529
- .postbox .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
530
- font-size: 24px;
531
- }
 
 
 
 
 
 
 
 
 
 
 
532
 
533
- .postbox .SimpleHistoryLogitem__secondcol {
534
- margin-left: 40px;
535
- }
536
 
537
- .postbox .SimpleHistoryLogitem__text {
538
- font-size: 1em;
539
- }
540
 
541
- .postbox .SimpleHistoryLogitem__details p {
542
- margin-top: 0;
543
- margin-bottom: 0;
544
- }
545
 
546
- .postbox .SimpleHistoryLogitem__text,
547
- .postbox .SimpleHistoryLogitem__details,
548
- .postbox .SimpleHistoryLogitem__details p {
549
- line-height: 1.5;
550
- }
551
 
552
- .postbox .SimpleHistoryPaginationLink,
553
- .postbox .SimpleHistoryPaginationCurrentPage {
554
- font-size: 13px;
555
- line-height: 19px;
556
- height: 24px;
557
- }
558
 
559
- /*
560
  .postbox .SimpleHistoryLogitem__details {
561
  display: none;
562
  }
@@ -564,8 +565,6 @@ i.e. the log is inside a .postbox element
564
 
565
  /* // end dashboard */
566
 
567
-
568
-
569
  /*
570
  Styles for filter
571
  */
@@ -585,7 +584,8 @@ Styles for filter
585
  Pagination, below logRows
586
  */
587
 
588
- .SimpleHistoryLogitems__pagination {}
 
589
 
590
  .SimpleHistoryPaginationPages {
591
  text-align: center;
@@ -629,7 +629,7 @@ Pagination, below logRows
629
  animations/effects
630
  */
631
  .SimpleHistory-isLoadingPage .SimpleHistoryLogitemsWrap {
632
- opacity: .5;
633
  }
634
 
635
  /*
@@ -638,7 +638,6 @@ Modal window with detailss
638
  .SimpleHistory-modal {
639
  }
640
 
641
-
642
  .SimpleHistory-modal__background {
643
  position: fixed;
644
  top: 0;
@@ -665,7 +664,6 @@ Modal window with detailss
665
  }
666
 
667
  @media only screen and (max-width: 960px) {
668
-
669
  .SimpleHistory-modal__background {
670
  z-index: 9991; /* #adminmenuwrap has z-index 9990 */
671
  }
@@ -677,7 +675,6 @@ Modal window with detailss
677
  bottom: 10px;
678
  z-index: 9991; /* #adminmenuwrap has z-index 9990 */
679
  }
680
-
681
  }
682
 
683
  .SimpleHistory-modal__contentInner {
@@ -701,46 +698,43 @@ Modal window with detailss
701
 
702
  /* if wp left meny is collapsed .folded is added and meny width is 36 px */
703
  .folded .SimpleHistory-modal__content {
704
- left: 156px /* admin meny width is 160 px */
705
  }
706
 
707
  @media only screen and (max-width: 850px) {
708
-
709
  .SimpleHistory-modal__content {
710
  left: 10px; /* admin meny width is 160 px */
711
  }
712
-
713
  }
714
 
715
-
716
  .SimpleHistory-modal__content--enter {
717
- transition: all .15s ease-out;
718
  -webkit-transform: scale(0.95);
719
- transform: scale(0.95);
720
  opacity: 0;
721
  }
722
 
723
  .SimpleHistory-modal__content--enter-active {
724
  opacity: 1;
725
  -webkit-transform: scale(1);
726
- transform: scale(1);
727
  }
728
 
729
  .SimpleHistory-modal__content--leave-active {
730
  opacity: 0;
731
  -webkit-transform: scale(0.95);
732
- transform: scale(0.95);
733
  }
734
 
735
  .SimpleHistory-modal__leave-active {
736
- transition: all .15s .15s ease-out, visibility 0s .30s;
737
 
738
  opacity: 0;
739
  visibility: hidden;
740
  }
741
 
742
  .admin-bar .SimpleHistory-modal__content {
743
- top: 92px /* admin bar height is 32 px*/
744
  }
745
 
746
  @media only screen and (max-width: 960px) {
@@ -751,7 +745,7 @@ Modal window with detailss
751
  }
752
 
753
  /* style the logRow a bit more when shown in modal */
754
- .SimpleHistory-modal .SimpleHistoryLogitem__header {
755
  font-size: 16px;
756
  }
757
 
@@ -805,9 +799,7 @@ Modal window with detailss
805
  background-color: #eee;
806
  }
807
 
808
-
809
  @media only screen and (max-width: 850px) {
810
-
811
  .SimpleHistoryLogitem__moreDetails {
812
  margin-left: -60px;
813
  }
@@ -825,34 +817,39 @@ Modal window with detailss
825
  display: block;
826
  margin-bottom: 1em;
827
  }
828
-
829
  }
830
 
831
-
832
- .SimpleHistory-modal .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__secondcol,
833
- .SimpleHistory-modal .SimpleHistoryLogitem--initiator-other .SimpleHistoryLogitem__secondcol {
 
 
 
834
  margin-left: 0;
835
  }
836
 
837
  /** wordpress as initiator = add wordpress icon */
838
  /** anonymous user as initiator = plain user image */
839
  .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
840
- .SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:before,
841
- .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
 
 
842
  display: inline-block;
843
  -webkit-font-smoothing: antialiased;
844
- font: normal 32px/1 'dashicons';
845
  vertical-align: top;
846
  color: #999;
847
  }
848
 
849
-
850
  .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
851
- .SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:before {
 
852
  content: "\f120";
853
  }
854
 
855
- .SimpleHistoryLogitem--initiator-wp_cli .SimpleHistoryLogitem__senderImage:after {
 
856
  content: "CLI";
857
  position: absolute;
858
  background: rgba(255, 255, 255, 0.7);
@@ -863,10 +860,11 @@ Modal window with detailss
863
  line-height: 36px;
864
  text-align: center;
865
  font-family: monospace;
866
- font-sIze: 12px;
867
  }
868
 
869
- .SimpleHistoryLogitem--initiator-web_user .SimpleHistoryLogitem__senderImage:before {
 
870
  content: "\f110";
871
  }
872
 
@@ -937,7 +935,6 @@ Modal window with detailss
937
  font-weight: bold;
938
  }
939
 
940
-
941
  /* diff contents can be very high sometimes, so we limit the height and add scrollbars in those cases */
942
  .SimpleHistory__diff__contents {
943
  max-height: 11em;
@@ -967,7 +964,7 @@ Modal window with detailss
967
 
968
  .SimpleHistory__diff__contents:focus {
969
  outline: 1px solid rgb(0, 115, 170);
970
- box-shadow: 0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);
971
  }
972
 
973
  .SimpleHistory__diff__contentsInner {
 
1
  /*
2
 
3
  The spinner that wp uses:;
6
  */
7
 
8
  /* clearfix */
9
+ .SimpleHistory__cf:before,
10
+ .SimpleHistory__cf:after {
11
+ content: "";
12
+ display: table;
13
+ }
14
+ .SimpleHistory__cf:after {
15
+ clear: both;
16
+ }
17
+ .SimpleHistory__cf {
18
+ zoom: 1;
19
+ } /* For IE 6/7 (trigger hasLayout) */
20
 
21
  .SimpleHistoryGui,
22
  .SimpleHistoryGuiExample {
41
 
42
  /* wrap around the log items and the pagination */
43
  .SimpleHistoryLogitemsWrap {
44
+ transition: opacity 0.1s ease-out;
45
  }
46
 
47
  /* on its own page */
51
  position: relative;
52
  margin-right: 340px;
53
  min-height: 200px;
54
+ background-color: rgba(255, 255, 255, 0.75);
55
  }
56
 
57
  .SimpleHistory--isLoaded .SimpleHistoryGuiWrap {
73
  }
74
  }
75
 
 
 
76
  /*
77
  .SimpleHistoryGui:after {
78
  content: "\f206";
94
  background: #fff;
95
  border: 1px solid rgb(229, 229, 229);
96
  opacity: 0;
97
+ transition: all 0.25s ease-out;
98
  }
99
 
100
  .SimpleHistory--isLoaded .SimpleHistoryLogitems,
102
  opacity: 1;
103
  }
104
 
 
 
105
  /**
106
  * Log items
107
  * There is always a 4px left border, just with differents colors
138
  Style different log levels.
139
  */
140
 
141
+ .SimpleHistoryLogitem--logleveltag {
142
  display: inline-block;
143
  background-color: rgba(238, 238, 238, 1);
144
  font-size: 10px;
149
  line-height: 1;
150
  }
151
 
 
152
  .SimpleHistoryLogitem--loglevel-debug {
153
+ border-left-color: #cef6d8;
154
  }
155
  .SimpleHistoryLogitem--logleveltag-debug {
156
+ background-color: #cef6d8;
157
  color: #111;
158
  }
159
 
 
160
  .SimpleHistoryLogitem--loglevel-info {
161
  border-left-color: white;
162
  }
165
  }
166
 
167
  .SimpleHistoryLogitem--loglevel-notice {
168
+ border-left-color: #ffffe0;
169
  border-left-color: rgb(219, 219, 183);
170
  }
171
  .SimpleHistoryLogitem--logleveltag-notice {
172
  background-color: rgb(219, 219, 183);
173
+ color: #111;
174
  }
175
 
176
  .SimpleHistoryLogitem--loglevel-warning {
177
+ border-left-color: #f7d358;
178
+ }
179
+ .SimpleHistoryLogitem--logleveltag-warning {
180
+ background-color: #f7d358;
181
+ color: #111;
182
  }
 
 
 
 
 
183
 
184
  .SimpleHistoryLogitem--loglevel-error {
185
+ border-left-color: #f79f81;
186
  }
187
  .SimpleHistoryLogitem--logleveltag-error {
188
+ background-color: #f79f81;
189
  color: #000;
190
  }
191
 
 
192
  .SimpleHistoryLogitem--loglevel-critical {
193
+ border-left-color: #fa5858;
194
  }
195
  .SimpleHistoryLogitem--logleveltag-critical {
196
+ background-color: #fa5858;
197
  color: #fff;
198
  }
199
 
206
  }
207
 
208
  .SimpleHistoryLogitem--loglevel-emergency {
209
+ border-left-color: #610b0b;
210
+ border-left-color: #df0101;
211
  }
212
  .SimpleHistoryLogitem--logleveltag-emergency {
213
+ background-color: #610b0b;
214
+ background-color: #df0101;
215
  color: #eee;
216
  }
217
 
281
  }
282
 
283
  .SimpleHistoryLogitem__details p {
284
+ margin-top: 0.4em;
285
+ margin-bottom: 0.4em;
286
  }
287
 
288
  .SimpleHistoryLogitem__occasions {
328
  margin: 0;
329
  }
330
 
 
331
  .SimpleHistoryLogitem__keyValueTable__addedThing {
332
  text-decoration: none;
333
  }
337
  color: #999;
338
  }
339
 
 
340
  /* wrap span.SimpleHistoryLogitem__inlineDivided around things that should have a bullet between them */
341
  .SimpleHistoryLogitem__inlineDivided {
342
  white-space: nowrap;
350
  .SimpleHistoryLogitem__inlineDivided:before {
351
  /* \b7 = middot, \a0 = space */
352
  /*content: '\a0\b7\a0\a0';*/
353
+ content: "\b7\a0";
354
  /* \2022 = bullet */
355
  /*content: '\a0\a0\2022\a0\a0';*/
356
  color: rgb(137, 143, 156);
357
  }
358
 
359
  .SimpleHistoryLogitem__inlineDivided:first-child:before {
360
+ content: "";
361
  }
362
 
363
  /*
365
  */
366
  .SimpleHistoryLogitemThumbnail {
367
  display: inline-block;
368
+ margin: 0.5em 0 0 0;
369
  padding: 5px;
370
  border: 1px solid #ddd;
371
  border-radius: 2px;
 
372
  }
373
 
374
  .SimpleHistoryLogitemThumbnailLink {
381
  so user can see that an image have transparency
382
  */
383
  display: block;
384
+ background-image: url("data:image/gif;base64,R0lGODlhEAAQAIAAAOXl5f///yH5BAAAAAAALAAAAAAQABAAAAIfhG+hq4jM3IFLJhoswNly/XkcBpIiVaInlLJr9FZWAQA7");
385
  max-width: 200px;
386
  max-height: 125px;
387
  height: auto;
388
  }
389
 
 
390
  /*
391
  when occasions are added
392
  */
427
  .SimpleHistoryLogitem__occasionsItems {
428
  opacity: 0;
429
  max-height: 0;
430
+ transition: opacity 0.25s ease-out 0.5s, max-height 2s ease-out 0s,
431
+ margin 0.25s 0s ease-out;
432
  background-color: white;
433
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.25);
434
  }
437
  opacity: 1;
438
  max-height: 2000px;
439
  margin-left: -5px;
440
+ margin-right: -5px;
441
  }
442
 
443
  /*
470
  .SimpleHistoryLogitem--occasionAdded {
471
  max-height: 1000px;
472
  opacity: 1;
473
+ border-top-width: 1px;
474
+ border-bottom-width: 1px;
475
  padding-top: 15px;
476
  padding-bottom: 15px;
477
  }
478
 
 
479
  /*
480
  customizations for the dashboard
481
  i.e. the log is inside a .postbox element
483
 
484
  .postbox {
485
  }
486
+ #simple_history_dashboard_widget .inside {
487
+ padding: 0;
488
+ margin-top: 0;
489
+ }
 
 
 
 
 
 
490
 
491
+ .postbox .SimpleHistoryQuickStats {
492
+ margin-left: 13px;
493
+ margin-right: 13px;
494
+ font-size: 14px;
495
+ }
496
 
497
+ .postbox .SimpleHistoryQuickStats p {
498
+ font-size: 14px;
499
+ }
500
 
501
+ .postbox .SimpleHistoryLogitems {
502
+ border: none;
503
+ }
504
 
505
+ .postbox .SimpleHistoryLogitem {
506
+ padding: 12px 5px 12px 16px;
507
+ }
508
 
509
+ .postbox .SimpleHistoryLogitem:first-child {
510
+ /*padding-top: 0;*/
511
+ }
512
 
513
+ .postbox .SimpleHistoryLogitem::before {
514
+ left: 55px;
515
+ }
 
516
 
517
+ .postbox .SimpleHistoryLogitem__senderImage {
518
+ width: 24px;
519
+ height: 24px;
520
+ }
521
+
522
+ .postbox
523
+ .SimpleHistoryLogitem--initiator-wp
524
+ .SimpleHistoryLogitem__senderImage:before,
525
+ .postbox
526
+ .SimpleHistoryLogitem--initiator-wp_cli
527
+ .SimpleHistoryLogitem__senderImage:before,
528
+ .postbox
529
+ .SimpleHistoryLogitem--initiator-web_user
530
+ .SimpleHistoryLogitem__senderImage:before {
531
+ font-size: 24px;
532
+ }
533
 
534
+ .postbox .SimpleHistoryLogitem__secondcol {
535
+ margin-left: 40px;
536
+ }
537
 
538
+ .postbox .SimpleHistoryLogitem__text {
539
+ font-size: 1em;
540
+ }
541
 
542
+ .postbox .SimpleHistoryLogitem__details p {
543
+ margin-top: 0;
544
+ margin-bottom: 0;
545
+ }
546
 
547
+ .postbox .SimpleHistoryLogitem__text,
548
+ .postbox .SimpleHistoryLogitem__details,
549
+ .postbox .SimpleHistoryLogitem__details p {
550
+ line-height: 1.5;
551
+ }
552
 
553
+ .postbox .SimpleHistoryPaginationLink,
554
+ .postbox .SimpleHistoryPaginationCurrentPage {
555
+ font-size: 13px;
556
+ line-height: 19px;
557
+ height: 24px;
558
+ }
559
 
560
+ /*
561
  .postbox .SimpleHistoryLogitem__details {
562
  display: none;
563
  }
565
 
566
  /* // end dashboard */
567
 
 
 
568
  /*
569
  Styles for filter
570
  */
584
  Pagination, below logRows
585
  */
586
 
587
+ .SimpleHistoryLogitems__pagination {
588
+ }
589
 
590
  .SimpleHistoryPaginationPages {
591
  text-align: center;
629
  animations/effects
630
  */
631
  .SimpleHistory-isLoadingPage .SimpleHistoryLogitemsWrap {
632
+ opacity: 0.5;
633
  }
634
 
635
  /*
638
  .SimpleHistory-modal {
639
  }
640
 
 
641
  .SimpleHistory-modal__background {
642
  position: fixed;
643
  top: 0;
664
  }
665
 
666
  @media only screen and (max-width: 960px) {
 
667
  .SimpleHistory-modal__background {
668
  z-index: 9991; /* #adminmenuwrap has z-index 9990 */
669
  }
675
  bottom: 10px;
676
  z-index: 9991; /* #adminmenuwrap has z-index 9990 */
677
  }
 
678
  }
679
 
680
  .SimpleHistory-modal__contentInner {
698
 
699
  /* if wp left meny is collapsed .folded is added and meny width is 36 px */
700
  .folded .SimpleHistory-modal__content {
701
+ left: 156px; /* admin meny width is 160 px */
702
  }
703
 
704
  @media only screen and (max-width: 850px) {
 
705
  .SimpleHistory-modal__content {
706
  left: 10px; /* admin meny width is 160 px */
707
  }
 
708
  }
709
 
 
710
  .SimpleHistory-modal__content--enter {
711
+ transition: all 0.15s ease-out;
712
  -webkit-transform: scale(0.95);
713
+ transform: scale(0.95);
714
  opacity: 0;
715
  }
716
 
717
  .SimpleHistory-modal__content--enter-active {
718
  opacity: 1;
719
  -webkit-transform: scale(1);
720
+ transform: scale(1);
721
  }
722
 
723
  .SimpleHistory-modal__content--leave-active {
724
  opacity: 0;
725
  -webkit-transform: scale(0.95);
726
+ transform: scale(0.95);
727
  }
728
 
729
  .SimpleHistory-modal__leave-active {
730
+ transition: all 0.15s 0.15s ease-out, visibility 0s 0.3s;
731
 
732
  opacity: 0;
733
  visibility: hidden;
734
  }
735
 
736
  .admin-bar .SimpleHistory-modal__content {
737
+ top: 92px; /* admin bar height is 32 px*/
738
  }
739
 
740
  @media only screen and (max-width: 960px) {
745
  }
746
 
747
  /* style the logRow a bit more when shown in modal */
748
+ .SimpleHistory-modal .SimpleHistoryLogitem__header {
749
  font-size: 16px;
750
  }
751
 
799
  background-color: #eee;
800
  }
801
 
 
802
  @media only screen and (max-width: 850px) {
 
803
  .SimpleHistoryLogitem__moreDetails {
804
  margin-left: -60px;
805
  }
817
  display: block;
818
  margin-bottom: 1em;
819
  }
 
820
  }
821
 
822
+ .SimpleHistory-modal
823
+ .SimpleHistoryLogitem--initiator-web_user
824
+ .SimpleHistoryLogitem__secondcol,
825
+ .SimpleHistory-modal
826
+ .SimpleHistoryLogitem--initiator-other
827
+ .SimpleHistoryLogitem__secondcol {
828
  margin-left: 0;
829
  }
830
 
831
  /** wordpress as initiator = add wordpress icon */
832
  /** anonymous user as initiator = plain user image */
833
  .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
834
+ .SimpleHistoryLogitem--initiator-wp_cli
835
+ .SimpleHistoryLogitem__senderImage:before,
836
+ .SimpleHistoryLogitem--initiator-web_user
837
+ .SimpleHistoryLogitem__senderImage:before {
838
  display: inline-block;
839
  -webkit-font-smoothing: antialiased;
840
+ font: normal 32px/1 "dashicons";
841
  vertical-align: top;
842
  color: #999;
843
  }
844
 
 
845
  .SimpleHistoryLogitem--initiator-wp .SimpleHistoryLogitem__senderImage:before,
846
+ .SimpleHistoryLogitem--initiator-wp_cli
847
+ .SimpleHistoryLogitem__senderImage:before {
848
  content: "\f120";
849
  }
850
 
851
+ .SimpleHistoryLogitem--initiator-wp_cli
852
+ .SimpleHistoryLogitem__senderImage:after {
853
  content: "CLI";
854
  position: absolute;
855
  background: rgba(255, 255, 255, 0.7);
860
  line-height: 36px;
861
  text-align: center;
862
  font-family: monospace;
863
+ font-size: 12px;
864
  }
865
 
866
+ .SimpleHistoryLogitem--initiator-web_user
867
+ .SimpleHistoryLogitem__senderImage:before {
868
  content: "\f110";
869
  }
870
 
935
  font-weight: bold;
936
  }
937
 
 
938
  /* diff contents can be very high sometimes, so we limit the height and add scrollbars in those cases */
939
  .SimpleHistory__diff__contents {
940
  max-height: 11em;
964
 
965
  .SimpleHistory__diff__contents:focus {
966
  outline: 1px solid rgb(0, 115, 170);
967
+ box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
968
  }
969
 
970
  .SimpleHistory__diff__contentsInner {
dropins/SimpleHistorySidebarDropin.css CHANGED
@@ -1,4 +1,3 @@
1
-
2
  .SimpleHistory__pageSidebar {
3
  float: right;
4
  width: 300px;
@@ -8,10 +7,9 @@
8
  @media only screen and (max-width: 850px) {
9
  .SimpleHistory__pageSidebar {
10
  width: 100%;
11
- float: none;
12
  margin-right: auto;
13
  margin-top: 20px;
14
- }
15
  }
16
 
17
  .SimpleHistory__pageSidebar .inside {
@@ -25,4 +23,3 @@
25
  .SimpleHistory__pageSidebar .postbox .hndle {
26
  cursor: auto;
27
  }
28
-
 
1
  .SimpleHistory__pageSidebar {
2
  float: right;
3
  width: 300px;
7
  @media only screen and (max-width: 850px) {
8
  .SimpleHistory__pageSidebar {
9
  width: 100%;
 
10
  margin-right: auto;
11
  margin-top: 20px;
12
+ }
13
  }
14
 
15
  .SimpleHistory__pageSidebar .inside {
23
  .SimpleHistory__pageSidebar .postbox .hndle {
24
  cursor: auto;
25
  }
 
gruntfile.js CHANGED
@@ -1,36 +1,149 @@
1
- module.exports = function (grunt) {
2
-
3
- require('time-grunt')(grunt);
4
-
5
- // Require all grunt-tasks instead of manually initialize them.
6
- require('load-grunt-tasks')(grunt);
7
-
8
- grunt.initConfig({
9
-
10
- makepot: {
11
- target: {
12
- options: {
13
- cwd: '', // Directory of files to internationalize.
14
- domainPath: 'languages/', // Where to save the POT file.
15
- exclude: [], // List of files or directories to ignore.
16
- include: [], // List of files or directories to include.
17
- i18nToolsPath: 'node_modules/grunt-wp-i18n/vendor/wp-i18n-tools', // Path to the i18n tools directory.
18
- mainFile: '', // Main project file.
19
- potComments: '', // The copyright at the beginning of the POT file.
20
- potFilename: '', // Name of the POT file.
21
- potHeaders: {
22
- poedit: true, // Includes common Poedit headers.
23
- 'x-poedit-keywordslist': true // Include a list of all possible gettext functions.
24
- }, // Headers to add to the generated POT file.
25
- processPot: null, // A callback function for manipulating the POT file.
26
- type: 'wp-plugin', // Type of project (wp-plugin or wp-theme).
27
- updateTimestamp: true // Whether the POT-Creation-Date should be updated without other changes.
28
- }
29
- }
30
- }
31
- });
32
-
33
- // Task(s) to run. Default is default.
34
- grunt.registerTask('default', ["makepot"]);
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  };
1
+ module.exports = function(grunt) {
2
+ require("time-grunt")(grunt);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
+ // Require all grunt-tasks instead of manually initialize them.
5
+ require("load-grunt-tasks")(grunt);
6
+
7
+ var pkg = grunt.file.readJSON("package.json");
8
+ var gig = require("gitignore-globs");
9
+ var gag = require("gitattributes-globs");
10
+ var ignored_gitignore = gig(".gitignore", { negate: true }).map(function(
11
+ value
12
+ ) {
13
+ return value.replace(/^!\//, "!");
14
+ });
15
+ var ignored_gitattributes = gag(".gitattributes", { negate: true }).map(
16
+ function(value) {
17
+ return value.replace(/^!\//, "!");
18
+ }
19
+ );
20
+
21
+ let config = {};
22
+
23
+ config.pkg = pkg;
24
+
25
+ config.version = {
26
+ main: {
27
+ options: {
28
+ prefix: "Version:[\\s]+"
29
+ },
30
+ src: ["index.php"]
31
+ },
32
+ main2: {
33
+ options: {
34
+ prefix: "'SIMPLE_HISTORY_VERSION', '"
35
+ },
36
+ src: ["index.php"]
37
+ },
38
+ readme: {
39
+ options: {
40
+ prefix: "Stable tag:[\\s]+"
41
+ },
42
+ src: ["readme.txt"]
43
+ },
44
+ pkg: {
45
+ src: ["package.json"]
46
+ }
47
+ };
48
+
49
+ config.makepot = {
50
+ target: {
51
+ options: {
52
+ cwd: "", // Directory of files to internationalize.
53
+ domainPath: "languages/", // Where to save the POT file.
54
+ exclude: [], // List of files or directories to ignore.
55
+ include: [], // List of files or directories to include.
56
+ i18nToolsPath: "node_modules/grunt-wp-i18n/vendor/wp-i18n-tools", // Path to the i18n tools directory.
57
+ mainFile: "", // Main project file.
58
+ potComments: "", // The copyright at the beginning of the POT file.
59
+ potFilename: "", // Name of the POT file.
60
+ potHeaders: {
61
+ poedit: true, // Includes common Poedit headers.
62
+ "x-poedit-keywordslist": true // Include a list of all possible gettext functions.
63
+ }, // Headers to add to the generated POT file.
64
+ processPot: null, // A callback function for manipulating the POT file.
65
+ type: "wp-plugin", // Type of project (wp-plugin or wp-theme).
66
+ updateTimestamp: true // Whether the POT-Creation-Date should be updated without other changes.
67
+ }
68
+ }
69
+ };
70
+
71
+ config.wp_deploy = {
72
+ deploy: {
73
+ options: {
74
+ deploy_trunk: true,
75
+ deploy_tag: true,
76
+ plugin_slug: "<%= pkg.name %>",
77
+ plugin_main_file: "index.php",
78
+ build_dir: "build",
79
+ assets_dir: "assets-wp-repo",
80
+ svn_user: "eskapism"
81
+ }
82
+ },
83
+ assets: {
84
+ options: {
85
+ deploy_trunk: false,
86
+ deploy_tag: false,
87
+ plugin_slug: "<%= pkg.name %>",
88
+ plugin_main_file: "<%= wp_deploy.deploy.options.plugin_main_file %>",
89
+ build_dir: "<%= wp_deploy.deploy.options.build_dir %>",
90
+ assets_dir: "<%= wp_deploy.deploy.options.assets_dir %>",
91
+ svn_user: "<%= wp_deploy.deploy.options.svn_user %>"
92
+ }
93
+ }
94
+ };
95
+
96
+ config.clean = {
97
+ main: ["<%= wp_deploy.deploy.options.build_dir %>"]
98
+ };
99
+
100
+ config.copy = {
101
+ main: {
102
+ src: [
103
+ "**",
104
+ "!.*",
105
+ "!.git/**",
106
+ "!<%= wp_deploy.deploy.options.assets_dir %>/**",
107
+ "!<%= wp_deploy.deploy.options.build_dir %>/**",
108
+ "!README.md",
109
+ ignored_gitignore,
110
+ ignored_gitattributes
111
+ ],
112
+ dest: "<%= wp_deploy.deploy.options.build_dir %>/"
113
+ }
114
+ };
115
+
116
+ grunt.initConfig(config);
117
+
118
+ // Task(s) to run. Default is default.
119
+ grunt.registerTask("makepot", "Make .POT-files for languages/translation.", [
120
+ "makepot"
121
+ ]);
122
+
123
+ grunt.registerTask("build", "Clean and copy", ["clean", "copy"]);
124
+
125
+ grunt.registerTask("deploy", "Deploy plugin to WordPress plugin repository", [
126
+ "build",
127
+ "wp_deploy:deploy"
128
+ ]);
129
+
130
+ grunt.registerTask(
131
+ "deploy:assets",
132
+ "Deploy plugin asssets to WordPress plugin repository",
133
+ ["build", "wp_deploy:assets"]
134
+ );
135
+
136
+ grunt.registerTask(
137
+ "bump",
138
+ "Bump version in major, minor, patch or custom steps.",
139
+ function(version) {
140
+ if (!version) {
141
+ grunt.fail.fatal(
142
+ "No version specified. Usage: bump:major, bump:minor, bump:patch, bump:x.y.z"
143
+ );
144
+ }
145
+
146
+ grunt.task.run(["version::" + version]);
147
+ }
148
+ );
149
  };
index.php CHANGED
@@ -5,7 +5,7 @@
5
  * Text Domain: simple-history
6
  * Domain Path: /languages
7
  * Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
8
- * Version: 2.33
9
  * Author: Pär Thernström
10
  * Author URI: http://simple-history.com/
11
  * License: GPL2
@@ -46,7 +46,7 @@ if ($ok_php_version && $ok_wp_version) {
46
  */
47
 
48
  if (!defined('SIMPLE_HISTORY_VERSION')) {
49
- define('SIMPLE_HISTORY_VERSION', '2.33');
50
  }
51
 
52
  if (!defined('SIMPLE_HISTORY_PATH')) {
5
  * Text Domain: simple-history
6
  * Domain Path: /languages
7
  * Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
8
+ * Version: 2.33.2
9
  * Author: Pär Thernström
10
  * Author URI: http://simple-history.com/
11
  * License: GPL2
46
  */
47
 
48
  if (!defined('SIMPLE_HISTORY_VERSION')) {
49
+ define('SIMPLE_HISTORY_VERSION', '2.33.2');
50
  }
51
 
52
  if (!defined('SIMPLE_HISTORY_PATH')) {
languages/simple-history-fr_FR.mo CHANGED
File without changes
languages/simple-history-fr_FR.po CHANGED
File without changes
languages/simple-history-sv_SE.po CHANGED
File without changes
package-lock.json DELETED
@@ -1,1321 +0,0 @@
1
- {
2
- "name": "simplehistory",
3
- "version": "0.0.1",
4
- "lockfileVersion": 1,
5
- "requires": true,
6
- "dependencies": {
7
- "@prettier/plugin-php": {
8
- "version": "0.10.2",
9
- "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.10.2.tgz",
10
- "integrity": "sha512-FCzNR2kqlS9YV81JguX4vYnpwFn6cOlLwUZaEB0jIjPcrEgqqBwk6KSERTA5cE+lX5Ynip5rkV1hydGufwyJ7A==",
11
- "requires": {
12
- "linguist-languages": "^6.3.0",
13
- "mem": "^4.0.0",
14
- "php-parser": "github:glayzzle/php-parser#71485979b688d12fb130d3e853fdc00348671e00"
15
- }
16
- },
17
- "@types/normalize-package-data": {
18
- "version": "2.4.0",
19
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
20
- "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA=="
21
- },
22
- "abbrev": {
23
- "version": "1.1.1",
24
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
25
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
26
- "dev": true
27
- },
28
- "ansi-regex": {
29
- "version": "2.1.1",
30
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
31
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
32
- "dev": true
33
- },
34
- "ansi-styles": {
35
- "version": "2.2.1",
36
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
37
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
38
- "dev": true
39
- },
40
- "argparse": {
41
- "version": "0.1.16",
42
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
43
- "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
44
- "dev": true,
45
- "requires": {
46
- "underscore": "~1.7.0",
47
- "underscore.string": "~2.4.0"
48
- },
49
- "dependencies": {
50
- "underscore.string": {
51
- "version": "2.4.0",
52
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
53
- "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
54
- "dev": true
55
- }
56
- }
57
- },
58
- "array-differ": {
59
- "version": "1.0.0",
60
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
61
- "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
62
- "dev": true
63
- },
64
- "array-union": {
65
- "version": "1.0.2",
66
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
67
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
68
- "requires": {
69
- "array-uniq": "^1.0.1"
70
- }
71
- },
72
- "array-uniq": {
73
- "version": "1.0.3",
74
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
75
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
76
- },
77
- "arrify": {
78
- "version": "1.0.1",
79
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
80
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
81
- },
82
- "async": {
83
- "version": "0.1.22",
84
- "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
85
- "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
86
- "dev": true
87
- },
88
- "balanced-match": {
89
- "version": "1.0.0",
90
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
91
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
92
- },
93
- "brace-expansion": {
94
- "version": "1.1.11",
95
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
96
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
97
- "requires": {
98
- "balanced-match": "^1.0.0",
99
- "concat-map": "0.0.1"
100
- }
101
- },
102
- "caller-callsite": {
103
- "version": "2.0.0",
104
- "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
105
- "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
106
- "requires": {
107
- "callsites": "^2.0.0"
108
- }
109
- },
110
- "caller-path": {
111
- "version": "2.0.0",
112
- "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
113
- "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
114
- "requires": {
115
- "caller-callsite": "^2.0.0"
116
- }
117
- },
118
- "callsites": {
119
- "version": "2.0.0",
120
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
121
- "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
122
- },
123
- "chalk": {
124
- "version": "1.1.3",
125
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
126
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
127
- "dev": true,
128
- "requires": {
129
- "ansi-styles": "^2.2.1",
130
- "escape-string-regexp": "^1.0.2",
131
- "has-ansi": "^2.0.0",
132
- "strip-ansi": "^3.0.0",
133
- "supports-color": "^2.0.0"
134
- }
135
- },
136
- "ci-info": {
137
- "version": "2.0.0",
138
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
139
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
140
- },
141
- "coffee-script": {
142
- "version": "1.3.3",
143
- "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
144
- "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
145
- "dev": true
146
- },
147
- "color-convert": {
148
- "version": "1.9.3",
149
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
150
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
151
- "requires": {
152
- "color-name": "1.1.3"
153
- }
154
- },
155
- "color-name": {
156
- "version": "1.1.3",
157
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
158
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
159
- },
160
- "colors": {
161
- "version": "0.6.2",
162
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
163
- "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
164
- "dev": true
165
- },
166
- "concat-map": {
167
- "version": "0.0.1",
168
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
169
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
170
- },
171
- "cosmiconfig": {
172
- "version": "5.2.0",
173
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz",
174
- "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==",
175
- "requires": {
176
- "import-fresh": "^2.0.0",
177
- "is-directory": "^0.3.1",
178
- "js-yaml": "^3.13.0",
179
- "parse-json": "^4.0.0"
180
- },
181
- "dependencies": {
182
- "argparse": {
183
- "version": "1.0.10",
184
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
185
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
186
- "requires": {
187
- "sprintf-js": "~1.0.2"
188
- }
189
- },
190
- "esprima": {
191
- "version": "4.0.1",
192
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
193
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
194
- },
195
- "js-yaml": {
196
- "version": "3.13.1",
197
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
198
- "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
199
- "requires": {
200
- "argparse": "^1.0.7",
201
- "esprima": "^4.0.0"
202
- }
203
- }
204
- }
205
- },
206
- "cross-spawn": {
207
- "version": "6.0.5",
208
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
209
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
210
- "requires": {
211
- "nice-try": "^1.0.4",
212
- "path-key": "^2.0.1",
213
- "semver": "^5.5.0",
214
- "shebang-command": "^1.2.0",
215
- "which": "^1.2.9"
216
- },
217
- "dependencies": {
218
- "which": {
219
- "version": "1.3.1",
220
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
221
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
222
- "requires": {
223
- "isexe": "^2.0.0"
224
- }
225
- }
226
- }
227
- },
228
- "date-time": {
229
- "version": "1.1.0",
230
- "resolved": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz",
231
- "integrity": "sha1-GIdtC9pMGf5w3Tv0sDTygbEqQLY=",
232
- "dev": true,
233
- "requires": {
234
- "time-zone": "^0.1.0"
235
- }
236
- },
237
- "dateformat": {
238
- "version": "1.0.2-1.2.3",
239
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
240
- "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
241
- "dev": true
242
- },
243
- "encoding": {
244
- "version": "0.1.12",
245
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
246
- "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
247
- "dev": true,
248
- "requires": {
249
- "iconv-lite": "~0.4.13"
250
- },
251
- "dependencies": {
252
- "iconv-lite": {
253
- "version": "0.4.24",
254
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
255
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
256
- "dev": true,
257
- "requires": {
258
- "safer-buffer": ">= 2.1.2 < 3"
259
- }
260
- }
261
- }
262
- },
263
- "end-of-stream": {
264
- "version": "1.4.1",
265
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
266
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
267
- "requires": {
268
- "once": "^1.4.0"
269
- }
270
- },
271
- "error-ex": {
272
- "version": "1.3.2",
273
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
274
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
275
- "requires": {
276
- "is-arrayish": "^0.2.1"
277
- }
278
- },
279
- "escape-string-regexp": {
280
- "version": "1.0.5",
281
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
282
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
283
- },
284
- "esprima": {
285
- "version": "1.0.4",
286
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
287
- "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
288
- "dev": true
289
- },
290
- "eventemitter2": {
291
- "version": "0.4.14",
292
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
293
- "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
294
- "dev": true
295
- },
296
- "execa": {
297
- "version": "1.0.0",
298
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
299
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
300
- "requires": {
301
- "cross-spawn": "^6.0.0",
302
- "get-stream": "^4.0.0",
303
- "is-stream": "^1.1.0",
304
- "npm-run-path": "^2.0.0",
305
- "p-finally": "^1.0.0",
306
- "signal-exit": "^3.0.0",
307
- "strip-eof": "^1.0.0"
308
- }
309
- },
310
- "exit": {
311
- "version": "0.1.2",
312
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
313
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
314
- "dev": true
315
- },
316
- "figures": {
317
- "version": "1.7.0",
318
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
319
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
320
- "dev": true,
321
- "requires": {
322
- "escape-string-regexp": "^1.0.5",
323
- "object-assign": "^4.1.0"
324
- }
325
- },
326
- "find-up": {
327
- "version": "3.0.0",
328
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
329
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
330
- "requires": {
331
- "locate-path": "^3.0.0"
332
- }
333
- },
334
- "findup-sync": {
335
- "version": "0.1.3",
336
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
337
- "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
338
- "dev": true,
339
- "requires": {
340
- "glob": "~3.2.9",
341
- "lodash": "~2.4.1"
342
- },
343
- "dependencies": {
344
- "glob": {
345
- "version": "3.2.11",
346
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
347
- "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
348
- "dev": true,
349
- "requires": {
350
- "inherits": "2",
351
- "minimatch": "0.3"
352
- }
353
- },
354
- "lodash": {
355
- "version": "2.4.2",
356
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
357
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
358
- "dev": true
359
- },
360
- "minimatch": {
361
- "version": "0.3.0",
362
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
363
- "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
364
- "dev": true,
365
- "requires": {
366
- "lru-cache": "2",
367
- "sigmund": "~1.0.0"
368
- }
369
- }
370
- }
371
- },
372
- "get-stdin": {
373
- "version": "7.0.0",
374
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz",
375
- "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ=="
376
- },
377
- "get-stream": {
378
- "version": "4.1.0",
379
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
380
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
381
- "requires": {
382
- "pump": "^3.0.0"
383
- }
384
- },
385
- "getobject": {
386
- "version": "0.1.0",
387
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
388
- "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
389
- "dev": true
390
- },
391
- "gettext-parser": {
392
- "version": "0.2.0",
393
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-0.2.0.tgz",
394
- "integrity": "sha1-VBuZ4nIORgFjBVxk6ZsUIuPplfU=",
395
- "dev": true,
396
- "requires": {
397
- "encoding": "~0.1"
398
- }
399
- },
400
- "glob": {
401
- "version": "3.1.21",
402
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
403
- "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
404
- "dev": true,
405
- "requires": {
406
- "graceful-fs": "~1.2.0",
407
- "inherits": "1",
408
- "minimatch": "~0.2.11"
409
- },
410
- "dependencies": {
411
- "inherits": {
412
- "version": "1.0.2",
413
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
414
- "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
415
- "dev": true
416
- }
417
- }
418
- },
419
- "graceful-fs": {
420
- "version": "1.2.3",
421
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
422
- "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
423
- "dev": true
424
- },
425
- "grunt": {
426
- "version": "0.4.5",
427
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
428
- "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
429
- "dev": true,
430
- "requires": {
431
- "async": "~0.1.22",
432
- "coffee-script": "~1.3.3",
433
- "colors": "~0.6.2",
434
- "dateformat": "1.0.2-1.2.3",
435
- "eventemitter2": "~0.4.13",
436
- "exit": "~0.1.1",
437
- "findup-sync": "~0.1.2",
438
- "getobject": "~0.1.0",
439
- "glob": "~3.1.21",
440
- "grunt-legacy-log": "~0.1.0",
441
- "grunt-legacy-util": "~0.2.0",
442
- "hooker": "~0.2.3",
443
- "iconv-lite": "~0.2.11",
444
- "js-yaml": "~2.0.5",
445
- "lodash": "~0.9.2",
446
- "minimatch": "~0.2.12",
447
- "nopt": "~1.0.10",
448
- "rimraf": "~2.2.8",
449
- "underscore.string": "~2.2.1",
450
- "which": "~1.0.5"
451
- }
452
- },
453
- "grunt-legacy-log": {
454
- "version": "0.1.3",
455
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
456
- "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
457
- "dev": true,
458
- "requires": {
459
- "colors": "~0.6.2",
460
- "grunt-legacy-log-utils": "~0.1.1",
461
- "hooker": "~0.2.3",
462
- "lodash": "~2.4.1",
463
- "underscore.string": "~2.3.3"
464
- },
465
- "dependencies": {
466
- "lodash": {
467
- "version": "2.4.2",
468
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
469
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
470
- "dev": true
471
- },
472
- "underscore.string": {
473
- "version": "2.3.3",
474
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
475
- "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
476
- "dev": true
477
- }
478
- }
479
- },
480
- "grunt-legacy-log-utils": {
481
- "version": "0.1.1",
482
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
483
- "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
484
- "dev": true,
485
- "requires": {
486
- "colors": "~0.6.2",
487
- "lodash": "~2.4.1",
488
- "underscore.string": "~2.3.3"
489
- },
490
- "dependencies": {
491
- "lodash": {
492
- "version": "2.4.2",
493
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
494
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
495
- "dev": true
496
- },
497
- "underscore.string": {
498
- "version": "2.3.3",
499
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
500
- "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
501
- "dev": true
502
- }
503
- }
504
- },
505
- "grunt-legacy-util": {
506
- "version": "0.2.0",
507
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
508
- "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
509
- "dev": true,
510
- "requires": {
511
- "async": "~0.1.22",
512
- "exit": "~0.1.1",
513
- "getobject": "~0.1.0",
514
- "hooker": "~0.2.3",
515
- "lodash": "~0.9.2",
516
- "underscore.string": "~2.2.1",
517
- "which": "~1.0.5"
518
- }
519
- },
520
- "grunt-pot": {
521
- "version": "0.2.1",
522
- "resolved": "https://registry.npmjs.org/grunt-pot/-/grunt-pot-0.2.1.tgz",
523
- "integrity": "sha1-eCFIGpkTxY11K22N9XV7ZRz6Ous=",
524
- "dev": true
525
- },
526
- "grunt-version": {
527
- "version": "1.3.1",
528
- "resolved": "https://registry.npmjs.org/grunt-version/-/grunt-version-1.3.1.tgz",
529
- "integrity": "sha512-EIx829NfFSAG3EbBKTAH15rj5SutSnjdZwVr80qWrmuVU4vOqP1S8RB3ghzetBYSiNBozKMNS+zeA6+jhmshUw==",
530
- "dev": true,
531
- "requires": {
532
- "grunt": "0.4.5 - 1",
533
- "semver": "^6.1.1"
534
- },
535
- "dependencies": {
536
- "semver": {
537
- "version": "6.3.0",
538
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
539
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
540
- "dev": true
541
- }
542
- }
543
- },
544
- "grunt-wp-i18n": {
545
- "version": "0.4.9",
546
- "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-0.4.9.tgz",
547
- "integrity": "sha1-6j7kmnp4hrk2kEhprffZZ/YWbsE=",
548
- "dev": true,
549
- "requires": {
550
- "async": "~0.2.10",
551
- "gettext-parser": "~0.2.0",
552
- "grunt": "~0.4.2",
553
- "underscore": "~1.5.2",
554
- "underscore.string": "~2.3.3"
555
- },
556
- "dependencies": {
557
- "async": {
558
- "version": "0.2.10",
559
- "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
560
- "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
561
- "dev": true
562
- },
563
- "underscore": {
564
- "version": "1.5.2",
565
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz",
566
- "integrity": "sha1-EzXF5PXm0zu7SwBrqMhqAPVW3gg=",
567
- "dev": true
568
- },
569
- "underscore.string": {
570
- "version": "2.3.3",
571
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
572
- "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
573
- "dev": true
574
- }
575
- }
576
- },
577
- "has-ansi": {
578
- "version": "2.0.0",
579
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
580
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
581
- "dev": true,
582
- "requires": {
583
- "ansi-regex": "^2.0.0"
584
- }
585
- },
586
- "has-flag": {
587
- "version": "3.0.0",
588
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
589
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
590
- },
591
- "hooker": {
592
- "version": "0.2.3",
593
- "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
594
- "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
595
- "dev": true
596
- },
597
- "hosted-git-info": {
598
- "version": "2.7.1",
599
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
600
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
601
- },
602
- "husky": {
603
- "version": "2.1.0",
604
- "resolved": "https://registry.npmjs.org/husky/-/husky-2.1.0.tgz",
605
- "integrity": "sha512-FHsqdIJPmQX/89Xg/761RMFCPSNNG2eiQMxChGP081NTohHexEuu/4nYh5m4TcFKq4xm+DqaGp8J/EUnkzL1Aw==",
606
- "requires": {
607
- "cosmiconfig": "^5.2.0",
608
- "execa": "^1.0.0",
609
- "find-up": "^3.0.0",
610
- "get-stdin": "^7.0.0",
611
- "is-ci": "^2.0.0",
612
- "pkg-dir": "^4.1.0",
613
- "please-upgrade-node": "^3.1.1",
614
- "read-pkg": "^5.0.0",
615
- "run-node": "^1.0.0",
616
- "slash": "^2.0.0"
617
- }
618
- },
619
- "iconv-lite": {
620
- "version": "0.2.11",
621
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
622
- "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
623
- "dev": true
624
- },
625
- "ignore": {
626
- "version": "3.3.10",
627
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
628
- "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="
629
- },
630
- "import-fresh": {
631
- "version": "2.0.0",
632
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
633
- "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
634
- "requires": {
635
- "caller-path": "^2.0.0",
636
- "resolve-from": "^3.0.0"
637
- }
638
- },
639
- "inherits": {
640
- "version": "2.0.3",
641
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
642
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
643
- "dev": true
644
- },
645
- "is-arrayish": {
646
- "version": "0.2.1",
647
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
648
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
649
- },
650
- "is-ci": {
651
- "version": "2.0.0",
652
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
653
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
654
- "requires": {
655
- "ci-info": "^2.0.0"
656
- }
657
- },
658
- "is-directory": {
659
- "version": "0.3.1",
660
- "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
661
- "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
662
- },
663
- "is-finite": {
664
- "version": "1.0.2",
665
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
666
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
667
- "dev": true,
668
- "requires": {
669
- "number-is-nan": "^1.0.0"
670
- }
671
- },
672
- "is-stream": {
673
- "version": "1.1.0",
674
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
675
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
676
- },
677
- "isexe": {
678
- "version": "2.0.0",
679
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
680
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
681
- },
682
- "js-yaml": {
683
- "version": "2.0.5",
684
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
685
- "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
686
- "dev": true,
687
- "requires": {
688
- "argparse": "~ 0.1.11",
689
- "esprima": "~ 1.0.2"
690
- }
691
- },
692
- "json-parse-better-errors": {
693
- "version": "1.0.2",
694
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
695
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
696
- },
697
- "linguist-languages": {
698
- "version": "6.3.0",
699
- "resolved": "https://registry.npmjs.org/linguist-languages/-/linguist-languages-6.3.0.tgz",
700
- "integrity": "sha512-d86fIQM00SqmBmAErxRpBEBe2Nw/WK4Se999wavaXc+lqarOLnoenGP3V/wgBclxKsRXEYWTd6mvv8373vPSKg=="
701
- },
702
- "load-grunt-tasks": {
703
- "version": "1.0.0",
704
- "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-1.0.0.tgz",
705
- "integrity": "sha1-NKxnBIWb1q4by9fjwh96D8bqx9c=",
706
- "dev": true,
707
- "requires": {
708
- "findup-sync": "^0.1.2",
709
- "multimatch": "^1.0.0"
710
- }
711
- },
712
- "locate-path": {
713
- "version": "3.0.0",
714
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
715
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
716
- "requires": {
717
- "p-locate": "^3.0.0",
718
- "path-exists": "^3.0.0"
719
- }
720
- },
721
- "lodash": {
722
- "version": "0.9.2",
723
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
724
- "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
725
- "dev": true
726
- },
727
- "lru-cache": {
728
- "version": "2.7.3",
729
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
730
- "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
731
- "dev": true
732
- },
733
- "map-age-cleaner": {
734
- "version": "0.1.3",
735
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
736
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
737
- "requires": {
738
- "p-defer": "^1.0.0"
739
- }
740
- },
741
- "mem": {
742
- "version": "4.3.0",
743
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
744
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
745
- "requires": {
746
- "map-age-cleaner": "^0.1.1",
747
- "mimic-fn": "^2.0.0",
748
- "p-is-promise": "^2.0.0"
749
- }
750
- },
751
- "mimic-fn": {
752
- "version": "2.1.0",
753
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
754
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
755
- },
756
- "minimatch": {
757
- "version": "0.2.14",
758
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
759
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
760
- "dev": true,
761
- "requires": {
762
- "lru-cache": "2",
763
- "sigmund": "~1.0.0"
764
- }
765
- },
766
- "mri": {
767
- "version": "1.1.4",
768
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
769
- "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="
770
- },
771
- "multimatch": {
772
- "version": "1.0.1",
773
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-1.0.1.tgz",
774
- "integrity": "sha1-GFR8/iWNAf0zJDWVONv68QRqfI8=",
775
- "dev": true,
776
- "requires": {
777
- "array-differ": "^1.0.0",
778
- "array-union": "^1.0.1",
779
- "minimatch": "^1.0.0"
780
- },
781
- "dependencies": {
782
- "minimatch": {
783
- "version": "1.0.0",
784
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz",
785
- "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=",
786
- "dev": true,
787
- "requires": {
788
- "lru-cache": "2",
789
- "sigmund": "~1.0.0"
790
- }
791
- }
792
- }
793
- },
794
- "nice-try": {
795
- "version": "1.0.5",
796
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
797
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
798
- },
799
- "nopt": {
800
- "version": "1.0.10",
801
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
802
- "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
803
- "dev": true,
804
- "requires": {
805
- "abbrev": "1"
806
- }
807
- },
808
- "normalize-package-data": {
809
- "version": "2.5.0",
810
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
811
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
812
- "requires": {
813
- "hosted-git-info": "^2.1.4",
814
- "resolve": "^1.10.0",
815
- "semver": "2 || 3 || 4 || 5",
816
- "validate-npm-package-license": "^3.0.1"
817
- }
818
- },
819
- "npm-run-path": {
820
- "version": "2.0.2",
821
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
822
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
823
- "requires": {
824
- "path-key": "^2.0.0"
825
- }
826
- },
827
- "number-is-nan": {
828
- "version": "1.0.1",
829
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
830
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
831
- "dev": true
832
- },
833
- "object-assign": {
834
- "version": "4.1.1",
835
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
836
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
837
- "dev": true
838
- },
839
- "once": {
840
- "version": "1.4.0",
841
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
842
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
843
- "requires": {
844
- "wrappy": "1"
845
- }
846
- },
847
- "p-defer": {
848
- "version": "1.0.0",
849
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
850
- "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
851
- },
852
- "p-finally": {
853
- "version": "1.0.0",
854
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
855
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
856
- },
857
- "p-is-promise": {
858
- "version": "2.1.0",
859
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
860
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
861
- },
862
- "p-limit": {
863
- "version": "2.2.0",
864
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
865
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
866
- "requires": {
867
- "p-try": "^2.0.0"
868
- }
869
- },
870
- "p-locate": {
871
- "version": "3.0.0",
872
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
873
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
874
- "requires": {
875
- "p-limit": "^2.0.0"
876
- }
877
- },
878
- "p-try": {
879
- "version": "2.2.0",
880
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
881
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
882
- },
883
- "parse-json": {
884
- "version": "4.0.0",
885
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
886
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
887
- "requires": {
888
- "error-ex": "^1.3.1",
889
- "json-parse-better-errors": "^1.0.1"
890
- }
891
- },
892
- "parse-ms": {
893
- "version": "1.0.1",
894
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz",
895
- "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=",
896
- "dev": true
897
- },
898
- "path-exists": {
899
- "version": "3.0.0",
900
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
901
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
902
- },
903
- "path-key": {
904
- "version": "2.0.1",
905
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
906
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
907
- },
908
- "path-parse": {
909
- "version": "1.0.6",
910
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
911
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
912
- },
913
- "php-parser": {
914
- "version": "github:glayzzle/php-parser#71485979b688d12fb130d3e853fdc00348671e00",
915
- "from": "github:glayzzle/php-parser#71485979b688d12fb130d3e853fdc00348671e00"
916
- },
917
- "pkg-dir": {
918
- "version": "4.1.0",
919
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.1.0.tgz",
920
- "integrity": "sha512-55k9QN4saZ8q518lE6EFgYiu95u3BWkSajCifhdQjvLvmr8IpnRbhI+UGpWJQfa0KzDguHeeWT1ccO1PmkOi3A==",
921
- "requires": {
922
- "find-up": "^3.0.0"
923
- }
924
- },
925
- "please-upgrade-node": {
926
- "version": "3.1.1",
927
- "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
928
- "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
929
- "requires": {
930
- "semver-compare": "^1.0.0"
931
- }
932
- },
933
- "plur": {
934
- "version": "1.0.0",
935
- "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz",
936
- "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=",
937
- "dev": true
938
- },
939
- "prettier": {
940
- "version": "1.17.0",
941
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz",
942
- "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw=="
943
- },
944
- "pretty-ms": {
945
- "version": "2.1.0",
946
- "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz",
947
- "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=",
948
- "dev": true,
949
- "requires": {
950
- "is-finite": "^1.0.1",
951
- "parse-ms": "^1.0.0",
952
- "plur": "^1.0.0"
953
- }
954
- },
955
- "pretty-quick": {
956
- "version": "1.10.0",
957
- "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.10.0.tgz",
958
- "integrity": "sha512-uNvm2N3UWmnZRZrClyQI45hIbV20f5BpSyZY51Spbvn4APp9+XLyX4bCjWRGT3fGyVyQ/2/iw7dbQq1UUaq7SQ==",
959
- "requires": {
960
- "chalk": "^2.3.0",
961
- "execa": "^0.8.0",
962
- "find-up": "^2.1.0",
963
- "ignore": "^3.3.7",
964
- "mri": "^1.1.0",
965
- "multimatch": "^3.0.0"
966
- },
967
- "dependencies": {
968
- "ansi-styles": {
969
- "version": "3.2.1",
970
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
971
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
972
- "requires": {
973
- "color-convert": "^1.9.0"
974
- }
975
- },
976
- "array-differ": {
977
- "version": "2.1.0",
978
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz",
979
- "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w=="
980
- },
981
- "chalk": {
982
- "version": "2.4.2",
983
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
984
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
985
- "requires": {
986
- "ansi-styles": "^3.2.1",
987
- "escape-string-regexp": "^1.0.5",
988
- "supports-color": "^5.3.0"
989
- }
990
- },
991
- "cross-spawn": {
992
- "version": "5.1.0",
993
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
994
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
995
- "requires": {
996
- "lru-cache": "^4.0.1",
997
- "shebang-command": "^1.2.0",
998
- "which": "^1.2.9"
999
- }
1000
- },
1001
- "execa": {
1002
- "version": "0.8.0",
1003
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
1004
- "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
1005
- "requires": {
1006
- "cross-spawn": "^5.0.1",
1007
- "get-stream": "^3.0.0",
1008
- "is-stream": "^1.1.0",
1009
- "npm-run-path": "^2.0.0",
1010
- "p-finally": "^1.0.0",
1011
- "signal-exit": "^3.0.0",
1012
- "strip-eof": "^1.0.0"
1013
- }
1014
- },
1015
- "find-up": {
1016
- "version": "2.1.0",
1017
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1018
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
1019
- "requires": {
1020
- "locate-path": "^2.0.0"
1021
- }
1022
- },
1023
- "get-stream": {
1024
- "version": "3.0.0",
1025
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
1026
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
1027
- },
1028
- "locate-path": {
1029
- "version": "2.0.0",
1030
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1031
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
1032
- "requires": {
1033
- "p-locate": "^2.0.0",
1034
- "path-exists": "^3.0.0"
1035
- }
1036
- },
1037
- "lru-cache": {
1038
- "version": "4.1.5",
1039
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
1040
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
1041
- "requires": {
1042
- "pseudomap": "^1.0.2",
1043
- "yallist": "^2.1.2"
1044
- }
1045
- },
1046
- "minimatch": {
1047
- "version": "3.0.4",
1048
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1049
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1050
- "requires": {
1051
- "brace-expansion": "^1.1.7"
1052
- }
1053
- },
1054
- "multimatch": {
1055
- "version": "3.0.0",
1056
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz",
1057
- "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==",
1058
- "requires": {
1059
- "array-differ": "^2.0.3",
1060
- "array-union": "^1.0.2",
1061
- "arrify": "^1.0.1",
1062
- "minimatch": "^3.0.4"
1063
- }
1064
- },
1065
- "p-limit": {
1066
- "version": "1.3.0",
1067
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
1068
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
1069
- "requires": {
1070
- "p-try": "^1.0.0"
1071
- }
1072
- },
1073
- "p-locate": {
1074
- "version": "2.0.0",
1075
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1076
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
1077
- "requires": {
1078
- "p-limit": "^1.1.0"
1079
- }
1080
- },
1081
- "p-try": {
1082
- "version": "1.0.0",
1083
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1084
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
1085
- },
1086
- "supports-color": {
1087
- "version": "5.5.0",
1088
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1089
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1090
- "requires": {
1091
- "has-flag": "^3.0.0"
1092
- }
1093
- },
1094
- "which": {
1095
- "version": "1.3.1",
1096
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1097
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1098
- "requires": {
1099
- "isexe": "^2.0.0"
1100
- }
1101
- }
1102
- }
1103
- },
1104
- "pseudomap": {
1105
- "version": "1.0.2",
1106
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1107
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
1108
- },
1109
- "pump": {
1110
- "version": "3.0.0",
1111
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1112
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1113
- "requires": {
1114
- "end-of-stream": "^1.1.0",
1115
- "once": "^1.3.1"
1116
- }
1117
- },
1118
- "read-pkg": {
1119
- "version": "5.1.1",
1120
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz",
1121
- "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==",
1122
- "requires": {
1123
- "@types/normalize-package-data": "^2.4.0",
1124
- "normalize-package-data": "^2.5.0",
1125
- "parse-json": "^4.0.0",
1126
- "type-fest": "^0.4.1"
1127
- }
1128
- },
1129
- "resolve": {
1130
- "version": "1.10.1",
1131
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
1132
- "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
1133
- "requires": {
1134
- "path-parse": "^1.0.6"
1135
- }
1136
- },
1137
- "resolve-from": {
1138
- "version": "3.0.0",
1139
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
1140
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
1141
- },
1142
- "rimraf": {
1143
- "version": "2.2.8",
1144
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
1145
- "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
1146
- "dev": true
1147
- },
1148
- "run-node": {
1149
- "version": "1.0.0",
1150
- "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
1151
- "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A=="
1152
- },
1153
- "safer-buffer": {
1154
- "version": "2.1.2",
1155
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1156
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1157
- "dev": true
1158
- },
1159
- "semver": {
1160
- "version": "5.7.0",
1161
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
1162
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
1163
- },
1164
- "semver-compare": {
1165
- "version": "1.0.0",
1166
- "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
1167
- "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w="
1168
- },
1169
- "shebang-command": {
1170
- "version": "1.2.0",
1171
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1172
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1173
- "requires": {
1174
- "shebang-regex": "^1.0.0"
1175
- }
1176
- },
1177
- "shebang-regex": {
1178
- "version": "1.0.0",
1179
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1180
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
1181
- },
1182
- "sigmund": {
1183
- "version": "1.0.1",
1184
- "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
1185
- "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
1186
- "dev": true
1187
- },
1188
- "signal-exit": {
1189
- "version": "3.0.2",
1190
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1191
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
1192
- },
1193
- "slash": {
1194
- "version": "2.0.0",
1195
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
1196
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
1197
- },
1198
- "spdx-correct": {
1199
- "version": "3.1.0",
1200
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
1201
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
1202
- "requires": {
1203
- "spdx-expression-parse": "^3.0.0",
1204
- "spdx-license-ids": "^3.0.0"
1205
- }
1206
- },
1207
- "spdx-exceptions": {
1208
- "version": "2.2.0",
1209
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
1210
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
1211
- },
1212
- "spdx-expression-parse": {
1213
- "version": "3.0.0",
1214
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
1215
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
1216
- "requires": {
1217
- "spdx-exceptions": "^2.1.0",
1218
- "spdx-license-ids": "^3.0.0"
1219
- }
1220
- },
1221
- "spdx-license-ids": {
1222
- "version": "3.0.4",
1223
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
1224
- "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA=="
1225
- },
1226
- "sprintf-js": {
1227
- "version": "1.0.3",
1228
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1229
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
1230
- },
1231
- "strip-ansi": {
1232
- "version": "3.0.1",
1233
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1234
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1235
- "dev": true,
1236
- "requires": {
1237
- "ansi-regex": "^2.0.0"
1238
- }
1239
- },
1240
- "strip-eof": {
1241
- "version": "1.0.0",
1242
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
1243
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
1244
- },
1245
- "supports-color": {
1246
- "version": "2.0.0",
1247
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1248
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1249
- "dev": true
1250
- },
1251
- "text-table": {
1252
- "version": "0.2.0",
1253
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1254
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1255
- "dev": true
1256
- },
1257
- "time-grunt": {
1258
- "version": "1.4.0",
1259
- "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz",
1260
- "integrity": "sha1-BiIT5mDJB+hvRAVWwB6mWXtxJCA=",
1261
- "dev": true,
1262
- "requires": {
1263
- "chalk": "^1.0.0",
1264
- "date-time": "^1.1.0",
1265
- "figures": "^1.0.0",
1266
- "hooker": "^0.2.3",
1267
- "number-is-nan": "^1.0.0",
1268
- "pretty-ms": "^2.1.0",
1269
- "text-table": "^0.2.0"
1270
- }
1271
- },
1272
- "time-zone": {
1273
- "version": "0.1.0",
1274
- "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz",
1275
- "integrity": "sha1-Sncotqwo2w4Aj1FAQ/1VW9VXO0Y=",
1276
- "dev": true
1277
- },
1278
- "type-fest": {
1279
- "version": "0.4.1",
1280
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz",
1281
- "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw=="
1282
- },
1283
- "underscore": {
1284
- "version": "1.7.0",
1285
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
1286
- "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
1287
- "dev": true
1288
- },
1289
- "underscore.string": {
1290
- "version": "2.2.1",
1291
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
1292
- "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
1293
- "dev": true
1294
- },
1295
- "validate-npm-package-license": {
1296
- "version": "3.0.4",
1297
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
1298
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
1299
- "requires": {
1300
- "spdx-correct": "^3.0.0",
1301
- "spdx-expression-parse": "^3.0.0"
1302
- }
1303
- },
1304
- "which": {
1305
- "version": "1.0.9",
1306
- "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
1307
- "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
1308
- "dev": true
1309
- },
1310
- "wrappy": {
1311
- "version": "1.0.2",
1312
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1313
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1314
- },
1315
- "yallist": {
1316
- "version": "2.1.2",
1317
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
1318
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
1319
- }
1320
- }
1321
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
package.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "name": "simplehistory",
3
- "version": "0.0.1",
4
- "description": "WordPress log plugin",
5
- "author": "Pär Thernström",
6
- "license": "GPL",
7
- "devDependencies": {
8
- "grunt": "^0.4.5",
9
- "grunt-pot": "^0.2.1",
10
- "grunt-wp-i18n": "^0.4.9",
11
- "load-grunt-tasks": "^1.0.0",
12
- "time-grunt": "^1.4.0",
13
- "grunt-version": "^1.3.1"
14
- },
15
- "dependencies": {
16
- "@prettier/plugin-php": "^0.10.2",
17
- "husky": "^2.1.0",
18
- "prettier": "^1.17.0",
19
- "pretty-quick": "^1.10.0"
20
- },
21
- "husky": {
22
- "hooks": {
23
- "pre-commit": "pretty-quick --staged"
24
- }
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
phpcs.xml.dist DELETED
@@ -1,34 +0,0 @@
1
- <?xml version="1.0"?>
2
- <ruleset name="Simple-History">
3
- <description>WordPress Coding Standards for Simple History</description>
4
-
5
- <!-- Show sniff codes in all reports, and progress while running -->
6
- <arg value="sp"/>
7
- <!-- Check all PHP files in directory tree by default. -->
8
- <arg name="extensions" value="php"/>
9
- <!-- Run different reports -->
10
- <arg name="report" value="full"/>
11
- <arg name="report" value="summary"/>
12
- <arg name="report" value="source"/>
13
-
14
- <file>.</file>
15
- <exclude-pattern>*/vendor/*</exclude-pattern>
16
- <exclude-pattern>*/node_modules/*</exclude-pattern>
17
-
18
- <config name="testVersion" value="5.3-"/>
19
-
20
- <rule ref="PSR12">
21
- <!-- <exclude name="PSR1.Classes.ClassDeclaration"/>
22
- <exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps" />
23
- <exclude name="PSR1.Files.SideEffects" />
24
- -->
25
- </rule>
26
-
27
- <rule ref="Generic.Files.LineLength">
28
- <properties>
29
- <property name="lineLimit" value="250" />
30
- <property name="absoluteLineLimit" value="300" />
31
- </properties>
32
- </rule>
33
-
34
- </ruleset>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: history, log, changes, changelog, audit, audit log, event log, user tracki
5
  Requires at least: 5.2
6
  Tested up to: 5.2
7
  Requires PHP: 5.6
8
- Stable tag: 2.33
9
 
10
  View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
11
 
@@ -191,6 +191,12 @@ Events in the log are stored for 60 days by default. Events older than this will
191
 
192
  ## Changelog
193
 
 
 
 
 
 
 
194
  = 2.33 (November 2019) =
195
  - Better compatibility with the Gutenberg Block editor.
196
  - Correct URL redirected to after clearing log. Fixes #123.
5
  Requires at least: 5.2
6
  Tested up to: 5.2
7
  Requires PHP: 5.6
8
+ Stable tag: 2.33.2
9
 
10
  View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
11
 
191
 
192
  ## Changelog
193
 
194
+ = 2.33.2 (January 2020) =
195
+ - Fix history displaying blank white space on smaller screens. Fixes https://wordpress.org/support/topic/viewing-the-log-on-a-iphone/.
196
+
197
+ = 2.33.1 (January 2020) =
198
+ - Was just an internal test version.
199
+
200
  = 2.33 (November 2019) =
201
  - Better compatibility with the Gutenberg Block editor.
202
  - Correct URL redirected to after clearing log. Fixes #123.
tests/bootstrap.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
-
3
- $_tests_dir = getenv('WP_TESTS_DIR');
4
- if (! $_tests_dir) {
5
- $_tests_dir = '/tmp/wordpress-tests-lib';
6
- }
7
-
8
- require_once $_tests_dir . '/includes/functions.php';
9
-
10
- function _manually_load_plugin()
11
- {
12
- require dirname(dirname(__FILE__)) . '/index.php';
13
- }
14
- tests_add_filter('muplugins_loaded', '_manually_load_plugin');
15
-
16
- require $_tests_dir . '/includes/bootstrap.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tests/test-simplehistory.php DELETED
@@ -1,279 +0,0 @@
1
- <?php
2
-
3
- class SimpleHistoryTest extends WP_UnitTestCase
4
- {
5
-
6
- // https://phpunit.de/manual/current/en/fixtures.html
7
- public static function setUpBeforeClass()
8
- {
9
- }
10
-
11
-
12
- function test_sample()
13
- {
14
-
15
- // replace this with some actual testing code
16
- $this->assertTrue(true);
17
- }
18
-
19
- function test_history_setup()
20
- {
21
-
22
- $this->assertTrue(defined('SIMPLE_HISTORY_VERSION'));
23
- $this->assertTrue(defined('SIMPLE_HISTORY_PATH'));
24
- $this->assertTrue(defined('SIMPLE_HISTORY_BASENAME'));
25
- $this->assertTrue(defined('SIMPLE_HISTORY_DIR_URL'));
26
- $this->assertTrue(defined('SIMPLE_HISTORY_FILE'));
27
-
28
- $this->assertFalse(defined('SIMPLE_HISTORY_DEV'));
29
- $this->assertFalse(defined('SIMPLE_HISTORY_LOG_DEBUG'));
30
- }
31
-
32
- function test_history_classes()
33
- {
34
-
35
- $this->assertTrue(class_exists('SimpleHistory'));
36
- $this->assertTrue(class_exists('SimpleHistoryLogQuery'));
37
-
38
- $sh = SimpleHistory::get_instance();
39
- $this->assertTrue(is_object($sh));
40
- $this->assertTrue(is_a($sh, 'SimpleHistory'));
41
- }
42
-
43
- function test_default_loggers()
44
- {
45
-
46
- $sh = SimpleHistory::get_instance();
47
- $loggers = $sh->getInstantiatedLoggers();
48
-
49
- $arr_default_loggers = array(
50
- 'SimpleCommentsLogger',
51
- 'SimpleCoreUpdatesLogger',
52
- 'SimpleExportLogger',
53
- 'SimpleLegacyLogger',
54
- 'SimpleLogger',
55
- 'SimpleMediaLogger',
56
- 'SimpleMenuLogger',
57
- 'SimpleOptionsLogger',
58
- 'SimplePluginLogger',
59
- 'SimplePostLogger',
60
- 'SimpleThemeLogger',
61
- 'SimpleUserLogger',
62
- );
63
-
64
- foreach ($arr_default_loggers as $slug) {
65
- $this->assertArrayHasKey($slug, $loggers);
66
- }
67
- }
68
-
69
- function test_default_dropins()
70
- {
71
-
72
- $sh = SimpleHistory::get_instance();
73
- $dropins = $sh->getInstantiatedDropins();
74
-
75
- $arr_default_dropins = array(
76
- 'SimpleHistoryDonateDropin',
77
- 'SimpleHistoryExportDropin',
78
- 'SimpleHistoryFilterDropin',
79
- 'SimpleHistoryIpInfoDropin',
80
- 'SimpleHistoryNewRowsNotifier',
81
- 'SimpleHistoryRSSDropin',
82
- 'SimpleHistorySettingsLogtestDropin',
83
- 'SimpleHistorySettingsStatsDropin',
84
- 'SimpleHistorySidebarDropin',
85
- );
86
-
87
- foreach ($arr_default_dropins as $slug) {
88
- $this->assertArrayHasKey($slug, $dropins);
89
- }
90
- }
91
-
92
- function test_default_settings_tabs()
93
- {
94
-
95
- $sh = SimpleHistory::get_instance();
96
- $settings_tabs = $sh->getSettingsTabs();
97
- $arr_default_settings = array(
98
- 'settings',
99
- 'export',
100
- 'debug',
101
- );
102
-
103
- $loaded_settings_slugs = wp_list_pluck($settings_tabs, 'slug');
104
- $this->assertEquals($arr_default_settings, $loaded_settings_slugs);
105
- }
106
-
107
- function test_install()
108
- {
109
-
110
- global $wpdb;
111
-
112
- // Test table simple history
113
- $table_name_simple_history = $wpdb->prefix . SimpleHistory::DBTABLE;
114
- $table_exists = $wpdb->get_var($wpdb->prepare('SHOW TABLES LIKE %s', $table_name_simple_history));
115
- $this->assertEquals($table_name_simple_history, $table_exists);
116
-
117
- $table_cols = $wpdb->get_col("DESCRIBE $table_name_simple_history");
118
- $expected_table_cols = array(
119
- 'id',
120
- 'date',
121
- 'logger',
122
- 'level',
123
- 'message',
124
- 'occasionsID',
125
- 'initiator',
126
- );
127
-
128
- $this->assertEquals($expected_table_cols, $table_cols, 'cols in history table should be the same');
129
-
130
- // Test table simple history contexts
131
- $table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
132
- $table_exists = $wpdb->get_var($wpdb->prepare('SHOW TABLES LIKE %s', $table_name_contexts));
133
- $this->assertEquals($table_name_contexts, $table_exists);
134
-
135
- $table_cols_context = $wpdb->get_col("DESCRIBE $table_name_contexts");
136
- $expected_table_cols_context = array(
137
- 'context_id',
138
- 'history_id',
139
- 'key',
140
- 'value',
141
- );
142
-
143
- $this->assertEquals($expected_table_cols_context, $table_cols_context, 'cols in context table should be the same');
144
- }
145
-
146
- function test_loglevels_and_initiators()
147
- {
148
-
149
- $refl = new ReflectionClass('SimpleLoggerLogLevels');
150
- $log_levels = (array) $refl->getConstants();
151
-
152
- $expected_log_levels = array(
153
- 'EMERGENCY' => 'emergency',
154
- 'ALERT' => 'alert',
155
- 'CRITICAL' => 'critical',
156
- 'ERROR' => 'error',
157
- 'WARNING' => 'warning',
158
- 'NOTICE' => 'notice',
159
- 'INFO' => 'info',
160
- 'DEBUG' => 'debug',
161
- );
162
-
163
- $this->assertEquals($expected_log_levels, $log_levels, 'log levels');
164
-
165
- $refl = new ReflectionClass('SimpleLoggerLogInitiators');
166
- $log_initiators = (array) $refl->getConstants();
167
-
168
- $expected_log_initiators = array(
169
- 'WP_USER' => 'wp_user',
170
- 'WEB_USER' => 'web_user',
171
- 'WORDPRESS' => 'wp',
172
- 'WP_CLI' => 'wp_cli',
173
- 'OTHER' => 'other',
174
- );
175
-
176
- $this->assertEquals($expected_log_initiators, $log_initiators, 'log initiators');
177
- }
178
-
179
- // test logging and retrieving logs
180
- function test_logging()
181
- {
182
-
183
- global $wpdb;
184
-
185
- $table_name_simple_history = $wpdb->prefix . SimpleHistory::DBTABLE;
186
-
187
- $refl_log_levels = new ReflectionClass('SimpleLoggerLogLevels');
188
- $log_levels = (array) $refl_log_levels->getConstants();
189
-
190
- $refl_log_initiators = new ReflectionClass('SimpleLoggerLogInitiators');
191
- $log_initiators = (array) $refl_log_initiators->getConstants();
192
-
193
- foreach ($log_levels as $level_const => $level_str) {
194
- foreach ($log_initiators as $initiator_const => $initiator_str) {
195
- $message = "This is a message with log level $level_str";
196
-
197
- SimpleLogger()->log($level_str, $message, array(
198
- '_initiator' => $initiator_str,
199
- ));
200
-
201
- // Last logged message in db should be the above
202
- $db_row = $wpdb->get_row("SELECT logger, level, message, initiator FROM $table_name_simple_history ORDER BY id DESC LIMIT 1", ARRAY_A);
203
-
204
- $expected_row = array(
205
- 'logger' => 'SimpleLogger',
206
- 'level' => $level_str,
207
- 'message' => $message,
208
- 'initiator' => $initiator_str,
209
- );
210
-
211
- $this->assertEquals($expected_row, $db_row, 'logged event in db');
212
- }
213
- }
214
-
215
- // TODO: test logging with context
216
- }
217
-
218
- function test_log_query()
219
- {
220
-
221
- // Add admin user
222
- $user_id = $this->factory->user->create(array(
223
- 'role' => 'administrator',
224
- ));
225
- wp_set_current_user($user_id);
226
-
227
- $args = array(
228
- 'posts_per_page' => 1,
229
- );
230
-
231
- $logQuery = new SimpleHistoryLogQuery();
232
- $queryResults = $logQuery->query($args);
233
-
234
- // The latest row should be the user we create above
235
- $this->assertArrayHasKey('total_row_count', $queryResults);
236
- $this->assertArrayHasKey('pages_count', $queryResults);
237
- $this->assertArrayHasKey('page_current', $queryResults);
238
- $this->assertArrayHasKey('page_rows_from', $queryResults);
239
- $this->assertArrayHasKey('page_rows_to', $queryResults);
240
- $this->assertArrayHasKey('max_id', $queryResults);
241
- $this->assertArrayHasKey('min_id', $queryResults);
242
- $this->assertArrayHasKey('log_rows_count', $queryResults);
243
- $this->assertArrayHasKey('log_rows', $queryResults);
244
-
245
- $this->assertCount(1, $queryResults['log_rows']);
246
-
247
- $this->assertObjectHasAttribute('id', $queryResults['log_rows'][0]);
248
- $this->assertObjectHasAttribute('logger', $queryResults['log_rows'][0]);
249
- $this->assertObjectHasAttribute('level', $queryResults['log_rows'][0]);
250
- $this->assertObjectHasAttribute('date', $queryResults['log_rows'][0]);
251
- $this->assertObjectHasAttribute('message', $queryResults['log_rows'][0]);
252
- $this->assertObjectHasAttribute('initiator', $queryResults['log_rows'][0]);
253
- $this->assertObjectHasAttribute('occasionsID', $queryResults['log_rows'][0]);
254
- $this->assertObjectHasAttribute('subsequentOccasions', $queryResults['log_rows'][0]);
255
- $this->assertObjectHasAttribute('rep', $queryResults['log_rows'][0]);
256
- $this->assertObjectHasAttribute('repeated', $queryResults['log_rows'][0]);
257
- $this->assertObjectHasAttribute('occasionsIDType', $queryResults['log_rows'][0]);
258
- $this->assertObjectHasAttribute('context', $queryResults['log_rows'][0]);
259
- }
260
-
261
- function test_get_info()
262
- {
263
-
264
- $sh = SimpleHistory::get_instance();
265
-
266
- $postlogger = $sh->getInstantiatedLoggerBySlug('SimplePostLogger');
267
- $info = $postlogger->getInfo();
268
-
269
- $this->assertArrayHasKey('name', $info);
270
- $this->assertArrayHasKey('description', $info);
271
- $this->assertArrayHasKey('capability', $info);
272
- $this->assertArrayHasKey('messages', $info);
273
-
274
- $this->assertTrue(is_array($info['messages']));
275
- $this->assertTrue(is_array($info['labels']));
276
- $this->assertTrue(is_array($info['labels']['search']));
277
- $this->assertTrue(is_array($info['labels']['search']['options']));
278
- }
279
- }