@loopress/cli 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +716 -98
  2. package/dist/commands/acf/push.d.ts +1 -0
  3. package/dist/commands/acf/push.js +25 -2
  4. package/dist/commands/acf/rollback.d.ts +2 -0
  5. package/dist/commands/acf/rollback.js +5 -0
  6. package/dist/commands/api/rm.d.ts +2 -0
  7. package/dist/commands/api/rm.js +2 -0
  8. package/dist/commands/api/rollback.d.ts +2 -0
  9. package/dist/commands/api/rollback.js +5 -0
  10. package/dist/commands/composer/push.d.ts +3 -0
  11. package/dist/commands/composer/push.js +24 -7
  12. package/dist/commands/diff.js +1 -1
  13. package/dist/commands/doctor.d.ts +17 -1
  14. package/dist/commands/doctor.js +55 -38
  15. package/dist/commands/form/pull.js +4 -1
  16. package/dist/commands/form/push.d.ts +3 -0
  17. package/dist/commands/form/push.js +39 -6
  18. package/dist/commands/form/rollback.d.ts +2 -0
  19. package/dist/commands/form/rollback.js +5 -0
  20. package/dist/commands/hook/rm.d.ts +2 -0
  21. package/dist/commands/hook/rm.js +2 -0
  22. package/dist/commands/hook/rollback.d.ts +2 -0
  23. package/dist/commands/hook/rollback.js +5 -0
  24. package/dist/commands/init.js +1 -0
  25. package/dist/commands/login.js +3 -2
  26. package/dist/commands/menu/diff.d.ts +2 -0
  27. package/dist/commands/menu/diff.js +5 -0
  28. package/dist/commands/menu/list.d.ts +13 -0
  29. package/dist/commands/menu/list.js +32 -0
  30. package/dist/commands/menu/pull.d.ts +15 -0
  31. package/dist/commands/menu/pull.js +72 -0
  32. package/dist/commands/menu/push.d.ts +17 -0
  33. package/dist/commands/menu/push.js +120 -0
  34. package/dist/commands/menu/rollback.d.ts +2 -0
  35. package/dist/commands/menu/rollback.js +5 -0
  36. package/dist/commands/option/add.js +1 -1
  37. package/dist/commands/option/push.d.ts +1 -0
  38. package/dist/commands/option/push.js +26 -1
  39. package/dist/commands/option/rollback.d.ts +2 -0
  40. package/dist/commands/option/rollback.js +5 -0
  41. package/dist/commands/plugin/push.d.ts +1 -0
  42. package/dist/commands/plugin/push.js +14 -0
  43. package/dist/commands/promote.d.ts +8 -1
  44. package/dist/commands/promote.js +2 -0
  45. package/dist/commands/pull.d.ts +11 -1
  46. package/dist/commands/pull.js +9 -2
  47. package/dist/commands/push.d.ts +11 -1
  48. package/dist/commands/push.js +9 -2
  49. package/dist/commands/seo/pull.js +6 -2
  50. package/dist/commands/seo/push.d.ts +3 -0
  51. package/dist/commands/seo/push.js +49 -7
  52. package/dist/commands/seo/rollback.d.ts +2 -0
  53. package/dist/commands/seo/rollback.js +5 -0
  54. package/dist/commands/snippet/push.d.ts +1 -0
  55. package/dist/commands/snippet/push.js +31 -1
  56. package/dist/commands/snippet/rollback.d.ts +2 -0
  57. package/dist/commands/snippet/rollback.js +5 -0
  58. package/dist/commands/theme-styles/diff.d.ts +2 -0
  59. package/dist/commands/theme-styles/diff.js +5 -0
  60. package/dist/commands/theme-styles/pull.d.ts +12 -0
  61. package/dist/commands/theme-styles/pull.js +31 -0
  62. package/dist/commands/theme-styles/push.d.ts +12 -0
  63. package/dist/commands/theme-styles/push.js +45 -0
  64. package/dist/commands/theme-styles/rollback.d.ts +2 -0
  65. package/dist/commands/theme-styles/rollback.js +5 -0
  66. package/dist/hooks/finally.js +4 -1
  67. package/dist/lib/app-manifest.js +4 -27
  68. package/dist/lib/base.d.ts +2 -0
  69. package/dist/lib/base.js +6 -0
  70. package/dist/lib/find-orphaned-files.js +5 -47
  71. package/dist/lib/load-files.js +4 -42
  72. package/dist/lib/local-callback-server.d.ts +14 -1
  73. package/dist/lib/local-callback-server.js +40 -1
  74. package/dist/lib/php-files-command.d.ts +17 -3
  75. package/dist/lib/php-files-command.js +196 -37
  76. package/dist/lib/push-command.d.ts +4 -0
  77. package/dist/lib/push-command.js +49 -0
  78. package/dist/lib/readdir-tolerant.d.ts +1 -0
  79. package/dist/lib/readdir-tolerant.js +12 -0
  80. package/dist/lib/resource-state.js +92 -3
  81. package/dist/lib/rollback-command.d.ts +21 -0
  82. package/dist/lib/rollback-command.js +180 -0
  83. package/dist/lib/rollback-materialize.d.ts +1 -0
  84. package/dist/lib/rollback-materialize.js +121 -0
  85. package/dist/lib/sentry.d.ts +3 -0
  86. package/dist/lib/sentry.js +30 -0
  87. package/dist/lib/snapshot-store.d.ts +30 -0
  88. package/dist/lib/snapshot-store.js +133 -0
  89. package/dist/lib/validate-local.js +2 -1
  90. package/dist/lib/wp-authorize-flow.d.ts +4 -0
  91. package/dist/lib/wp-authorize-flow.js +10 -8
  92. package/dist/types/project-config.generated.d.ts +8 -0
  93. package/dist/utils/acf-format.d.ts +1 -0
  94. package/dist/utils/acf-format.js +6 -0
  95. package/dist/utils/form-format.d.ts +4 -0
  96. package/dist/utils/form-format.js +3 -7
  97. package/dist/utils/menu-format.d.ts +24 -0
  98. package/dist/utils/menu-format.js +8 -0
  99. package/dist/utils/option-format.d.ts +2 -1
  100. package/dist/utils/option-format.js +22 -4
  101. package/dist/utils/plugin-sync.d.ts +6 -0
  102. package/dist/utils/resource-dirs.d.ts +2 -0
  103. package/dist/utils/resource-dirs.js +4 -0
  104. package/dist/utils/seo-format.d.ts +8 -0
  105. package/dist/utils/seo-format.js +3 -0
  106. package/dist/utils/snippet-format.d.ts +1 -0
  107. package/dist/utils/snippet-format.js +1 -0
  108. package/dist/utils/theme-styles-format.d.ts +26 -0
  109. package/dist/utils/theme-styles-format.js +55 -0
  110. package/oclif.manifest.json +1837 -386
  111. package/package.json +5 -3
  112. package/schemas/project-config.schema.json +10 -0
package/README.md CHANGED
@@ -21,7 +21,7 @@ $ npm install -g @loopress/cli
21
21
  $ lps COMMAND
22
22
  running command...
23
23
  $ lps (--version)
24
- @loopress/cli/0.24.0 linux-x64 node-v24.20.0
24
+ @loopress/cli/0.25.0 linux-x64 node-v24.20.0
25
25
  $ lps --help [COMMAND]
26
26
  USAGE
27
27
  $ lps COMMAND
@@ -51,11 +51,14 @@ report.
51
51
  * [`lps acf list`](#lps-acf-list)
52
52
  * [`lps acf pull [PATH]`](#lps-acf-pull-path)
53
53
  * [`lps acf push [PATH]`](#lps-acf-push-path)
54
+ * [`lps acf rollback [PATH]`](#lps-acf-rollback-path)
54
55
  * [`lps api diff [PATH]`](#lps-api-diff-path)
55
56
  * [`lps api list`](#lps-api-list)
56
57
  * [`lps api publish [PATH]`](#lps-api-publish-path)
57
58
  * [`lps api pull [PATH]`](#lps-api-pull-path)
58
59
  * [`lps api push [PATH]`](#lps-api-push-path)
60
+ * [`lps api rm FILENAME`](#lps-api-rm-filename)
61
+ * [`lps api rollback [PATH]`](#lps-api-rollback-path)
59
62
  * [`lps app list`](#lps-app-list)
60
63
  * [`lps app pull [PATH]`](#lps-app-pull-path)
61
64
  * [`lps app push [NAME]`](#lps-app-push-name)
@@ -70,20 +73,29 @@ report.
70
73
  * [`lps form list`](#lps-form-list)
71
74
  * [`lps form pull [PATH]`](#lps-form-pull-path)
72
75
  * [`lps form push [PATH]`](#lps-form-push-path)
76
+ * [`lps form rollback [PATH]`](#lps-form-rollback-path)
73
77
  * [`lps help [COMMAND]`](#lps-help-command)
74
78
  * [`lps hook diff [PATH]`](#lps-hook-diff-path)
75
79
  * [`lps hook list`](#lps-hook-list)
76
80
  * [`lps hook pull [PATH]`](#lps-hook-pull-path)
77
81
  * [`lps hook push [PATH]`](#lps-hook-push-path)
82
+ * [`lps hook rm FILENAME`](#lps-hook-rm-filename)
83
+ * [`lps hook rollback [PATH]`](#lps-hook-rollback-path)
78
84
  * [`lps init`](#lps-init)
79
85
  * [`lps login`](#lps-login)
80
86
  * [`lps logout`](#lps-logout)
87
+ * [`lps menu diff [PATH]`](#lps-menu-diff-path)
88
+ * [`lps menu list`](#lps-menu-list)
89
+ * [`lps menu pull [PATH]`](#lps-menu-pull-path)
90
+ * [`lps menu push [PATH]`](#lps-menu-push-path)
91
+ * [`lps menu rollback [PATH]`](#lps-menu-rollback-path)
81
92
  * [`lps option add NAME`](#lps-option-add-name)
82
93
  * [`lps option diff [PATH]`](#lps-option-diff-path)
83
94
  * [`lps option list`](#lps-option-list)
84
95
  * [`lps option pull [PATH]`](#lps-option-pull-path)
85
96
  * [`lps option push [PATH]`](#lps-option-push-path)
86
97
  * [`lps option remove NAME`](#lps-option-remove-name)
98
+ * [`lps option rollback [PATH]`](#lps-option-rollback-path)
87
99
  * [`lps plugin add SLUG`](#lps-plugin-add-slug)
88
100
  * [`lps plugin audit`](#lps-plugin-audit)
89
101
  * [`lps plugin pull`](#lps-plugin-pull)
@@ -103,14 +115,20 @@ report.
103
115
  * [`lps seo list`](#lps-seo-list)
104
116
  * [`lps seo pull [PATH]`](#lps-seo-pull-path)
105
117
  * [`lps seo push [PATH]`](#lps-seo-push-path)
118
+ * [`lps seo rollback [PATH]`](#lps-seo-rollback-path)
106
119
  * [`lps snippet diff [PATH]`](#lps-snippet-diff-path)
107
120
  * [`lps snippet list`](#lps-snippet-list)
108
121
  * [`lps snippet publish [PATH]`](#lps-snippet-publish-path)
109
122
  * [`lps snippet pull [PATH]`](#lps-snippet-pull-path)
110
123
  * [`lps snippet push [PATH]`](#lps-snippet-push-path)
124
+ * [`lps snippet rollback [PATH]`](#lps-snippet-rollback-path)
111
125
  * [`lps status`](#lps-status)
112
126
  * [`lps telemetry disable`](#lps-telemetry-disable)
113
127
  * [`lps telemetry enable`](#lps-telemetry-enable)
128
+ * [`lps theme-styles diff [PATH]`](#lps-theme-styles-diff-path)
129
+ * [`lps theme-styles pull [PATH]`](#lps-theme-styles-pull-path)
130
+ * [`lps theme-styles push [PATH]`](#lps-theme-styles-push-path)
131
+ * [`lps theme-styles rollback [PATH]`](#lps-theme-styles-rollback-path)
114
132
  * [`lps theme add SLUG`](#lps-theme-add-slug)
115
133
  * [`lps theme pull`](#lps-theme-pull)
116
134
  * [`lps theme push`](#lps-theme-push)
@@ -147,7 +165,7 @@ EXAMPLES
147
165
  $ lps acf diff --env staging --against production
148
166
  ```
149
167
 
150
- _See code: [src/commands/acf/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/diff.ts)_
168
+ _See code: [src/commands/acf/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/acf/diff.ts)_
151
169
 
152
170
  ## `lps acf list`
153
171
 
@@ -174,7 +192,7 @@ EXAMPLES
174
192
  $ lps acf list --type field-groups
175
193
  ```
176
194
 
177
- _See code: [src/commands/acf/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/list.ts)_
195
+ _See code: [src/commands/acf/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/acf/list.ts)_
178
196
 
179
197
  ## `lps acf pull [PATH]`
180
198
 
@@ -203,7 +221,7 @@ EXAMPLES
203
221
  $ lps acf pull --type field-groups
204
222
  ```
205
223
 
206
- _See code: [src/commands/acf/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/pull.ts)_
224
+ _See code: [src/commands/acf/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/acf/pull.ts)_
207
225
 
208
226
  ## `lps acf push [PATH]`
209
227
 
@@ -232,7 +250,44 @@ EXAMPLES
232
250
  $ lps acf push --type field-groups
233
251
  ```
234
252
 
235
- _See code: [src/commands/acf/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/push.ts)_
253
+ _See code: [src/commands/acf/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/acf/push.ts)_
254
+
255
+ ## `lps acf rollback [PATH]`
256
+
257
+ Restore ACF field groups, post types, taxonomies, and options pages to a snapshot taken automatically before an earlier `lps acf push`
258
+
259
+ ```
260
+ USAGE
261
+ $ lps acf rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
262
+
263
+ ARGUMENTS
264
+ [PATH] Path to ACF directory (overrides project config)
265
+
266
+ FLAGS
267
+ -d, --dry-run Show what would change without making changes
268
+ -y, --yes Answer yes to confirmation prompts
269
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
270
+ --list List available snapshots instead of rolling back
271
+ --to=<value> Roll back to this snapshot id instead of the most recent one
272
+
273
+ GLOBAL FLAGS
274
+ --json Format output as json.
275
+
276
+ DESCRIPTION
277
+ Restore ACF field groups, post types, taxonomies, and options pages to a snapshot taken automatically before an
278
+ earlier `lps acf push`
279
+
280
+ EXAMPLES
281
+ $ lps acf rollback
282
+
283
+ $ lps acf rollback --list
284
+
285
+ $ lps acf rollback --to 1732000000000
286
+
287
+ $ lps acf rollback --dry-run
288
+ ```
289
+
290
+ _See code: [src/commands/acf/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/acf/rollback.ts)_
236
291
 
237
292
  ## `lps api diff [PATH]`
238
293
 
@@ -264,7 +319,7 @@ EXAMPLES
264
319
  $ lps api diff --env staging --against production
265
320
  ```
266
321
 
267
- _See code: [src/commands/api/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/diff.ts)_
322
+ _See code: [src/commands/api/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/api/diff.ts)_
268
323
 
269
324
  ## `lps api list`
270
325
 
@@ -287,7 +342,7 @@ EXAMPLES
287
342
  $ lps api list
288
343
  ```
289
344
 
290
- _See code: [src/commands/api/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/list.ts)_
345
+ _See code: [src/commands/api/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/api/list.ts)_
291
346
 
292
347
  ## `lps api publish [PATH]`
293
348
 
@@ -310,7 +365,7 @@ EXAMPLES
310
365
  $ lps api publish --path ./api
311
366
  ```
312
367
 
313
- _See code: [src/commands/api/publish.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/publish.ts)_
368
+ _See code: [src/commands/api/publish.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/api/publish.ts)_
314
369
 
315
370
  ## `lps api pull [PATH]`
316
371
 
@@ -340,7 +395,7 @@ EXAMPLES
340
395
  $ lps api pull --path ./api
341
396
  ```
342
397
 
343
- _See code: [src/commands/api/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/pull.ts)_
398
+ _See code: [src/commands/api/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/api/pull.ts)_
344
399
 
345
400
  ## `lps api push [PATH]`
346
401
 
@@ -348,7 +403,7 @@ Push custom API route files to WordPress
348
403
 
349
404
  ```
350
405
  USAGE
351
- $ lps api push [PATH] [--json] [--env <value>] [-d] [-y]
406
+ $ lps api push [PATH] [--json] [--env <value>] [-d] [-y] [--prune]
352
407
 
353
408
  ARGUMENTS
354
409
  [PATH] Path to api directory (overrides project config)
@@ -357,6 +412,7 @@ FLAGS
357
412
  -d, --dry-run Show what would change without making changes
358
413
  -y, --yes Answer yes to confirmation prompts
359
414
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
415
+ --prune Delete server-side route files not present locally after pushing
360
416
 
361
417
  GLOBAL FLAGS
362
418
  --json Format output as json.
@@ -368,9 +424,77 @@ EXAMPLES
368
424
  $ lps api push
369
425
 
370
426
  $ lps api push --path ./api
427
+
428
+ $ lps api push --prune
429
+ ```
430
+
431
+ _See code: [src/commands/api/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/api/push.ts)_
432
+
433
+ ## `lps api rm FILENAME`
434
+
435
+ Remove a custom API route file from WordPress
436
+
437
+ ```
438
+ USAGE
439
+ $ lps api rm FILENAME [--json] [--env <value>] [-d] [-y]
440
+
441
+ ARGUMENTS
442
+ FILENAME The route file to remove, its slug without the .php extension (e.g. "hello" or "invoice-pdf/[order_id]")
443
+
444
+ FLAGS
445
+ -d, --dry-run Show what would change without making changes
446
+ -y, --yes Answer yes to confirmation prompts
447
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
448
+
449
+ GLOBAL FLAGS
450
+ --json Format output as json.
451
+
452
+ DESCRIPTION
453
+ Remove a custom API route file from WordPress
454
+
455
+ EXAMPLES
456
+ $ lps api rm hello
457
+
458
+ $ lps api rm hello --yes
459
+ ```
460
+
461
+ _See code: [src/commands/api/rm.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/api/rm.ts)_
462
+
463
+ ## `lps api rollback [PATH]`
464
+
465
+ Restore API route files to a snapshot taken automatically before an earlier `lps api push`
466
+
371
467
  ```
468
+ USAGE
469
+ $ lps api rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
470
+
471
+ ARGUMENTS
472
+ [PATH] Path to api directory (overrides project config)
473
+
474
+ FLAGS
475
+ -d, --dry-run Show what would change without making changes
476
+ -y, --yes Answer yes to confirmation prompts
477
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
478
+ --list List available snapshots instead of rolling back
479
+ --to=<value> Roll back to this snapshot id instead of the most recent one
372
480
 
373
- _See code: [src/commands/api/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/push.ts)_
481
+ GLOBAL FLAGS
482
+ --json Format output as json.
483
+
484
+ DESCRIPTION
485
+ Restore API route files to a snapshot taken automatically before an earlier `lps api push`
486
+
487
+ EXAMPLES
488
+ $ lps api rollback
489
+
490
+ $ lps api rollback --list
491
+
492
+ $ lps api rollback --to 1732000000000
493
+
494
+ $ lps api rollback --dry-run
495
+ ```
496
+
497
+ _See code: [src/commands/api/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/api/rollback.ts)_
374
498
 
375
499
  ## `lps app list`
376
500
 
@@ -393,7 +517,7 @@ EXAMPLES
393
517
  $ lps app list
394
518
  ```
395
519
 
396
- _See code: [src/commands/app/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/list.ts)_
520
+ _See code: [src/commands/app/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/app/list.ts)_
397
521
 
398
522
  ## `lps app pull [PATH]`
399
523
 
@@ -421,7 +545,7 @@ EXAMPLES
421
545
  $ lps app pull
422
546
  ```
423
547
 
424
- _See code: [src/commands/app/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/pull.ts)_
548
+ _See code: [src/commands/app/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/app/pull.ts)_
425
549
 
426
550
  ## `lps app push [NAME]`
427
551
 
@@ -452,7 +576,7 @@ EXAMPLES
452
576
  $ lps app push search
453
577
  ```
454
578
 
455
- _See code: [src/commands/app/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/push.ts)_
579
+ _See code: [src/commands/app/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/app/push.ts)_
456
580
 
457
581
  ## `lps app remove NAME`
458
582
 
@@ -481,7 +605,7 @@ EXAMPLES
481
605
  $ lps app remove search
482
606
  ```
483
607
 
484
- _See code: [src/commands/app/remove.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/remove.ts)_
608
+ _See code: [src/commands/app/remove.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/app/remove.ts)_
485
609
 
486
610
  ## `lps composer init`
487
611
 
@@ -504,7 +628,7 @@ EXAMPLES
504
628
  $ lps composer init --dry-run
505
629
  ```
506
630
 
507
- _See code: [src/commands/composer/init.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/composer/init.ts)_
631
+ _See code: [src/commands/composer/init.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/composer/init.ts)_
508
632
 
509
633
  ## `lps composer pull`
510
634
 
@@ -530,11 +654,11 @@ EXAMPLES
530
654
  $ lps composer pull --dry-run
531
655
  ```
532
656
 
533
- _See code: [src/commands/composer/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/composer/pull.ts)_
657
+ _See code: [src/commands/composer/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/composer/pull.ts)_
534
658
 
535
659
  ## `lps composer push`
536
660
 
537
- Push composer.json (and composer.lock, if present) to WordPress and run Composer
661
+ Push composer.json to WordPress and run Composer to resolve and install dependencies
538
662
 
539
663
  ```
540
664
  USAGE
@@ -550,7 +674,7 @@ GLOBAL FLAGS
550
674
  --json Format output as json.
551
675
 
552
676
  DESCRIPTION
553
- Push composer.json (and composer.lock, if present) to WordPress and run Composer
677
+ Push composer.json to WordPress and run Composer to resolve and install dependencies
554
678
 
555
679
  EXAMPLES
556
680
  $ lps composer push
@@ -558,7 +682,7 @@ EXAMPLES
558
682
  $ lps composer push --dry-run
559
683
  ```
560
684
 
561
- _See code: [src/commands/composer/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/composer/push.ts)_
685
+ _See code: [src/commands/composer/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/composer/push.ts)_
562
686
 
563
687
  ## `lps dev`
564
688
 
@@ -584,33 +708,34 @@ EXAMPLES
584
708
  $ lps dev --skip=plugins
585
709
  ```
586
710
 
587
- _See code: [src/commands/dev.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/dev.ts)_
711
+ _See code: [src/commands/dev.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/dev.ts)_
588
712
 
589
713
  ## `lps diff`
590
714
 
591
- Show what differs between your local tracked files and a WordPress environment, or between two environments. Covers snippets, forms, ACF, API routes, Hooks, SEO, and Composer. Plugins and themes have their own `lps plugin status` / `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be compared, so it doubles as a CI drift gate.
715
+ Show what differs between your local tracked files and a WordPress environment, or between two environments. Covers snippets, forms, ACF, API routes, Hooks, SEO, Options, Menus, Theme styles, and Composer. Plugins and themes have their own `lps plugin status` / `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be compared, so it doubles as a CI drift gate.
592
716
 
593
717
  ```
594
718
  USAGE
595
719
  $ lps diff [--json] [--env <value>] [--against <value>] [--only
596
- snippet|form|acf|api|hook|seo|option|composer...] [--skip snippet|form|acf|api|hook|seo|option|composer...]
720
+ snippet|form|acf|api|hook|seo|menu|option|theme-styles|composer...] [--skip
721
+ snippet|form|acf|api|hook|seo|menu|option|theme-styles|composer...]
597
722
 
598
723
  FLAGS
599
724
  --against=<value> Compare the primary environment against this second environment instead of against local files
600
725
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
601
726
  --only=<option>... Only compare these resources
602
- <options: snippet|form|acf|api|hook|seo|option|composer>
727
+ <options: snippet|form|acf|api|hook|seo|menu|option|theme-styles|composer>
603
728
  --skip=<option>... Compare every resource except these
604
- <options: snippet|form|acf|api|hook|seo|option|composer>
729
+ <options: snippet|form|acf|api|hook|seo|menu|option|theme-styles|composer>
605
730
 
606
731
  GLOBAL FLAGS
607
732
  --json Format output as json.
608
733
 
609
734
  DESCRIPTION
610
735
  Show what differs between your local tracked files and a WordPress environment, or between two environments. Covers
611
- snippets, forms, ACF, API routes, Hooks, SEO, and Composer. Plugins and themes have their own `lps plugin status` /
612
- `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be compared, so it doubles as a CI
613
- drift gate.
736
+ snippets, forms, ACF, API routes, Hooks, SEO, Options, Menus, Theme styles, and Composer. Plugins and themes have
737
+ their own `lps plugin status` / `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be
738
+ compared, so it doubles as a CI drift gate.
614
739
 
615
740
  EXAMPLES
616
741
  $ lps diff
@@ -624,7 +749,7 @@ EXAMPLES
624
749
  $ lps diff --skip composer
625
750
  ```
626
751
 
627
- _See code: [src/commands/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/diff.ts)_
752
+ _See code: [src/commands/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/diff.ts)_
628
753
 
629
754
  ## `lps doctor`
630
755
 
@@ -632,11 +757,14 @@ Diagnose connectivity, plugin and credential problems for the targeted environme
632
757
 
633
758
  ```
634
759
  USAGE
635
- $ lps doctor [--env <value>]
760
+ $ lps doctor [--json] [--env <value>]
636
761
 
637
762
  FLAGS
638
763
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
639
764
 
765
+ GLOBAL FLAGS
766
+ --json Format output as json.
767
+
640
768
  DESCRIPTION
641
769
  Diagnose connectivity, plugin and credential problems for the targeted environment
642
770
 
@@ -646,7 +774,7 @@ EXAMPLES
646
774
  $ lps doctor --env production
647
775
  ```
648
776
 
649
- _See code: [src/commands/doctor.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/doctor.ts)_
777
+ _See code: [src/commands/doctor.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/doctor.ts)_
650
778
 
651
779
  ## `lps form diff [PATH]`
652
780
 
@@ -677,7 +805,7 @@ EXAMPLES
677
805
  $ lps form diff --env staging --against production
678
806
  ```
679
807
 
680
- _See code: [src/commands/form/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/diff.ts)_
808
+ _See code: [src/commands/form/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/form/diff.ts)_
681
809
 
682
810
  ## `lps form list`
683
811
 
@@ -700,7 +828,7 @@ EXAMPLES
700
828
  $ lps form list
701
829
  ```
702
830
 
703
- _See code: [src/commands/form/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/list.ts)_
831
+ _See code: [src/commands/form/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/form/list.ts)_
704
832
 
705
833
  ## `lps form pull [PATH]`
706
834
 
@@ -725,7 +853,7 @@ EXAMPLES
725
853
  $ lps form pull
726
854
  ```
727
855
 
728
- _See code: [src/commands/form/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/pull.ts)_
856
+ _See code: [src/commands/form/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/form/pull.ts)_
729
857
 
730
858
  ## `lps form push [PATH]`
731
859
 
@@ -733,15 +861,18 @@ Push forms to WordPress. Local files created or updated remotely are renamed on
733
861
 
734
862
  ```
735
863
  USAGE
736
- $ lps form push [PATH] [--env <value>] [-d] [-y]
864
+ $ lps form push [PATH] [--env <value>] [-d] [-y] [--allow-notifications]
737
865
 
738
866
  ARGUMENTS
739
867
  [PATH] Path to forms directory (overrides project config)
740
868
 
741
869
  FLAGS
742
- -d, --dry-run Show what would change without making changes
743
- -y, --yes Answer yes to confirmation prompts
744
- --env=<value> Target environment by name, overriding the globally active one (lps project switch)
870
+ -d, --dry-run Show what would change without making changes
871
+ -y, --yes Answer yes to confirmation prompts
872
+ --allow-notifications Also push each form's notification and confirmation settings (recipients, sender,
873
+ messages). Off by default: the server keeps its own so a stray push can't redirect
874
+ submissions.
875
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
745
876
 
746
877
  DESCRIPTION
747
878
  Push forms to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>.json`
@@ -749,9 +880,47 @@ DESCRIPTION
749
880
 
750
881
  EXAMPLES
751
882
  $ lps form push
883
+
884
+ $ lps form push --allow-notifications
752
885
  ```
753
886
 
754
- _See code: [src/commands/form/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/push.ts)_
887
+ _See code: [src/commands/form/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/form/push.ts)_
888
+
889
+ ## `lps form rollback [PATH]`
890
+
891
+ Restore forms to a snapshot taken automatically before an earlier `lps form push`
892
+
893
+ ```
894
+ USAGE
895
+ $ lps form rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
896
+
897
+ ARGUMENTS
898
+ [PATH] Path to forms directory (overrides project config)
899
+
900
+ FLAGS
901
+ -d, --dry-run Show what would change without making changes
902
+ -y, --yes Answer yes to confirmation prompts
903
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
904
+ --list List available snapshots instead of rolling back
905
+ --to=<value> Roll back to this snapshot id instead of the most recent one
906
+
907
+ GLOBAL FLAGS
908
+ --json Format output as json.
909
+
910
+ DESCRIPTION
911
+ Restore forms to a snapshot taken automatically before an earlier `lps form push`
912
+
913
+ EXAMPLES
914
+ $ lps form rollback
915
+
916
+ $ lps form rollback --list
917
+
918
+ $ lps form rollback --to 1732000000000
919
+
920
+ $ lps form rollback --dry-run
921
+ ```
922
+
923
+ _See code: [src/commands/form/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/form/rollback.ts)_
755
924
 
756
925
  ## `lps help [COMMAND]`
757
926
 
@@ -802,7 +971,7 @@ EXAMPLES
802
971
  $ lps hook diff --env staging --against production
803
972
  ```
804
973
 
805
- _See code: [src/commands/hook/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/diff.ts)_
974
+ _See code: [src/commands/hook/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/hook/diff.ts)_
806
975
 
807
976
  ## `lps hook list`
808
977
 
@@ -825,7 +994,7 @@ EXAMPLES
825
994
  $ lps hook list
826
995
  ```
827
996
 
828
- _See code: [src/commands/hook/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/list.ts)_
997
+ _See code: [src/commands/hook/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/hook/list.ts)_
829
998
 
830
999
  ## `lps hook pull [PATH]`
831
1000
 
@@ -855,7 +1024,7 @@ EXAMPLES
855
1024
  $ lps hook pull --path ./hooks
856
1025
  ```
857
1026
 
858
- _See code: [src/commands/hook/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/pull.ts)_
1027
+ _See code: [src/commands/hook/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/hook/pull.ts)_
859
1028
 
860
1029
  ## `lps hook push [PATH]`
861
1030
 
@@ -863,7 +1032,7 @@ Push hook files (actions, filters, cron) to WordPress
863
1032
 
864
1033
  ```
865
1034
  USAGE
866
- $ lps hook push [PATH] [--json] [--env <value>] [-d] [-y]
1035
+ $ lps hook push [PATH] [--json] [--env <value>] [-d] [-y] [--prune]
867
1036
 
868
1037
  ARGUMENTS
869
1038
  [PATH] Path to hooks directory (overrides project config)
@@ -872,6 +1041,7 @@ FLAGS
872
1041
  -d, --dry-run Show what would change without making changes
873
1042
  -y, --yes Answer yes to confirmation prompts
874
1043
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1044
+ --prune Delete server-side hook files not present locally after pushing
875
1045
 
876
1046
  GLOBAL FLAGS
877
1047
  --json Format output as json.
@@ -883,9 +1053,77 @@ EXAMPLES
883
1053
  $ lps hook push
884
1054
 
885
1055
  $ lps hook push --path ./hooks
1056
+
1057
+ $ lps hook push --prune
886
1058
  ```
887
1059
 
888
- _See code: [src/commands/hook/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/push.ts)_
1060
+ _See code: [src/commands/hook/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/hook/push.ts)_
1061
+
1062
+ ## `lps hook rm FILENAME`
1063
+
1064
+ Remove a hook file (action, filter, cron) from WordPress
1065
+
1066
+ ```
1067
+ USAGE
1068
+ $ lps hook rm FILENAME [--json] [--env <value>] [-d] [-y]
1069
+
1070
+ ARGUMENTS
1071
+ FILENAME The hook file to remove, its slug without the .php extension (e.g. "hello" or "invoice-pdf/[order_id]")
1072
+
1073
+ FLAGS
1074
+ -d, --dry-run Show what would change without making changes
1075
+ -y, --yes Answer yes to confirmation prompts
1076
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1077
+
1078
+ GLOBAL FLAGS
1079
+ --json Format output as json.
1080
+
1081
+ DESCRIPTION
1082
+ Remove a hook file (action, filter, cron) from WordPress
1083
+
1084
+ EXAMPLES
1085
+ $ lps hook rm hello
1086
+
1087
+ $ lps hook rm hello --yes
1088
+ ```
1089
+
1090
+ _See code: [src/commands/hook/rm.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/hook/rm.ts)_
1091
+
1092
+ ## `lps hook rollback [PATH]`
1093
+
1094
+ Restore hook files to a snapshot taken automatically before an earlier `lps hook push`
1095
+
1096
+ ```
1097
+ USAGE
1098
+ $ lps hook rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
1099
+
1100
+ ARGUMENTS
1101
+ [PATH] Path to hooks directory (overrides project config)
1102
+
1103
+ FLAGS
1104
+ -d, --dry-run Show what would change without making changes
1105
+ -y, --yes Answer yes to confirmation prompts
1106
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1107
+ --list List available snapshots instead of rolling back
1108
+ --to=<value> Roll back to this snapshot id instead of the most recent one
1109
+
1110
+ GLOBAL FLAGS
1111
+ --json Format output as json.
1112
+
1113
+ DESCRIPTION
1114
+ Restore hook files to a snapshot taken automatically before an earlier `lps hook push`
1115
+
1116
+ EXAMPLES
1117
+ $ lps hook rollback
1118
+
1119
+ $ lps hook rollback --list
1120
+
1121
+ $ lps hook rollback --to 1732000000000
1122
+
1123
+ $ lps hook rollback --dry-run
1124
+ ```
1125
+
1126
+ _See code: [src/commands/hook/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/hook/rollback.ts)_
889
1127
 
890
1128
  ## `lps init`
891
1129
 
@@ -902,7 +1140,7 @@ EXAMPLES
902
1140
  $ lps init
903
1141
  ```
904
1142
 
905
- _See code: [src/commands/init.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/init.ts)_
1143
+ _See code: [src/commands/init.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/init.ts)_
906
1144
 
907
1145
  ## `lps login`
908
1146
 
@@ -919,7 +1157,7 @@ EXAMPLES
919
1157
  $ lps login
920
1158
  ```
921
1159
 
922
- _See code: [src/commands/login.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/login.ts)_
1160
+ _See code: [src/commands/login.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/login.ts)_
923
1161
 
924
1162
  ## `lps logout`
925
1163
 
@@ -936,7 +1174,150 @@ EXAMPLES
936
1174
  $ lps logout
937
1175
  ```
938
1176
 
939
- _See code: [src/commands/logout.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/logout.ts)_
1177
+ _See code: [src/commands/logout.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/logout.ts)_
1178
+
1179
+ ## `lps menu diff [PATH]`
1180
+
1181
+ Show what differs in nav menus and the active theme menu locations between your local files and a WordPress environment, or between two environments
1182
+
1183
+ ```
1184
+ USAGE
1185
+ $ lps menu diff [PATH] [--json] [--env <value>] [--against <value>]
1186
+
1187
+ ARGUMENTS
1188
+ [PATH] Path to menus directory (overrides project config)
1189
+
1190
+ FLAGS
1191
+ --against=<value> Compare the primary environment against this second environment instead of against local files
1192
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1193
+
1194
+ GLOBAL FLAGS
1195
+ --json Format output as json.
1196
+
1197
+ DESCRIPTION
1198
+ Show what differs in nav menus and the active theme menu locations between your local files and a WordPress
1199
+ environment, or between two environments
1200
+
1201
+ EXAMPLES
1202
+ $ lps menu diff
1203
+
1204
+ $ lps menu diff --env staging
1205
+
1206
+ $ lps menu diff --env staging --against production
1207
+ ```
1208
+
1209
+ _See code: [src/commands/menu/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/menu/diff.ts)_
1210
+
1211
+ ## `lps menu list`
1212
+
1213
+ List nav menus and the active theme menu locations on WordPress
1214
+
1215
+ ```
1216
+ USAGE
1217
+ $ lps menu list [--json] [--env <value>]
1218
+
1219
+ FLAGS
1220
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1221
+
1222
+ GLOBAL FLAGS
1223
+ --json Format output as json.
1224
+
1225
+ DESCRIPTION
1226
+ List nav menus and the active theme menu locations on WordPress
1227
+
1228
+ EXAMPLES
1229
+ $ lps menu list
1230
+ ```
1231
+
1232
+ _See code: [src/commands/menu/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/menu/list.ts)_
1233
+
1234
+ ## `lps menu pull [PATH]`
1235
+
1236
+ Pull nav menus and the active theme menu locations from WordPress
1237
+
1238
+ ```
1239
+ USAGE
1240
+ $ lps menu pull [PATH] [--env <value>] [-d] [-y]
1241
+
1242
+ ARGUMENTS
1243
+ [PATH] Path to menus directory (overrides project config)
1244
+
1245
+ FLAGS
1246
+ -d, --dry-run Show what would change without making changes
1247
+ -y, --yes Answer yes to confirmation prompts
1248
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1249
+
1250
+ DESCRIPTION
1251
+ Pull nav menus and the active theme menu locations from WordPress
1252
+
1253
+ EXAMPLES
1254
+ $ lps menu pull
1255
+ ```
1256
+
1257
+ _See code: [src/commands/menu/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/menu/pull.ts)_
1258
+
1259
+ ## `lps menu push [PATH]`
1260
+
1261
+ Push local nav menus and the active theme menu locations to WordPress. Each menu's post_type/taxonomy items are resolved by slug on the target environment, never by a raw id; an item whose target does not exist there fails the whole menu rather than guessing.
1262
+
1263
+ ```
1264
+ USAGE
1265
+ $ lps menu push [PATH] [--env <value>] [-d] [-y]
1266
+
1267
+ ARGUMENTS
1268
+ [PATH] Path to menus directory (overrides project config)
1269
+
1270
+ FLAGS
1271
+ -d, --dry-run Show what would change without making changes
1272
+ -y, --yes Answer yes to confirmation prompts
1273
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1274
+
1275
+ DESCRIPTION
1276
+ Push local nav menus and the active theme menu locations to WordPress. Each menu's post_type/taxonomy items are
1277
+ resolved by slug on the target environment, never by a raw id; an item whose target does not exist there fails the
1278
+ whole menu rather than guessing.
1279
+
1280
+ EXAMPLES
1281
+ $ lps menu push
1282
+ ```
1283
+
1284
+ _See code: [src/commands/menu/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/menu/push.ts)_
1285
+
1286
+ ## `lps menu rollback [PATH]`
1287
+
1288
+ Restore nav menus and menu locations to a snapshot taken automatically before an earlier `lps menu push`
1289
+
1290
+ ```
1291
+ USAGE
1292
+ $ lps menu rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
1293
+
1294
+ ARGUMENTS
1295
+ [PATH] Path to menus directory (overrides project config)
1296
+
1297
+ FLAGS
1298
+ -d, --dry-run Show what would change without making changes
1299
+ -y, --yes Answer yes to confirmation prompts
1300
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1301
+ --list List available snapshots instead of rolling back
1302
+ --to=<value> Roll back to this snapshot id instead of the most recent one
1303
+
1304
+ GLOBAL FLAGS
1305
+ --json Format output as json.
1306
+
1307
+ DESCRIPTION
1308
+ Restore nav menus and menu locations to a snapshot taken automatically before an earlier `lps menu push`
1309
+
1310
+ EXAMPLES
1311
+ $ lps menu rollback
1312
+
1313
+ $ lps menu rollback --list
1314
+
1315
+ $ lps menu rollback --to 1732000000000
1316
+
1317
+ $ lps menu rollback --dry-run
1318
+ ```
1319
+
1320
+ _See code: [src/commands/menu/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/menu/rollback.ts)_
940
1321
 
941
1322
  ## `lps option add NAME`
942
1323
 
@@ -967,7 +1348,7 @@ EXAMPLES
967
1348
  $ lps option add siteurl
968
1349
  ```
969
1350
 
970
- _See code: [src/commands/option/add.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/add.ts)_
1351
+ _See code: [src/commands/option/add.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/option/add.ts)_
971
1352
 
972
1353
  ## `lps option diff [PATH]`
973
1354
 
@@ -999,7 +1380,7 @@ EXAMPLES
999
1380
  $ lps option diff --env staging --against production
1000
1381
  ```
1001
1382
 
1002
- _See code: [src/commands/option/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/diff.ts)_
1383
+ _See code: [src/commands/option/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/option/diff.ts)_
1003
1384
 
1004
1385
  ## `lps option list`
1005
1386
 
@@ -1029,7 +1410,7 @@ EXAMPLES
1029
1410
  $ lps option list --no-core
1030
1411
  ```
1031
1412
 
1032
- _See code: [src/commands/option/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/list.ts)_
1413
+ _See code: [src/commands/option/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/option/list.ts)_
1033
1414
 
1034
1415
  ## `lps option pull [PATH]`
1035
1416
 
@@ -1058,7 +1439,7 @@ EXAMPLES
1058
1439
  $ lps option pull
1059
1440
  ```
1060
1441
 
1061
- _See code: [src/commands/option/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/pull.ts)_
1442
+ _See code: [src/commands/option/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/option/pull.ts)_
1062
1443
 
1063
1444
  ## `lps option push [PATH]`
1064
1445
 
@@ -1087,7 +1468,7 @@ EXAMPLES
1087
1468
  $ lps option push
1088
1469
  ```
1089
1470
 
1090
- _See code: [src/commands/option/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/push.ts)_
1471
+ _See code: [src/commands/option/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/option/push.ts)_
1091
1472
 
1092
1473
  ## `lps option remove NAME`
1093
1474
 
@@ -1120,7 +1501,43 @@ EXAMPLES
1120
1501
  $ lps option remove wpseo_titles --local-only
1121
1502
  ```
1122
1503
 
1123
- _See code: [src/commands/option/remove.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/remove.ts)_
1504
+ _See code: [src/commands/option/remove.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/option/remove.ts)_
1505
+
1506
+ ## `lps option rollback [PATH]`
1507
+
1508
+ Restore tracked options to a snapshot taken automatically before an earlier `lps option push`
1509
+
1510
+ ```
1511
+ USAGE
1512
+ $ lps option rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
1513
+
1514
+ ARGUMENTS
1515
+ [PATH] Path to options directory (overrides project config)
1516
+
1517
+ FLAGS
1518
+ -d, --dry-run Show what would change without making changes
1519
+ -y, --yes Answer yes to confirmation prompts
1520
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1521
+ --list List available snapshots instead of rolling back
1522
+ --to=<value> Roll back to this snapshot id instead of the most recent one
1523
+
1524
+ GLOBAL FLAGS
1525
+ --json Format output as json.
1526
+
1527
+ DESCRIPTION
1528
+ Restore tracked options to a snapshot taken automatically before an earlier `lps option push`
1529
+
1530
+ EXAMPLES
1531
+ $ lps option rollback
1532
+
1533
+ $ lps option rollback --list
1534
+
1535
+ $ lps option rollback --to 1732000000000
1536
+
1537
+ $ lps option rollback --dry-run
1538
+ ```
1539
+
1540
+ _See code: [src/commands/option/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/option/rollback.ts)_
1124
1541
 
1125
1542
  ## `lps plugin add SLUG`
1126
1543
 
@@ -1149,7 +1566,7 @@ EXAMPLES
1149
1566
  $ lps plugin add contact-form-7 --dry-run
1150
1567
  ```
1151
1568
 
1152
- _See code: [src/commands/plugin/add.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/add.ts)_
1569
+ _See code: [src/commands/plugin/add.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/plugin/add.ts)_
1153
1570
 
1154
1571
  ## `lps plugin audit`
1155
1572
 
@@ -1172,7 +1589,7 @@ EXAMPLES
1172
1589
  $ lps plugin audit
1173
1590
  ```
1174
1591
 
1175
- _See code: [src/commands/plugin/audit.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/audit.ts)_
1592
+ _See code: [src/commands/plugin/audit.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/plugin/audit.ts)_
1176
1593
 
1177
1594
  ## `lps plugin pull`
1178
1595
 
@@ -1198,7 +1615,7 @@ EXAMPLES
1198
1615
  $ lps plugin pull --dry-run
1199
1616
  ```
1200
1617
 
1201
- _See code: [src/commands/plugin/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/pull.ts)_
1618
+ _See code: [src/commands/plugin/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/plugin/pull.ts)_
1202
1619
 
1203
1620
  ## `lps plugin push`
1204
1621
 
@@ -1229,7 +1646,7 @@ EXAMPLES
1229
1646
  $ lps plugin push --force --prune
1230
1647
  ```
1231
1648
 
1232
- _See code: [src/commands/plugin/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/push.ts)_
1649
+ _See code: [src/commands/plugin/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/plugin/push.ts)_
1233
1650
 
1234
1651
  ## `lps plugin status`
1235
1652
 
@@ -1252,7 +1669,7 @@ EXAMPLES
1252
1669
  $ lps plugin status
1253
1670
  ```
1254
1671
 
1255
- _See code: [src/commands/plugin/status.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/status.ts)_
1672
+ _See code: [src/commands/plugin/status.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/plugin/status.ts)_
1256
1673
 
1257
1674
  ## `lps project config`
1258
1675
 
@@ -1270,7 +1687,7 @@ EXAMPLES
1270
1687
  $ lps project config
1271
1688
  ```
1272
1689
 
1273
- _See code: [src/commands/project/config.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/config.ts)_
1690
+ _See code: [src/commands/project/config.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/project/config.ts)_
1274
1691
 
1275
1692
  ## `lps project list`
1276
1693
 
@@ -1290,7 +1707,7 @@ EXAMPLES
1290
1707
  $ lps project list
1291
1708
  ```
1292
1709
 
1293
- _See code: [src/commands/project/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/list.ts)_
1710
+ _See code: [src/commands/project/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/project/list.ts)_
1294
1711
 
1295
1712
  ## `lps project pull`
1296
1713
 
@@ -1307,7 +1724,7 @@ EXAMPLES
1307
1724
  $ lps project pull
1308
1725
  ```
1309
1726
 
1310
- _See code: [src/commands/project/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/pull.ts)_
1727
+ _See code: [src/commands/project/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/project/pull.ts)_
1311
1728
 
1312
1729
  ## `lps project push`
1313
1730
 
@@ -1327,7 +1744,7 @@ EXAMPLES
1327
1744
  $ lps project push
1328
1745
  ```
1329
1746
 
1330
- _See code: [src/commands/project/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/push.ts)_
1747
+ _See code: [src/commands/project/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/project/push.ts)_
1331
1748
 
1332
1749
  ## `lps project remove`
1333
1750
 
@@ -1344,7 +1761,7 @@ EXAMPLES
1344
1761
  $ lps project remove
1345
1762
  ```
1346
1763
 
1347
- _See code: [src/commands/project/remove.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/remove.ts)_
1764
+ _See code: [src/commands/project/remove.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/project/remove.ts)_
1348
1765
 
1349
1766
  ## `lps project rotate`
1350
1767
 
@@ -1366,7 +1783,7 @@ EXAMPLES
1366
1783
  $ lps project rotate --env staging
1367
1784
  ```
1368
1785
 
1369
- _See code: [src/commands/project/rotate.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/rotate.ts)_
1786
+ _See code: [src/commands/project/rotate.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/project/rotate.ts)_
1370
1787
 
1371
1788
  ## `lps project switch`
1372
1789
 
@@ -1383,7 +1800,7 @@ EXAMPLES
1383
1800
  $ lps project switch
1384
1801
  ```
1385
1802
 
1386
- _See code: [src/commands/project/switch.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/switch.ts)_
1803
+ _See code: [src/commands/project/switch.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/project/switch.ts)_
1387
1804
 
1388
1805
  ## `lps promote FROM TO`
1389
1806
 
@@ -1391,7 +1808,7 @@ Copy every tracked resource from one environment to another by pulling from <fro
1391
1808
 
1392
1809
  ```
1393
1810
  USAGE
1394
- $ lps promote FROM TO [-d] [-y]
1811
+ $ lps promote FROM TO [--json] [-d] [-y]
1395
1812
 
1396
1813
  ARGUMENTS
1397
1814
  FROM Environment to copy the configuration from
@@ -1401,6 +1818,9 @@ FLAGS
1401
1818
  -d, --dry-run Show what would change without making changes
1402
1819
  -y, --yes Answer yes to confirmation prompts
1403
1820
 
1821
+ GLOBAL FLAGS
1822
+ --json Format output as json.
1823
+
1404
1824
  DESCRIPTION
1405
1825
  Copy every tracked resource from one environment to another by pulling from <from> then pushing to <to>. Local tracked
1406
1826
  files are overwritten with <from> in the process.
@@ -1411,24 +1831,27 @@ EXAMPLES
1411
1831
  $ lps promote production staging --dry-run
1412
1832
  ```
1413
1833
 
1414
- _See code: [src/commands/promote.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/promote.ts)_
1834
+ _See code: [src/commands/promote.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/promote.ts)_
1415
1835
 
1416
1836
  ## `lps pull`
1417
1837
 
1418
- Pull all content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, from WordPress
1838
+ Pull all content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, menus, options, and snippets, from WordPress
1419
1839
 
1420
1840
  ```
1421
1841
  USAGE
1422
- $ lps pull [--env <value>] [-d] [-y]
1842
+ $ lps pull [--json] [--env <value>] [-d] [-y]
1423
1843
 
1424
1844
  FLAGS
1425
1845
  -d, --dry-run Show what would change without making changes
1426
1846
  -y, --yes Answer yes to confirmation prompts
1427
1847
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1428
1848
 
1849
+ GLOBAL FLAGS
1850
+ --json Format output as json.
1851
+
1429
1852
  DESCRIPTION
1430
- Pull all content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, from
1431
- WordPress
1853
+ Pull all content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, menus, options, and snippets,
1854
+ from WordPress
1432
1855
 
1433
1856
  EXAMPLES
1434
1857
  $ lps pull
@@ -1438,24 +1861,27 @@ EXAMPLES
1438
1861
  $ lps pull --dry-run
1439
1862
  ```
1440
1863
 
1441
- _See code: [src/commands/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/pull.ts)_
1864
+ _See code: [src/commands/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/pull.ts)_
1442
1865
 
1443
1866
  ## `lps push`
1444
1867
 
1445
- Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, to WordPress
1868
+ Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, menus, options, and snippets, to WordPress
1446
1869
 
1447
1870
  ```
1448
1871
  USAGE
1449
- $ lps push [--env <value>] [-d] [-y]
1872
+ $ lps push [--json] [--env <value>] [-d] [-y]
1450
1873
 
1451
1874
  FLAGS
1452
1875
  -d, --dry-run Show what would change without making changes
1453
1876
  -y, --yes Answer yes to confirmation prompts
1454
1877
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1455
1878
 
1879
+ GLOBAL FLAGS
1880
+ --json Format output as json.
1881
+
1456
1882
  DESCRIPTION
1457
- Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, to
1458
- WordPress
1883
+ Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, menus, options, and
1884
+ snippets, to WordPress
1459
1885
 
1460
1886
  EXAMPLES
1461
1887
  $ lps push
@@ -1465,7 +1891,7 @@ EXAMPLES
1465
1891
  $ lps push --dry-run
1466
1892
  ```
1467
1893
 
1468
- _See code: [src/commands/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/push.ts)_
1894
+ _See code: [src/commands/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/push.ts)_
1469
1895
 
1470
1896
  ## `lps seo diff [PATH]`
1471
1897
 
@@ -1497,7 +1923,7 @@ EXAMPLES
1497
1923
  $ lps seo diff --env staging --against production
1498
1924
  ```
1499
1925
 
1500
- _See code: [src/commands/seo/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/diff.ts)_
1926
+ _See code: [src/commands/seo/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/seo/diff.ts)_
1501
1927
 
1502
1928
  ## `lps seo list`
1503
1929
 
@@ -1523,7 +1949,7 @@ EXAMPLES
1523
1949
  $ lps seo list --post-type post
1524
1950
  ```
1525
1951
 
1526
- _See code: [src/commands/seo/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/list.ts)_
1952
+ _See code: [src/commands/seo/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/seo/list.ts)_
1527
1953
 
1528
1954
  ## `lps seo pull [PATH]`
1529
1955
 
@@ -1551,7 +1977,7 @@ EXAMPLES
1551
1977
  $ lps seo pull --post-type post --post-type page
1552
1978
  ```
1553
1979
 
1554
- _See code: [src/commands/seo/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/pull.ts)_
1980
+ _See code: [src/commands/seo/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/seo/pull.ts)_
1555
1981
 
1556
1982
  ## `lps seo push [PATH]`
1557
1983
 
@@ -1559,15 +1985,17 @@ Push SEO settings, post meta, and redirects to WordPress. Local redirect files c
1559
1985
 
1560
1986
  ```
1561
1987
  USAGE
1562
- $ lps seo push [PATH] [--env <value>] [-d] [-y]
1988
+ $ lps seo push [PATH] [--env <value>] [-d] [-y] [--allow-external-redirects]
1563
1989
 
1564
1990
  ARGUMENTS
1565
1991
  [PATH] Path to SEO directory (overrides project config)
1566
1992
 
1567
1993
  FLAGS
1568
- -d, --dry-run Show what would change without making changes
1569
- -y, --yes Answer yes to confirmation prompts
1570
- --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1994
+ -d, --dry-run Show what would change without making changes
1995
+ -y, --yes Answer yes to confirmation prompts
1996
+ --allow-external-redirects Allow pushing a redirect whose target points off this site. Off by default: the server
1997
+ rejects an off-site `urlTo` so a stray push can't 301 traffic away.
1998
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1571
1999
 
1572
2000
  DESCRIPTION
1573
2001
  Push SEO settings, post meta, and redirects to WordPress. Local redirect files created remotely are renamed on disk to
@@ -1575,9 +2003,47 @@ DESCRIPTION
1575
2003
 
1576
2004
  EXAMPLES
1577
2005
  $ lps seo push
2006
+
2007
+ $ lps seo push --allow-external-redirects
1578
2008
  ```
1579
2009
 
1580
- _See code: [src/commands/seo/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/push.ts)_
2010
+ _See code: [src/commands/seo/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/seo/push.ts)_
2011
+
2012
+ ## `lps seo rollback [PATH]`
2013
+
2014
+ Restore SEO settings, post meta, and redirects to a snapshot taken automatically before an earlier `lps seo push`
2015
+
2016
+ ```
2017
+ USAGE
2018
+ $ lps seo rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
2019
+
2020
+ ARGUMENTS
2021
+ [PATH] Path to SEO directory (overrides project config)
2022
+
2023
+ FLAGS
2024
+ -d, --dry-run Show what would change without making changes
2025
+ -y, --yes Answer yes to confirmation prompts
2026
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
2027
+ --list List available snapshots instead of rolling back
2028
+ --to=<value> Roll back to this snapshot id instead of the most recent one
2029
+
2030
+ GLOBAL FLAGS
2031
+ --json Format output as json.
2032
+
2033
+ DESCRIPTION
2034
+ Restore SEO settings, post meta, and redirects to a snapshot taken automatically before an earlier `lps seo push`
2035
+
2036
+ EXAMPLES
2037
+ $ lps seo rollback
2038
+
2039
+ $ lps seo rollback --list
2040
+
2041
+ $ lps seo rollback --to 1732000000000
2042
+
2043
+ $ lps seo rollback --dry-run
2044
+ ```
2045
+
2046
+ _See code: [src/commands/seo/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/seo/rollback.ts)_
1581
2047
 
1582
2048
  ## `lps snippet diff [PATH]`
1583
2049
 
@@ -1608,7 +2074,7 @@ EXAMPLES
1608
2074
  $ lps snippet diff --env staging --against production
1609
2075
  ```
1610
2076
 
1611
- _See code: [src/commands/snippet/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/diff.ts)_
2077
+ _See code: [src/commands/snippet/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/snippet/diff.ts)_
1612
2078
 
1613
2079
  ## `lps snippet list`
1614
2080
 
@@ -1631,7 +2097,7 @@ EXAMPLES
1631
2097
  $ lps snippet list
1632
2098
  ```
1633
2099
 
1634
- _See code: [src/commands/snippet/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/list.ts)_
2100
+ _See code: [src/commands/snippet/list.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/snippet/list.ts)_
1635
2101
 
1636
2102
  ## `lps snippet publish [PATH]`
1637
2103
 
@@ -1654,7 +2120,7 @@ EXAMPLES
1654
2120
  $ lps snippet publish --path ./snippets
1655
2121
  ```
1656
2122
 
1657
- _See code: [src/commands/snippet/publish.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/publish.ts)_
2123
+ _See code: [src/commands/snippet/publish.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/snippet/publish.ts)_
1658
2124
 
1659
2125
  ## `lps snippet pull [PATH]`
1660
2126
 
@@ -1684,7 +2150,7 @@ EXAMPLES
1684
2150
  $ lps snippet pull --path ./snippets
1685
2151
  ```
1686
2152
 
1687
- _See code: [src/commands/snippet/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/pull.ts)_
2153
+ _See code: [src/commands/snippet/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/snippet/pull.ts)_
1688
2154
 
1689
2155
  ## `lps snippet push [PATH]`
1690
2156
 
@@ -1715,7 +2181,43 @@ EXAMPLES
1715
2181
  $ lps snippet push --path ./snippets
1716
2182
  ```
1717
2183
 
1718
- _See code: [src/commands/snippet/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/push.ts)_
2184
+ _See code: [src/commands/snippet/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/snippet/push.ts)_
2185
+
2186
+ ## `lps snippet rollback [PATH]`
2187
+
2188
+ Restore snippets to a snapshot taken automatically before an earlier `lps snippet push`
2189
+
2190
+ ```
2191
+ USAGE
2192
+ $ lps snippet rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
2193
+
2194
+ ARGUMENTS
2195
+ [PATH] Path to snippets directory (overrides project config)
2196
+
2197
+ FLAGS
2198
+ -d, --dry-run Show what would change without making changes
2199
+ -y, --yes Answer yes to confirmation prompts
2200
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
2201
+ --list List available snapshots instead of rolling back
2202
+ --to=<value> Roll back to this snapshot id instead of the most recent one
2203
+
2204
+ GLOBAL FLAGS
2205
+ --json Format output as json.
2206
+
2207
+ DESCRIPTION
2208
+ Restore snippets to a snapshot taken automatically before an earlier `lps snippet push`
2209
+
2210
+ EXAMPLES
2211
+ $ lps snippet rollback
2212
+
2213
+ $ lps snippet rollback --list
2214
+
2215
+ $ lps snippet rollback --to 1732000000000
2216
+
2217
+ $ lps snippet rollback --dry-run
2218
+ ```
2219
+
2220
+ _See code: [src/commands/snippet/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/snippet/rollback.ts)_
1719
2221
 
1720
2222
  ## `lps status`
1721
2223
 
@@ -1740,7 +2242,7 @@ EXAMPLES
1740
2242
  $ lps status --env staging
1741
2243
  ```
1742
2244
 
1743
- _See code: [src/commands/status.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/status.ts)_
2245
+ _See code: [src/commands/status.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/status.ts)_
1744
2246
 
1745
2247
  ## `lps telemetry disable`
1746
2248
 
@@ -1757,7 +2259,7 @@ EXAMPLES
1757
2259
  $ lps telemetry disable
1758
2260
  ```
1759
2261
 
1760
- _See code: [src/commands/telemetry/disable.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/telemetry/disable.ts)_
2262
+ _See code: [src/commands/telemetry/disable.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/telemetry/disable.ts)_
1761
2263
 
1762
2264
  ## `lps telemetry enable`
1763
2265
 
@@ -1774,7 +2276,123 @@ EXAMPLES
1774
2276
  $ lps telemetry enable
1775
2277
  ```
1776
2278
 
1777
- _See code: [src/commands/telemetry/enable.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/telemetry/enable.ts)_
2279
+ _See code: [src/commands/telemetry/enable.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/telemetry/enable.ts)_
2280
+
2281
+ ## `lps theme-styles diff [PATH]`
2282
+
2283
+ Show what differs in the active block theme's Global Styles (Site Editor > Styles) between your local file and a WordPress environment, or between two environments
2284
+
2285
+ ```
2286
+ USAGE
2287
+ $ lps theme-styles diff [PATH] [--json] [--env <value>] [--against <value>]
2288
+
2289
+ ARGUMENTS
2290
+ [PATH] Path to theme styles directory (overrides project config)
2291
+
2292
+ FLAGS
2293
+ --against=<value> Compare the primary environment against this second environment instead of against local files
2294
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
2295
+
2296
+ GLOBAL FLAGS
2297
+ --json Format output as json.
2298
+
2299
+ DESCRIPTION
2300
+ Show what differs in the active block theme's Global Styles (Site Editor > Styles) between your local file and a
2301
+ WordPress environment, or between two environments
2302
+
2303
+ EXAMPLES
2304
+ $ lps theme-styles diff
2305
+
2306
+ $ lps theme-styles diff --env staging
2307
+
2308
+ $ lps theme-styles diff --env staging --against production
2309
+ ```
2310
+
2311
+ _See code: [src/commands/theme-styles/diff.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme-styles/diff.ts)_
2312
+
2313
+ ## `lps theme-styles pull [PATH]`
2314
+
2315
+ Pull the active block theme's Global Styles customizations (Site Editor > Styles) from WordPress into a local file
2316
+
2317
+ ```
2318
+ USAGE
2319
+ $ lps theme-styles pull [PATH] [--env <value>] [-d]
2320
+
2321
+ ARGUMENTS
2322
+ [PATH] Path to theme styles directory (overrides project config)
2323
+
2324
+ FLAGS
2325
+ -d, --dry-run Show what would change without making changes
2326
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
2327
+
2328
+ DESCRIPTION
2329
+ Pull the active block theme's Global Styles customizations (Site Editor > Styles) from WordPress into a local file
2330
+
2331
+ EXAMPLES
2332
+ $ lps theme-styles pull
2333
+ ```
2334
+
2335
+ _See code: [src/commands/theme-styles/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme-styles/pull.ts)_
2336
+
2337
+ ## `lps theme-styles push [PATH]`
2338
+
2339
+ Push the local Global Styles file to the active block theme's Site Editor > Styles on WordPress
2340
+
2341
+ ```
2342
+ USAGE
2343
+ $ lps theme-styles push [PATH] [--env <value>] [-d]
2344
+
2345
+ ARGUMENTS
2346
+ [PATH] Path to theme styles directory (overrides project config)
2347
+
2348
+ FLAGS
2349
+ -d, --dry-run Show what would change without making changes
2350
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
2351
+
2352
+ DESCRIPTION
2353
+ Push the local Global Styles file to the active block theme's Site Editor > Styles on WordPress
2354
+
2355
+ EXAMPLES
2356
+ $ lps theme-styles push
2357
+ ```
2358
+
2359
+ _See code: [src/commands/theme-styles/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme-styles/push.ts)_
2360
+
2361
+ ## `lps theme-styles rollback [PATH]`
2362
+
2363
+ Restore the active theme’s Global Styles to a snapshot taken automatically before an earlier `lps theme-styles push`
2364
+
2365
+ ```
2366
+ USAGE
2367
+ $ lps theme-styles rollback [PATH] [--json] [--env <value>] [-d] [-y] [--list] [--to <value>]
2368
+
2369
+ ARGUMENTS
2370
+ [PATH] Path to theme styles directory (overrides project config)
2371
+
2372
+ FLAGS
2373
+ -d, --dry-run Show what would change without making changes
2374
+ -y, --yes Answer yes to confirmation prompts
2375
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
2376
+ --list List available snapshots instead of rolling back
2377
+ --to=<value> Roll back to this snapshot id instead of the most recent one
2378
+
2379
+ GLOBAL FLAGS
2380
+ --json Format output as json.
2381
+
2382
+ DESCRIPTION
2383
+ Restore the active theme’s Global Styles to a snapshot taken automatically before an earlier `lps theme-styles push`
2384
+
2385
+ EXAMPLES
2386
+ $ lps theme-styles rollback
2387
+
2388
+ $ lps theme-styles rollback --list
2389
+
2390
+ $ lps theme-styles rollback --to 1732000000000
2391
+
2392
+ $ lps theme-styles rollback --dry-run
2393
+ ```
2394
+
2395
+ _See code: [src/commands/theme-styles/rollback.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme-styles/rollback.ts)_
1778
2396
 
1779
2397
  ## `lps theme add SLUG`
1780
2398
 
@@ -1801,7 +2419,7 @@ EXAMPLES
1801
2419
  $ lps theme add generatepress --version 3.4.0
1802
2420
  ```
1803
2421
 
1804
- _See code: [src/commands/theme/add.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/add.ts)_
2422
+ _See code: [src/commands/theme/add.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme/add.ts)_
1805
2423
 
1806
2424
  ## `lps theme pull`
1807
2425
 
@@ -1825,7 +2443,7 @@ EXAMPLES
1825
2443
  $ lps theme pull
1826
2444
  ```
1827
2445
 
1828
- _See code: [src/commands/theme/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/pull.ts)_
2446
+ _See code: [src/commands/theme/pull.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme/pull.ts)_
1829
2447
 
1830
2448
  ## `lps theme push`
1831
2449
 
@@ -1853,7 +2471,7 @@ EXAMPLES
1853
2471
  $ lps theme push --force
1854
2472
  ```
1855
2473
 
1856
- _See code: [src/commands/theme/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/push.ts)_
2474
+ _See code: [src/commands/theme/push.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme/push.ts)_
1857
2475
 
1858
2476
  ## `lps theme status`
1859
2477
 
@@ -1876,7 +2494,7 @@ EXAMPLES
1876
2494
  $ lps theme status
1877
2495
  ```
1878
2496
 
1879
- _See code: [src/commands/theme/status.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/status.ts)_
2497
+ _See code: [src/commands/theme/status.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/theme/status.ts)_
1880
2498
 
1881
2499
  ## `lps validate`
1882
2500
 
@@ -1896,5 +2514,5 @@ EXAMPLES
1896
2514
  $ lps validate
1897
2515
  ```
1898
2516
 
1899
- _See code: [src/commands/validate.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/validate.ts)_
2517
+ _See code: [src/commands/validate.ts](https://github.com/loopress/loopress/blob/v0.25.0/src/commands/validate.ts)_
1900
2518
  <!-- commandsstop -->